diff options
author | Sean Bartell <wingedtachikoma@gmail.com> | 2011-06-25 21:32:25 -0400 |
---|---|---|
committer | Nils Wallménius <nils@rockbox.org> | 2012-04-25 22:13:20 +0200 |
commit | f40bfc9267b13b54e6379dfe7539447662879d24 (patch) | |
tree | 9b20069d5e62809ff434061ad730096836f916f2 /lib/rbcodec/codecs/codecs.make | |
parent | a0009907de7a0107d49040d8a180f140e2eff299 (diff) | |
download | rockbox-f40bfc9267b13b54e6379dfe7539447662879d24.tar.gz rockbox-f40bfc9267b13b54e6379dfe7539447662879d24.zip |
Add codecs to librbcodec.
Change-Id: Id7f4717d51ed02d67cb9f9cb3c0ada4a81843f97
Reviewed-on: http://gerrit.rockbox.org/137
Reviewed-by: Nils Wallménius <nils@rockbox.org>
Tested-by: Nils Wallménius <nils@rockbox.org>
Diffstat (limited to 'lib/rbcodec/codecs/codecs.make')
-rw-r--r-- | lib/rbcodec/codecs/codecs.make | 206 |
1 files changed, 206 insertions, 0 deletions
diff --git a/lib/rbcodec/codecs/codecs.make b/lib/rbcodec/codecs/codecs.make new file mode 100644 index 0000000000..919aef2024 --- /dev/null +++ b/lib/rbcodec/codecs/codecs.make | |||
@@ -0,0 +1,206 @@ | |||
1 | # __________ __ ___. | ||
2 | # Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
3 | # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
4 | # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
5 | # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
6 | # \/ \/ \/ \/ \/ | ||
7 | # $Id$ | ||
8 | # | ||
9 | |||
10 | CODECDIR = $(RBCODEC_BLD)/codecs | ||
11 | CODECS_SRC := $(call preprocess, $(RBCODECLIB_DIR)/codecs/SOURCES) | ||
12 | OTHER_SRC += $(CODECS_SRC) | ||
13 | |||
14 | CODECS := $(CODECS_SRC:.c=.codec) | ||
15 | CODECS := $(subst $(RBCODECLIB_DIR),$(RBCODEC_BLD),$(CODECS)) | ||
16 | |||
17 | # the codec helper library | ||
18 | include $(RBCODECLIB_DIR)/codecs/lib/libcodec.make | ||
19 | OTHER_INC += -I$(RBCODECLIB_DIR)/codecs/lib | ||
20 | |||
21 | # extra libraries | ||
22 | CODEC_LIBS := $(EXTRA_LIBS) $(CODECLIB) | ||
23 | |||
24 | # the codec libraries | ||
25 | include $(RBCODECLIB_DIR)/codecs/demac/libdemac.make | ||
26 | include $(RBCODECLIB_DIR)/codecs/liba52/liba52.make | ||
27 | include $(RBCODECLIB_DIR)/codecs/libalac/libalac.make | ||
28 | include $(RBCODECLIB_DIR)/codecs/libasap/libasap.make | ||
29 | include $(RBCODECLIB_DIR)/codecs/libasf/libasf.make | ||
30 | include $(RBCODECLIB_DIR)/codecs/libfaad/libfaad.make | ||
31 | include $(RBCODECLIB_DIR)/codecs/libffmpegFLAC/libffmpegFLAC.make | ||
32 | include $(RBCODECLIB_DIR)/codecs/libm4a/libm4a.make | ||
33 | include $(RBCODECLIB_DIR)/codecs/libmad/libmad.make | ||
34 | include $(RBCODECLIB_DIR)/codecs/libmusepack/libmusepack.make | ||
35 | include $(RBCODECLIB_DIR)/codecs/libspc/libspc.make | ||
36 | include $(RBCODECLIB_DIR)/codecs/libspeex/libspeex.make | ||
37 | include $(RBCODECLIB_DIR)/codecs/libtremor/libtremor.make | ||
38 | include $(RBCODECLIB_DIR)/codecs/libwavpack/libwavpack.make | ||
39 | include $(RBCODECLIB_DIR)/codecs/libwma/libwma.make | ||
40 | include $(RBCODECLIB_DIR)/codecs/libwmapro/libwmapro.make | ||
41 | include $(RBCODECLIB_DIR)/codecs/libcook/libcook.make | ||
42 | include $(RBCODECLIB_DIR)/codecs/librm/librm.make | ||
43 | include $(RBCODECLIB_DIR)/codecs/libatrac/libatrac.make | ||
44 | include $(RBCODECLIB_DIR)/codecs/libpcm/libpcm.make | ||
45 | include $(RBCODECLIB_DIR)/codecs/libtta/libtta.make | ||
46 | include $(RBCODECLIB_DIR)/codecs/libgme/libay.make | ||
47 | include $(RBCODECLIB_DIR)/codecs/libgme/libgbs.make | ||
48 | include $(RBCODECLIB_DIR)/codecs/libgme/libhes.make | ||
49 | include $(RBCODECLIB_DIR)/codecs/libgme/libnsf.make | ||
50 | include $(RBCODECLIB_DIR)/codecs/libgme/libsgc.make | ||
51 | include $(RBCODECLIB_DIR)/codecs/libgme/libvgm.make | ||
52 | include $(RBCODECLIB_DIR)/codecs/libgme/libkss.make | ||
53 | include $(RBCODECLIB_DIR)/codecs/libgme/libemu2413.make | ||
54 | |||
55 | # compile flags for codecs | ||
56 | CODECFLAGS = $(CFLAGS) $(RBCODEC_CFLAGS) -fstrict-aliasing \ | ||
57 | -I$(RBCODECLIB_DIR)/codecs -I$(RBCODECLIB_DIR)/codecs/lib -DCODEC | ||
58 | |||
59 | # set CODECFLAGS per codec lib, since gcc takes the last -Ox and the last | ||
60 | # in a -ffoo -fno-foo pair, there is no need to filter them out | ||
61 | $(A52LIB) : CODECFLAGS += -O1 | ||
62 | $(ALACLIB) : CODECFLAGS += -O1 | ||
63 | $(ASAPLIB) : CODECFLAGS += -O1 | ||
64 | $(ASFLIB) : CODECFLAGS += -O2 | ||
65 | $(ATRACLIB) : CODECFLAGS += -O1 | ||
66 | $(AYLIB) : CODECFLAGS += -O2 | ||
67 | $(COOKLIB): CODECFLAGS += -O1 | ||
68 | $(DEMACLIB) : CODECFLAGS += -O3 | ||
69 | $(FAADLIB) : CODECFLAGS += -O2 | ||
70 | $(FFMPEGFLACLIB) : CODECFLAGS += -O2 | ||
71 | $(GBSLIB) : CODECFLAGS += -O2 | ||
72 | $(HESLIB) : CODECFLAGS += -O2 | ||
73 | $(KSSLIB) : CODECFLAGS += -O2 | ||
74 | $(M4ALIB) : CODECFLAGS += -O3 | ||
75 | $(MUSEPACKLIB) : CODECFLAGS += -O1 | ||
76 | $(NSFLIB) : CODECFLAGS += -O2 | ||
77 | $(PCMSLIB) : CODECFLAGS += -O1 | ||
78 | $(RMLIB) : CODECFLAGS += -O3 | ||
79 | $(SGCLIB) : CODECFLAGS += -O2 | ||
80 | $(SPCLIB) : CODECFLAGS += -O1 | ||
81 | $(TREMORLIB) : CODECFLAGS += -O2 | ||
82 | $(TTALIB) : CODECFLAGS += -O2 | ||
83 | $(VGMLIB) : CODECFLAGS += -O2 | ||
84 | $(EMU2413LIB) : CODECFLAGS += -O3 | ||
85 | $(WAVPACKLIB) : CODECFLAGS += -O1 | ||
86 | $(WMALIB) : CODECFLAGS += -O2 | ||
87 | $(WMAPROLIB) : CODECFLAGS += -O1 | ||
88 | $(WMAVOICELIB) : CODECFLAGS += -O1 | ||
89 | |||
90 | # fine-tuning of CODECFLAGS per cpu arch | ||
91 | ifeq ($(ARCH),arch_arm) | ||
92 | # redo per arm generation | ||
93 | $(ALACLIB) : CODECFLAGS += -O2 | ||
94 | $(AYLIB) : CODECFLAGS += -O1 | ||
95 | $(GBSLIB) : CODECFLAGS += -O1 | ||
96 | $(HESLIB) : CODECFLAGS += -O1 | ||
97 | $(KSSLIB) : CODECFLAGS += -O1 | ||
98 | $(NSFLIB) : CODECFLAGS += -O1 | ||
99 | $(SGCLIB) : CODECFLAGS += -O1 | ||
100 | $(VGMLIB) : CODECFLAGS += -O1 | ||
101 | $(EMU2413LIB) : CODECFLAGS += -O3 | ||
102 | $(WAVPACKLIB) : CODECFLAGS += -O3 | ||
103 | else ifeq ($(ARCH),arch_m68k) | ||
104 | $(A52LIB) : CODECFLAGS += -O2 | ||
105 | $(ASFLIB) : CODECFLAGS += -O3 | ||
106 | $(ATRACLIB) : CODECFLAGS += -O2 | ||
107 | $(COOKLIB): CODECFLAGS += -O2 | ||
108 | $(DEMACLIB) : CODECFLAGS += -O2 | ||
109 | $(SPCLIB) : CODECFLAGS += -O3 | ||
110 | $(WMAPROLIB) : CODECFLAGS += -O3 | ||
111 | $(WMAVOICELIB) : CODECFLAGS += -O2 | ||
112 | endif | ||
113 | |||
114 | ifeq ($(MEMORYSIZE),2) | ||
115 | $(ASFLIB) : CODECFLAGS += -Os | ||
116 | $(WMALIB) : CODECFLAGS += -Os | ||
117 | endif | ||
118 | |||
119 | ifndef APP_TYPE | ||
120 | CONFIGFILE := $(FIRMDIR)/export/config/$(MODELNAME).h | ||
121 | CODEC_LDS := $(APPSDIR)/plugins/plugin.lds # codecs and plugins use same file | ||
122 | CODECLINK_LDS := $(CODECDIR)/codec.link | ||
123 | endif | ||
124 | |||
125 | CODEC_CRT0 := $(CODECDIR)/codec_crt0.o | ||
126 | |||
127 | $(CODECS): $(CODEC_CRT0) $(CODECLINK_LDS) | ||
128 | |||
129 | $(CODECLINK_LDS): $(CODEC_LDS) $(CONFIGFILE) | ||
130 | $(call PRINTS,PP $(@F)) | ||
131 | $(shell mkdir -p $(dir $@)) | ||
132 | $(call preprocess2file, $<, $@, -DCODEC) | ||
133 | |||
134 | # codec/library dependencies | ||
135 | $(CODECDIR)/spc.codec : $(CODECDIR)/libspc.a | ||
136 | $(CODECDIR)/mpa.codec : $(CODECDIR)/libmad.a | ||
137 | $(CODECDIR)/a52.codec : $(CODECDIR)/liba52.a | ||
138 | $(CODECDIR)/flac.codec : $(CODECDIR)/libffmpegFLAC.a | ||
139 | $(CODECDIR)/vorbis.codec : $(CODECDIR)/libtremor.a | ||
140 | $(CODECDIR)/speex.codec : $(CODECDIR)/libspeex.a | ||
141 | $(CODECDIR)/mpc.codec : $(CODECDIR)/libmusepack.a | ||
142 | $(CODECDIR)/wavpack.codec : $(CODECDIR)/libwavpack.a | ||
143 | $(CODECDIR)/alac.codec : $(CODECDIR)/libalac.a $(CODECDIR)/libm4a.a | ||
144 | $(CODECDIR)/aac.codec : $(CODECDIR)/libfaad.a $(CODECDIR)/libm4a.a | ||
145 | $(CODECDIR)/shorten.codec : $(CODECDIR)/libffmpegFLAC.a | ||
146 | $(CODECDIR)/ape-pre.map : $(CODECDIR)/libdemac-pre.a | ||
147 | $(CODECDIR)/ape.codec : $(CODECDIR)/libdemac.a | ||
148 | $(CODECDIR)/wma.codec : $(CODECDIR)/libwma.a $(CODECDIR)/libasf.a | ||
149 | $(CODECDIR)/wmapro.codec : $(CODECDIR)/libwmapro.a $(CODECDIR)/libasf.a | ||
150 | $(CODECDIR)/wavpack_enc.codec: $(CODECDIR)/libwavpack.a | ||
151 | $(CODECDIR)/asap.codec : $(CODECDIR)/libasap.a | ||
152 | $(CODECDIR)/cook.codec : $(CODECDIR)/libcook.a $(CODECDIR)/librm.a | ||
153 | $(CODECDIR)/raac.codec : $(CODECDIR)/libfaad.a $(CODECDIR)/librm.a | ||
154 | $(CODECDIR)/a52_rm.codec : $(CODECDIR)/liba52.a $(CODECDIR)/librm.a | ||
155 | $(CODECDIR)/atrac3_rm.codec : $(CODECDIR)/libatrac.a $(CODECDIR)/librm.a | ||
156 | $(CODECDIR)/atrac3_oma.codec : $(CODECDIR)/libatrac.a | ||
157 | $(CODECDIR)/aiff.codec : $(CODECDIR)/libpcm.a | ||
158 | $(CODECDIR)/wav.codec : $(CODECDIR)/libpcm.a | ||
159 | $(CODECDIR)/smaf.codec : $(CODECDIR)/libpcm.a | ||
160 | $(CODECDIR)/au.codec : $(CODECDIR)/libpcm.a | ||
161 | $(CODECDIR)/vox.codec : $(CODECDIR)/libpcm.a | ||
162 | $(CODECDIR)/wav64.codec : $(CODECDIR)/libpcm.a | ||
163 | $(CODECDIR)/tta.codec : $(CODECDIR)/libtta.a | ||
164 | $(CODECDIR)/ay.codec : $(CODECDIR)/libay.a | ||
165 | $(CODECDIR)/gbs.codec : $(CODECDIR)/libgbs.a | ||
166 | $(CODECDIR)/hes.codec : $(CODECDIR)/libhes.a | ||
167 | $(CODECDIR)/nsf.codec : $(CODECDIR)/libnsf.a $(CODECDIR)/libemu2413.a | ||
168 | $(CODECDIR)/sgc.codec : $(CODECDIR)/libsgc.a $(CODECDIR)/libemu2413.a | ||
169 | $(CODECDIR)/vgm.codec : $(CODECDIR)/libvgm.a $(CODECDIR)/libemu2413.a | ||
170 | $(CODECDIR)/kss.codec : $(CODECDIR)/libkss.a $(CODECDIR)/libemu2413.a | ||
171 | |||
172 | $(CODECS): $(CODEC_LIBS) # this must be last in codec dependency list | ||
173 | |||
174 | # pattern rule for compiling codecs | ||
175 | $(CODECDIR)/%.o: $(RBCODECLIB_DIR)/codecs/%.c | ||
176 | $(SILENT)mkdir -p $(dir $@) | ||
177 | $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) \ | ||
178 | -I$(dir $<) $(CODECFLAGS) -c $< -o $@ | ||
179 | |||
180 | # pattern rule for compiling codecs | ||
181 | $(CODECDIR)/%.o: $(RBCODECLIB_DIR)/codecs/%.S | ||
182 | $(SILENT)mkdir -p $(dir $@) | ||
183 | $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) \ | ||
184 | -I$(dir $<) $(CODECFLAGS) $(ASMFLAGS) -c $< -o $@ | ||
185 | |||
186 | ifdef APP_TYPE | ||
187 | CODECLDFLAGS = $(SHARED_LDFLAG) -Wl,--gc-sections -Wl,-Map,$(CODECDIR)/$*.map | ||
188 | CODECFLAGS += $(SHARED_CFLAGS) # <-- from Makefile | ||
189 | else | ||
190 | CODECLDFLAGS = -T$(CODECLINK_LDS) -Wl,--gc-sections -Wl,-Map,$(CODECDIR)/$*.map | ||
191 | CODECFLAGS += -UDEBUG -DNDEBUG | ||
192 | endif | ||
193 | CODECLDFLAGS += $(GLOBAL_LDOPTS) | ||
194 | |||
195 | $(CODECDIR)/%-pre.map: $(CODEC_CRT0) $(CODECLINK_LDS) $(CODECDIR)/%.o $(CODECS_LIBS) | ||
196 | $(call PRINTS,LD $(@F))$(CC) $(CODECFLAGS) -o $(CODECDIR)/$*-pre.elf \ | ||
197 | $(filter %.o, $^) \ | ||
198 | $(filter-out $(CODECLIB),$(filter %.a, $+)) $(CODECLIB) \ | ||
199 | -lgcc $(subst .map,-pre.map,$(CODECLDFLAGS)) | ||
200 | |||
201 | $(CODECDIR)/%.codec: $(CODECDIR)/%.o | ||
202 | $(call PRINTS,LD $(@F))$(CC) $(CODECFLAGS) -o $(CODECDIR)/$*.elf \ | ||
203 | $(filter %.o, $^) \ | ||
204 | $(filter %.a, $+) \ | ||
205 | -lgcc $(CODECLDFLAGS) | ||
206 | $(SILENT)$(call objcopy,$(CODECDIR)/$*.elf,$@) | ||