source: trunk/makefile.inc @ 1139

Revision 1134, 9.8 KB checked in by reyalP, 2 years ago (diff)

ixus120_sd940 103b support from waterwingz in http://chdk.setepontos.com/index.php?topic=650.msg64525#msg64525

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