replace a couple of bare 'make' with $(MAKE)
[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 $(ASTTOPDIR)/menuselect.makeopts),)
13   include ../menuselect.makeopts
14   include ../menuselect.makedeps
15 endif
16
17 C_MODS:=$(filter-out $(MENUSELECT_CHANNELS),$(patsubst %.c,%,$(wildcard chan_*.c)))
18 CC_MODS:=$(filter-out $(MENUSELECT_CHANNELS),$(patsubst %.cc,%,$(wildcard chan_*.cc)))
19
20 ifeq ($(OSARCH),OpenBSD)
21   PTLIB=-lpt_OpenBSD_x86_r
22   H323LIB=-lh323_OpenBSD_x86_r
23 endif
24
25 ifeq ($(OSARCH),linux-gnu)
26   PTLIB=-lpt_linux_x86_r
27   H323LIB=-lh323_linux_x86_r
28   CHANH323LIB=-ldl
29 endif
30
31 ifeq ($(OSARCH),FreeBSD)
32   PTLIB=-lpt_FreeBSD_x86_r
33   H323LIB=-lh323_FreeBSD_x86_r
34   CHANH323LIB=-pthread
35 endif
36
37 ifeq ($(OSARCH),NetBSD)
38   PTLIB=-lpt_NetBSD_x86_r
39   H323LIB=-lh323_NetBSD_x86_r
40 endif
41
42 ifeq ($(wildcard h323/libchanh323.a),)
43   CC_MODS:=$(filter-out chan_h323,$(CC_MODS))
44 endif
45
46 ifndef OPENH323DIR
47   OPENH323DIR=$(HOME)/openh323
48 endif
49
50 ifndef PWLIBDIR
51   PWLIBDIR=$(HOME)/pwlib
52 endif
53
54 LOADABLE_MODS:=$(C_MODS) $(CC_MODS)
55
56 ifneq ($(findstring channels,$(MENUSELECT_EMBED)),)
57   EMBEDDED_MODS:=$(LOADABLE_MODS)
58   LOADABLE_MODS:=
59 endif
60
61 all: _all
62
63 include $(ASTTOPDIR)/Makefile.moddir_rules
64
65 clean::
66         rm -f busy.h ringtone.h gentone
67         $(MAKE) -C misdn clean
68
69 ifneq ($(wildcard $(PWD)/Makefile.ast),)
70   include $(PWD)/Makefile.ast
71 endif
72
73 $(eval $(call ast_make_final_host,gentone,gentone.c))
74 gentone: LIBS+=-lm
75
76 busy.h: gentone
77         ./gentone busy 480 620
78
79 ringtone.h: gentone
80         ./gentone ringtone 440 480
81
82 chan_oss.o: busy.h ringtone.h
83
84 $(chan_iax2): iax2-parser.o iax2-provision.o
85
86 chan_alsa.o: busy.h ringtone.h
87
88 ifeq ($(OSARCH),linux-gnu)
89 chan_h323.so: chan_h323.o h323_module_interface.so h323/libchanh323.a h323/Makefile.ast
90         $(CC) $(SOLINK) $(H323LDFLAGS) -o $@ $^ h323/libchanh323.a $(H323LDLIBS) -lstdc++
91 else
92 chan_h323.so: chan_h323.o h323_module_interface.so h323/libchanh323.a
93         $(CC) $(SOLINK) -o $@ $^ h323/libchanh323.a $(CHANH323LIB) -L$(PWLIBDIR)/lib $(PTLIB) -L$(OPENH323DIR)/lib $(H323LIB) -L/usr/lib -lcrypto -lssl -lexpat
94 endif
95
96 chan_misdn.o: CFLAGS+=-Imisdn -DCHAN_MISDN_VERSION=\"0.3.0\" 
97
98 misdn_config.o: CFLAGS+=-Imisdn -DCHAN_MISDN_VERSION=\"0.3.0\" 
99
100 $(chan_misdn): chan_misdn.o misdn_config.o misdn/isdn_lib.o misdn/isdn_msg_parser.o