Issue #5637 - Realtime driver for PostgreSQL (mguesdon)
[asterisk/asterisk.git] / res / Makefile
1 #
2 # Asterisk -- A telephony toolkit for Linux.
3
4 # Makefile for resource modules
5 #
6 # Copyright (C) 1999-2006, 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 MODS:=$(patsubst %.c,%.so,$(wildcard res_*.c))
15
16 ifeq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/odbcinst.h $(CROSS_COMPILE_TARGET)/usr/local/include/odbcinst.h),)
17   MODS:=$(filter-out res_odbc.so,$(MODS))
18   MODS:=$(filter-out res_config_odbc.so,$(MODS))
19 else
20   ifeq (${OSARCH},FreeBSD)
21     MODS:=$(filter-out $(shell if test ${BSDVERSION} -lt 500000 ; then echo "res_config_odbc.so"; fi),$(MODS))
22   endif
23 endif
24
25 ifeq ($(NOCRYPTO),yes)
26   MODS:=$(filter-out res_crypto.so,$(MODS))
27   MODS:=$(filter-out res_osp.so,$(MODS))
28 endif
29
30 OSPLIB:=$(wildcard $(CROSS_COMPILE_TARGET)/usr/lib/libosptk.a $(CROSS_COMPILE_TARGET)/usr/local/lib/libosptk.a)
31 ifeq (${OSPLIB},)
32   MODS:=$(filter-out res_osp.so,$(MODS))
33 endif
34
35 # NETsnmp has some difficulties on some platforms (conflict with unload_module)
36 # Until we figure out if the collission is version-specific or what to do
37 # we have disabled res_snmp on OS/X and *BSD
38 ifeq ($(OSARCH),Darwin)
39   MODS:=$(filter-out res_snmp.so,$(MODS))
40 else
41   ifeq ($(findstring BSD,$(OSARCH)),BSD)
42     MODS:=$(filter-out res_snmp.so,$(MODS))
43   endif
44 endif
45
46
47 ifeq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/postgresql $(CROSS_COMPILE_TARGET)/usr/local/pgsql/include $(CROSS_COMPILE_TARGET)/usr/include/pgsql $(CROSS_COMPILE_TARGET)/usr/local/include/pgsql $(CROSS_COMPILE_TARGET)/opt/pgsql/include $(CROSS_COMPILE_TARGET)/usr/include/libpq-fe.h),)
48   MODS:=$(filter-out res_config_pgsql.so,$(MODS))
49 endif
50
51 ifeq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/net-snmp/net-snmp-config.h),)
52   MODS:=$(filter-out res_snmp.so,$(MODS))
53 else
54   SNMP_LDLIBS+=$(shell net-snmp-config --agent-libs)
55 endif
56
57 ifeq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/net-snmp/net-snmp-config.h),)
58   MODS:=$(filter-out res_snmp.so,$(MODS))
59 else
60   SNMP_LDLIBS+=$(shell net-snmp-config --agent-libs)
61 endif
62
63 ifeq (${WITH_SMDI},)
64   MODS:=$(filter-out res_smdi.so,$(MODS))
65 endif
66
67 # Now, go find postgresql libraries
68 ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/postgresql),)
69   CFLAGS+=-I$(CROSS_COMPILE_TARGET)/usr/include/postgresql
70   MLFLAGS+=-L$(CROSS_COMPILE_TARGET)/usr/lib/postgresql
71 endif
72
73 ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/local/pgsql/include),)
74   CFLAGS+=-I$(CROSS_COMPILE_TARGET)/usr/local/pgsql/include
75   MLFLAGS+=-L$(CROSS_COMPILE_TARGET)/usr/local/pgsql/lib
76 endif
77
78 ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/pgsql),)
79   CFLAGS+=-I$(CROSS_COMPILE_TARGET)/usr/include/pgsql
80   MLFLAGS+=-L$(CROSS_COMPILE_TARGET)/usr/lib/pgsql
81 endif
82
83 ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/pgsql),)
84   CFLAGS+=-I$(CROSS_COMPILE_TARGET)/usr/local/include/pgsql
85   MLFLAGS+=-L$(CROSS_COMPILE_TARGET)/usr/local/lib/pgsql
86 endif
87
88 ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/opt/pgsql/include),)
89   CFLAGS+=-I$(CROSS_COMPILE_TARGET)/opt/pgsql/include
90   MLFLAGS+=-L$(CROSS_COMPILE_TARGET) /opt/pgsql/lib
91 endif
92
93 ifneq ($(wilcard $(CROSS_COMPILE_TARGET)/usr/include/postgresql),)
94   CFLAGS+=-I$(CROSS_COMPILE_TARGET)/usr/include/postgresql
95 endif
96
97 ifneq ($(wilcard $(CROSS_COMPILE_TARGET)/usr/lib/libpq.so),)
98   MLFLAGS+=-L$(CROSS_COMPILE_TARGET)/usr/lib
99 endif
100
101
102 ifeq (${OSARCH},CYGWIN)
103   CYGSOLINK=-Wl,--out-implib=lib$@.a -Wl,--export-all-symbols
104   CYGSOLIB=-L.. -L. -lasterisk.dll
105   CYG_RES_CONFIG_ODBC_LIB=-lres_odbc.so
106   CYG_RES_FEATURES_LIB=-lres_adsi.so -lres_monitor.so
107   MODS:=$(filter-out res_musiconhold.so,$(MODS))
108 endif
109
110 CRYPTO_LIBS=-lssl -lcrypto
111
112 CFLAGS+=
113
114 MLFLAGS=
115
116 ifndef WITHOUT_ZAPTEL
117 ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/linux/zaptel.h)$(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/zaptel.h),)
118   CFLAGS+=-DZAPATA_MOH
119 endif
120 endif # WITHOUT_ZAPTEL
121
122 #
123 # Work around buggy RedHat 9.0
124 #
125 ifeq (${OSARCH},CYGWIN)
126 CFLAGS+=-DOPENSSL_NO_KRB5
127 else
128 CFLAGS+=-DOPENSSL_NO_KRB5 -fPIC
129 endif
130
131 all: depend $(MODS)
132
133 install: all
134         rm -f $(DESTDIR)$(ASTHEADERDIR)/parking.h
135         rm -f $(DESTDIR)$(MODULES_DIR)/app_agi.so 
136         rm -f $(DESTDIR)$(MODULES_DIR)/res_parking.so
137         for x in $(MODS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
138         @if [ x`which mpg123 2>/dev/null | grep -v '^no'` != x ] ; then \
139           if mpg123 --longhelp 2>&1 | grep -q .59r 2>&1 >/dev/null ; then echo ; else \
140                         echo "*************************************************************";\
141                         echo "*** You have the WRONG version of mpg123... you need .59r ***";\
142                         echo "*** Use 'make mpg123' to get the right verison            ***";\
143                         echo "*************************************************************";\
144           fi ;\
145         else \
146                 echo "*** You don't have mpg123 installed. You may need ***";\
147                 echo "***       it if you want to use MusicOnHold       ***";\
148         fi
149
150 uninstall:
151
152 res_crypto.so: res_crypto.o
153         $(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB} $(CRYPTO_LIBS)
154
155 clean-depend:
156         rm -f .depend
157
158 clean: clean-depend
159         rm -f *.so *.o
160
161 res_odbc.so: res_odbc.o
162         $(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB} -lodbc
163
164 res_osp.so: res_osp.o $(OSPLIB)
165         $(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB} $(OSPLIB) $(CRYPTO_LIBS)
166
167 %.so : %.o
168         $(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB}
169
170 res_features.so: res_features.o
171         $(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB} ${CYG_RES_FEATURES_LIB}
172
173 res_config_odbc.so: res_config_odbc.o
174         $(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB} ${CYG_RES_CONFIG_ODBC_LIB}
175
176 res_snmp.so: res_snmp.o snmp/agent.o
177         $(CC) $(SOLINK) ${SNMP_LDFLAGS} -o $@ ${CYGSOLINK} res_snmp.o snmp/agent.o ${CYGSOLIB} ${SNMP_LDLIBS}
178
179 res_config_pgsql.so: res_config_pgsql.o
180         $(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB} -lpq -lz $(MLFLAGS)
181
182
183
184 ifneq ($(wildcard .depend),)
185   include .depend
186 endif
187
188 depend: .depend
189
190 .depend:
191         ../build_tools/mkdep $(CFLAGS) `ls *.c` 
192
193 env:
194         env