don't blow up in the sub Makefiles if menuselect.makeopts is not present. This
[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 ifneq ($(wildcard ../menuselect.makeopts),)
15   include ../menuselect.makeopts
16 endif
17
18 SELECTED_MODS:=$(filter-out $(MENUSELECT_CODECS),$(patsubst %.c,%,$(wildcard codec_*.c)))
19
20 ifeq ($(wildcard ilbc/iLBC_decode.h),)
21   MODS:=$(filter-out codec_ilbc,$(MODS))
22 else
23   LIBILBC=ilbc/libilbc.a
24 endif
25
26 LIBLPC10=lpc10/liblpc10.a
27
28 MODS:=$(patsubst %,%.so,$(SELECTED_MODS))
29
30 all: $(MODS)
31
32 clean-depend:
33         rm -f .depend
34
35 clean: clean-depend
36         rm -f *.so *.o
37         [ ! -d g723.1 ] || $(MAKE) -C g723.1 clean
38         [ ! -d g723.1b ] || $(MAKE) -C g723.1b clean
39         $(MAKE) -C gsm clean
40         $(MAKE) -C lpc10 clean
41         $(MAKE) -C ilbc clean
42
43 $(LIBG723):
44         CFLAGS="$(ASTCFLAGS)" $(MAKE) -C g723.1 all
45
46 gsm/lib/libgsm.a:
47         CFLAGS="$(ASTCFLAGS) -I." $(MAKE) -C gsm lib/libgsm.a
48
49 $(LIBG723B):
50         CFLAGS="$(ASTCFLAGS)" $(MAKE) -C g723.1b all
51
52 $(LIBLPC10):
53         CFLAGS="$(ASTCFLAGS)" $(MAKE) -C lpc10 all
54
55 $(LIBILBC):
56         CFLAGS="$(ASTCFLAGS)" $(MAKE) -C ilbc all
57
58 codec_ilbc.so: codec_ilbc.o $(LIBILBC)
59         $(CC) $(SOLINK) -o $@ $< $(LIBILBC)
60
61 codec_g723_1.so : codec_g723_1.o $(LIBG723)
62         $(CC) $(SOLINK) -o $@ $< $(LIBG723)
63
64 codec_g723_1b.o : codec_g723_1.c
65         $(CC) -c -o $@ $(CFLAGS) -DANNEX_B -Dsingle $<
66
67 codec_g723_1b.so : codec_g723_1b.o $(LIBG723B)
68         $(CC) $(SOLINK) -o $@ $< $(LIBG723B) -lm
69
70 ifeq ($(GSM_LIB),internal)
71 codec_gsm.o: codec_gsm.c
72         $(CC) -c -o $@ $(CFLAGS) -Igsm/inc $<
73
74 codec_gsm.so: codec_gsm.o gsm/lib/libgsm.a
75         $(CC) $(SOLINK) -o $@ $< gsm/lib/libgsm.a
76 else
77 codec_gsm.o: codec_gsm.c
78         $(CC) -c -o $@ $(CFLAGS) $(GSM_INCLUDE) $<
79
80 codec_gsm.so: codec_gsm.o
81         $(CC) $(SOLINK) -o $@ $< $(GSM_LIB)
82 endif
83
84 codec_speex.o: codec_speex.c
85         $(CC) -c -o $@ $(CFLAGS) $(SPEEX_INCLUDE) $<
86
87 codec_speex.so: codec_speex.o
88         $(CC) $(SOLINK) -o $@ $< $(SPEEX_LIB)
89
90 codec_lpc10.so: codec_lpc10.o $(LIBLPC10)
91         $(CC) $(SOLINK) -o $@ $< $(LIBLPC10) -lm
92
93 %.so : %.o
94         $(CC) $(SOLINK) -o $@ $<
95
96 ifneq ($(wildcard .depend),)
97   include .depend
98 endif
99
100 install: all
101         for x in $(MODS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
102
103 uninstall:
104
105 depend: .depend
106
107 .depend:
108         ../build_tools/mkdep $(CFLAGS) `ls *.c`