don't try to build a chan_misdn_config.so
[asterisk/asterisk.git] / channels / Makefile
1 #
2 # Asterisk -- A telephony toolkit for Linux.
3
4 # Makefile for channel drivers
5 #
6 # Copyright (C) 1999-2006, Digium, Inc.
7 #
8 # Mark Spencer <markster@digium.com>
9 #
10 # Edited By Belgarath <> Aug 28 2004
11 # Added bare bones ultrasparc-linux support.
12 #
13 # This program is free software, distributed under the terms of
14 # the GNU General Public License
15 #
16
17 MODS:=$(patsubst %.c,%.so,$(wildcard chan_*.c))
18
19 # This should be renamed :)
20 MODS:=$(filter-out chan_misdn_config.so,$(MODS))
21
22 ifeq (${OSARCH},OpenBSD)
23   PTLIB=-lpt_OpenBSD_x86_r
24   H323LIB=-lh323_OpenBSD_x86_r
25 endif
26
27 ifeq (${OSARCH},Linux)
28   PTLIB=-lpt_linux_x86_r
29   H323LIB=-lh323_linux_x86_r
30   CHANH323LIB=-ldl
31 endif
32
33 ifeq (${OSARCH},CYGWIN)
34   CYGSOLINK=-Wl,--out-implib=lib$@.a -Wl,--export-all-symbols
35   CYGSOLIB=-L.. -L. -L../res -lasterisk.dll -lres_features.so
36   CYG_CHAN_AGENT=-lres_monitor.so
37 endif
38
39 ifeq ($(PROC),sparc64)
40   PROC=ultrasparc
41   CFLAGS += -mtune=$(PROC) -O3 -pipe -fomit-frame-pointer -mcpu=v8
42 endif
43
44 ifeq (${OSARCH},FreeBSD)
45   PTLIB=-lpt_FreeBSD_x86_r
46   H323LIB=-lh323_FreeBSD_x86_r
47   CHANH323LIB=-pthread
48 endif
49
50 ifeq (${OSARCH},NetBSD)
51   PTLIB=-lpt_NetBSD_x86_r
52   H323LIB=-lh323_NetBSD_x86_r
53 endif
54
55 ifeq (${OSARCH},Darwin)
56   MODS:=$(filter-out chan_oss.so,$(MODS))
57 endif
58
59 ifeq (${OSARCH},SunOS)
60   MODS:=$(filter-out chan_oss.so,$(MODS))
61   SOLINK+=-lrt
62 endif
63
64 ifeq (${OSARCH},CYGWIN)
65   MODS:=$(filter-out chan_oss.so,$(MODS))
66 endif
67
68 ifeq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/linux/ixjuser.h $(CROSS_COMPILE_TARGET)/usr/local/include/ixjuser.h),)
69   MODS:=$(filter-out chan_phone.so,$(MODS))
70 endif
71
72 ifeq (${WITH_SMDI},1)
73 CFLAGS+=-DWITH_SMDI
74 endif
75
76 ifeq ($(wildcard h323/libchanh323.a),)
77   MODS:=$(filter-out chan_h323.so,$(MODS))
78 endif
79
80 ifeq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/mISDNuser/mISDNlib.h),)
81   MODS:=$(filter-out chan_misdn.so,$(MODS))
82 else
83   CFLAGS+=-Imisdn 
84 endif
85
86 CFLAGS+=-Wno-missing-prototypes -Wno-missing-declarations
87
88 ifeq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/alsa/asoundlib.h),)
89   MODS:=$(filter-out chan_alsa.so,$(MODS))
90 endif
91
92 ifndef WITHOUT_PRI
93 ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/lib/libpri.so.1 $(CROSS_COMPILE_TARGET)/usr/local/lib/libpri.so.1),)
94   CFLAGS+=-DZAPATA_PRI
95   ZAPPRI=-lpri
96 endif
97 endif # WITHOUT_PRI
98
99 ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/lib/libmfcr2.so.1 $(CROSS_COMPILE_TARGET)/usr/local/lib/libmfcr2.so.1),)
100   CFLAGS+=-DZAPATA_R2
101   ZAPR2=-lmfcr2
102 endif
103
104 ALSA_SRC=chan_alsa.c
105
106 ifneq ($(wildcard alsa-monitor.h),)
107   CFLAGS+=-DALSA_MONITOR
108   ALSA_SRC+=alsa-monitor.h
109 endif
110
111 ifndef WITHOUT_ZAPTEL
112 ZAPAVAIL:=$(wildcard $(CROSS_COMPILE_TARGET)/usr/include/linux/zaptel.h $(CROSS_COMPILE_TARGET)/usr/local/include/zaptel.h)
113 endif
114
115 ifeq (${ZAPAVAIL},)
116   MODS:=$(filter-out chan_zap.so,$(MODS))
117 else
118   ifeq (${OSARCH},NetBSD)
119     SOLINK+=-L$(CROSS_COMPILE_TARGET)/usr/pkg/lib
120   endif
121   ifeq (${OSARCH},FreeBSD)
122     SOLINK+=-L$(CROSS_COMPILE_TARGET)/usr/local/lib
123   endif
124   CFLAGS+=-DIAX_TRUNKING
125 endif
126
127 ifeq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/vpbapi.h),)
128   MODS:=$(filter-out chan_vpb.so,$(MODS))
129 else
130   CFLAGS+=-DLINUX
131 endif
132
133 CFLAGS+=-DCRYPTO
134
135 ifneq ($(OSARCH),CYGWIN)
136   CFLAGS+=-fPIC
137 endif
138
139 CFLAGS+=#-DVOFRDUMPER
140
141 ZAPDIR=/usr/lib
142
143 ifeq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/nbs.h),)
144   MODS:=$(filter-out chan_nbs.so,$(MODS))
145 endif
146
147 ifndef OPENH323DIR
148   OPENH323DIR=$(HOME)/openh323
149 endif
150
151 ifndef PWLIBDIR
152   PWLIBDIR=$(HOME)/pwlib
153 endif
154
155 all: depend $(MODS) 
156
157 clean:
158         rm -f *.so *.o .depend
159         rm -f busy.h ringtone.h gentone gentone-ulaw
160
161 %.so : %.o
162         $(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB} ${LIBS}
163
164 ifneq ($(wildcard .depend),)
165   include .depend
166 endif
167
168 ifneq ($(wildcard h323/Makefile.ast),)
169   include h323/Makefile.ast
170 endif
171
172 ifneq ($(wildcard misdn/Makefile.ast),)
173   include misdn/Makefile.ast
174 endif
175
176 gentone: gentone.c
177         $(HOST_CC) -o gentone gentone.c -lm
178
179 gentone-ulaw: gentone-ulaw.c
180         $(HOST_CC) -o gentone-ulaw gentone-ulaw.c -lm
181
182 busy.h: gentone
183         ./gentone busy 480 620
184
185 ringtone.h: gentone
186         ./gentone ringtone 440 480
187
188 chan_oss.o: chan_oss.c busy.h ringtone.h
189
190 chan_alsa.o: chan_alsa.c busy.h ringtone.h
191
192 ifeq (${OSARCH},OpenBSD)
193 chan_oss.so: chan_oss.o
194         $(CC) $(SOLINK) -o $@ chan_oss.o -lossaudio
195 endif
196 ifeq (${OSARCH},NetBSD)
197 chan_oss.so: chan_oss.o
198         $(CC) $(SOLINK) -o $@ chan_oss.o -lossaudio
199 endif
200
201 chan_iax2.so: chan_iax2.o iax2-parser.o iax2-provision.o
202         $(CC) $(SOLINK) -o $@ ${CYGSOLINK} chan_iax2.o iax2-parser.o iax2-provision.o ${CYGSOLIB}
203
204 chan_zap.o: chan_zap.c
205         $(CC) -c $(CFLAGS) -o chan_zap.o chan_zap.c
206
207 chan_zap.so: chan_zap.o
208         $(CC) $(SOLINK) -o $@ $<  $(ZAPPRI) $(ZAPR2) -ltonezone
209
210 chan_sip.so: chan_sip.o
211         $(CC) $(SOLINK) -o $@ ${CYGSOLINK} chan_sip.o ${CYGSOLIB}
212
213 chan_agent.so: chan_agent.o
214         $(CC) $(SOLINK) -o $@ ${CYGSOLINK} chan_agent.o ${CYGSOLIB} ${CYG_CHAN_AGENT}
215
216 chan_alsa.o: $(ALSA_SRC)
217
218 chan_alsa.so: chan_alsa.o
219         $(CC) $(SOLINK) -o $@ $< -lasound -lm -ldl
220
221 chan_nbs.so: chan_nbs.o
222         $(CC) $(SOLINK) -o $@ $< -lnbs
223
224 chan_vpb.o: chan_vpb.c
225         $(CXX) -c $(CFLAGS) -o $@ chan_vpb.c
226
227 chan_vpb.so: chan_vpb.o
228          $(CXX) $(SOLINK) -o $@ $< -lvpb -lpthread -lm -ldl
229
230 ifeq (${OSARCH},Linux)
231 chan_h323.so: chan_h323.o h323/libchanh323.a h323/Makefile.ast
232         $(CC) $(SOLINK) $(H323LDFLAGS) -o $@ $< h323/libchanh323.a $(H323LDLIBS) -lstdc++
233 else
234 chan_h323.so: chan_h323.o h323/libchanh323.a
235         $(CC) $(SOLINK) -o $@ $< h323/libchanh323.a $(CHANH323LIB) -L$(PWLIBDIR)/lib $(PTLIB) -L$(OPENH323DIR)/lib $(H323LIB) -L/usr/lib -lcrypto -lssl -lexpat
236 endif
237
238 misdn/chan_misdn_lib.a:
239         make -C misdn
240
241 chan_misdn.so: chan_misdn.o chan_misdn_config.o misdn/chan_misdn_lib.a
242         $(CC) -shared -Xlinker -x -L/usr/lib -o $@ $^ -lisdnnet -lmISDN
243
244 chan_misdn.o: chan_misdn.c
245         $(CC) $(CFLAGS) -DCHAN_MISDN_VERSION=\"0.3.0\" -c $< -o $@
246
247 chan_misdn_config.o: chan_misdn_config.c misdn/chan_misdn_config.h
248         $(CC) $(CFLAGS) -DCHAN_MISDN_VERSION=\"0.3.0\" -c $< -o $@
249
250
251 install: all
252         for x in $(MODS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
253
254 uninstall:
255
256 depend: .depend
257
258 .depend:
259         ../build_tools/mkdep $(CFLAGS) `ls *.c`
260
261 env:
262         env