backup
[lcr.git] / Makefile
1 #*****************************************************************************\
2 #*                                                                           **
3 #* PBX4Linux                                                                 **
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 # note: check your location and the names of libraries.
14
15 # select location to install
16 INSTALL_BIN = /usr/local/bin
17 INSTALL_DATA = /usr/local/pbx
18
19 # give locations for the libraries
20 LINUX_INCLUDE = -I/usr/src/linux/include
21
22 # give location of the mISDN libraries
23 MISDNUSER_INCLUDE = -I../mISDNuser/include
24 MISDNUSER_LIB = -L../mISDNuser/lib -L../mISDNuser/i4lnet
25 LIBS += -lisdnnet -lmISDN -lpthread
26
27 # give location of the curses or ncurses library
28 CURSES = -lncurses
29
30 CC = g++
31 LD = $(CC)
32 WIZZARD = ./wizzard
33 PBX = ./pbx
34 PBXADMIN = ./pbxadmin
35 PBXWATCH = ./pbxwatch
36 GEN = ./gentones
37 GENW = ./genwave
38 GENRC = ./genrc
39 GENEXT = ./genextension
40 CFLAGS = -Wall -g -DINSTALL_DATA=\"$(INSTALL_DATA)\"
41 CFLAGS += $(LINUX_INCLUDE) $(MISDNUSER_INCLUDE)
42 ifdef WITH-CRYPTO
43 CFLAGS += -DCRYPTO
44 endif
45 LIBDIR += $(MISDNUSER_LIB)
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: $(PBXADMIN) $(PBX) $(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 PBX 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 opal.o: opal.cpp *.h Makefile
97         $(CC) -c $(CFLAGS) opal.cpp -o opal.o
98
99 opal_mgr.o: opal_mgr.cpp *.h Makefile
100         $(CC) -c $(CFLAGS) opal_mgr.cpp -o opal_mgr.o
101
102 opal_pbxep.o: opal_pbxep.cpp *.h Makefile
103         $(CC) -c $(CFLAGS) opal_pbxep.cpp -o opal_pbxep.o
104
105 opal_pbxcon.o: opal_pbxcon.cpp *.h Makefile
106         $(CC) -c $(CFLAGS) opal_pbxcon.cpp -o opal_pbxcon.o
107
108 opal_pbxms.o: opal_pbxms.cpp *.h Makefile
109         $(CC) -c $(CFLAGS) opal_pbxms.cpp -o opal_pbxms.o
110
111 #knock.o: knock.cpp *.h Makefile
112 #       $(CC) -c $(CFLAGS) knock.cpp -o knock.o
113 #
114 vbox.o: vbox.cpp *.h Makefile
115         $(CC) -c $(CFLAGS) vbox.cpp -o vbox.o
116
117 mail.o: mail.c *.h Makefile
118         $(CC) -c $(CFLAGS) mail.c -o mail.o
119
120 action.o: action.cpp *.h Makefile
121         $(CC) -c $(CFLAGS) action.cpp -o action.o
122
123 action_vbox.o: action_vbox.cpp *.h Makefile
124         $(CC) -c $(CFLAGS) action_vbox.cpp -o action_vbox.o
125
126 action_efi.o: action_efi.cpp *.h Makefile
127         $(CC) -c $(CFLAGS) action_efi.cpp -o action_efi.o
128
129 endpoint.o: endpoint.cpp *.h Makefile
130         $(CC) -c $(CFLAGS) endpoint.cpp -o endpoint.o
131
132 endpointapp.o: endpointapp.cpp *.h Makefile
133         $(CC) -c $(CFLAGS) endpointapp.cpp -o endpointapp.o
134
135 apppbx.o: apppbx.cpp *.h Makefile
136         $(CC) -c $(CFLAGS) apppbx.cpp -o apppbx.o
137
138 call.o: call.cpp *.h Makefile
139         $(CC) -c $(CFLAGS) call.cpp -o call.o
140
141 callpbx.o: callpbx.cpp *.h Makefile
142         $(CC) -c $(CFLAGS) callpbx.cpp -o callpbx.o
143
144 callchan.o: callchan.cpp *.h Makefile
145         $(CC) -c $(CFLAGS) callchan.cpp -o callchan.o
146
147 cause.o: cause.c *.h Makefile
148         $(CC) -c $(CFLAGS) cause.c -o cause.o
149
150 alawulaw.o: alawulaw.c *.h Makefile
151         $(CC) -c $(CFLAGS) alawulaw.c -o alawulaw.o
152
153 tones.o: tones.c *.h Makefile
154         $(CC) -c $(CFLAGS) tones.c -o tones.o
155
156 crypt.o: crypt.cpp *.h Makefile
157         $(CC) -c $(CFLAGS) crypt.cpp -o crypt.o
158
159 genext.o: genext.c *.h Makefile
160         $(CC) -c $(CFLAGS) genext.c -o genext.o
161
162 #admin_client.o: admin_client.c *.h Makefile
163 #       $(CC) -c $(CFLAGS) admin_client.c -o admin_client.o
164
165 admin_server.o: admin_server.c *.h Makefile
166         $(CC) -c $(CFLAGS) admin_server.c -o admin_server.o
167
168 trace.o: trace.c *.h Makefile
169         $(CC) -c $(CFLAGS) trace.c -o trace.o
170
171
172 #$(WIZZARD): wizzard.c Makefile
173 #       $(CC) $(LIBDIR) $(CFLAGS) -lm wizzard.c \
174 #       -o $(WIZZARD) 
175
176 $(PBX): main.o \
177         options.o \
178         interface.o \
179         extension.o \
180         cause.o \
181         alawulaw.o \
182         tones.o \
183         message.o \
184         route.o \
185         port.o \
186         mISDN.o \
187         dss1.o \
188         vbox.o \
189         endpoint.o \
190         endpointapp.o \
191         apppbx.o \
192         crypt.o \
193         action.o \
194         action_vbox.o \
195         action_efi.o \
196         mail.o \
197         call.o \
198         callpbx.o \
199         callchan.o \
200         admin_server.o \
201         trace.o
202         $(LD) $(LIBDIR) \
203         main.o \
204         options.o \
205         interface.o \
206         extension.o \
207         cause.o \
208         alawulaw.o \
209         tones.o \
210         message.o \
211         route.o \
212         port.o \
213         mISDN.o \
214         dss1.o \
215         vbox.o \
216         endpoint.o \
217         endpointapp.o \
218         apppbx.o \
219         crypt.o \
220         action.o \
221         action_vbox.o \
222         action_efi.o \
223         mail.o \
224         call.o \
225         callpbx.o \
226         callchan.o \
227         admin_server.o \
228         trace.o \
229         $(LIBS) -o $(PBX) 
230
231 $(PBXADMIN): admin_client.c cause.c *.h Makefile
232         $(CC) $(LIBDIR) $(CFLAGS) $(CURSES) -lm admin_client.c cause.c \
233         -o $(PBXADMIN) 
234
235 $(PBXWATCH): watch.c *.h Makefile
236         $(CC) $(LIBDIR) $(CFLAGS) -lm watch.c \
237         -o $(PBXWATCH) 
238
239 $(GEN): gentones.c *.h Makefile 
240         $(CC) $(LIBDIR) $(CFLAGS) -lm gentones.c \
241         -o $(GEN) 
242
243 $(GENW):genwave.c *.h Makefile 
244         $(CC) $(LIBDIR) $(CFLAGS) -lm genwave.c \
245         -o $(GENW) 
246
247 $(GENRC): genrc.c *.h Makefile
248         $(CC) $(LIBDIR) $(CFLAGS) -lm genrc.c \
249         -o $(GENRC) 
250
251 $(GENEXT): options.o extension.o genext.o
252         $(CC) $(CFLAGS) options.o extension.o genext.o -o $(GENEXT) 
253
254 #install:
255 #       @echo Remember, this is a beta release. To overwrite your current installed
256 #       @echo version, use \"make beta_install\".
257 #       @exit
258
259 install:
260         -killall -9 -w -q pbx # the following error must be ignored
261         cp $(PBX) $(INSTALL_BIN)
262         cp $(PBXADMIN) $(INSTALL_BIN)
263 #       cp $(PBXWATCH) $(INSTALL_BIN)
264         cp $(GEN) $(INSTALL_BIN)
265         cp $(GENW) $(INSTALL_BIN)
266         cp $(GENRC) $(INSTALL_BIN)
267         cp $(GENEXT) $(INSTALL_BIN)
268         mkdir -p $(INSTALL_DATA)
269         mkdir -p $(INSTALL_DATA)/extensions
270         @if test -a $(INSTALL_DATA)/options.conf ; then \
271                 echo "NOTE: options.conf already exists, not changed." ; else \
272                 cp -v default/options.conf $(INSTALL_DATA) ; fi
273         @if test -a $(INSTALL_DATA)/interface.conf ; then \
274                 echo "NOTE: interface.conf already exists, not changed." ; else \
275                 cp -v default/interface.conf $(INSTALL_DATA) ; fi
276         @if test -a $(INSTALL_DATA)/routing.conf ; then \
277                 echo "NOTE: routing.conf already exists, not changed." ; else \
278                 cp -v default/routing.conf $(INSTALL_DATA) ; fi
279         @if test -a $(INSTALL_DATA)/numbering_int.conf ; then \
280                 echo "NOTE: numbering_int.conf is obsolete, please use routing." ; fi
281         @if test -a $(INSTALL_DATA)/numbering_ext.conf ; then \
282                 echo "NOTE: numbering_ext.conf is obsolete, please use routing." ; fi
283         @if test -a $(INSTALL_DATA)/directory.list ; then \
284                 echo "NOTE: directory.list already exists, not changed." ; else \
285                 cp -v default/directory.list $(INSTALL_DATA) ; fi
286         cp -a tones_* $(INSTALL_DATA)
287         cp -a vbox_english/ $(INSTALL_DATA)
288         cp -a vbox_german/ $(INSTALL_DATA)
289         cp -a tones_efi/ $(INSTALL_DATA)
290         sync
291
292 clean:
293         touch *
294         rm -f $(PBX) $(PBXADMIN) $(PBXWATCH) $(GEN) $(GENW) $(GENRC) $(GENEXT)
295         rm -f *.o
296         rm -f .*.c.sw* .*.cpp.sw* .*.h.sw*
297         rm -f bla nohup.out
298         rm -f debug*.log
299
300 tar:
301         make clean
302         cd .. &&  tar -cvzf pbx4linux_`date +%Y%m%d`.tar.gz pbx4linux
303
304 start: $(PBX)
305         sync
306         -killall -9 -w -q pbx # the following error must be ignored
307         $(PBX) start
308
309 s: $(PBX)
310         sync
311         -killall -9 -w -q pbx # the following error must be ignored
312         $(PBX) start
313
314 fork: $(PBX)
315         sync
316         -killall -9 -w -q pbx # the following error must be ignored
317         $(PBX) fork
318
319
320