source: trunk/makefile.inc @ 749

Revision 749, 7.5 KB checked in by phyrephox, 4 years ago (diff)

+ sx110 (port done by yarvieh & chdkj, see http://chdk.setepontos.com/index.php/topic,2838.0.html)

  • 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=ixus50_sd400
34#PLATFORMSUB=101a
35
36#PLATFORM=ixus50_sd400
37#PLATFORMSUB=101b
38
39#PLATFORM=ixus750_sd550
40#PLATFORMSUB=100f
41
42#PLATFORM=ixus750_sd550
43#PLATFORMSUB=100g
44
45#PLATFORM=a640
46#PLATFORMSUB=100b
47
48#PLATFORM=a700
49#PLATFORMSUB=100b
50
51#PLATFORM=a710
52#PLATFORMSUB=100a
53
54#PLATFORM=s2is
55#PLATFORMSUB=100e
56
57#PLATFORM=s2is
58#PLATFORMSUB=100f
59
60#PLATFORM=s2is
61#PLATFORMSUB=100g
62
63#PLATFORM=g7
64#PLATFORMSUB=100e
65
66#PLATFORM=g7
67#PLATFORMSUB=100g
68
69#PLATFORM=g7
70#PLATFORMSUB=100i
71
72#PLATFORM=g7
73#PLATFORMSUB=100j
74
75#PLATFORM=g9
76#PLATFORMSUB=100d
77
78#PLATFORM=g9
79#PLATFORMSUB=100g
80
81#PLATFORM=a530
82#PLATFORMSUB=100a
83
84#PLATFORM=a540
85#PLATFORMSUB=100b
86
87#PLATFORM=a560
88#PLATFORMSUB=100a
89
90#PLATFORM=a570
91#PLATFORMSUB=101a
92
93#PLATFORM=a570
94#PLATFORMSUB=100e
95
96#PLATFORM=a610
97#PLATFORMSUB=100f
98
99#PLATFORM=ixus700_sd500
100#PLATFORMSUB=101a
101
102#PLATFORM=ixus700_sd500
103#PLATFORMSUB=101b
104
105#PLATFORM=ixus800_sd700
106#PLATFORMSUB=100b
107
108#PLATFORM=ixus800_sd700
109#PLATFORMSUB=101b
110
111#PLATFORM=a720
112#PLATFORMSUB=100c
113
114#PLATFORM=ixus850_sd800
115#PLATFORMSUB=100e
116
117#PLATFORM=ixus860_sd870
118#PLATFORMSUB=100c
119
120#PLATFORM=ixus80_sd1100
121#PLATFORMSUB=100c
122
123#PLATFORM=ixus80_sd1100
124#PLATFORMSUB=101a
125
126#PLATFORM=ixus950_sd850
127#PLATFORMSUB=100c
128
129#PLATFORM=ixus55_sd450
130#PLATFORMSUB=100b
131
132#PLATFORM=ixus55_sd450
133#PLATFORMSUB=100c
134
135#PLATFORM=ixus55_sd450
136#PLATFORMSUB=100d
137
138#PLATFORM=ixus60_sd600
139#PLATFORMSUB=100a
140
141#PLATFORM=ixus60_sd600
142#PLATFORMSUB=100d
143
144#PLATFORM=ixus70_sd1000
145#PLATFORMSUB=100c
146
147#PLATFORM=ixus70_sd1000
148#PLATFORMSUB=101b
149
150#PLATFORM=ixus70_sd1000
151#PLATFORMSUB=102a
152
153#PLATFORM=a650
154#PLATFORMSUB=100d
155
156#PLATFORM=a450
157#PLATFORMSUB=100d
158
159#PLATFORM=a460
160#PLATFORMSUB=100d
161
162#PLATFORM=a550
163#PLATFORMSUB=100c
164
165#PLATFORM=a590
166#PLATFORMSUB=100e
167
168#PLATFORM=a590
169#PLATFORMSUB=101b
170
171#PLATFORM=a630
172#PLATFORMSUB=100c
173
174#PLATFORM=s5is
175#PLATFORMSUB=101a
176
177#PLATFORM=s5is
178#PLATFORMSUB=101b
179
180#PLATFORM=ixus65_sd630
181#PLATFORMSUB=100a
182
183#PLATFORM=tx1
184#PLATFORMSUB=100g
185
186#PLATFORM=tx1
187#PLATFORMSUB=101b
188
189#PLATFORM=ixus960_sd950
190#PLATFORMSUB=100d
191
192#PLATFORM=ixus970_sd890
193#PLATFORMSUB=100b
194
195#PLATFORM=ixus970_sd890
196#PLATFORMSUB=100c
197
198#PLATFORM=ixus75_sd750
199#PLATFORMSUB=100b
200
201#PLATFORM=ixus75_sd750
202#PLATFORMSUB=101a
203
204#PLATFORM=ixus75_sd750
205#PLATFORMSUB=102a
206
207#PLATFORM=ixusizoom_sd30
208#PLATFORMSUB=100g
209
210#PLATFORM=a470
211#PLATFORMSUB=102c
212
213#PLATFORM=a470
214#PLATFORMSUB=101b
215
216#PLATFORM=ixus980_sd990
217#PLATFORMSUB=100e
218
219MEMISOSIZE="(&_end-&_start)"
220# override this on the command line or in buildconf to use PRIMARY.BIN from a different tree
221# should be an absolute path
222PRIMARY_ROOT=$(topdir)platform
223include $(topdir)buildconf.inc
224include $(topdir)version.inc
225include $(topdir)platform/$(PLATFORM)/sub/$(PLATFORMSUB)/makefile.inc
226
227SILENT=SILENT
228
229NOZERO100K=TRUE
230
231##########################################################################
232##########################################################################
233##########################################################################
234
235ESED = sed -r
236
237# keep sort order consistent
238export LC_ALL=C
239
240ifndef OSTYPE
241  HOSTPLATFORM:=$(patsubst MINGW%,MINGW,$(shell uname -s))
242  ifeq ($(HOSTPLATFORM),MINGW)
243    OSTYPE = Windows
244    EXE = .exe
245    SH = sh
246    DEVNULL = NUL
247    SORT := $(dir $(shell which uniq.exe | sed s/\\\\/\\\//g))/sort.exe
248  else
249    ifeq ($(HOSTPLATFORM),Linux)
250      OSTYPE = Linux
251      EXE =
252      SH =
253      DEVNULL = /dev/null
254      SORT = sort
255    else
256      ifeq ($(HOSTPLATFORM),Darwin)
257        OSTYPE = Darwin
258        EXE =
259        SH =
260        DEVNULL = /dev/null
261        SORT = sort
262        ESED = sed -E
263      else
264        OSTYPE = Other
265        EXE =
266        SH =
267        DEVNULL = /dev/null
268        SORT = sort
269      endif
270    endif
271  endif
272else
273  EXE =
274  SH =
275  DEVNULL = /dev/null
276  SORT = sort
277endif
278
279##########################################################################
280##########################################################################
281##########################################################################
282
283HOSTCC=gcc
284HOSTCFLAGS=-g -O2 -Wall
285HOSTAR=ar
286
287PAKWIF=$(topdir)tools/pakwif$(EXE)
288PAKFI2=$(topdir)tools/packfi2/fi2enc$(EXE)
289ENCODE_DISKBOOT=$(topdir)tools/dancingbits$(EXE)
290
291##########################################################################
292
293CC=arm-elf-gcc
294OBJCOPY=arm-elf-objcopy
295OBJDUMP=arm-elf-objdump
296STRIP=arm-elf-strip
297NM=arm-elf-nm
298AR=arm-elf-ar
299RANLIB=arm-elf-ranlib
300SIZE=arm-elf-size
301
302GCC_VERSION=$(shell $(CC) -dumpversion)
303GCC_VERSION_MAJOR=$(firstword $(subst ., ,$(GCC_VERSION)))
304
305# -msoft-float is used per default but object files are marked as hard-float
306CFLAGS=-fno-inline -Os -fno-strict-aliasing
307# flags for gcc v4
308# CFLAGS+=-mcpu=arm946e-s
309# for gcc v3, we use to allow use of strd etc
310ifeq ($(GCC_VERSION_MAJOR),3)
311    CFLAGS+=-march=armv5te
312else
313    ifeq ($(GCC_VERSION_MAJOR),4)
314        # TODO should be -mcpu, but breaks things ATM
315        CFLAGS+=-mtune=arm946e-s
316    endif
317endif
318
319
320CTHUMB=-mthumb
321CFLAGS+=-mthumb-interwork
322CFLAGS+=-I$(topdir)include $(PLFLAGS) $(CPPFLAGS)
323CFLAGS+=-DPLATFORM=\"$(PLATFORM)\" -DPLATFORMSUB=\"$(PLATFORMSUB)\" -DPLATFORMID=$(PLATFORMID) -DHDK_VERSION=\"$(VER)\" -DBUILD_NUMBER=\"$(BUILD_NUMBER)\" -DCAMERA_$(PLATFORM)=1
324CFLAGS+=-Wall -Wno-unused -Wno-format
325LDFLAGS=-L$(topdir)lib/math -L$(topdir)lib/font
326LDFLAGS+=-L$(topdir)lib/libc -L$(topdir)lib/ubasic
327LDFLAGS+=-L$(topdir)platform/$(PLATFORM) -L$(topdir)platform/$(PLATFORM)/sub/$(PLATFORMSUB)
328
329ifdef OPT_DEBUGGING
330CFLAGS+=-DOPT_DEBUGGING
331endif
332
333ifdef OPT_WARNINGS
334     ifeq ($(GCC_VERSION_MAJOR),3)
335           CFLAGS+=-Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter
336           HOSTCFLAGS+=-Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter
337     endif
338     ifeq ($(GCC_VERSION_MAJOR),4)
339           CFLAGS+=-Wextra -fdiagnostics-show-option -Wno-missing-field-initializers -Wunused -Wno-unused-parameter
340           #HOSTCFLAGS+=-Wextra -fdiagnostics-show-option -Wno-missing-field-initializers -Wunused -Wno-unused-parameter
341     endif
342endif
343
344##########################################################################
345
346default: all
347
348ifndef SKIPBUILDRULES
349
350%.o: %.c
351        @echo $< \-\> $@
352        $(CC) $(CFLAGS) -nostdinc -c -o $@ $<
353%.o: %.S
354        @echo $< \-\> $@
355        $(CC) $(CFLAGS) -nostdinc -c -o $@ $<
356%.a:
357        @echo $^ \-\> $@
358        $(AR) rcs $@ $^
359
360.dep/%.d: %.c .dep
361        $(CC) $(CFLAGS) -M $< > $@.$$$$; \
362            sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
363            rm -f $@.$$$$
364
365.dep/%.d: %.S .dep
366        $(CC) $(CFLAGS) -M $< > $@.$$$$; \
367            sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
368            rm -f $@.$$$$
369
370endif
371
372all: all-recursive
373clean: clean-recursive
374distclean: distclean-recursive
375
376.dep:
377        mkdir .dep
378
379clean-recursive:
380        @for i in $(SUBDIRS); do \
381            echo \>\> Cleaning in $(FOLDER)$$i; \
382            $(MAKE) -C $$i FOLDER="$(FOLDER)$$i/" clean || exit 1; \
383        done
384
385distclean-recursive:
386        @for i in $(SUBDIRS); do \
387            echo \>\> Distcleaning in $(FOLDER)$$i; \
388            $(MAKE) -C $$i FOLDER="$(FOLDER)$$i/" distclean || exit 1; \
389        done
390
391all-recursive:
392        @for i in $(SUBDIRS); do \
393            echo \>\> Entering to $(FOLDER)$$i; \
394            $(MAKE) -C $$i FOLDER="$(FOLDER)$$i/" || exit 1; \
395            echo \<\< Leaving $(FOLDER)$$i; \
396        done
397
398depend-recursive:
399        @for i in $(SUBDIRS); do \
400            echo \>\> Entering to $(FOLDER)$$i; \
401            $(MAKE) -C $$i FOLDER="$(FOLDER)$$i/" depend || exit 1; \
402            echo \<\< Leaving $(FOLDER)$$i; \
403        done
404
405ifdef SILENT
406.SILENT:
407endif
Note: See TracBrowser for help on using the repository browser.