5af2f3c02174047a9e22649fa3e4e2d0c420321d
[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 # This program is free software, distributed under the terms of
9 # the GNU General Public License
10 #
11
12 ifneq ($(wildcard ../menuselect.makeopts),)
13   include ../menuselect.makeopts
14   include ../menuselect.makedeps
15 endif
16
17 SELECTED_MODS:=$(filter-out $(MENUSELECT_CHANNELS),$(patsubst %.c,%,$(wildcard chan_*.c)))
18
19 ifeq ($(OSARCH),OpenBSD)
20   PTLIB=-lpt_OpenBSD_x86_r
21   H323LIB=-lh323_OpenBSD_x86_r
22 endif
23
24 ifeq ($(OSARCH),Linux)
25   PTLIB=-lpt_linux_x86_r
26   H323LIB=-lh323_linux_x86_r
27   CHANH323LIB=-ldl
28 endif
29
30 ifeq ($(OSARCH),FreeBSD)
31   PTLIB=-lpt_FreeBSD_x86_r
32   H323LIB=-lh323_FreeBSD_x86_r
33   CHANH323LIB=-pthread
34 endif
35
36 ifeq ($(OSARCH),NetBSD)
37   PTLIB=-lpt_NetBSD_x86_r
38   H323LIB=-lh323_NetBSD_x86_r
39 endif
40
41 ifeq ($(wildcard h323/libchanh323.a),)
42   SELECTED_MODS:=$(filter-out chan_h323,$(SELECTED_MODS))
43 endif
44
45 ifeq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/mISDNuser/mISDNlib.h),)
46   SELECTED_MODS:=$(filter-out chan_misdn,$(SELECTED_MODS))
47 else
48   CFLAGS+=-Imisdn 
49 endif
50
51 ifndef OPENH323DIR
52   OPENH323DIR=$(HOME)/openh323
53 endif
54
55 ifndef PWLIBDIR
56   PWLIBDIR=$(HOME)/pwlib
57 endif
58
59 MENUSELECT_OPTS_chan_misdn+=CHAN_MISDN_VERSION=\"0.3.0\"
60
61 all: _all
62
63 include ../Makefile.rules
64
65 clean::
66         rm -f busy.h ringtone.h gentone gentone-ulaw
67
68 ifneq ($(wildcard h323/Makefile.ast),)
69   include h323/Makefile.ast
70 endif
71
72 ifneq ($(wildcard misdn/Makefile.ast),)
73   include misdn/Makefile.ast
74 endif
75
76 gentone gentone-ulaw: %: %.c
77         $(HOST_CC) -o $@ $< -lm
78
79 busy.h: gentone
80         ./gentone busy 480 620
81
82 ringtone.h: gentone
83         ./gentone ringtone 440 480
84
85 chan_oss.o: chan_oss.c busy.h ringtone.h
86
87 chan_iax2.so: iax2-parser.o iax2-provision.o
88
89 chan_alsa.o: busy.h ringtone.h
90
91 chan_vpb.o: chan_vpb.c
92         $(CXX) -c $(CFLAGS:-Werror=) -o $@ chan_vpb.c
93
94 chan_vpb.so: chan_vpb.o
95          $(CXX) $(SOLINK) -o $@ $< -lvpb -lpthread -lm -ldl
96
97 ifeq ($(OSARCH),Linux)
98 chan_h323.so: chan_h323.o h323/libchanh323.a h323/Makefile.ast
99         $(CC) $(SOLINK) $(H323LDFLAGS) -o $@ $< h323/libchanh323.a $(H323LDLIBS) -lstdc++
100 else
101 chan_h323.so: chan_h323.o h323/libchanh323.a
102         $(CC) $(SOLINK) -o $@ $< h323/libchanh323.a $(CHANH323LIB) -L$(PWLIBDIR)/lib $(PTLIB) -L$(OPENH323DIR)/lib $(H323LIB) -L/usr/lib -lcrypto -lssl -lexpat
103 endif
104
105 misdn/chan_misdn_lib.a:
106         make -C misdn
107
108 chan_misdn.so: misdn_config.o misdn/chan_misdn_lib.a
109         $(CC) $(SOLINK) -o $@ $^ -lisdnnet -lmISDN