clean up, use make functions instead of subshells, remove unused stuff
[asterisk/asterisk.git] / apps / Makefile
1 #
2 # Asterisk -- A telephony toolkit for Linux.
3
4 # Makefile for PBX applications
5 #
6 # Copyright (C) 1999-2005, Digium
7 #
8 # Mark Spencer <markster@digium.com>
9 #
10 # This program is free software, distributed under the terms of
11 # the GNU General Public License
12 #
13
14 APPS=app_dial.so app_playback.so app_voicemail.so app_directory.so app_mp3.so\
15      app_system.so app_echo.so app_record.so app_image.so app_url.so app_disa.so \
16      app_adsiprog.so app_getcpeid.so app_milliwatt.so \
17      app_zapateller.so app_setcallerid.so app_festival.so \
18      app_queue.so app_senddtmf.so app_parkandannounce.so app_striplsd.so \
19      app_setcidname.so app_lookupcidname.so app_substring.so app_macro.so \
20      app_authenticate.so app_softhangup.so app_lookupblacklist.so \
21      app_waitforring.so app_privacy.so app_db.so app_chanisavail.so \
22      app_enumlookup.so app_transfer.so app_setcidnum.so app_cdr.so \
23      app_hasnewvoicemail.so app_sayunixtime.so app_cut.so app_read.so \
24      app_setcdruserfield.so app_random.so app_ices.so app_eval.so \
25      app_nbscat.so app_sendtext.so app_exec.so app_sms.so \
26      app_groupcount.so app_txtcidname.so app_controlplayback.so \
27      app_talkdetect.so app_alarmreceiver.so app_userevent.so app_verbose.so \
28      app_test.so app_forkcdr.so app_math.so app_realtime.so \
29      app_dumpchan.so app_waitforsilence.so app_while.so app_setrdnis.so \
30      app_md5.so app_readfile.so app_chanspy.so app_settransfercapability.so \
31      app_dictate.so app_externalivr.so
32
33 #
34 # Obsolete things...
35 #
36 #APPS+=app_sql_postgres.so
37 #APPS+=app_sql_odbc.so
38
39 #
40 # Experimental things
41 #
42 #APPS+=app_ivrdemo.so
43 #APPS+=app_skel.so
44 #APPS+=app_rpt.so
45
46 ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/linux/zaptel.h)$(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/zaptel.h),)
47   APPS+=app_zapras.so app_meetme.so app_flash.so app_zapbarge.so app_zapscan.so
48 endif
49
50 ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/osp/osp.h),)
51 APPS+=app_osplookup.so
52 endif
53
54 ifeq ($(findstring BSD,${OSARCH}),BSD)
55 CFLAGS+=-I$(CROSS_COMPILE_TARGET)/usr/local/include -L$(CROSS_COMPILE_TARGET)/usr/local/lib
56 endif
57
58 CURLLIBS=$(shell $(CROSS_COMPILE_BIN)curl-config --libs)
59 ifneq ($(shell if [[ 0x`$(CROSS_COMPILE_BIN)curl-config --vernum` -ge 0x70907 ]]; then echo "OK" ; fi),)
60   ifneq (${CURLLIBS},)
61     APPS+=app_curl.so
62   endif 
63 endif
64
65 CFLAGS+=-fPIC
66
67 #
68 # If you have UnixODBC you can use ODBC voicemail
69 # storage
70 #
71 # Uncomment to use ODBC storage
72 #CFLAGS+=-DUSE_ODBC_STORAGE
73 # Uncomment for extended ODBC voicemail storage
74 #CFLAGS+=-DEXTENDED_ODBC_STORAGE
75 # See doc/README.odbcstorage for more information
76
77 all: $(APPS)
78
79 clean:
80         rm -f *.so *.o look .depend
81
82 %.so : %.o
83         $(CC) $(SOLINK) -o $@ $<
84
85 app_rpt.so : app_rpt.o
86         $(CC) $(SOLINK) -o $@ $< -ltonezone
87
88 install: all
89         for x in $(APPS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
90         rm -f $(DESTDIR)$(MODULES_DIR)/app_datetime.so
91         rm -f $(DESTDIR)$(MODULES_DIR)/app_qcall.so
92
93 app_curl.so: app_curl.o
94         $(CC) $(SOLINK) -o $@ $< $(CURLLIBS)
95
96 app_sql_postgres.o: app_sql_postgres.c
97         $(CC) -pipe -I/usr/local/pgsql/include $(CFLAGS) -c -o app_sql_postgres.o app_sql_postgres.c
98
99 app_sql_postgres.so: app_sql_postgres.o
100         $(CC) $(SOLINK) -o $@ $< -L/usr/local/pgsql/lib -lpq
101
102 app_sql_odbc.so: app_sql_odbc.o
103         $(CC) $(SOLINK) -o $@ $< -lodbc
104
105 look:   look.c
106         $(CC) -pipe -O6 -g look.c -o look -lncurses
107
108 ifeq (SunOS,$(shell uname))
109 app_chanspy.so: app_chanspy.o
110         $(CC) $(SOLINK) -o $@ $< -lrt
111 endif
112
113
114 ifneq ($(wildcard .depend),)
115  include .depend
116 endif
117
118 depend: .depend
119
120 .depend:
121         ../build_tools/mkdep $(CFLAGS) `ls *.c`
122
123 env:
124         env