42327b4e6e2a3a76493b334e9e29cc63fb104713
[asterisk/asterisk.git] / codecs / Makefile
1 #
2 # Asterisk -- A telephony toolkit for Linux.
3
4 # Makefile for codec modules
5 #
6 # Copyright (C) 1999-2006, Digium, Inc.
7 #
8 # Mark Spencer <markster@digium.com>
9 #
10 # This program is free software, distributed under the terms of
11 # the GNU General Public License
12 #
13
14 include ../menuselect.makeopts
15
16 SELECTED_MODS:=$(filter-out $(MENUSELECT_CODECS),$(patsubst %.c,%,$(wildcard codec_*.c)))
17
18 ifeq ($(wildcard ilbc/iLBC_decode.h),)
19   MODS:=$(filter-out codec_ilbc,$(MODS))
20 else
21   LIBILBC=ilbc/libilbc.a
22 endif
23
24 LIBLPC10=lpc10/liblpc10.a
25
26 MODS:=$(patsubst %,%.so,$(SELECTED_MODS))
27
28 all: $(MODS)
29
30 clean-depend:
31         rm -f .depend
32
33 clean: clean-depend
34         rm -f *.so *.o
35         [ ! -d g723.1 ] || $(MAKE) -C g723.1 clean
36         [ ! -d g723.1b ] || $(MAKE) -C g723.1b clean
37         $(MAKE) -C gsm clean
38         $(MAKE) -C lpc10 clean
39         $(MAKE) -C ilbc clean
40
41 $(LIBG723):
42         CFLAGS="$(ASTCFLAGS)" $(MAKE) -C g723.1 all
43
44 gsm/lib/libgsm.a:
45         CFLAGS="$(ASTCFLAGS) -I." $(MAKE) -C gsm lib/libgsm.a
46
47 $(LIBG723B):
48         CFLAGS="$(ASTCFLAGS)" $(MAKE) -C g723.1b all
49
50 $(LIBLPC10):
51         CFLAGS="$(ASTCFLAGS)" $(MAKE) -C lpc10 all
52
53 $(LIBILBC):
54         CFLAGS="$(ASTCFLAGS)" $(MAKE) -C ilbc all
55
56 codec_ilbc.so: codec_ilbc.o $(LIBILBC)
57         $(CC) $(SOLINK) -o $@ $< $(LIBILBC)
58
59 codec_g723_1.so : codec_g723_1.o $(LIBG723)
60         $(CC) $(SOLINK) -o $@ $< $(LIBG723)
61
62 codec_g723_1b.o : codec_g723_1.c
63         $(CC) -c -o $@ $(CFLAGS) -DANNEX_B -Dsingle $<
64
65 codec_g723_1b.so : codec_g723_1b.o $(LIBG723B)
66         $(CC) $(SOLINK) -o $@ $< $(LIBG723B) -lm
67
68 ifeq ($(GSM_LIB),internal)
69 codec_gsm.o: codec_gsm.c
70         $(CC) -c -o $@ $(CFLAGS) -Igsm/inc $<
71
72 codec_gsm.so: codec_gsm.o gsm/lib/libgsm.a
73         $(CC) $(SOLINK) -o $@ $< gsm/lib/libgsm.a
74 else
75 codec_gsm.o: codec_gsm.c
76         $(CC) -c -o $@ $(CFLAGS) $(GSM_INCLUDE) $<
77
78 codec_gsm.so: codec_gsm.o
79         $(CC) $(SOLINK) -o $@ $< $(GSM_LIB)
80 endif
81
82 codec_speex.o: codec_speex.c
83         $(CC) -c -o $@ $(CFLAGS) $(SPEEX_INCLUDE) $<
84
85 codec_speex.so: codec_speex.o
86         $(CC) $(SOLINK) -o $@ $< $(SPEEX_LIB)
87
88 codec_lpc10.so: codec_lpc10.o $(LIBLPC10)
89         $(CC) $(SOLINK) -o $@ $< $(LIBLPC10) -lm
90
91 %.so : %.o
92         $(CC) $(SOLINK) -o $@ $<
93
94 ifneq ($(wildcard .depend),)
95   include .depend
96 endif
97
98 install: all
99         for x in $(MODS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
100
101 uninstall:
102
103 depend: .depend
104
105 .depend:
106         ../build_tools/mkdep $(CFLAGS) `ls *.c`