source: trunk/makefile.inc @ 1257

Revision 1257, 10.5 KB checked in by philmoz, 22 months ago (diff)

IXUS200-SD980 port for firmware 1.01D by gbit.
Implements CAM_DETECT_SCREEN_ERASE for both versions.
http://chdk.setepontos.com/index.php?topic=650.msg71115#msg71115

  • Property svn:eol-style set to LF
Line 
1VER=CHDK
2
3PLATFORM=s3is
4PLATFORMSUB=100a
5
6#PLATFORM=a620
7#PLATFORMSUB=100f
8
9#PLATFORM=a610
10#PLATFORMSUB=100e
11
12#PLATFORM=a410
13#PLATFORMSUB=100f
14
15#PLATFORM=ixus40_sd300
16#PLATFORMSUB=100k
17
18#PLATFORM=ixus40_sd300
19#PLATFORMSUB=100j
20
21#PLATFORM=sx100is
22#PLATFORMSUB=100c
23
24#PLATFORM=sx10
25#PLATFORMSUB=101a
26
27#PLATFORM=sx1
28#PLATFORMSUB=200h
29
30#PLATFORM=sx100is
31#PLATFORMSUB=100b
32
33#PLATFORM=sx110is
34#PLATFORMSUB=100b
35
36#PLATFORM=sx130is
37#PLATFORMSUB=101c
38
39#PLATFORM=sx130is
40#PLATFORMSUB=101d
41
42#PLATFORM=sx130is
43#PLATFORMSUB=101f
44
45#PLATFORM=sx200is
46#PLATFORMSUB=100c
47# note, 100d compatible with 100c
48
49#PLATFORM=ixus50_sd400
50#PLATFORMSUB=101a
51
52#PLATFORM=ixus50_sd400
53#PLATFORMSUB=101b
54
55#PLATFORM=ixus750_sd550
56#PLATFORMSUB=100f
57
58#PLATFORM=ixus750_sd550
59#PLATFORMSUB=100g
60
61#PLATFORM=a640
62#PLATFORMSUB=100b
63
64#PLATFORM=a700
65#PLATFORMSUB=100b
66
67#PLATFORM=a710
68#PLATFORMSUB=100a
69
70#PLATFORM=s2is
71#PLATFORMSUB=100e
72
73#PLATFORM=s2is
74#PLATFORMSUB=100f
75
76#PLATFORM=s2is
77#PLATFORMSUB=100g
78
79#PLATFORM=g7
80#PLATFORMSUB=100e
81
82#PLATFORM=g7
83#PLATFORMSUB=100g
84
85#PLATFORM=g7
86#PLATFORMSUB=100i
87
88#PLATFORM=g7
89#PLATFORMSUB=100j
90
91#PLATFORM=g9
92#PLATFORMSUB=100d
93
94#PLATFORM=g9
95#PLATFORMSUB=100g
96
97#PLATFORM=a530
98#PLATFORMSUB=100a
99
100#PLATFORM=a540
101#PLATFORMSUB=100b
102
103#PLATFORM=a560
104#PLATFORMSUB=100a
105
106#PLATFORM=a570
107#PLATFORMSUB=101a
108
109#PLATFORM=a570
110#PLATFORMSUB=100e
111
112#PLATFORM=a610
113#PLATFORMSUB=100f
114
115#PLATFORM=ixus700_sd500
116#PLATFORMSUB=101a
117
118#PLATFORM=ixus700_sd500
119#PLATFORMSUB=101b
120
121#PLATFORM=ixus800_sd700
122#PLATFORMSUB=100b
123
124#PLATFORM=ixus800_sd700
125#PLATFORMSUB=101b
126
127#PLATFORM=a720
128#PLATFORMSUB=100c
129
130#PLATFORM=ixus850_sd800
131#PLATFORMSUB=100e
132
133#PLATFORM=ixus860_sd870
134#PLATFORMSUB=100c
135
136#PLATFORM=ixus870_sd880
137#PLATFORMSUB=100e
138
139#PLATFORM=ixus870_sd880
140#PLATFORMSUB=101a
141
142#PLATFORM=ixus870_sd880
143#PLATFORMSUB=102b
144
145#PLATFORM=ixus80_sd1100
146#PLATFORMSUB=100c
147
148#PLATFORM=ixus80_sd1100
149#PLATFORMSUB=101a
150
151#PLATFORM=ixus950_sd850
152#PLATFORMSUB=100c
153
154#PLATFORM=ixus55_sd450
155#PLATFORMSUB=100b
156
157#PLATFORM=ixus55_sd450
158#PLATFORMSUB=100c
159
160#PLATFORM=ixus55_sd450
161#PLATFORMSUB=100d
162
163#PLATFORM=ixus60_sd600
164#PLATFORMSUB=100a
165
166#PLATFORM=ixus60_sd600
167#PLATFORMSUB=100d
168
169#PLATFORM=ixus70_sd1000
170#PLATFORMSUB=100c
171
172#PLATFORM=ixus70_sd1000
173#PLATFORMSUB=101b
174
175#PLATFORM=ixus70_sd1000
176#PLATFORMSUB=102a
177
178#PLATFORM=a650
179#PLATFORMSUB=100d
180
181#PLATFORM=a450
182#PLATFORMSUB=100d
183
184#PLATFORM=a460
185#PLATFORMSUB=100d
186
187#PLATFORM=a550
188#PLATFORMSUB=100c
189
190#PLATFORM=a590
191#PLATFORMSUB=100e
192
193#PLATFORM=a590
194#PLATFORMSUB=101b
195
196#PLATFORM=a630
197#PLATFORMSUB=100c
198
199#PLATFORM=s5is
200#PLATFORMSUB=101a
201
202#PLATFORM=s5is
203#PLATFORMSUB=101b
204
205#PLATFORM=ixus65_sd630
206#PLATFORMSUB=100a
207
208#PLATFORM=tx1
209#PLATFORMSUB=100g
210
211#PLATFORM=tx1
212#PLATFORMSUB=101b
213
214#PLATFORM=ixus900_sd900
215#PLATFORMSUB=100c
216
217#PLATFORM=ixus960_sd950
218#PLATFORMSUB=100d
219
220#PLATFORM=ixus970_sd890
221#PLATFORMSUB=100b
222
223#PLATFORM=ixus970_sd890
224#PLATFORMSUB=100c
225
226#PLATFORM=ixus970_sd890
227#PLATFORMSUB=100f
228
229#PLATFORM=ixus75_sd750
230#PLATFORMSUB=100b
231
232#PLATFORM=ixus75_sd750
233#PLATFORMSUB=101a
234
235#PLATFORM=ixus75_sd750
236#PLATFORMSUB=102a
237
238#PLATFORM=ixusizoom_sd30
239#PLATFORMSUB=100g
240
241#PLATFORM=a470
242#PLATFORMSUB=102c
243
244#PLATFORM=a470
245#PLATFORMSUB=101b
246
247#PLATFORM=a490
248#PLATFORMSUB=100f
249
250#PLATFORM=a495
251#PLATFORMSUB=100d
252
253#PLATFORM=a495
254#PLATFORMSUB=100e
255
256#PLATFORM=a495
257#PLATFORMSUB=100f
258
259#PLATFORM=ixus980_sd990
260#PLATFORMSUB=100e
261
262#PLATFORM=ixus980_sd990
263#PLATFORMSUB=101b
264
265#PLATFORM=a1100
266#PLATFORMSUB=100c
267
268#PLATFORM=a2000
269#PLATFORMSUB=100c
270
271#PLATFORM=ixus100_sd780
272#PLATFORMSUB=100c
273
274PLATFORM=ixus120_sd940
275PLATFORMSUB=100e
276
277PLATFORM=ixus120_sd940
278PLATFORMSUB=101a
279
280PLATFORM=ixus120_sd940
281PLATFORMSUB=102c
282
283PLATFORM=ixus120_sd940
284PLATFORMSUB=103b
285
286PLATFORM=ixus120_sd940
287PLATFORMSUB=103c
288
289#PLATFORM=ixus200_sd980
290#PLATFORMSUB=101c
291
292#PLATFORM=ixus200_sd980
293#PLATFORMSUB=101d
294
295#PLATFORM=ixus90_sd790
296#PLATFORMSUB=100c
297
298#PLATFORM=ixus90_sd790
299#PLATFORMSUB=100d
300
301#PLATFORM=g11
302#PLATFORMSUB=100f
303
304#PLATFORM=g11
305#PLATFORMSUB=100j
306
307#PLATFORM=g11
308#PLATFORMSUB=100l
309
310#PLATFORM=sx20
311#PLATFORMSUB=102b
312
313#PLATFORM=ixus85_sd770
314#PLATFORMSUB=100a
315
316#PLATFORM=ixus95_sd1200
317#PLATFORMSUB=100c
318
319#PLATFORM=sx30
320#PLATFORMSUB=100e
321
322#PLATFORM=sx30
323#PLATFORMSUB=100h
324
325#PLATFORM=sx30
326#PLATFORMSUB=100l
327
328#PLATFORM=sx30
329#PLATFORMSUB=100n
330
331#PLATFORM=g12
332#PLATFORMSUB=100c
333
334#PLATFORM=g12
335#PLATFORMSUB=100e
336
337#PLATFORM=g12
338#PLATFORMSUB=100f
339
340#PLATFORM=a430
341#PLATFORMSUB=100b
342
343#PLATFORM=d10
344#PLATFORMSUB=100a
345
346#PLATFORM=s95
347#PLATFORMSUB=100e
348
349#PLATFORM=s95
350#PLATFORMSUB=100h
351
352#PLATFORM=s95
353#PLATFORMSUB=100i
354
355#PLATFORM=s95
356#PLATFORMSUB=100k
357
358#PLATFORM=ixus300_sd4000
359#PLATFORMSUB=100d
360
361#PLATFORM=sx220hs
362#PLATFORMSUB=100a
363
364#PLATFORM=sx220hs
365#PLATFORMSUB=101a
366
367MEMISOSIZE="(&_end-&_start)"
368# override this on the command line or in buildconf to use PRIMARY.BIN from a different tree
369# should be an absolute path
370PRIMARY_ROOT=$(topdir)platform
371include $(topdir)buildconf.inc
372# optional local version of buildconf.inc, not in SVN so it can be used in autobuilds
373# and to avoid getting accidentally included in svn diffs
374# you may also set your default camera here
375-include $(topdir)localbuildconf.inc
376include $(topdir)version.inc
377include $(topdir)platform/$(PLATFORM)/sub/$(PLATFORMSUB)/makefile.inc
378
379# Used in gui_debug.c for controlling memory browser allowed address ranges
380# override in platform/$(PLATFORM)/sub/$(PLATFORMSUB)/makefile.inc to set camera specific value
381ifdef MAXRAMADDR
382PLFLAGS+=-DMAXRAMADDR=$(MAXRAMADDR)
383else
384PLFLAGS+=-DMAXRAMADDR=0x2000000
385endif
386ifdef ROMBASEADDR
387PLFLAGS+=-DROMBASEADDR=$(ROMBASEADDR)
388else
389PLFLAGS+=-DROMBASEADDR=0xFFC00000
390endif
391
392ifdef OPT_FI2
393include $(topdir)/platform/fi2.inc
394endif
395
396SILENT=SILENT
397
398NOZERO100K=TRUE
399
400##########################################################################
401##########################################################################
402##########################################################################
403
404ESED = sed -r
405
406# keep sort order consistent
407export LC_ALL=C
408
409ifndef OSTYPE
410  HOSTPLATFORM:=$(patsubst MINGW%,MINGW,$(shell uname -s))
411  ifeq ($(HOSTPLATFORM),MINGW)
412        OSTYPE = Windows
413        EXE = .exe
414        SH = sh
415        DEVNULL = NUL
416        OLDSEPARATOR = \\\\
417        NEWSEPARATOR = /
418        SORT := $(dir $(shell which uniq.exe | sed 's_$(OLDSEPARATOR)_$(NEWSEPARATOR)_g'))/sort.exe
419  else
420    ifeq ($(HOSTPLATFORM),Linux)
421      OSTYPE = Linux
422      EXE =
423      SH =
424      DEVNULL = /dev/null
425      SORT = sort
426    else
427      ifeq ($(HOSTPLATFORM),Darwin)
428        OSTYPE = Darwin
429        EXE =
430        SH =
431        DEVNULL = /dev/null
432        SORT = sort
433        ESED = sed -E
434      else
435        OSTYPE = Other
436        EXE =
437        SH =
438        DEVNULL = /dev/null
439        SORT = sort
440      endif
441    endif
442  endif
443else
444  EXE =
445  SH =
446  DEVNULL = /dev/null
447  SORT = sort
448endif
449
450##########################################################################
451##########################################################################
452##########################################################################
453
454HOSTCC=gcc
455HOSTCFLAGS=-g -O2 -Wall
456HOSTAR=ar
457
458PAKWIF=$(topdir)tools/pakwif$(EXE)
459PAKFI2=$(topdir)tools/packfi2/fi2enc$(EXE)
460ENCODE_DISKBOOT=$(topdir)tools/dancingbits$(EXE)
461
462##########################################################################
463
464CC=arm-elf-gcc
465OBJCOPY=arm-elf-objcopy
466OBJDUMP=arm-elf-objdump
467STRIP=arm-elf-strip
468NM=arm-elf-nm
469AR=arm-elf-ar
470RANLIB=arm-elf-ranlib
471SIZE=arm-elf-size
472
473GCC_VERSION=$(shell $(CC) -dumpversion)
474GCC_VERSION_MAJOR=$(firstword $(subst ., ,$(GCC_VERSION)))
475
476# -msoft-float is used per default but object files are marked as hard-float
477CFLAGS=-fno-inline -Os -fno-strict-aliasing
478# flags for gcc v4
479# CFLAGS+=-mcpu=arm946e-s
480# for gcc v3, we use to allow use of strd etc
481ifeq ($(GCC_VERSION_MAJOR),3)
482    CFLAGS+=-march=armv5te
483else
484    ifeq ($(GCC_VERSION_MAJOR),4)
485        # TODO should be -mcpu, but breaks things ATM
486        CFLAGS+=-mtune=arm946e-s
487    endif
488endif
489
490
491CTHUMB=-mthumb
492CFLAGS+=-mthumb-interwork
493CFLAGS+=-I$(topdir)include -I$(topdir)platform/$(PLATFORM) $(PLFLAGS) $(CPPFLAGS)
494CFLAGS+=-DPLATFORM=\"$(PLATFORM)\" -DPLATFORMSUB=\"$(PLATFORMSUB)\" -DPLATFORMID=$(PLATFORMID) -DHDK_VERSION=\"$(VER)\" -DBUILD_NUMBER=\"$(BUILD_NUMBER)\" -DCAMERA_$(PLATFORM)=1
495CFLAGS+=-Wall -Wno-unused -Wno-format
496LDFLAGS=-L$(topdir)lib/math -L$(topdir)lib/font
497LDFLAGS+=-L$(topdir)lib/libc -L$(topdir)lib/ubasic
498LDFLAGS+=-L$(topdir)platform/$(PLATFORM) -L$(topdir)platform/$(PLATFORM)/sub/$(PLATFORMSUB)
499
500ifdef OPT_DEBUGGING
501CFLAGS+=-DOPT_DEBUGGING
502endif
503
504ifdef OPT_PTP
505CFLAGS+=-DOPT_PTP
506endif
507
508ifdef OPT_LUA
509CFLAGS+=-DOPT_LUA
510OPT_SCRIPTING=1
511endif
512
513ifdef OPT_UBASIC
514CFLAGS+=-DOPT_UBASIC
515OPT_SCRIPTING=1
516endif
517
518ifdef OPT_SCRIPTING
519CFLAGS+=-DOPT_SCRIPTING
520endif
521
522ifdef OPT_EXMEM_MALLOC
523CFLAGS+=-DOPT_EXMEM_MALLOC
524endif
525
526ifdef OPT_EXMEM_TESTING
527CFLAGS+=-DOPT_EXMEM_TESTING
528endif
529
530ifdef EXMEM_HEAP_SKIP
531CFLAGS+=-DEXMEM_HEAP_SKIP=$(EXMEM_HEAP_SKIP)
532endif
533
534ifdef EXMEM_BUFFER_SIZE
535CFLAGS+=-DEXMEM_BUFFER_SIZE=$(EXMEM_BUFFER_SIZE)
536endif
537
538ifdef OPT_CHDK_IN_EXMEM
539CFLAGS+=-DOPT_CHDK_IN_EXMEM
540endif
541
542ifdef OPT_WARNINGS
543     ifeq ($(GCC_VERSION_MAJOR),3)
544           CFLAGS+=-Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter
545           HOSTCFLAGS+=-Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter
546     endif
547     ifeq ($(GCC_VERSION_MAJOR),4)
548           CFLAGS+=-Wextra -fdiagnostics-show-option -Wno-missing-field-initializers -Wunused -Wno-unused-parameter
549           #HOSTCFLAGS+=-Wextra -fdiagnostics-show-option -Wno-missing-field-initializers -Wunused -Wno-unused-parameter
550     endif
551endif
552
553##########################################################################
554
555default: all
556
557ifndef SKIPBUILDRULES
558
559%.o: %.c
560        @echo $< \-\> $@
561        $(CC) $(CFLAGS) -nostdinc -c -o $@ $<
562%.o: %.S
563        @echo $< \-\> $@
564        $(CC) $(CFLAGS) -nostdinc -c -o $@ $<
565%.a:
566        @echo $^ \-\> $@
567        $(AR) rcs $@ $^
568
569.dep/%.d: %.c .dep
570        $(CC) $(CFLAGS) -M $< > $@.$$$$; \
571                sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
572        rm -f $@.$$$$
573
574.dep/%.d: %.S .dep
575        $(CC) $(CFLAGS) -M $< > $@.$$$$; \
576                sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
577                rm -f $@.$$$$
578
579endif
580
581all: all-recursive
582clean: clean-recursive
583distclean: distclean-recursive
584
585.dep:
586        mkdir .dep
587
588clean-recursive:
589        @for i in $(SUBDIRS); do \
590                echo \>\> Cleaning in $(FOLDER)$$i; \
591                $(MAKE) -C $$i FOLDER="$(FOLDER)$$i/" clean || exit 1; \
592        done
593
594distclean-recursive:
595        @for i in $(SUBDIRS); do \
596                echo \>\> Distcleaning in $(FOLDER)$$i; \
597                $(MAKE) -C $$i FOLDER="$(FOLDER)$$i/" distclean || exit 1; \
598        done
599
600all-recursive:
601        @for i in $(SUBDIRS); do \
602                echo \>\> Entering to $(FOLDER)$$i; \
603                $(MAKE) -C $$i FOLDER="$(FOLDER)$$i/" || exit 1; \
604                echo \<\< Leaving $(FOLDER)$$i; \
605        done
606
607depend-recursive:
608        @for i in $(SUBDIRS); do \
609                echo \>\> Entering to $(FOLDER)$$i; \
610                $(MAKE) -C $$i FOLDER="$(FOLDER)$$i/" depend || exit 1; \
611                echo \<\< Leaving $(FOLDER)$$i; \
612        done
613
614ifdef SILENT
615.SILENT:
616endif
Note: See TracBrowser for help on using the repository browser.