diff options
author | Björn Stenberg <bjorn@haxx.se> | 2008-11-20 11:27:31 +0000 |
---|---|---|
committer | Björn Stenberg <bjorn@haxx.se> | 2008-11-20 11:27:31 +0000 |
commit | c6b3d38a156dd624760a8eb1bb374affd43b4f2a (patch) | |
tree | 493eba929e2396d86cf4f077709aa09fe172cd35 /apps/codecs/Makefile | |
parent | f66c30346783a400a029bedcd60ab67c81c34a07 (diff) | |
download | rockbox-c6b3d38a156dd624760a8eb1bb374affd43b4f2a.tar.gz rockbox-c6b3d38a156dd624760a8eb1bb374affd43b4f2a.zip |
New makefile solution: A single invocation of 'make' to build the entire tree. Fully controlled dependencies give faster and more correct recompiles.
Many #include lines adjusted to conform to the new standards.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19146 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/Makefile')
-rw-r--r-- | apps/codecs/Makefile | 256 |
1 files changed, 0 insertions, 256 deletions
diff --git a/apps/codecs/Makefile b/apps/codecs/Makefile deleted file mode 100644 index 6d3f1f683a..0000000000 --- a/apps/codecs/Makefile +++ /dev/null | |||
@@ -1,256 +0,0 @@ | |||
1 | # __________ __ ___. | ||
2 | # Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
3 | # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
4 | # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
5 | # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
6 | # \/ \/ \/ \/ \/ | ||
7 | # $Id$ | ||
8 | # | ||
9 | |||
10 | INCLUDES = -I$(FIRMDIR)/include -I$(FIRMDIR)/export -I$(FIRMDIR)/common \ | ||
11 | -I$(FIRMDIR)/drivers -I$(APPSDIR) -Ilib -I$(BUILDDIR) | ||
12 | CFLAGS = $(INCLUDES) $(GCCOPTS) $(TARGET_INC) $(TARGET) $(EXTRA_DEFINES) \ | ||
13 | -DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DCODEC | ||
14 | |||
15 | ifdef APPEXTRA | ||
16 | INCLUDES += $(patsubst %,-I$(APPSDIR)/%,$(subst :, ,$(APPEXTRA))) | ||
17 | endif | ||
18 | |||
19 | ifdef SOFTWARECODECS | ||
20 | CODECLIBS = -lspc -lmad -la52 -lffmpegFLAC -ltremor -lwavpack -lmusepack -lalac -lfaad -lm4a -lspeex -ldemac -lwma -lasap | ||
21 | OUTPUT = libspc libmad liba52 libffmpegFLAC libwma libtremor libwavpack libmusepack libalac libfaad libm4a libspeex libdemac libasap | ||
22 | endif | ||
23 | |||
24 | # we "borrow" the plugin LDS file | ||
25 | LDS := $(APPSDIR)/plugins/plugin.lds | ||
26 | |||
27 | LINKCODEC := $(OBJDIR)/codeclink.lds | ||
28 | DEPFILE = $(OBJDIR)/dep-codecs | ||
29 | |||
30 | # This sets up 'SRC' based on the files mentioned in SOURCES | ||
31 | include $(TOOLSDIR)/makesrc.inc | ||
32 | |||
33 | ROCKS := $(SRC:%.c=$(OBJDIR)/%.codec) | ||
34 | SOURCES = $(SRC) | ||
35 | ELFS := $(SRC:%.c=$(OBJDIR)/%.elf) | ||
36 | OBJS := $(SRC:%.c=$(OBJDIR)/%.o) | ||
37 | # as created by the cross-compiler for win32: | ||
38 | DEFS := $(SRC:%.c=$(OBJDIR)/%.def) | ||
39 | DIRS = . | ||
40 | |||
41 | CODECLIB := $(BUILDDIR)/libcodec.a | ||
42 | CODECDEPS = $(LINKCODEC) $(CODECLIB) | ||
43 | |||
44 | .PHONY: libspc libmad liba52 libffmpegFLAC libtremor libspeex libwavpack libmusepack libalac libfaad libm4a libdemac libwma libasap | ||
45 | |||
46 | all: $(LINKCODEC) $(ROCKS) | ||
47 | |||
48 | ifndef SIMVER | ||
49 | $(BUILDDIR)/%.a : % $(CODECDEPS) | ||
50 | |||
51 | # special dependencies | ||
52 | $(OBJDIR)/spc.elf : $(BUILDDIR)/libspc.a | ||
53 | $(OBJDIR)/mpa.elf : $(BUILDDIR)/libmad.a | ||
54 | $(OBJDIR)/a52.elf : $(BUILDDIR)/liba52.a | ||
55 | $(OBJDIR)/flac.elf : $(BUILDDIR)/libffmpegFLAC.a | ||
56 | $(OBJDIR)/vorbis.elf : $(BUILDDIR)/libtremor.a | ||
57 | $(OBJDIR)/speex.elf : $(BUILDDIR)/libspeex.a | ||
58 | $(OBJDIR)/mpc.elf : $(BUILDDIR)/libmusepack.a | ||
59 | $(OBJDIR)/wavpack.elf : $(BUILDDIR)/libwavpack.a | ||
60 | $(OBJDIR)/alac.elf : $(BUILDDIR)/libalac.a $(BUILDDIR)/libm4a.a | ||
61 | $(OBJDIR)/aac.elf : $(BUILDDIR)/libfaad.a $(BUILDDIR)/libm4a.a | ||
62 | $(OBJDIR)/shorten.elf : $(BUILDDIR)/libffmpegFLAC.a | ||
63 | $(OBJDIR)/ape.elf : $(BUILDDIR)/libdemac.a | ||
64 | $(OBJDIR)/wma.elf : $(BUILDDIR)/libwma.a | ||
65 | $(OBJDIR)/wavpack_enc.elf: $(BUILDDIR)/libwavpack.a | ||
66 | $(OBJDIR)/asap.elf : $(BUILDDIR)/libasap.a | ||
67 | |||
68 | # standard dependencies | ||
69 | $(OBJDIR)/%.elf: $(OBJDIR)/%.o $(OBJDIR)/codec_crt0.o $(CODECLIB) | ||
70 | $(call PRINTS,LD $(@F))$(CC) $(CFLAGS) -o $@ $^ \ | ||
71 | -L$(BUILDDIR) -lcodec -lgcc -T$(LINKCODEC) \ | ||
72 | -Wl,--gc-sections,-Map,$(OBJDIR)/$*.map | ||
73 | |||
74 | $(OBJDIR)/%.codec : $(OBJDIR)/%.elf | ||
75 | $(call PRINTS,OBJCOPY $(@F))$(OC) -O binary $< $@ | ||
76 | else | ||
77 | |||
78 | ifeq ($(SIMVER), x11) | ||
79 | ################################################### | ||
80 | # This is the X11 simulator version | ||
81 | |||
82 | $(OBJDIR)/%.codec : $(OBJDIR)/%.o $(OBJDIR)/codec_crt0.o $(BUILDDIR)/libcodec.a $(OUTPUT) | ||
83 | $(call PRINTS,LD $(@F))$(CC) $(CFLAGS) $(SHARED_FLAG) $< $(OBJDIR)/codec_crt0.o -L$(BUILDDIR) $(CODECLIBS) -lcodec -o $@ | ||
84 | ifeq ($(findstring CYGWIN,$(UNAME)),CYGWIN) | ||
85 | # 'x' must be kept or you'll have "Win32 error 5" | ||
86 | # $ fgrep 5 /usr/include/w32api/winerror.h | head -1 | ||
87 | # #define ERROR_ACCESS_DENIED 5L | ||
88 | else | ||
89 | $(SILENT)chmod -x $@ | ||
90 | endif | ||
91 | |||
92 | else # end of x11-simulator | ||
93 | ifeq ($(SIMVER), sdl) | ||
94 | ################################################### | ||
95 | # This is the SDL simulator version | ||
96 | |||
97 | $(OBJDIR)/%.codec : $(OBJDIR)/%.o $(OBJDIR)/codec_crt0.o $(BUILDDIR)/libcodec.a $(OUTPUT) | ||
98 | $(call PRINTS,LD $(@F))$(CC) $(CFLAGS) $(SHARED_FLAG) $< $(OBJDIR)/codec_crt0.o -L$(BUILDDIR) $(CODECLIBS) -lcodec -o $@ | ||
99 | ifeq ($(findstring CYGWIN,$(UNAME)),CYGWIN) | ||
100 | # 'x' must be kept or you'll have "Win32 error 5" | ||
101 | # $ fgrep 5 /usr/include/w32api/winerror.h | head -1 | ||
102 | # #define ERROR_ACCESS_DENIED 5L | ||
103 | else | ||
104 | $(SILENT)chmod -x $@ | ||
105 | endif | ||
106 | |||
107 | else # end of sdl-simulator | ||
108 | ################################################### | ||
109 | # This is the win32 simulator version | ||
110 | DLLTOOLFLAGS = --export-all | ||
111 | DLLWRAPFLAGS = -s --entry _DllMain@12 --target=i386-mingw32 -mno-cygwin | ||
112 | |||
113 | $(OBJDIR)/%.codec : $(OBJDIR)/%.o $(OBJDIR)/codec_crt0.o $(BUILDDIR)/libcodec.a $(OUTPUT) | ||
114 | $(call PRINTS,DLL $(@F))$(DLLTOOL) $(DLLTOOLFLAGS) -z $(OBJDIR)/$*.def $< $(OBJDIR)/codec_crt0.o | ||
115 | $(SILENT)$(DLLWRAP) $(DLLWRAPFLAGS) --def $(OBJDIR)/$*.def $< $(OBJDIR)/codec_crt0.o\ | ||
116 | $(BUILDDIR)/libcodec.a $(patsubst -l%,$(BUILDDIR)/lib%.a,$(CODECLIBS)) \ | ||
117 | -o $@ | ||
118 | ifeq ($(findstring CYGWIN,$(UNAME)),CYGWIN) | ||
119 | # 'x' must be kept or you'll have "Win32 error 5" | ||
120 | # $ fgrep 5 /usr/include/w32api/winerror.h | head -1 | ||
121 | # #define ERROR_ACCESS_DENIED 5L | ||
122 | else | ||
123 | $(SILENT)chmod -x $@ | ||
124 | endif | ||
125 | endif # end of win32-simulator | ||
126 | endif | ||
127 | |||
128 | endif # end of simulator section | ||
129 | |||
130 | include $(TOOLSDIR)/make.inc | ||
131 | |||
132 | $(BUILDDIR)/libcodec.a: | ||
133 | $(SILENT)mkdir -p $(OBJDIR)/lib | ||
134 | $(call PRINTS,MAKE in codecs/lib)$(MAKE) -C lib OBJDIR=$(OBJDIR)/lib | ||
135 | |||
136 | $(LINKCODEC): $(LDS) | ||
137 | $(call PRINTS,build $(@F))cat $< | $(CC) -DMEMORYSIZE=$(MEMORYSIZE) -DCODEC $(INCLUDES) $(TARGET) $(DEFINES) -E -P - >$@ | ||
138 | |||
139 | $(BUILDDIR)/libspc.a: libspc | ||
140 | |||
141 | libspc: | ||
142 | $(SILENT)mkdir -p $(OBJDIR)/libspc | ||
143 | $(call PRINTS,MAKE in libspc)$(MAKE) -C libspc OBJDIR=$(OBJDIR)/libspc OUTPUT=$(BUILDDIR)/libspc.a | ||
144 | |||
145 | $(BUILDDIR)/libmad.a: libmad | ||
146 | |||
147 | libmad: | ||
148 | $(SILENT)mkdir -p $(OBJDIR)/libmad | ||
149 | $(call PRINTS,MAKE in libmad)$(MAKE) -C libmad OBJDIR=$(OBJDIR)/libmad OUTPUT=$(BUILDDIR)/libmad.a | ||
150 | |||
151 | $(BUILDDIR)/liba52.a: liba52 | ||
152 | |||
153 | liba52: | ||
154 | $(SILENT)mkdir -p $(OBJDIR)/liba52 | ||
155 | $(call PRINTS,MAKE in liba52)$(MAKE) -C liba52 OBJDIR=$(OBJDIR)/liba52 OUTPUT=$(BUILDDIR)/liba52.a | ||
156 | |||
157 | $(BUILDDIR)/libwma.a: libwma | ||
158 | |||
159 | libwma: | ||
160 | $(SILENT)mkdir -p $(OBJDIR)/libwma | ||
161 | $(call PRINTS,MAKE in libwma)$(MAKE) -C libwma OBJDIR=$(OBJDIR)/libwma OUTPUT=$(BUILDDIR)/libwma.a | ||
162 | |||
163 | $(BUILDDIR)/libffmpegFLAC.a: libffmpegFLAC | ||
164 | |||
165 | libffmpegFLAC: | ||
166 | $(SILENT)mkdir -p $(OBJDIR)/libffmpegFLAC | ||
167 | $(call PRINTS,MAKE in libffmpegFLAC)$(MAKE) -C libffmpegFLAC OBJDIR=$(OBJDIR)/libffmpegFLAC OUTPUT=$(BUILDDIR)/libffmpegFLAC.a | ||
168 | |||
169 | $(BUILDDIR)/libtremor.a: libtremor | ||
170 | |||
171 | libtremor: | ||
172 | $(SILENT)mkdir -p $(OBJDIR)/libtremor | ||
173 | $(call PRINTS,MAKE in libtremor)$(MAKE) -C libtremor OBJDIR=$(OBJDIR)/libtremor OUTPUT=$(BUILDDIR)/libtremor.a | ||
174 | |||
175 | $(BUILDDIR)/libspeex.a: libspeex | ||
176 | |||
177 | libspeex: | ||
178 | $(SILENT)mkdir -p $(OBJDIR)/libspeex | ||
179 | $(call PRINTS,MAKE in libspeex)$(MAKE) -C libspeex OBJDIR=$(OBJDIR)/libspeex OUTPUT=$(BUILDDIR)/libspeex.a | ||
180 | |||
181 | $(BUILDDIR)/libwavpack.a: libwavpack | ||
182 | |||
183 | libwavpack: | ||
184 | $(SILENT)mkdir -p $(OBJDIR)/libwavpack | ||
185 | $(call PRINTS,MAKE in libwavpack)$(MAKE) -C libwavpack OBJDIR=$(OBJDIR)/libwavpack OUTPUT=$(BUILDDIR)/libwavpack.a | ||
186 | |||
187 | $(BUILDDIR)/libmusepack.a: libmusepack | ||
188 | |||
189 | libmusepack: | ||
190 | $(SILENT)mkdir -p $(OBJDIR)/libmusepack | ||
191 | $(call PRINTS,MAKE in libmusepack)$(MAKE) -C libmusepack OBJDIR=$(OBJDIR)/libmusepack OUTPUT=$(BUILDDIR)/libmusepack.a | ||
192 | |||
193 | $(BUILDDIR)/libalac.a: libalac | ||
194 | |||
195 | libalac: | ||
196 | $(SILENT)mkdir -p $(OBJDIR)/libalac | ||
197 | $(call PRINTS,MAKE in libalac)$(MAKE) -C libalac OBJDIR=$(OBJDIR)/libalac OUTPUT=$(BUILDDIR)/libalac.a | ||
198 | |||
199 | $(BUILDDIR)/libm4a.a: libm4a | ||
200 | |||
201 | libm4a: | ||
202 | $(SILENT)mkdir -p $(OBJDIR)/libm4a | ||
203 | $(call PRINTS,MAKE in libm4a)$(MAKE) -C libm4a OBJDIR=$(OBJDIR)/libm4a OUTPUT=$(BUILDDIR)/libm4a.a | ||
204 | |||
205 | $(BUILDDIR)/libfaad.a: libfaad | ||
206 | |||
207 | libfaad: | ||
208 | $(SILENT)mkdir -p $(OBJDIR)/libfaad | ||
209 | $(call PRINTS,MAKE in libfaad)$(MAKE) -C libfaad OBJDIR=$(OBJDIR)/libfaad OUTPUT=$(BUILDDIR)/libfaad.a | ||
210 | |||
211 | $(BUILDDIR)/libdemac.a: libdemac | ||
212 | |||
213 | libdemac: | ||
214 | $(SILENT)mkdir -p $(OBJDIR)/libdemac | ||
215 | $(call PRINTS,MAKE in libdemac)$(MAKE) -C demac/libdemac OBJDIR=$(OBJDIR)/libdemac OUTPUT=$(BUILDDIR)/libdemac.a | ||
216 | |||
217 | $(BUILDDIR)/libasap.a: libasap | ||
218 | |||
219 | libasap: | ||
220 | $(SILENT)mkdir -p $(OBJDIR)/libasap | ||
221 | $(call PRINTS,MAKE in libasap)$(MAKE) -C libasap OBJDIR=$(OBJDIR)/libasap OUTPUT=$(BUILDDIR)/libasap.a | ||
222 | clean: | ||
223 | $(call PRINTS,cleaning codecs)rm -fr \ | ||
224 | $(OBJDIR)/libspc $(BUILDDIR)/libspc.a \ | ||
225 | $(OBJDIR)/libmad $(BUILDDIR)/libmad.a \ | ||
226 | $(OBJDIR)/liba52 $(BUILDDIR)/liba52.a \ | ||
227 | $(OBJDIR)/libffmpegFLAC $(BUILDDIR)/libffmpegFLAC.a \ | ||
228 | $(OBJDIR)/libtremor $(BUILDDIR)/libtremor.a \ | ||
229 | $(OBJDIR)/libspeex $(BUILDDIR)/libSpeex.a \ | ||
230 | $(OBJDIR)/libwavpack $(BUILDDIR)/libwavpack.a \ | ||
231 | $(OBJDIR)/libmusepack $(BUILDDIR)/libmusepack.a \ | ||
232 | $(OBJDIR)/libalac $(BUILDDIR)/libalac.a \ | ||
233 | $(OBJDIR)/libfaad $(BUILDDIR)/libfaad.a \ | ||
234 | $(OBJDIR)/libm4a $(BUILDDIR)/libm4a.a \ | ||
235 | $(OBJDIR)/libdemac $(BUILDDIR)/libdemac.a \ | ||
236 | $(OBJDIR)/libwma $(BUILDDIR)/libwma.a | ||
237 | $(OBJDIR)/libasap $(BUILDDIR)/libasap.a | ||
238 | $(SILENT)$(MAKE) -C libspc clean OBJDIR=$(OBJDIR)/libspc | ||
239 | $(SILENT)$(MAKE) -C libmad clean OBJDIR=$(OBJDIR)/libmad | ||
240 | $(SILENT)$(MAKE) -C liba52 clean OBJDIR=$(OBJDIR)/liba52 | ||
241 | $(SILENT)$(MAKE) -C libffmpegFLAC clean OBJDIR=$(OBJDIR)/libffmpegFLAC | ||
242 | $(SILENT)$(MAKE) -C libtremor clean OBJDIR=$(OBJDIR)/libtremor | ||
243 | $(SILENT)$(MAKE) -C libspeex clean OBJDIR=$(OBJDIR)/libspeex | ||
244 | $(SILENT)$(MAKE) -C libwavpack clean OBJDIR=$(OBJDIR)/libwavpack | ||
245 | $(SILENT)$(MAKE) -C libmusepack clean OBJDIR=$(OBJDIR)/libmusepack | ||
246 | $(SILENT)$(MAKE) -C libalac clean OBJDIR=$(OBJDIR)/libalac | ||
247 | $(SILENT)$(MAKE) -C libfaad clean OBJDIR=$(OBJDIR)/libfaad | ||
248 | $(SILENT)$(MAKE) -C libm4a clean OBJDIR=$(OBJDIR)/libm4a | ||
249 | $(SILENT)$(MAKE) -C demac/libdemac clean OBJDIR=$(OBJDIR)/libdemac | ||
250 | $(SILENT)$(MAKE) -C libwma clean OBJDIR=$(OBJDIR)/libwma | ||
251 | $(SILENT)$(MAKE) -C libasap clean OBJDIR=$(OBJDIR)/libasap | ||
252 | $(SILENT)$(MAKE) -C lib clean OBJDIR=$(OBJDIR)/lib | ||
253 | |||
254 | ifneq ($(MAKECMDGOALS),clean) | ||
255 | -include $(DEPFILE) | ||
256 | endif | ||