only for backup, still in coding state - no compile!!!
[lcr.git] / Makefile
1 #*****************************************************************************\
2 #*                                                                           **
3 #* PBX4Linux                                                                 **
4 #*                                                                           **
5 #*---------------------------------------------------------------------------**
6 #* Copyright: Andreas Eversberg                                              **
7 #*                                                                           **
8 #* Makefile                                                                  **
9 #*                                                                           **
10 #*****************************************************************************/ 
11
12 WITH-PBX = 42 # MUST BE SET for now
13 #WITH-H323 = 42 # comment this out, if no h323 should be compiled
14 #WITH-OPAL = 42 # NOT SUPPORTED YET
15 WITH-CRYPTO = 42 # comment this out, if no libcrypto should be used
16 # note: check your location and the names of libraries.
17
18 # select location to install
19 INSTALL_BIN = /usr/local/bin
20 INSTALL_DATA = /usr/local/pbx
21
22 # give locations for the libraries (comment out H323_LIB and PWLIB_LIB, if they are installed on the system)
23 LINUX_INCLUDE = -I/usr/src/linux/include
24 H323_INCLUDE = -I/usr/local/include/openh323
25 #H323_LIB = -L/usr/local/lib
26 #PWLIB_INCLUDE = -I/usr/local/include/ptlib/unix
27 #PWLIB_LIB = -L/usr/local/lib
28
29 # give location of the mISDN libraries
30 MISDNUSER_INCLUDE = -I../mISDNuser/include
31 MISDNUSER_LIB = -L../mISDNuser/lib -L../mISDNuser/i4lnet
32 LIBS += -lisdnnet -lmISDN -lpthread
33
34 # give location of the curses or ncurses library
35 CURSES = -lncurses
36
37 CC = g++
38 LD = $(CC)
39 WIZZARD = ./wizzard
40 PBX = ./pbx
41 PBXADMIN = ./pbxadmin
42 PBXWATCH = ./pbxwatch
43 GEN = ./gentones
44 GENW = ./genwave
45 GENRC = ./genrc
46 GENEXT = ./genextension
47 CFLAGS = -Wall -g -DINSTALL_DATA=\"$(INSTALL_DATA)\"
48 CFLAGS += $(LINUX_INCLUDE) $(MISDNUSER_INCLUDE)
49 ifdef WITH-PBX
50 CFLAGS += -DPBX
51 endif
52 ifdef WITH-CRYPTO
53 CFLAGS += -DCRYPTO
54 endif
55 CFLAGS_OPAL = $(CFLAGS)
56 CFLAGS_H323 = $(CFLAGS)
57 LIBDIR += $(MISDNUSER_LIB)
58 ifdef WITH-OPAL
59 OPAL = opal.o opal_mgr.o opal_pbxep.o opal_pbxcon.o opal_pbxms.o
60 CFLAGS += -DOPAL
61 CFLAGS_OPAL += $(OPAL_INCLUDE) -DOPAL
62 LIBDIR += $(OPAL_LIB)
63 endif
64 ifdef WITH-H323
65 H323 = h323.o h323_ep.o h323_con.o h323_chan.o
66 LIBS += -lh323_linux_x86_r -lpt_linux_x86_r -ldl
67 CFLAGS += -DH323
68 CFLAGS_H323 += $(H323_INCLUDE) $(PWLIB_INCLUDE) -DH323INCLUDE -DH323 -D_REENTRANT -DPBYTE_ORDER=PLITTLE_ENDIAN -DP_PTHREADS -DP_HAS_SEMAPHORES -DPHAS_TEMPLATES -DP_LINUX -DPTRACING
69 LIBDIR += $(H323_LIB) $(PWLIB_LIB)
70 endif
71 ifdef WITH-CRYPTO
72 LIBDIR += -L/usr/local/ssl/lib
73 CFLAGS += -I/usr/local/ssl/include
74 #LIBS += -lcrypto
75 LIBS += /usr/local/ssl/lib/libcrypto.a
76 endif
77
78 #all:
79 #       @echo Note that this version is a beta release. It is only for testing purpose.
80 #       @echo Please report any bug. To compile use \"make beta\".
81 #       @exit
82
83 all: $(PBXADMIN) $(PBX) $(GEN) $(GENW) $(GENRC) $(GENEXT)
84         @sh -c 'grep -n strcpy *.c* ; if test $$''? = 0 ; then echo "dont use strcpy, use makro instead." ; exit -1 ; fi'
85         @sh -c 'grep -n strncpy *.c* ; if test $$''? = 0 ; then echo "dont use strncpy, use makro instead." ; exit -1 ; fi'
86         @sh -c 'grep -n strcat *.c* ; if test $$''? = 0 ; then echo "dont use strcat, use makro instead." ; exit -1 ; fi'
87         @sh -c 'grep -n strncat *.c* ; if test $$''? = 0 ; then echo "dont use strncat, use makro instead." ; exit -1 ; fi'
88         @sh -c 'grep -n sprintf *.c* ; if test $$''? = 0 ; then echo "dont use sprintf, use makro instead." ; exit -1 ; fi'
89         @sh -c 'grep -n snprintf *.c* ; if test $$''? = 0 ; then echo "dont use snprintf, use makro instead." ; exit -1 ; fi'
90         @echo "All PBX binaries done"
91         @sync
92         @exit
93
94 main.o: main.c *.h Makefile
95         $(CC) -c $(CFLAGS_H323) main.c -o main.o
96
97 message.o: message.c *.h Makefile
98         $(CC) -c $(CFLAGS) message.c -o message.o
99
100 options.o: options.c *.h Makefile
101         $(CC) -c $(CFLAGS) options.c -o options.o
102
103 interface.o: interface.c *.h Makefile
104         $(CC) -c $(CFLAGS) interface.c -o interface.o
105
106 h323conf.o: h323conf.c *.h Makefile
107         $(CC) -c $(CFLAGS) h323conf.c -o h323conf.o
108
109 extension.o: extension.c *.h Makefile
110         $(CC) -c $(CFLAGS) extension.c -o extension.o
111
112 route.o: route.c *.h Makefile
113         $(CC) -c $(CFLAGS) route.c -o route.o
114
115 port.o: port.cpp *.h Makefile
116         $(CC) -c $(CFLAGS) port.cpp -o port.o
117
118 mISDN.o: mISDN.cpp *.h Makefile
119         $(CC) -c $(CFLAGS) mISDN.cpp -o mISDN.o
120
121 dss1.o: dss1.cpp ie.cpp *.h Makefile
122         $(CC) -c $(CFLAGS) dss1.cpp -o dss1.o
123
124 opal.o: opal.cpp *.h Makefile
125         $(CC) -c $(CFLAGS) opal.cpp -o opal.o
126
127 opal_mgr.o: opal_mgr.cpp *.h Makefile
128         $(CC) -c $(CFLAGS) opal_mgr.cpp -o opal_mgr.o
129
130 opal_pbxep.o: opal_pbxep.cpp *.h Makefile
131         $(CC) -c $(CFLAGS) opal_pbxep.cpp -o opal_pbxep.o
132
133 opal_pbxcon.o: opal_pbxcon.cpp *.h Makefile
134         $(CC) -c $(CFLAGS) opal_pbxcon.cpp -o opal_pbxcon.o
135
136 opal_pbxms.o: opal_pbxms.cpp *.h Makefile
137         $(CC) -c $(CFLAGS) opal_pbxms.cpp -o opal_pbxms.o
138
139 #knock.o: knock.cpp *.h Makefile
140 #       $(CC) -c $(CFLAGS) knock.cpp -o knock.o
141 #
142 vbox.o: vbox.cpp *.h Makefile
143         $(CC) -c $(CFLAGS) vbox.cpp -o vbox.o
144
145 mail.o: mail.c *.h Makefile
146         $(CC) -c $(CFLAGS) mail.c -o mail.o
147
148 action.o: action.cpp *.h Makefile
149         $(CC) -c $(CFLAGS) action.cpp -o action.o
150
151 action_vbox.o: action_vbox.cpp *.h Makefile
152         $(CC) -c $(CFLAGS) action_vbox.cpp -o action_vbox.o
153
154 action_efi.o: action_efi.cpp *.h Makefile
155         $(CC) -c $(CFLAGS) action_efi.cpp -o action_efi.o
156
157 endpoint.o: endpoint.cpp *.h Makefile
158         $(CC) -c $(CFLAGS) endpoint.cpp -o endpoint.o
159
160 endpointapp.o: endpointapp.cpp *.h Makefile
161         $(CC) -c $(CFLAGS) endpointapp.cpp -o endpointapp.o
162
163 apppbx.o: apppbx.cpp *.h Makefile
164         $(CC) -c $(CFLAGS) apppbx.cpp -o apppbx.o
165
166 call.o: call.cpp *.h Makefile
167         $(CC) -c $(CFLAGS) call.cpp -o call.o
168
169 callpbx.o: callpbx.cpp *.h Makefile
170         $(CC) -c $(CFLAGS) callpbx.cpp -o callpbx.o
171
172 callchan.o: callchan.cpp *.h Makefile
173         $(CC) -c $(CFLAGS) callchan.cpp -o callchan.o
174
175 cause.o: cause.c *.h Makefile
176         $(CC) -c $(CFLAGS) cause.c -o cause.o
177
178 alawulaw.o: alawulaw.c *.h Makefile
179         $(CC) -c $(CFLAGS) alawulaw.c -o alawulaw.o
180
181 tones.o: tones.c *.h Makefile
182         $(CC) -c $(CFLAGS) tones.c -o tones.o
183
184 crypt.o: crypt.cpp *.h Makefile
185         $(CC) -c $(CFLAGS) crypt.cpp -o crypt.o
186
187 h323.o: h323.cpp *.h Makefile
188         $(CC) -c $(CFLAGS_H323) h323.cpp -o h323.o
189
190 h323_ep.o: h323_ep.cpp *.h Makefile
191         $(CC) -c $(CFLAGS_H323) h323_ep.cpp -o h323_ep.o
192
193 h323_chan.o: h323_chan.cpp *.h Makefile
194         $(CC) -c $(CFLAGS_H323) h323_chan.cpp -o h323_chan.o
195
196 h323_con.o: h323_con.cpp *.h Makefile
197         $(CC) -c $(CFLAGS_H323) h323_con.cpp -o h323_con.o
198
199 genext.o: genext.c *.h Makefile
200         $(CC) -c $(CFLAGS) genext.c -o genext.o
201
202 #admin_client.o: admin_client.c *.h Makefile
203 #       $(CC) -c $(CFLAGS) admin_client.c -o admin_client.o
204
205 admin_server.o: admin_server.c *.h Makefile
206         $(CC) -c $(CFLAGS) admin_server.c -o admin_server.o
207
208
209 #$(WIZZARD): wizzard.c Makefile
210 #       $(CC) $(LIBDIR) $(CFLAGS) -lm wizzard.c \
211 #       -o $(WIZZARD) 
212
213 $(PBX): $(H323) $(OPAL) \
214         main.o \
215         options.o \
216         interface.o \
217         h323conf.o \
218         extension.o \
219         cause.o \
220         alawulaw.o \
221         tones.o \
222         message.o \
223         route.o \
224         port.o \
225         mISDN.o \
226         dss1.o \
227         vbox.o \
228         endpoint.o \
229         endpointapp.o \
230         apppbx.o \
231         crypt.o \
232         action.o \
233         action_vbox.o \
234         action_efi.o \
235         mail.o \
236         call.o \
237         callpbx.o \
238         callchan.o \
239         admin_server.o
240         $(LD) $(LIBDIR) $(H323) $(OPAL) \
241         main.o \
242         options.o \
243         interface.o \
244         h323conf.o \
245         extension.o \
246         cause.o \
247         alawulaw.o \
248         tones.o \
249         message.o \
250         route.o \
251         port.o \
252         mISDN.o \
253         dss1.o \
254         vbox.o \
255         endpoint.o \
256         endpointapp.o \
257         apppbx.o \
258         crypt.o \
259         action.o \
260         action_vbox.o \
261         action_efi.o \
262         mail.o \
263         call.o \
264         callpbx.o \
265         callchan.o \
266         admin_server.o \
267         $(LIBS) -o $(PBX) 
268
269 $(PBXADMIN): admin_client.c cause.c *.h Makefile
270         $(CC) $(LIBDIR) $(CFLAGS) $(CURSES) -lm admin_client.c cause.c \
271         -o $(PBXADMIN) 
272
273 $(PBXWATCH): watch.c *.h Makefile
274         $(CC) $(LIBDIR) $(CFLAGS) -lm watch.c \
275         -o $(PBXWATCH) 
276
277 $(GEN): gentones.c *.h Makefile 
278         $(CC) $(LIBDIR) $(CFLAGS) -lm gentones.c \
279         -o $(GEN) 
280
281 $(GENW):genwave.c *.h Makefile 
282         $(CC) $(LIBDIR) $(CFLAGS) -lm genwave.c \
283         -o $(GENW) 
284
285 $(GENRC): genrc.c *.h Makefile
286         $(CC) $(LIBDIR) $(CFLAGS) -lm genrc.c \
287         -o $(GENRC) 
288
289 $(GENEXT): options.o extension.o genext.o
290         $(CC) $(CFLAGS) options.o extension.o genext.o -o $(GENEXT) 
291
292 #install:
293 #       @echo Remember, this is a beta release. To overwrite your current installed
294 #       @echo version, use \"make beta_install\".
295 #       @exit
296
297 install:
298         -killall -9 -w -q pbx # the following error must be ignored
299         cp $(PBX) $(INSTALL_BIN)
300         cp $(PBXADMIN) $(INSTALL_BIN)
301 #       cp $(PBXWATCH) $(INSTALL_BIN)
302         cp $(GEN) $(INSTALL_BIN)
303         cp $(GENW) $(INSTALL_BIN)
304         cp $(GENRC) $(INSTALL_BIN)
305         cp $(GENEXT) $(INSTALL_BIN)
306         mkdir -p $(INSTALL_DATA)
307         mkdir -p $(INSTALL_DATA)/extensions
308         @if test -a $(INSTALL_DATA)/options.conf ; then \
309                 echo "NOTE: options.conf already exists, not changed." ; else \
310                 cp -v default/options.conf $(INSTALL_DATA) ; fi
311         @if test -a $(INSTALL_DATA)/interface.conf ; then \
312                 echo "NOTE: interface.conf already exists, not changed." ; else \
313                 cp -v default/interface.conf $(INSTALL_DATA) ; fi
314         @if test -a $(INSTALL_DATA)/routing.conf ; then \
315                 echo "NOTE: routing.conf already exists, not changed." ; else \
316                 cp -v default/routing.conf $(INSTALL_DATA) ; fi
317         @if test -a $(INSTALL_DATA)/numbering_int.conf ; then \
318                 echo "NOTE: numbering_int.conf is obsolete, please use routing." ; fi
319         @if test -a $(INSTALL_DATA)/numbering_ext.conf ; then \
320                 echo "NOTE: numbering_ext.conf is obsolete, please use routing." ; fi
321         @if test -a $(INSTALL_DATA)/h323_gateway.conf ; then \
322                 echo "NOTE: h323_gateway.conf already exists, not changed." ; else \
323                 cp -v default/h323_gateway.conf $(INSTALL_DATA) ; fi
324         @if test -a $(INSTALL_DATA)/directory.list ; then \
325                 echo "NOTE: directory.list already exists, not changed." ; else \
326                 cp -v default/directory.list $(INSTALL_DATA) ; fi
327         cp -a tones_* $(INSTALL_DATA)
328         cp -a vbox_english/ $(INSTALL_DATA)
329         cp -a vbox_german/ $(INSTALL_DATA)
330         cp -a tones_efi/ $(INSTALL_DATA)
331         sync
332
333 clean:
334         touch *
335         rm -f $(PBX) $(PBXADMIN) $(PBXWATCH) $(GEN) $(GENW) $(GENRC) $(GENEXT)
336         rm -f *.o
337         rm -f .*.c.sw* .*.cpp.sw* .*.h.sw*
338         rm -f bla nohup.out
339         rm -f debug*.log
340
341 tar:
342         make clean
343         cd .. &&  tar -cvzf pbx4linux_`date +%Y%m%d`.tar.gz pbx4linux
344
345 start: $(PBX)
346         sync
347         -killall -9 -w -q pbx # the following error must be ignored
348         $(PBX) start
349
350 s: $(PBX)
351         sync
352         -killall -9 -w -q pbx # the following error must be ignored
353         $(PBX) start
354
355 fork: $(PBX)
356         sync
357         -killall -9 -w -q pbx # the following error must be ignored
358         $(PBX) fork
359
360
361