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