1 #*****************************************************************************\
3 #* Linux Call Router **
5 #*---------------------------------------------------------------------------**
6 #* Copyright: Andreas Eversberg **
10 #*****************************************************************************/
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.
16 # select location to install
17 INSTALL_BIN = /usr/local/bin
18 INSTALL_CHAN = /usr/lib/asterisk/modules
19 INSTALL_DATA = /usr/local/lcr
21 LIBS += -lmisdn -lpthread
24 # give location of the curses or ncurses library
32 CFLAGS_LCRADMIN = -DINSTALL_DATA=\"$(INSTALL_DATA)\"
34 CHAN_LCR = ./chan_lcr.so
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)\"
48 LIBDIR += -L/usr/local/ssl/lib
49 CFLAGS += -I/usr/local/ssl/include
51 LIBS += /usr/local/ssl/lib/libcrypto.a
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\".
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"
70 main.o: main.c *.h Makefile
71 $(PP) -c $(CFLAGS) main.c -o main.o
73 message.o: message.c *.h Makefile
74 $(PP) -c $(CFLAGS) message.c -o message.o
76 options.o: options.c *.h Makefile
77 $(PP) -c $(CFLAGS) options.c -o options.o
79 interface.o: interface.c *.h Makefile
80 $(PP) -c $(CFLAGS) interface.c -o interface.o
82 extension.o: extension.c *.h Makefile
83 $(PP) -c $(CFLAGS) extension.c -o extension.o
85 route.o: route.c *.h Makefile
86 $(PP) -c $(CFLAGS) route.c -o route.o
88 port.o: port.cpp *.h Makefile
89 $(PP) -c $(CFLAGS) port.cpp -o port.o
91 mISDN.o: mISDN.cpp *.h Makefile
92 $(PP) -c $(CFLAGS) mISDN.cpp -o mISDN.o
94 dss1.o: dss1.cpp ie.cpp *.h Makefile
95 $(PP) -c $(CFLAGS) dss1.cpp -o dss1.o
97 #knock.o: knock.cpp *.h Makefile
98 # $(PP) -c $(CFLAGS) knock.cpp -o knock.o
100 vbox.o: vbox.cpp *.h Makefile
101 $(PP) -c $(CFLAGS) vbox.cpp -o vbox.o
103 mail.o: mail.c *.h Makefile
104 $(PP) -c $(CFLAGS) mail.c -o mail.o
106 action.o: action.cpp *.h Makefile
107 $(PP) -c $(CFLAGS) action.cpp -o action.o
109 action_vbox.o: action_vbox.cpp *.h Makefile
110 $(PP) -c $(CFLAGS) action_vbox.cpp -o action_vbox.o
112 action_efi.o: action_efi.cpp *.h Makefile
113 $(PP) -c $(CFLAGS) action_efi.cpp -o action_efi.o
115 endpoint.o: endpoint.cpp *.h Makefile
116 $(PP) -c $(CFLAGS) endpoint.cpp -o endpoint.o
118 endpointapp.o: endpointapp.cpp *.h Makefile
119 $(PP) -c $(CFLAGS) endpointapp.cpp -o endpointapp.o
121 apppbx.o: apppbx.cpp *.h Makefile
122 $(PP) -c $(CFLAGS) apppbx.cpp -o apppbx.o
124 callerid.o: callerid.c *.h Makefile
125 $(CC) -c $(CFLAGS) callerid.c -o callerid.o
126 callerid.ooo: callerid.c *.h Makefile
127 $(PP) -c $(CFLAGS) callerid.c -o callerid.ooo
129 join.o: join.cpp *.h Makefile
130 $(PP) -c $(CFLAGS) join.cpp -o join.o
132 joinpbx.o: joinpbx.cpp *.h Makefile
133 $(PP) -c $(CFLAGS) joinpbx.cpp -o joinpbx.o
135 joinremote.o: joinremote.cpp *.h Makefile
136 $(PP) -c $(CFLAGS) joinremote.cpp -o joinremote.o
138 cause.o: cause.c *.h Makefile
139 $(PP) -c $(CFLAGS) cause.c -o cause.o
141 alawulaw.o: alawulaw.c *.h Makefile
142 $(PP) -c $(CFLAGS) alawulaw.c -o alawulaw.o
144 tones.o: tones.c *.h Makefile
145 $(PP) -c $(CFLAGS) tones.c -o tones.o
147 crypt.o: crypt.cpp *.h Makefile
148 $(PP) -c $(CFLAGS) crypt.cpp -o crypt.o
150 genext.o: genext.c *.h Makefile
151 $(PP) -c $(CFLAGS) genext.c -o genext.o
153 socket_server.o: socket_server.c *.h Makefile
154 $(PP) -c $(CFLAGS) socket_server.c -o socket_server.o
156 trace.o: trace.c *.h Makefile
157 $(PP) -c $(CFLAGS) trace.c -o trace.o
159 chan_lcr.o: chan_lcr.c *.h Makefile
160 $(CC) -D_GNU_SOURCE -c $(CFLAGS) chan_lcr.c -o chan_lcr.o
162 bchannel.o: bchannel.c *.h Makefile
163 $(CC) -D_GNU_SOURCE -c $(CFLAGS) bchannel.c -o bchannel.o
166 #$(WIZZARD): wizzard.c Makefile
167 # $(PP) $(LIBDIR) $(CFLAGS) -lm wizzard.c \
227 $(LCRADMIN): lcradmin.c cause.c *.h Makefile
228 $(PP) $(LIBDIR) $(CFLAGS_LCRADMIN) $(CURSES) -lm lcradmin.c cause.c \
231 $(CHAN_LCR): chan_lcr.o bchannel.o callerid.o *.h Makefile
232 $(CC) -shared -Xlinker -x $(LDFLAGS) -o $(CHAN_LCR) chan_lcr.o bchannel.o callerid.o
235 $(LCRWATCH): watch.c *.h Makefile
236 $(PP) $(LIBDIR) $(CFLAGS) -lm watch.c \
239 $(GEN): gentones.c *.h Makefile
240 $(PP) $(LIBDIR) $(CFLAGS) -lm gentones.c \
243 $(GENW):genwave.c *.h Makefile
244 $(PP) $(LIBDIR) $(CFLAGS) -lm genwave.c \
247 $(GENRC): genrc.c *.h Makefile
248 $(PP) $(LIBDIR) $(CFLAGS) -lm genrc.c \
251 $(GENEXT): options.o extension.o genext.o
252 $(PP) $(CFLAGS) options.o extension.o genext.o -o $(GENEXT)
255 # @echo Remember, this is a beta release. To overwrite your current installed
256 # @echo version, use \"make beta_install\".
261 -killall -9 -w -q lcr # the following error must be ignored
262 cp $(LCR) $(INSTALL_BIN)
263 cp $(LCRADMIN) $(INSTALL_BIN)
265 cp $(CHAN_LCR) $(INSTALL_CHAN)
267 # cp $(LCRWATCH) $(INSTALL_BIN)
268 cp $(GEN) $(INSTALL_BIN)
269 cp $(GENW) $(INSTALL_BIN)
270 cp $(GENRC) $(INSTALL_BIN)
271 cp $(GENEXT) $(INSTALL_BIN)
272 mkdir -p $(INSTALL_DATA)
273 mkdir -p $(INSTALL_DATA)/extensions
274 @if test -a $(INSTALL_DATA)/options.conf ; then \
275 echo "NOTE: options.conf already exists, not changed." ; else \
276 cp -v default/options.conf $(INSTALL_DATA) ; fi
277 @if test -a $(INSTALL_DATA)/interface.conf ; then \
278 echo "NOTE: interface.conf already exists, not changed." ; else \
279 cp -v default/interface.conf $(INSTALL_DATA) ; fi
280 @if test -a $(INSTALL_DATA)/routing.conf ; then \
281 echo "NOTE: routing.conf already exists, not changed." ; else \
282 cp -v default/routing.conf $(INSTALL_DATA) ; fi
283 @if test -a $(INSTALL_DATA)/numbering_int.conf ; then \
284 echo "NOTE: numbering_int.conf is obsolete, please use routing." ; fi
285 @if test -a $(INSTALL_DATA)/numbering_ext.conf ; then \
286 echo "NOTE: numbering_ext.conf is obsolete, please use routing." ; fi
287 @if test -a $(INSTALL_DATA)/directory.list ; then \
288 echo "NOTE: directory.list already exists, not changed." ; else \
289 cp -v default/directory.list $(INSTALL_DATA) ; fi
290 @if test -a $(INSTALL_DATA)/tones_american ; then \
291 echo "NOTE: american tones already exists, not overwritten." ; else \
292 cp -a tones_american $(INSTALL_DATA) ; fi
293 @if test -a $(INSTALL_DATA)/tones_german ; then \
294 echo "NOTE: german tones already exists, not overwritten." ; else \
295 cp -a tones_german $(INSTALL_DATA) ; fi
296 @if test -a $(INSTALL_DATA)/vbox_german ; then \
297 echo "NOTE: german vbox tones already exists, not overwritten." ; else \
298 cp -a vbox_german $(INSTALL_DATA) ; fi
299 @if test -a $(INSTALL_DATA)/vbox_english ; then \
300 echo "NOTE: english vbox tones already exists, not overwritten." ; else \
301 cp -a vbox_english $(INSTALL_DATA) ; fi
302 @if test -a $(INSTALL_DATA)/tones_efi ; then \
303 echo "NOTE: special efi tones already exists, not overwritten." ; else \
304 cp -a tones_efi $(INSTALL_DATA) ; fi
309 rm -f $(LCR) $(LCRADMIN) $(CHAN_LCR) $(LCRWATCH) $(GEN) $(GENW) $(GENRC) $(GENEXT)
311 rm -f .*.c.sw* .*.cpp.sw* .*.h.sw*
312 rm -f bla nohup.out a.out
317 cd .. && tar --exclude=.git -cvzf lcr_`date +%Y%m%d`.tar.gz lcr
321 -killall -9 -w -q lcr # the following error must be ignored
326 -killall -9 -w -q lcr # the following error must be ignored
331 -killall -9 -w -q lcr # the following error must be ignored
335 DIR=lcr-$$(date +"20%y_%m_%d") ; \
336 mkdir -p /tmp/$$DIR ; \
337 cp -a * /tmp/$$DIR ; \
339 tar czf $$DIR.tar.gz $$DIR