source: trunk/makefile.inc @ 1305

Revision 1305, 10.7 KB checked in by msl, 22 months ago (diff)

support for SX220 1.01b

+ added SX220 1.01b
+ removed not needed line in sx220/shooting.c (ISO table)

  • 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=a590
191#PLATFORMSUB=100e
192
193#PLATFORM=a590
194#PLATFORMSUB=101b
195
196#PLATFORM=a630
197#PLATFORMSUB=100c
198
199#PLATFORM=s5is
200#PLATFORMSUB=101a
201
202#PLATFORM=s5is
203#PLATFORMSUB=101b
204
205#PLATFORM=ixus65_sd630
206#PLATFORMSUB=100a
207
208#PLATFORM=tx1
209#PLATFORMSUB=100g
210
211#PLATFORM=tx1
212#PLATFORMSUB=101b
213
214#PLATFORM=ixus900_sd900
215#PLATFORMSUB=100c
216
217#PLATFORM=ixus960_sd950
218#PLATFORMSUB=100d
219
220#PLATFORM=ixus970_sd890
221#PLATFORMSUB=100b
222
223#PLATFORM=ixus970_sd890
224#PLATFORMSUB=100c
225
226#PLATFORM=ixus970_sd890
227#PLATFORMSUB=100f
228
229#PLATFORM=ixus75_sd750
230#PLATFORMSUB=100b
231
232#PLATFORM=ixus75_sd750
233#PLATFORMSUB=101a
234
235#PLATFORM=ixus75_sd750
236#PLATFORMSUB=102a
237
238#PLATFORM=ixusizoom_sd30
239#PLATFORMSUB=100g
240
241#PLATFORM=a470
242#PLATFORMSUB=102c
243
244#PLATFORM=a470
245#PLATFORMSUB=101b
246
247#PLATFORM=a490
248#PLATFORMSUB=100f
249
250#PLATFORM=a495
251#PLATFORMSUB=100d
252
253#PLATFORM=a495
254#PLATFORMSUB=100e
255
256#PLATFORM=a495
257#PLATFORMSUB=100f
258
259#PLATFORM=ixus980_sd990
260#PLATFORMSUB=100e
261
262#PLATFORM=ixus980_sd990
263#PLATFORMSUB=101b
264
265#PLATFORM=a1100
266#PLATFORMSUB=100c
267
268#PLATFORM=a2000
269#PLATFORMSUB=100c
270
271#PLATFORM=ixus100_sd780
272#PLATFORMSUB=100b
273
274#PLATFORM=ixus100_sd780
275#PLATFORMSUB=100c
276
277PLATFORM=ixus120_sd940
278PLATFORMSUB=100e
279
280PLATFORM=ixus120_sd940
281PLATFORMSUB=101a
282
283PLATFORM=ixus120_sd940
284PLATFORMSUB=102c
285
286PLATFORM=ixus120_sd940
287PLATFORMSUB=103b
288
289PLATFORM=ixus120_sd940
290PLATFORMSUB=103c
291
292#PLATFORM=ixus200_sd980
293#PLATFORMSUB=101c
294
295#PLATFORM=ixus200_sd980
296#PLATFORMSUB=101d
297
298#PLATFORM=ixus90_sd790
299#PLATFORMSUB=100c
300
301#PLATFORM=ixus90_sd790
302#PLATFORMSUB=100d
303
304#PLATFORM=g11
305#PLATFORMSUB=100f
306
307#PLATFORM=g11
308#PLATFORMSUB=100j
309
310#PLATFORM=g11
311#PLATFORMSUB=100l
312
313#PLATFORM=sx20
314#PLATFORMSUB=102b
315
316#PLATFORM=ixus85_sd770
317#PLATFORMSUB=100a
318
319#PLATFORM=ixus95_sd1200
320#PLATFORMSUB=100c
321
322#PLATFORM=sx30
323#PLATFORMSUB=100e
324
325#PLATFORM=sx30
326#PLATFORMSUB=100h
327
328#PLATFORM=sx30
329#PLATFORMSUB=100l
330
331#PLATFORM=sx30
332#PLATFORMSUB=100n
333
334#PLATFORM=sx30
335#PLATFORMSUB=100p
336
337#PLATFORM=g12
338#PLATFORMSUB=100c
339
340#PLATFORM=g12
341#PLATFORMSUB=100e
342
343#PLATFORM=g12
344#PLATFORMSUB=100f
345
346#PLATFORM=a430
347#PLATFORMSUB=100b
348
349#PLATFORM=d10
350#PLATFORMSUB=100a
351
352#PLATFORM=s95
353#PLATFORMSUB=100e
354
355#PLATFORM=s95
356#PLATFORMSUB=100h
357
358#PLATFORM=s95
359#PLATFORMSUB=100i
360
361#PLATFORM=s95
362#PLATFORMSUB=100k
363
364#PLATFORM=ixus300_sd4000
365#PLATFORMSUB=100d
366
367#PLATFORM=sx220hs
368#PLATFORMSUB=100a
369
370#PLATFORM=sx220hs
371#PLATFORMSUB=101a
372
373#PLATFORM=sx220hs
374#PLATFORMSUB=101b
375
376MEMISOSIZE="(&_end-&_start)"
377# override this on the command line or in buildconf to use PRIMARY.BIN from a different tree
378# should be an absolute path
379PRIMARY_ROOT=$(topdir)platform
380include $(topdir)buildconf.inc
381# optional local version of buildconf.inc, not in SVN so it can be used in autobuilds
382# and to avoid getting accidentally included in svn diffs
383# you may also set your default camera here
384-include $(topdir)localbuildconf.inc
385include $(topdir)version.inc
386include $(topdir)platform/$(PLATFORM)/sub/$(PLATFORMSUB)/makefile.inc
387
388# Used in gui_debug.c for controlling memory browser allowed address ranges
389# override in platform/$(PLATFORM)/sub/$(PLATFORMSUB)/makefile.inc to set camera specific value
390ifdef MAXRAMADDR
391PLFLAGS+=-DMAXRAMADDR=$(MAXRAMADDR)
392else
393PLFLAGS+=-DMAXRAMADDR=0x2000000
394endif
395ifdef ROMBASEADDR
396PLFLAGS+=-DROMBASEADDR=$(ROMBASEADDR)
397else
398PLFLAGS+=-DROMBASEADDR=0xFFC00000
399endif
400
401ifdef OPT_FI2
402include $(topdir)/platform/fi2.inc
403endif
404
405SILENT=SILENT
406
407NOZERO100K=TRUE
408
409##########################################################################
410##########################################################################
411##########################################################################
412
413ESED = sed -r
414
415# keep sort order consistent
416export LC_ALL=C
417
418ifndef OSTYPE
419  HOSTPLATFORM:=$(patsubst MINGW%,MINGW,$(shell uname -s))
420  ifeq ($(HOSTPLATFORM),MINGW)
421        OSTYPE = Windows
422        EXE = .exe
423        SH = sh
424        DEVNULL = NUL
425        OLDSEPARATOR = \\\\
426        NEWSEPARATOR = /
427        SORT := $(dir $(shell which uniq.exe | sed 's_$(OLDSEPARATOR)_$(NEWSEPARATOR)_g'))/sort.exe
428  else
429    ifeq ($(HOSTPLATFORM),Linux)
430      OSTYPE = Linux
431      EXE =
432      SH =
433      DEVNULL = /dev/null
434      SORT = sort
435    else
436      ifeq ($(HOSTPLATFORM),Darwin)
437        OSTYPE = Darwin
438        EXE =
439        SH =
440        DEVNULL = /dev/null
441        SORT = sort
442        ESED = sed -E
443      else
444        OSTYPE = Other
445        EXE =
446        SH =
447        DEVNULL = /dev/null
448        SORT = sort
449      endif
450    endif
451  endif
452else
453  EXE =
454  SH =
455  DEVNULL = /dev/null
456  SORT = sort
457endif
458
459##########################################################################
460##########################################################################
461##########################################################################
462
463HOSTCC=gcc
464HOSTCFLAGS=-g -O2 -Wall
465HOSTAR=ar
466
467PAKWIF=$(topdir)tools/pakwif$(EXE)
468PAKFI2=$(topdir)tools/packfi2/fi2enc$(EXE)
469ENCODE_DISKBOOT=$(topdir)tools/dancingbits$(EXE)
470
471##########################################################################
472
473CC=arm-elf-gcc
474OBJCOPY=arm-elf-objcopy
475OBJDUMP=arm-elf-objdump
476STRIP=arm-elf-strip
477NM=arm-elf-nm
478AR=arm-elf-ar
479RANLIB=arm-elf-ranlib
480SIZE=arm-elf-size
481
482GCC_VERSION=$(shell $(CC) -dumpversion)
483GCC_VERSION_MAJOR=$(firstword $(subst ., ,$(GCC_VERSION)))
484
485# -msoft-float is used per default but object files are marked as hard-float
486CFLAGS=-fno-inline -Os -fno-strict-aliasing
487# flags for gcc v4
488# CFLAGS+=-mcpu=arm946e-s
489# for gcc v3, we use to allow use of strd etc
490ifeq ($(GCC_VERSION_MAJOR),3)
491    CFLAGS+=-march=armv5te
492else
493    ifeq ($(GCC_VERSION_MAJOR),4)
494        # TODO should be -mcpu, but breaks things ATM
495        CFLAGS+=-mtune=arm946e-s
496    endif
497endif
498
499
500CTHUMB=-mthumb
501CFLAGS+=-mthumb-interwork
502CFLAGS+=-I$(topdir)include -I$(topdir)platform/$(PLATFORM) $(PLFLAGS) $(CPPFLAGS)
503CFLAGS+=-DPLATFORM=\"$(PLATFORM)\" -DPLATFORMSUB=\"$(PLATFORMSUB)\" -DPLATFORMID=$(PLATFORMID) -DHDK_VERSION=\"$(VER)\" -DBUILD_NUMBER=\"$(BUILD_NUMBER)\" -DCAMERA_$(PLATFORM)=1
504CFLAGS+=-Wall -Wno-unused -Wno-format
505LDFLAGS=-L$(topdir)lib/math -L$(topdir)lib/font
506LDFLAGS+=-L$(topdir)lib/libc -L$(topdir)lib/ubasic
507LDFLAGS+=-L$(topdir)platform/$(PLATFORM) -L$(topdir)platform/$(PLATFORM)/sub/$(PLATFORMSUB)
508
509ifdef OPT_DEBUGGING
510CFLAGS+=-DOPT_DEBUGGING
511endif
512
513ifdef OPT_PTP
514CFLAGS+=-DOPT_PTP
515endif
516
517ifdef OPT_LUA
518CFLAGS+=-DOPT_LUA
519OPT_SCRIPTING=1
520endif
521
522ifdef OPT_UBASIC
523CFLAGS+=-DOPT_UBASIC
524OPT_SCRIPTING=1
525endif
526
527ifdef OPT_SCRIPTING
528CFLAGS+=-DOPT_SCRIPTING
529endif
530
531ifdef OPT_EXMEM_MALLOC
532CFLAGS+=-DOPT_EXMEM_MALLOC
533endif
534
535ifdef OPT_EXMEM_TESTING
536CFLAGS+=-DOPT_EXMEM_TESTING
537endif
538
539ifdef EXMEM_HEAP_SKIP
540CFLAGS+=-DEXMEM_HEAP_SKIP=$(EXMEM_HEAP_SKIP)
541endif
542
543ifdef EXMEM_BUFFER_SIZE
544CFLAGS+=-DEXMEM_BUFFER_SIZE=$(EXMEM_BUFFER_SIZE)
545endif
546
547ifdef OPT_CHDK_IN_EXMEM
548CFLAGS+=-DOPT_CHDK_IN_EXMEM
549endif
550
551ifdef OPT_WARNINGS
552     ifeq ($(GCC_VERSION_MAJOR),3)
553           CFLAGS+=-Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter
554           HOSTCFLAGS+=-Wwrite-strings -Wsign-compare -Wunused -Wno-unused-parameter
555     endif
556     ifeq ($(GCC_VERSION_MAJOR),4)
557           CFLAGS+=-Wextra -fdiagnostics-show-option -Wno-missing-field-initializers -Wunused -Wno-unused-parameter
558           #HOSTCFLAGS+=-Wextra -fdiagnostics-show-option -Wno-missing-field-initializers -Wunused -Wno-unused-parameter
559     endif
560endif
561
562##########################################################################
563
564default: all
565
566ifndef SKIPBUILDRULES
567
568%.o: %.c
569        @echo $< \-\> $@
570        $(CC) $(CFLAGS) -nostdinc -c -o $@ $<
571%.o: %.S
572        @echo $< \-\> $@
573        $(CC) $(CFLAGS) -nostdinc -c -o $@ $<
574%.a:
575        @echo $^ \-\> $@
576        $(AR) rcs $@ $^
577
578.dep/%.d: %.c .dep
579        $(CC) $(CFLAGS) -M $< > $@.$$$$; \
580                sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
581        rm -f $@.$$$$
582
583.dep/%.d: %.S .dep
584        $(CC) $(CFLAGS) -M $< > $@.$$$$; \
585                sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
586                rm -f $@.$$$$
587
588endif
589
590all: all-recursive
591clean: clean-recursive
592distclean: distclean-recursive
593
594.dep:
595        mkdir .dep
596
597clean-recursive:
598        @for i in $(SUBDIRS); do \
599                echo \>\> Cleaning in $(FOLDER)$$i; \
600                $(MAKE) -C $$i FOLDER="$(FOLDER)$$i/" clean || exit 1; \
601        done
602
603distclean-recursive:
604        @for i in $(SUBDIRS); do \
605                echo \>\> Distcleaning in $(FOLDER)$$i; \
606                $(MAKE) -C $$i FOLDER="$(FOLDER)$$i/" distclean || exit 1; \
607        done
608
609all-recursive:
610        @for i in $(SUBDIRS); do \
611                echo \>\> Entering to $(FOLDER)$$i; \
612                $(MAKE) -C $$i FOLDER="$(FOLDER)$$i/" || exit 1; \
613                echo \<\< Leaving $(FOLDER)$$i; \
614        done
615
616depend-recursive:
617        @for i in $(SUBDIRS); do \
618                echo \>\> Entering to $(FOLDER)$$i; \
619                $(MAKE) -C $$i FOLDER="$(FOLDER)$$i/" depend || exit 1; \
620                echo \<\< Leaving $(FOLDER)$$i; \
621        done
622
623ifdef SILENT
624.SILENT:
625endif
Note: See TracBrowser for help on using the repository browser.