source: trunk/makefile.inc @ 1198

Revision 1198, 10.1 KB checked in by msl, 2 years ago (diff)

CHDK support for A495

+ Added support for A495 1.00d, 1.00e & 1.00f http://chdk.setepontos.com/index.php?topic=650.msg68027#msg68027

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