source: trunk/makefile.inc @ 754

Revision 754, 7.6 KB checked in by reyalp, 4 years ago (diff)

mantis 255: add beta ixus870/sd880 port from mweerden
also proper fix for mantis 251

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