source: trunk/makefile.inc @ 1212

Revision 1212, 10.3 KB checked in by reyalp, 23 months ago (diff)

beta ixus200_sd980 101c support from waterwingz in http://chdk.setepontos.com/index.php?topic=650.msg69319#msg69319

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