diff options
Diffstat (limited to 'apps/codecs/codecs.make')
-rw-r--r-- | apps/codecs/codecs.make | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/apps/codecs/codecs.make b/apps/codecs/codecs.make new file mode 100644 index 0000000000..a65dc4f67e --- /dev/null +++ b/apps/codecs/codecs.make | |||
@@ -0,0 +1,103 @@ | |||
1 | # __________ __ ___. | ||
2 | # Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
3 | # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
4 | # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
5 | # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
6 | # \/ \/ \/ \/ \/ | ||
7 | # $Id: Makefile 19082 2008-11-10 23:54:24Z zagor $ | ||
8 | # | ||
9 | |||
10 | CODECDIR = $(BUILDDIR)/apps/codecs | ||
11 | CODECS_SRC := $(call preprocess, $(APPSDIR)/codecs/SOURCES) | ||
12 | OTHER_SRC += $(CODECS_SRC) | ||
13 | |||
14 | CODECS := $(CODECS_SRC:.c=.codec) | ||
15 | CODECS := $(subst $(ROOTDIR),$(BUILDDIR),$(CODECS)) | ||
16 | |||
17 | # the codec helper library | ||
18 | include $(APPSDIR)/codecs/lib/libcodec.make | ||
19 | |||
20 | # the codec libraries | ||
21 | include $(APPSDIR)/codecs/demac/libdemac.make | ||
22 | include $(APPSDIR)/codecs/liba52/liba52.make | ||
23 | include $(APPSDIR)/codecs/libalac/libalac.make | ||
24 | include $(APPSDIR)/codecs/libasap/libasap.make | ||
25 | include $(APPSDIR)/codecs/libfaad/libfaad.make | ||
26 | include $(APPSDIR)/codecs/libffmpegFLAC/libffmpegFLAC.make | ||
27 | include $(APPSDIR)/codecs/libm4a/libm4a.make | ||
28 | include $(APPSDIR)/codecs/libmad/libmad.make | ||
29 | include $(APPSDIR)/codecs/libmusepack/libmusepack.make | ||
30 | include $(APPSDIR)/codecs/libspc/libspc.make | ||
31 | include $(APPSDIR)/codecs/libspeex/libspeex.make | ||
32 | include $(APPSDIR)/codecs/libtremor/libtremor.make | ||
33 | include $(APPSDIR)/codecs/libwavpack/libwavpack.make | ||
34 | include $(APPSDIR)/codecs/libwma/libwma.make | ||
35 | |||
36 | # compile flags for codecs | ||
37 | CODECFLAGS = $(CFLAGS) -I$(APPSDIR)/codecs -I$(APPSDIR)/codecs/lib \ | ||
38 | -DCODEC | ||
39 | |||
40 | CODEC_LDS := $(APPSDIR)/plugins/plugin.lds # codecs and plugins use same file | ||
41 | CODECLINK_LDS := $(CODECDIR)/codec.link | ||
42 | CODEC_CRT0 := $(CODECDIR)/codec_crt0.o | ||
43 | |||
44 | CODECLIBS := $(DEMACLIB) $(A52LIB) $(ALACLIB) $(ASAPLIB) \ | ||
45 | $(FAADLIB) $(FFMPEGFLACLIB) $(M4ALIB) $(MADLIB) $(MUSEPACKLIB) \ | ||
46 | $(SPCLIB) $(SPEEXLIB) $(TREMORLIB) $(WAVPACKLIB) $(WMALIB) \ | ||
47 | $(CODECLIB) | ||
48 | |||
49 | $(CODECS): $(CODEC_CRT0) $(CODECLINK_LDS) | ||
50 | |||
51 | $(CODECLINK_LDS): $(CODEC_LDS) | ||
52 | $(call PRINTS,PP $(@F)) | ||
53 | $(call preprocess2file, $<, $@) | ||
54 | |||
55 | # codec/library dependencies | ||
56 | $(CODECDIR)/spc.codec : $(CODECDIR)/libspc.a | ||
57 | $(CODECDIR)/mpa.codec : $(CODECDIR)/libmad.a | ||
58 | $(CODECDIR)/a52.codec : $(CODECDIR)/liba52.a | ||
59 | $(CODECDIR)/flac.codec : $(CODECDIR)/libffmpegFLAC.a | ||
60 | $(CODECDIR)/vorbis.codec : $(CODECDIR)/libtremor.a | ||
61 | $(CODECDIR)/speex.codec : $(CODECDIR)/libspeex.a | ||
62 | $(CODECDIR)/mpc.codec : $(CODECDIR)/libmusepack.a | ||
63 | $(CODECDIR)/wavpack.codec : $(CODECDIR)/libwavpack.a | ||
64 | $(CODECDIR)/alac.codec : $(CODECDIR)/libalac.a $(CODECDIR)/libm4a.a | ||
65 | $(CODECDIR)/aac.codec : $(CODECDIR)/libfaad.a $(CODECDIR)/libm4a.a | ||
66 | $(CODECDIR)/shorten.codec : $(CODECDIR)/libffmpegFLAC.a | ||
67 | $(CODECDIR)/ape.codec : $(CODECDIR)/libdemac.a | ||
68 | $(CODECDIR)/wma.codec : $(CODECDIR)/libwma.a | ||
69 | $(CODECDIR)/wavpack_enc.codec: $(CODECDIR)/libwavpack.a | ||
70 | $(CODECDIR)/asap.codec : $(CODECDIR)/libasap.a | ||
71 | |||
72 | $(CODECS): $(CODECLIB) # this must be last in codec dependency list | ||
73 | |||
74 | # libfaad and libmusepack both contain a huffman.h file, with different | ||
75 | # content. So we compile them with special command lines: | ||
76 | |||
77 | # pattern rule for compiling codecs | ||
78 | $(CODECDIR)/%.o: $(ROOTDIR)/apps/codecs/%.c | ||
79 | $(SILENT)mkdir -p $(dir $@) | ||
80 | $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) \ | ||
81 | -I$(dir $<) $(CODECFLAGS) -c $< -o $@ | ||
82 | |||
83 | # pattern rule for compiling codecs | ||
84 | $(CODECDIR)/%.o: $(ROOTDIR)/apps/codecs/%.S | ||
85 | $(SILENT)mkdir -p $(dir $@) | ||
86 | $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) \ | ||
87 | -I$(dir $<) $(CODECFLAGS) -c $< -o $@ | ||
88 | |||
89 | ifdef SIMVER | ||
90 | CODECLDFLAGS = $(SHARED_FLAG) # <-- from Makefile | ||
91 | else | ||
92 | CODECLDFLAGS = -T$(CODECLINK_LDS) -Wl,--gc-sections -Wl,-Map,$(CODECDIR)/$*.map | ||
93 | CODECFLAGS += -UDEBUG -DNDEBUG | ||
94 | endif | ||
95 | |||
96 | $(CODECDIR)/%.codec: $(CODECDIR)/%.o | ||
97 | $(call PRINTS,LD $(@F))$(CC) $(CODECFLAGS) -o $(CODECDIR)/$*.elf \ | ||
98 | $(filter %.o, $^) \ | ||
99 | $(filter %.a, $^) \ | ||
100 | -lgcc $(CODECLDFLAGS) | ||
101 | $(call PRINTS,OC $(@F))$(OC) -O binary $(CODECDIR)/$*.elf $@ | ||
102 | |||
103 | |||