source: trunk/makefile.inc @ 686

Revision 686, 10.4 KB checked in by reyalp, 2 years ago (diff)

Aktualisierung auf Rev.1205-1206 offizieller Trunk

+ a490 100f beta, danke mrowl

Line 
1VER=CHDK-DE
2
3#PLATFORM=s3is
4#PLATFORMSUB=100a
5
6#PLATFORM=a620
7#PLATFORMSUB=100f
8
9PLATFORM=a610
10PLATFORMSUB=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=sx120is
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=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=ixus980_sd990
245#PLATFORMSUB=100e
246
247#PLATFORM=ixus980_sd990
248#PLATFORMSUB=101b
249
250#PLATFORM=a1100
251#PLATFORMSUB=100c
252
253#PLATFORM=a2000
254#PLATFORMSUB=100c
255
256#PLATFORM=ixus100_sd780
257#PLATFORMSUB=100c
258
259#PLATFORM=ixus120_sd940
260#PLATFORMSUB=100e
261
262#PLATFORM=ixus120_sd940
263#PLATFORMSUB=101a
264
265#PLATFORM=ixus120_sd940
266#PLATFORMSUB=102c
267
268#PLATFORM=ixus120_sd940
269#PLATFORMSUB=103b
270
271#PLATFORM=ixus120_sd940
272#PLATFORMSUB=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=d10
299#PLATFORMSUB=100a
300
301#PLATFORM=a430
302#PLATFORMSUB=100b
303
304#PLATFORM=ixus900_sd900
305#PLATFORMSUB=100c
306
307#PLATFORM=a495
308#PLATFORMSUB=100d
309
310#PLATFORM=a495
311#PLATFORMSUB=100e
312
313#PLATFORM=a495
314#PLATFORMSUB=100f
315
316#PLATFORM=sx30
317#PLATFORMSUB=100h
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=s95
332#PLATFORMSUB=100e
333
334#PLATFORM=s95
335#PLATFORMSUB=100h
336 
337#PLATFORM=s95
338#PLATFORMSUB=100i
339
340#PLATFORM=a580
341#PLATFORMSUB=101b
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
356-include $(topdir)revision.inc
357include $(topdir)platform/$(PLATFORM)/sub/$(PLATFORMSUB)/makefile.inc
358
359# Used in gui_debug.c for controlling memory browser allowed address ranges
360# override in platform/$(PLATFORM)/sub/$(PLATFORMSUB)/makefile.inc to set camera specific value
361ifdef MAXRAMADDR
362PLFLAGS+=-DMAXRAMADDR=$(MAXRAMADDR)
363else
364PLFLAGS+=-DMAXRAMADDR=0x2000000
365endif
366ifdef ROMBASEADDR
367PLFLAGS+=-DROMBASEADDR=$(ROMBASEADDR)
368else
369PLFLAGS+=-DROMBASEADDR=0xFFC00000
370endif
371
372ifdef OPT_FI2
373include $(topdir)/platform/fi2.inc
374endif
375
376SILENT=SILENT
377
378NOZERO100K=TRUE
379
380##########################################################################
381##########################################################################
382##########################################################################
383
384ESED = sed -r
385
386# keep sort order consistent
387export LC_ALL=C
388
389ifndef OSTYPE
390  HOSTPLATFORM:=$(patsubst MINGW%,MINGW,$(shell uname -s))
391  ifeq ($(HOSTPLATFORM),MINGW)
392    OSTYPE = Windows
393    EXE = .exe
394    SH = sh
395    DEVNULL = NUL
396        OLDSEPARATOR = \\\\
397        NEWSEPARATOR = /
398        SORT := $(dir $(shell which uniq.exe | sed 's_$(OLDSEPARATOR)_$(NEWSEPARATOR)_g'))/sort.exe
399  else
400    ifeq ($(HOSTPLATFORM),Linux)
401      OSTYPE = Linux
402      EXE =
403      SH =
404      DEVNULL = /dev/null
405      SORT = sort
406    else
407      ifeq ($(HOSTPLATFORM),Darwin)
408        OSTYPE = Darwin
409        EXE =
410        SH =
411        DEVNULL = /dev/null
412        SORT = sort
413        ESED = sed -E
414      else
415        OSTYPE = Other
416        EXE =
417        SH =
418        DEVNULL = /dev/null
419        SORT = sort
420      endif
421    endif
422  endif
423else
424  EXE =
425  SH =
426  DEVNULL = /dev/null
427  SORT = sort
428endif
429
430##########################################################################
431##########################################################################
432##########################################################################
433
434HOSTCC=gcc
435HOSTCFLAGS=-g -O2 -Wall
436HOSTAR=ar
437
438PAKWIF=$(topdir)tools/pakwif$(EXE)
439PAKFI2=$(topdir)tools/packfi2/fi2enc$(EXE)
440ENCODE_DISKBOOT=$(topdir)tools/dancingbits$(EXE)
441
442##########################################################################
443
444CC=arm-elf-gcc
445OBJCOPY=arm-elf-objcopy
446OBJDUMP=arm-elf-objdump
447STRIP=arm-elf-strip
448NM=arm-elf-nm
449AR=arm-elf-ar
450RANLIB=arm-elf-ranlib
451SIZE=arm-elf-size
452
453GCC_VERSION=$(shell $(CC) -dumpversion)
454GCC_VERSION_MAJOR=$(firstword $(subst ., ,$(GCC_VERSION)))
455
456# -msoft-float is used per default but object files are marked as hard-float
457CFLAGS=-fno-inline -Os -fno-strict-aliasing
458# flags for gcc v4
459# CFLAGS+=-mcpu=arm946e-s
460# for gcc v3, we use to allow use of strd etc
461ifeq ($(GCC_VERSION_MAJOR),3)
462    CFLAGS+=-march=armv5te
463else
464    ifeq ($(GCC_VERSION_MAJOR),4)
465        # TODO should be -mcpu, but breaks things ATM
466        CFLAGS+=-mtune=arm946e-s
467    endif
468endif
469
470
471CTHUMB=-mthumb
472CFLAGS+=-mthumb-interwork
473CFLAGS+=-I$(topdir)include -I$(topdir)platform/$(PLATFORM) $(PLFLAGS) $(CPPFLAGS)
474CFLAGS+=-DPLATFORM=\"$(PLATFORM)\" -DPLATFORMSUB=\"$(PLATFORMSUB)\" -DPLATFORMID=$(PLATFORMID) -DHDK_VERSION=\"$(VER)\" -DBUILD_NUMBER=\"$(BUILD_NUMBER)\" -DBUILD_SVNREV=\"$(BUILD_SVNREV)\" -DCAMERA_$(PLATFORM)=1
475CFLAGS+=-Wall -Wno-unused -Wno-format
476LDFLAGS=-L$(topdir)lib/math -L$(topdir)lib/font
477LDFLAGS+=-L$(topdir)lib/libc -L$(topdir)lib/ubasic
478LDFLAGS+=-L$(topdir)platform/$(PLATFORM) -L$(topdir)platform/$(PLATFORM)/sub/$(PLATFORMSUB)
479
480ifdef OPT_DEBUGGING
481CFLAGS+=-DOPT_DEBUGGING
482endif
483
484ifdef OPT_PTP
485CFLAGS+=-DOPT_PTP
486endif
487
488ifdef OPT_LUA
489CFLAGS+=-DOPT_LUA
490OPT_SCRIPTING=1
491endif
492
493ifdef OPT_UBASIC
494CFLAGS+=-DOPT_UBASIC
495OPT_SCRIPTING=1
496endif
497
498ifdef OPT_SCRIPTING
499CFLAGS+=-DOPT_SCRIPTING
500endif
501
502ifdef OPT_EXMEM_MALLOC
503CFLAGS+=-DOPT_EXMEM_MALLOC
504endif
505
506ifdef OPT_EXMEM_TESTING
507CFLAGS+=-DOPT_EXMEM_TESTING
508endif
509
510ifdef EXMEM_HEAP_SKIP
511CFLAGS+=-DEXMEM_HEAP_SKIP=$(EXMEM_HEAP_SKIP)
512endif
513
514ifdef EXMEM_BUFFER_SIZE
515CFLAGS+=-DEXMEM_BUFFER_SIZE=$(EXMEM_BUFFER_SIZE)
516endif
517
518ifdef OPT_CHDK_IN_EXMEM
519CFLAGS+=-DOPT_CHDK_IN_EXMEM
520endif
521
522ifdef OPT_WARNINGS
523     ifeq ($(GCC_VERSION_MAJOR),3)
524           CFLAGS+=-Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter
525           HOSTCFLAGS+=-Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter
526     endif
527     ifeq ($(GCC_VERSION_MAJOR),4)
528           CFLAGS+=-Wextra -fdiagnostics-show-option -Wno-missing-field-initializers -Wunused -Wno-unused-parameter
529           #HOSTCFLAGS+=-Wextra -fdiagnostics-show-option -Wno-missing-field-initializers -Wunused -Wno-unused-parameter
530     endif
531endif
532
533##########################################################################
534
535default: all
536
537ifndef SKIPBUILDRULES
538
539%.o: %.c
540        @echo $< \-\> $@
541        $(CC) $(CFLAGS) -nostdinc -c -o $@ $<
542%.o: %.S
543        @echo $< \-\> $@
544        $(CC) $(CFLAGS) -nostdinc -c -o $@ $<
545%.a:
546        @echo $^ \-\> $@
547        $(AR) rcs $@ $^
548
549.dep/%.d: %.c .dep
550        $(CC) $(CFLAGS) -M $< > $@.$$$$; \
551            sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
552            rm -f $@.$$$$
553
554.dep/%.d: %.S .dep
555        $(CC) $(CFLAGS) -M $< > $@.$$$$; \
556            sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
557            rm -f $@.$$$$
558
559endif
560
561all: all-recursive
562clean: clean-recursive
563distclean: distclean-recursive
564
565.dep:
566        mkdir .dep
567
568clean-recursive:
569        @for i in $(SUBDIRS); do \
570            echo \>\> Cleaning in $(FOLDER)$$i; \
571            $(MAKE) -C $$i FOLDER="$(FOLDER)$$i/" clean || exit 1; \
572        done
573
574distclean-recursive:
575        @for i in $(SUBDIRS); do \
576            echo \>\> Distcleaning in $(FOLDER)$$i; \
577            $(MAKE) -C $$i FOLDER="$(FOLDER)$$i/" distclean || exit 1; \
578        done
579
580all-recursive:
581        @for i in $(SUBDIRS); do \
582            echo \>\> Entering to $(FOLDER)$$i; \
583            $(MAKE) -C $$i FOLDER="$(FOLDER)$$i/" || exit 1; \
584            echo \<\< Leaving $(FOLDER)$$i; \
585        done
586
587depend-recursive:
588        @for i in $(SUBDIRS); do \
589            echo \>\> Entering to $(FOLDER)$$i; \
590            $(MAKE) -C $$i FOLDER="$(FOLDER)$$i/" depend || exit 1; \
591            echo \<\< Leaving $(FOLDER)$$i; \
592        done
593
594ifdef SILENT
595.SILENT:
596endif
Note: See TracBrowser for help on using the repository browser.