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