source: trunk/makefile.inc @ 1181

Revision 1149, 9.9 KB checked in by reyalP, 2 years ago (diff)

ixus120_sd940 101a support from waterwingz in http://chdk.setepontos.com/index.php?topic=650.msg65022#msg65022

  • 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=ixus980_sd990
239#PLATFORMSUB=100e
240
241#PLATFORM=ixus980_sd990
242#PLATFORMSUB=101b
243
244#PLATFORM=a2000
245#PLATFORMSUB=100c
246
247#PLATFORM=ixus100_sd780
248#PLATFORMSUB=100c
249
250PLATFORM=ixus120_sd940
251PLATFORMSUB=101a
252
253PLATFORM=ixus120_sd940
254PLATFORMSUB=102c
255
256PLATFORM=ixus120_sd940
257PLATFORMSUB=103b
258
259PLATFORM=ixus120_sd940
260PLATFORMSUB=103c
261
262#PLATFORM=ixus90_sd790
263#PLATFORMSUB=100c
264
265#PLATFORM=ixus90_sd790
266#PLATFORMSUB=100d
267
268#PLATFORM=g11
269#PLATFORMSUB=100f
270
271#PLATFORM=g11
272#PLATFORMSUB=100j
273
274#PLATFORM=g11
275#PLATFORMSUB=100l
276
277#PLATFORM=sx20
278#PLATFORMSUB=102b
279
280#PLATFORM=ixus85_sd770
281#PLATFORMSUB=100a
282
283#PLATFORM=ixus95_sd1200
284#PLATFORMSUB=100c
285
286#PLATFORM=sx30
287#PLATFORMSUB=100e
288
289#PLATFORM=sx30
290#PLATFORMSUB=100h
291
292#PLATFORM=sx30
293#PLATFORMSUB=100l
294
295#PLATFORM=g12
296#PLATFORMSUB=100c
297
298#PLATFORM=g12
299#PLATFORMSUB=100e
300
301#PLATFORM=a430
302#PLATFORMSUB=100b
303
304#PLATFORM=d10
305#PLATFORMSUB=100a
306
307#PLATFORM=s95
308#PLATFORMSUB=100e
309
310
311MEMISOSIZE="(&_end-&_start)"
312# override this on the command line or in buildconf to use PRIMARY.BIN from a different tree
313# should be an absolute path
314PRIMARY_ROOT=$(topdir)platform
315include $(topdir)buildconf.inc
316# optional local version of buildconf.inc, not in SVN so it can be used in autobuilds
317# and to avoid getting accidentally included in svn diffs
318# you may also set your default camera here
319-include $(topdir)localbuildconf.inc
320include $(topdir)version.inc
321include $(topdir)platform/$(PLATFORM)/sub/$(PLATFORMSUB)/makefile.inc
322
323# Used in gui_debug.c for controlling memory browser allowed address ranges
324# override in platform/$(PLATFORM)/sub/$(PLATFORMSUB)/makefile.inc to set camera specific value
325ifdef MAXRAMADDR
326PLFLAGS+=-DMAXRAMADDR=$(MAXRAMADDR)
327else
328PLFLAGS+=-DMAXRAMADDR=0x2000000
329endif
330ifdef ROMBASEADDR
331PLFLAGS+=-DROMBASEADDR=$(ROMBASEADDR)
332else
333PLFLAGS+=-DROMBASEADDR=0xFFC00000
334endif
335
336ifdef OPT_FI2
337include $(topdir)/platform/fi2.inc
338endif
339
340SILENT=SILENT
341
342NOZERO100K=TRUE
343
344##########################################################################
345##########################################################################
346##########################################################################
347
348ESED = sed -r
349
350# keep sort order consistent
351export LC_ALL=C
352
353ifndef OSTYPE
354  HOSTPLATFORM:=$(patsubst MINGW%,MINGW,$(shell uname -s))
355  ifeq ($(HOSTPLATFORM),MINGW)
356        OSTYPE = Windows
357        EXE = .exe
358        SH = sh
359        DEVNULL = NUL
360        OLDSEPARATOR = \\\\
361        NEWSEPARATOR = /
362        SORT := $(dir $(shell which uniq.exe | sed 's_$(OLDSEPARATOR)_$(NEWSEPARATOR)_g'))/sort.exe
363  else
364    ifeq ($(HOSTPLATFORM),Linux)
365      OSTYPE = Linux
366      EXE =
367      SH =
368      DEVNULL = /dev/null
369      SORT = sort
370    else
371      ifeq ($(HOSTPLATFORM),Darwin)
372        OSTYPE = Darwin
373        EXE =
374        SH =
375        DEVNULL = /dev/null
376        SORT = sort
377        ESED = sed -E
378      else
379        OSTYPE = Other
380        EXE =
381        SH =
382        DEVNULL = /dev/null
383        SORT = sort
384      endif
385    endif
386  endif
387else
388  EXE =
389  SH =
390  DEVNULL = /dev/null
391  SORT = sort
392endif
393
394##########################################################################
395##########################################################################
396##########################################################################
397
398HOSTCC=gcc
399HOSTCFLAGS=-g -O2 -Wall
400HOSTAR=ar
401
402PAKWIF=$(topdir)tools/pakwif$(EXE)
403PAKFI2=$(topdir)tools/packfi2/fi2enc$(EXE)
404ENCODE_DISKBOOT=$(topdir)tools/dancingbits$(EXE)
405
406##########################################################################
407
408CC=arm-elf-gcc
409OBJCOPY=arm-elf-objcopy
410OBJDUMP=arm-elf-objdump
411STRIP=arm-elf-strip
412NM=arm-elf-nm
413AR=arm-elf-ar
414RANLIB=arm-elf-ranlib
415SIZE=arm-elf-size
416
417GCC_VERSION=$(shell $(CC) -dumpversion)
418GCC_VERSION_MAJOR=$(firstword $(subst ., ,$(GCC_VERSION)))
419
420# -msoft-float is used per default but object files are marked as hard-float
421CFLAGS=-fno-inline -Os -fno-strict-aliasing
422# flags for gcc v4
423# CFLAGS+=-mcpu=arm946e-s
424# for gcc v3, we use to allow use of strd etc
425ifeq ($(GCC_VERSION_MAJOR),3)
426    CFLAGS+=-march=armv5te
427else
428    ifeq ($(GCC_VERSION_MAJOR),4)
429        # TODO should be -mcpu, but breaks things ATM
430        CFLAGS+=-mtune=arm946e-s
431    endif
432endif
433
434
435CTHUMB=-mthumb
436CFLAGS+=-mthumb-interwork
437CFLAGS+=-I$(topdir)include -I$(topdir)platform/$(PLATFORM) $(PLFLAGS) $(CPPFLAGS)
438CFLAGS+=-DPLATFORM=\"$(PLATFORM)\" -DPLATFORMSUB=\"$(PLATFORMSUB)\" -DPLATFORMID=$(PLATFORMID) -DHDK_VERSION=\"$(VER)\" -DBUILD_NUMBER=\"$(BUILD_NUMBER)\" -DCAMERA_$(PLATFORM)=1
439CFLAGS+=-Wall -Wno-unused -Wno-format
440LDFLAGS=-L$(topdir)lib/math -L$(topdir)lib/font
441LDFLAGS+=-L$(topdir)lib/libc -L$(topdir)lib/ubasic
442LDFLAGS+=-L$(topdir)platform/$(PLATFORM) -L$(topdir)platform/$(PLATFORM)/sub/$(PLATFORMSUB)
443
444ifdef OPT_DEBUGGING
445CFLAGS+=-DOPT_DEBUGGING
446endif
447
448ifdef OPT_PTP
449CFLAGS+=-DOPT_PTP
450endif
451
452ifdef OPT_LUA
453CFLAGS+=-DOPT_LUA
454OPT_SCRIPTING=1
455endif
456
457ifdef OPT_UBASIC
458CFLAGS+=-DOPT_UBASIC
459OPT_SCRIPTING=1
460endif
461
462ifdef OPT_SCRIPTING
463CFLAGS+=-DOPT_SCRIPTING
464endif
465
466ifdef OPT_EXMEM_MALLOC
467CFLAGS+=-DOPT_EXMEM_MALLOC
468endif
469
470ifdef OPT_EXMEM_TESTING
471CFLAGS+=-DOPT_EXMEM_TESTING
472endif
473
474ifdef EXMEM_HEAP_SKIP
475CFLAGS+=-DEXMEM_HEAP_SKIP=$(EXMEM_HEAP_SKIP)
476endif
477
478ifdef EXMEM_BUFFER_SIZE
479CFLAGS+=-DEXMEM_BUFFER_SIZE=$(EXMEM_BUFFER_SIZE)
480endif
481
482ifdef OPT_CHDK_IN_EXMEM
483CFLAGS+=-DOPT_CHDK_IN_EXMEM
484endif
485
486ifdef OPT_WARNINGS
487     ifeq ($(GCC_VERSION_MAJOR),3)
488           CFLAGS+=-Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter
489           HOSTCFLAGS+=-Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter
490     endif
491     ifeq ($(GCC_VERSION_MAJOR),4)
492           CFLAGS+=-Wextra -fdiagnostics-show-option -Wno-missing-field-initializers -Wunused -Wno-unused-parameter
493           #HOSTCFLAGS+=-Wextra -fdiagnostics-show-option -Wno-missing-field-initializers -Wunused -Wno-unused-parameter
494     endif
495endif
496
497##########################################################################
498
499default: all
500
501ifndef SKIPBUILDRULES
502
503%.o: %.c
504        @echo $< \-\> $@
505        $(CC) $(CFLAGS) -nostdinc -c -o $@ $<
506%.o: %.S
507        @echo $< \-\> $@
508        $(CC) $(CFLAGS) -nostdinc -c -o $@ $<
509%.a:
510        @echo $^ \-\> $@
511        $(AR) rcs $@ $^
512
513.dep/%.d: %.c .dep
514        $(CC) $(CFLAGS) -M $< > $@.$$$$; \
515                sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
516        rm -f $@.$$$$
517
518.dep/%.d: %.S .dep
519        $(CC) $(CFLAGS) -M $< > $@.$$$$; \
520                sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
521                rm -f $@.$$$$
522
523endif
524
525all: all-recursive
526clean: clean-recursive
527distclean: distclean-recursive
528
529.dep:
530        mkdir .dep
531
532clean-recursive:
533        @for i in $(SUBDIRS); do \
534                echo \>\> Cleaning in $(FOLDER)$$i; \
535                $(MAKE) -C $$i FOLDER="$(FOLDER)$$i/" clean || exit 1; \
536        done
537
538distclean-recursive:
539        @for i in $(SUBDIRS); do \
540                echo \>\> Distcleaning in $(FOLDER)$$i; \
541                $(MAKE) -C $$i FOLDER="$(FOLDER)$$i/" distclean || exit 1; \
542        done
543
544all-recursive:
545        @for i in $(SUBDIRS); do \
546                echo \>\> Entering to $(FOLDER)$$i; \
547                $(MAKE) -C $$i FOLDER="$(FOLDER)$$i/" || exit 1; \
548                echo \<\< Leaving $(FOLDER)$$i; \
549        done
550
551depend-recursive:
552        @for i in $(SUBDIRS); do \
553                echo \>\> Entering to $(FOLDER)$$i; \
554                $(MAKE) -C $$i FOLDER="$(FOLDER)$$i/" depend || exit 1; \
555                echo \<\< Leaving $(FOLDER)$$i; \
556        done
557
558ifdef SILENT
559.SILENT:
560endif
Note: See TracBrowser for help on using the repository browser.