source: branches/philmoz/makefile.inc @ 1356

Revision 1356, 11.0 KB checked in by philmoz, 20 months ago (diff)

Merged most recent changes from main trunk to this branch (up to changeset 1355).

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