correct Makefile errors (issue #5072)
[asterisk/asterisk.git] / codecs / Makefile
1 #
2 # Asterisk -- A telephony toolkit for Linux.
3
4 # Makefile for codec modules
5 #
6 # Copyright (C) 1999-2005, Digium
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 g723.1/coder.c),)
15   MODG723=codec_g723_1.so
16   LIBG723=g723.1/libg723.a
17 endif
18
19 ifneq ($(wildcard g723.1b/coder2.c),)
20   MODG723+=codec_g723_1b.so
21   LIBG723B=g723.1b/libg723b.a
22 endif
23
24 UI_SPEEX=$(wildcard $(CROSS_COMPILE_TARGET)/usr/include/speex.h)
25 UIS_SPEEX=$(wildcard $(CROSS_COMPILE_TARGET)/usr/include/speex/speex.h)
26 ULI_SPEEX=$(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/speex.h)
27 ULIS_SPEEX=$(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/speex/speex.h)
28 ifneq (${UI_SPEEX},)
29   MODSPEEX=codec_speex.so
30   LIBSPEEX+=-lspeex -lm
31 endif
32 ifneq (${UIS_SPEEX},)
33   MODSPEEX=codec_speex.so
34   CFLAGS+=-I/usr/include/speex
35   LIBSPEEX+=-lspeex -lm
36 endif
37 ifneq (${ULI_SPEEX},)
38   MODSPEEX=codec_speex.so
39   CFLAGS+=-I/usr/local/include
40   LIBSPEEX=-L$(CROSS_COMPILE_TARGET)/usr/local/lib
41   LIBSPEEX+=-lspeex -lm
42 endif
43 ifneq (${ULIS_SPEEX},)
44   MODSPEEX=codec_speex.so
45   CFLAGS+=-I/usr/local/include/speex
46   LIBSPEEX=-L$(CROSS_COMPILE_TARGET)/usr/local/lib
47   LIBSPEEX+=-lspeex -lm
48 endif
49
50 ifneq ($(wildcard ilbc/iLBC_decode.h),)
51   MODILBC=codec_ilbc.so
52   LIBILBC=ilbc/libilbc.a
53 endif
54
55 CFLAGS+=-fPIC
56
57 LIBGSM=gsm/lib/libgsm.a
58 LIBGSMT=gsm/lib/libgsm.a
59 LIBLPC10=lpc10/liblpc10.a
60
61 ifeq ($(findstring BSD,${OSARCH}),BSD)
62   CFLAGS+=-I$(CROSS_COMPILE_TARGET)/usr/local/include -L$(CROSS_COMPILE_TARGET)/usr/local/lib
63 endif
64
65 CODECS+=$(MODG723) $(MODSPEEX) $(MODILBC) codec_gsm.so codec_lpc10.so  \
66         codec_adpcm.so codec_ulaw.so codec_alaw.so codec_a_mu.so \
67         codec_g726.so
68
69 all: depend $(CODECS)
70
71 clean:
72         rm -f *.so *.o .depend
73         [ ! -d g723.1 ] || $(MAKE) -C g723.1 clean
74         [ ! -d g723.1b ] || $(MAKE) -C g723.1b clean
75         $(MAKE) -C gsm clean
76         $(MAKE) -C lpc10 clean
77         $(MAKE) -C ilbc clean
78
79 $(LIBG723):
80         $(MAKE) -C g723.1 all
81
82 $(LIBGSM):
83         $(MAKE) -C gsm lib/libgsm.a
84
85 $(LIBG723B):
86         $(MAKE) -C g723.1b all
87
88 $(LIBLPC10):
89         $(MAKE) -C lpc10 all
90
91 $(LIBILBC):
92         $(MAKE) -C ilbc all
93
94 $(MODILBC): codec_ilbc.o $(LIBILBC)
95         $(CC) $(SOLINK) -o $@ $< $(LIBILBC)
96
97 codec_g723_1.so : codec_g723_1.o $(LIBG723)
98         $(CC) $(SOLINK) -o $@ $< $(LIBG723)
99
100 codec_g723_1b.o : codec_g723_1.c
101         $(CC) -c -o $@ $(CFLAGS) -DANNEX_B -Dsingle $<
102
103 codec_g723_1b.so : codec_g723_1b.o $(LIBG723B)
104         $(CC) $(SOLINK) -o $@ $< $(LIBG723B) -lm
105
106 codec_gsm.so: codec_gsm.o $(LIBGSMT) 
107         $(CC) $(SOLINK) -o $@ $< $(LIBGSM)
108
109 $(MODSPEEX): codec_speex.o
110         $(CC) $(SOLINK) -o $@ $< $(LIBSPEEX)
111
112 codec_lpc10.so: codec_lpc10.o $(LIBLPC10)
113         $(CC) $(SOLINK) -o $@ $< $(LIBLPC10) -lm
114
115 %.so : %.o
116         $(CC) $(SOLINK) -o $@ $<
117
118 ifneq ($(wildcard .depend),)
119   include .depend
120 endif
121
122 install: all
123         for x in $(CODECS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
124
125 depend: .depend
126
127 .depend:
128         ../build_tools/mkdep $(CFLAGS) `ls *.c`