made callerid handling work in call from asterisk
[lcr.git] / Makefile
1 #*****************************************************************************\
2 #*                                                                           **
3 #* Linux Call Router                                                         **
4 #*                                                                           **
5 #*---------------------------------------------------------------------------**
6 #* Copyright: Andreas Eversberg                                              **
7 #*                                                                           **
8 #* Makefile                                                                  **
9 #*                                                                           **
10 #*****************************************************************************/ 
11
12 WITH-CRYPTO = 42 # comment this out, if no libcrypto should be used
13 WITH-ASTERISK = 42 # comment this out, if you don't require built-in Asterisk channel driver.
14 # note: check your location and the names of libraries.
15
16 # select location to install
17 INSTALL_BIN = /usr/local/bin
18 INSTALL_CHAN = /usr/lib/asterisk/modules
19 INSTALL_DATA = /usr/local/lcr
20
21 LIBS += -lmisdn -lpthread
22 CHANLIBS += -lmISDN
23
24 # give location of the curses or ncurses library
25 CURSES = -lncurses
26
27 CC = gcc
28 PP = g++
29 WIZZARD = ./wizzard
30 LCR = ./lcr
31 LCRADMIN = ./lcradmin
32 CFLAGS_LCRADMIN = -DINSTALL_DATA=\"$(INSTALL_DATA)\"
33 ifdef WITH-ASTERISK
34 CHAN_LCR = ./chan_lcr.so
35 endif
36 LCRWATCH = ./lcrwatch
37 GEN = ./gentones
38 GENW = ./genwave
39 GENRC = ./genrc
40 GENEXT = ./genextension
41 CFLAGS = -Wall -g -DINSTALL_DATA=\"$(INSTALL_DATA)\"
42 CFLAGS += -I/usr/include/mISDNuser
43 #CFLAGS = -Wall -g -DINSTALL_DATA=\"$(INSTALL_DATA)\"
44 ifdef WITH-CRYPTO
45 CFLAGS += -DCRYPTO
46 endif
47 ifdef WITH-CRYPTO
48 LIBDIR += -L/usr/local/ssl/lib
49 CFLAGS += -I/usr/local/ssl/include
50 #LIBS += -lcrypto
51 LIBS += /usr/local/ssl/lib/libcrypto.a
52 endif
53
54 #all:
55 #       @echo Note that this version is a beta release. It is only for testing purpose.
56 #       @echo Please report any bug. To compile use \"make beta\".
57 #       @exit
58
59 all: $(CHAN_LCR) $(LCR) $(LCRADMIN) $(GEN) $(GENW) $(GENRC) $(GENEXT)
60         @sh -c 'grep -n strcpy *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use strcpy, use makro instead." ; exit -1 ; fi'
61         @sh -c 'grep -n strncpy *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use strncpy, use makro instead." ; exit -1 ; fi'
62         @sh -c 'grep -n strcat *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use strcat, use makro instead." ; exit -1 ; fi'
63         @sh -c 'grep -n strncat *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use strncat, use makro instead." ; exit -1 ; fi'
64         @sh -c 'grep -n sprintf *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use sprintf, use makro instead." ; exit -1 ; fi'
65         @sh -c 'grep -n snprintf *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use snprintf, use makro instead." ; exit -1 ; fi'
66         @echo "All LCR binaries done"
67         @sync
68         @exit
69
70 main.o: main.c *.h Makefile
71         $(PP) -c $(CFLAGS) main.c -o main.o
72
73 message.o: message.c *.h Makefile
74         $(PP) -c $(CFLAGS) message.c -o message.o
75
76 options.o: options.c *.h Makefile
77         $(CC) -c $(CFLAGS) options.c -o options.o
78 options.ooo: options.c *.h Makefile
79         $(PP) -c $(CFLAGS) options.c -o options.ooo
80
81 interface.o: interface.c *.h Makefile
82         $(PP) -c $(CFLAGS) interface.c -o interface.o
83
84 extension.o: extension.c *.h Makefile
85         $(PP) -c $(CFLAGS) extension.c -o extension.o
86
87 route.o: route.c *.h Makefile
88         $(PP) -c $(CFLAGS) route.c -o route.o
89
90 port.o: port.cpp *.h Makefile
91         $(PP) -c $(CFLAGS) port.cpp -o port.o
92
93 mISDN.o: mISDN.cpp *.h Makefile
94         $(PP) -c $(CFLAGS) mISDN.cpp -o mISDN.o
95
96 dss1.o: dss1.cpp ie.cpp *.h Makefile
97         $(PP) -c $(CFLAGS) dss1.cpp -o dss1.o
98
99 #knock.o: knock.cpp *.h Makefile
100 #       $(PP) -c $(CFLAGS) knock.cpp -o knock.o
101 #
102 vbox.o: vbox.cpp *.h Makefile
103         $(PP) -c $(CFLAGS) vbox.cpp -o vbox.o
104
105 mail.o: mail.c *.h Makefile
106         $(PP) -c $(CFLAGS) mail.c -o mail.o
107
108 action.o: action.cpp *.h Makefile
109         $(PP) -c $(CFLAGS) action.cpp -o action.o
110
111 action_vbox.o: action_vbox.cpp *.h Makefile
112         $(PP) -c $(CFLAGS) action_vbox.cpp -o action_vbox.o
113
114 action_efi.o: action_efi.cpp *.h Makefile
115         $(PP) -c $(CFLAGS) action_efi.cpp -o action_efi.o
116
117 endpoint.o: endpoint.cpp *.h Makefile
118         $(PP) -c $(CFLAGS) endpoint.cpp -o endpoint.o
119
120 endpointapp.o: endpointapp.cpp *.h Makefile
121         $(PP) -c $(CFLAGS) endpointapp.cpp -o endpointapp.o
122
123 apppbx.o: apppbx.cpp *.h Makefile
124         $(PP) -c $(CFLAGS) apppbx.cpp -o apppbx.o
125
126 callerid.o: callerid.c *.h Makefile
127         $(CC) -c $(CFLAGS) callerid.c -o callerid.o
128 callerid.ooo: callerid.c *.h Makefile
129         $(PP) -c $(CFLAGS) callerid.c -o callerid.ooo
130
131 join.o: join.cpp *.h Makefile
132         $(PP) -c $(CFLAGS) join.cpp -o join.o
133
134 joinpbx.o: joinpbx.cpp *.h Makefile
135         $(PP) -c $(CFLAGS) joinpbx.cpp -o joinpbx.o
136
137 joinremote.o: joinremote.cpp *.h Makefile
138         $(PP) -c $(CFLAGS) joinremote.cpp -o joinremote.o
139
140 cause.o: cause.c *.h Makefile
141         $(PP) -c $(CFLAGS) cause.c -o cause.o
142
143 alawulaw.o: alawulaw.c *.h Makefile
144         $(PP) -c $(CFLAGS) alawulaw.c -o alawulaw.o
145
146 tones.o: tones.c *.h Makefile
147         $(PP) -c $(CFLAGS) tones.c -o tones.o
148
149 crypt.o: crypt.cpp *.h Makefile
150         $(PP) -c $(CFLAGS) crypt.cpp -o crypt.o
151
152 genext.o: genext.c *.h Makefile
153         $(PP) -c $(CFLAGS) genext.c -o genext.o
154
155 socket_server.o: socket_server.c *.h Makefile
156         $(PP) -c $(CFLAGS) socket_server.c -o socket_server.o
157
158 trace.o: trace.c *.h Makefile
159         $(PP) -c $(CFLAGS) trace.c -o trace.o
160
161 chan_lcr.o: chan_lcr.c *.h Makefile
162         $(CC) -D_GNU_SOURCE -c $(CFLAGS) chan_lcr.c -o chan_lcr.o
163
164 bchannel.o: bchannel.c *.h Makefile
165         $(CC) -D_GNU_SOURCE -c $(CFLAGS) bchannel.c -o bchannel.o
166
167
168 #$(WIZZARD): wizzard.c Makefile
169 #       $(PP) $(LIBDIR) $(CFLAGS) -lm wizzard.c \
170 #       -o $(WIZZARD) 
171
172 $(LCR): main.o \
173         options.ooo \
174         interface.o \
175         extension.o \
176         cause.o \
177         alawulaw.o \
178         tones.o \
179         message.o \
180         route.o \
181         port.o \
182         mISDN.o \
183         dss1.o \
184         vbox.o \
185         endpoint.o \
186         endpointapp.o \
187         apppbx.o \
188         callerid.ooo \
189         crypt.o \
190         action.o \
191         action_vbox.o \
192         action_efi.o \
193         mail.o \
194         join.o \
195         joinpbx.o \
196         joinremote.o \
197         socket_server.o \
198         trace.o
199         $(PP) $(LIBDIR) \
200         main.o \
201         options.ooo \
202         interface.o \
203         extension.o \
204         cause.o \
205         alawulaw.o \
206         tones.o \
207         message.o \
208         route.o \
209         port.o \
210         mISDN.o \
211         dss1.o \
212         vbox.o \
213         endpoint.o \
214         endpointapp.o \
215         apppbx.o \
216         callerid.ooo \
217         crypt.o \
218         action.o \
219         action_vbox.o \
220         action_efi.o \
221         mail.o \
222         join.o \
223         joinpbx.o \
224         joinremote.o \
225         socket_server.o \
226         trace.o \
227         $(LIBS) -o $(LCR) 
228
229 $(LCRADMIN): lcradmin.c cause.c *.h Makefile
230         $(PP) $(LIBDIR) $(CFLAGS_LCRADMIN) $(CURSES) -lm lcradmin.c cause.c \
231         -o $(LCRADMIN) 
232
233 $(CHAN_LCR): chan_lcr.o bchannel.o callerid.o options.o *.h Makefile
234         $(CC) -shared -Xlinker -x $(LDFLAGS) -o $(CHAN_LCR) chan_lcr.o bchannel.o callerid.o options.o
235
236
237 $(LCRWATCH): watch.c *.h Makefile
238         $(PP) $(LIBDIR) $(CFLAGS) -lm watch.c \
239         -o $(LCRWATCH) 
240
241 $(GEN): gentones.c *.h Makefile 
242         $(PP) $(LIBDIR) $(CFLAGS) -lm gentones.c \
243         -o $(GEN) 
244
245 $(GENW):genwave.c *.h Makefile 
246         $(PP) $(LIBDIR) $(CFLAGS) -lm genwave.c \
247         -o $(GENW) 
248
249 $(GENRC): genrc.c *.h Makefile
250         $(PP) $(LIBDIR) $(CFLAGS) -lm genrc.c \
251         -o $(GENRC) 
252
253 $(GENEXT): options.ooo extension.o genext.o
254         $(PP) $(CFLAGS) options.ooo extension.o genext.o -o $(GENEXT) 
255
256 #install:
257 #       @echo Remember, this is a beta release. To overwrite your current installed
258 #       @echo version, use \"make beta_install\".
259 #       @exit
260
261 install:
262         make
263         -killall -9 -w -q lcr # the following error must be ignored
264         cp $(LCR) $(INSTALL_BIN)
265         cp $(LCRADMIN) $(INSTALL_BIN)
266 ifdef WITH-ASTERISK
267         cp $(CHAN_LCR) $(INSTALL_CHAN)
268 endif
269 #       cp $(LCRWATCH) $(INSTALL_BIN)
270         cp $(GEN) $(INSTALL_BIN)
271         cp $(GENW) $(INSTALL_BIN)
272         cp $(GENRC) $(INSTALL_BIN)
273         cp $(GENEXT) $(INSTALL_BIN)
274         mkdir -p $(INSTALL_DATA)
275         mkdir -p $(INSTALL_DATA)/extensions
276         @if test -a $(INSTALL_DATA)/options.conf ; then \
277                 echo "NOTE: options.conf already exists, not changed." ; else \
278                 cp -v default/options.conf $(INSTALL_DATA) ; fi
279         @if test -a $(INSTALL_DATA)/interface.conf ; then \
280                 echo "NOTE: interface.conf already exists, not changed." ; else \
281                 cp -v default/interface.conf $(INSTALL_DATA) ; fi
282         @if test -a $(INSTALL_DATA)/routing.conf ; then \
283                 echo "NOTE: routing.conf already exists, not changed." ; else \
284                 cp -v default/routing.conf $(INSTALL_DATA) ; fi
285         @if test -a $(INSTALL_DATA)/numbering_int.conf ; then \
286                 echo "NOTE: numbering_int.conf is obsolete, please use routing." ; fi
287         @if test -a $(INSTALL_DATA)/numbering_ext.conf ; then \
288                 echo "NOTE: numbering_ext.conf is obsolete, please use routing." ; fi
289         @if test -a $(INSTALL_DATA)/directory.list ; then \
290                 echo "NOTE: directory.list already exists, not changed." ; else \
291                 cp -v default/directory.list $(INSTALL_DATA) ; fi
292         @if test -a $(INSTALL_DATA)/tones_american ; then \
293                 echo "NOTE: american tones already exists, not overwritten." ; else \
294                 cp -a tones_american $(INSTALL_DATA) ; fi
295         @if test -a $(INSTALL_DATA)/tones_german ; then \
296                 echo "NOTE: german tones already exists, not overwritten." ; else \
297                 cp -a tones_german $(INSTALL_DATA) ; fi
298         @if test -a $(INSTALL_DATA)/vbox_german ; then \
299                 echo "NOTE: german vbox tones already exists, not overwritten." ; else \
300                 cp -a vbox_german $(INSTALL_DATA) ; fi
301         @if test -a $(INSTALL_DATA)/vbox_english ; then \
302                 echo "NOTE: english vbox tones already exists, not overwritten." ; else \
303                 cp -a vbox_english $(INSTALL_DATA) ; fi
304         @if test -a $(INSTALL_DATA)/tones_efi ; then \
305                 echo "NOTE: special efi tones already exists, not overwritten." ; else \
306                 cp -a tones_efi $(INSTALL_DATA) ; fi
307         sync
308
309 clean:
310         touch *
311         rm -f $(LCR) $(LCRADMIN) $(CHAN_LCR) $(LCRWATCH) $(GEN) $(GENW) $(GENRC) $(GENEXT)
312         rm -f *.o *.ooo
313         rm -f .*.c.sw* .*.cpp.sw* .*.h.sw*
314         rm -f bla nohup.out a.out
315         rm -f debug*.log
316
317 tar:
318         make clean
319         cd .. &&  tar --exclude=.git -cvzf lcr_`date +%Y%m%d`.tar.gz lcr
320
321 start: $(LCR)
322         sync
323         -killall -9 -w -q lcr # the following error must be ignored
324         $(LCR) start
325
326 s: $(LCR)
327         sync
328         -killall -9 -w -q lcr # the following error must be ignored
329         $(LCR) start
330
331 fork: $(LCR)
332         sync
333         -killall -9 -w -q lcr # the following error must be ignored
334         $(LCR) fork
335
336 snapshot: clean
337         DIR=lcr-$$(date +"20%y_%m_%d") ; \
338         mkdir -p /tmp/$$DIR ; \
339         cp -a * /tmp/$$DIR ; \
340         cd /tmp/; \
341         tar czf $$DIR.tar.gz $$DIR
342
343