source: trunk/makefile.inc @ 1230

Revision 1230, 10.4 KB checked in by reyalp, 23 months ago (diff)

beta support for sx220h 100a and 101a from funnel in http://chdk.setepontos.com/index.php?topic=650.msg69869#msg69869

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