]> git.ipfire.org Git - thirdparty/freeswitch.git/blob - Makefile.am
[mod_opus] Fix status returned by switch_opus_decode(). Should be SWITCH_STATUS_FALSE...
[thirdparty/freeswitch.git] / Makefile.am
1 EXTRA_DIST =
2 SUBDIRS = . src build tests/unit
3 AUTOMAKE_OPTIONS = foreign subdir-objects
4 NAME = freeswitch
5
6 if SYSTEM_APR
7 AM_LIBAPR_CFLAGS := $(shell apr-1-config --cflags)
8 AM_LIBAPR_CPPFLAGS := $(shell apr-1-config --cppflags --includes)
9 AM_LIBAPR_LDFLAGS := $(shell apr-1-config --ldflags)
10 AM_LIBAPR_LIBS := $(shell apr-1-config \--libs)
11 AM_LIBAPR_LINKLIBTOOL := $(shell apr-1-config \--link-libtool)
12 else
13 AM_LIBAPR_CFLAGS := $(shell ./libs/apr/apr-1-config --cflags)
14 AM_LIBAPR_CPPFLAGS := $(shell ./libs/apr/apr-1-config --cppflags --includes)
15 AM_LIBAPR_LDFLAGS := $(shell ./libs/apr/apr-1-config --ldflags)
16 AM_LIBAPR_LIBS := $(subst $(switch_builddir)/,,$(shell ./libs/apr/apr-1-config \--libs))
17 endif
18
19
20 AM_CFLAGS = $(SWITCH_AM_CFLAGS) $(SWITCH_ANSI_CFLAGS)
21 AM_CPPFLAGS =
22 AM_CPPFLAGS += -I$(switch_srcdir)/libs/libvpx
23 AM_CPPFLAGS += $(SWITCH_AM_CXXFLAGS)
24 AM_LDFLAGS = $(SWITCH_AM_LDFLAGS) $(AM_LIBAPR_LDFLAGS) $(AM_LIBAPU_LDFLAGS)
25
26 DEFAULT_SOUNDS=en-us-callie-8000
27 MY_DEFAULT_ARGS= --build=$(build) --host=$(host) --target=$(target) --prefix="$(prefix)" --exec_prefix="$(exec_prefix)" --libdir="$(libdir)"
28
29 .INTERMEDIATE: -ldl -liconv -lpthread
30
31 .DEFAULT: $(switch_builddir)/modules.conf src/mod/modules.inc
32 @target=`echo $@ | sed -e 's|^.*-||'`; \
33 target_prefix=`echo $@ | sed -e 's|-.*$$||'`; \
34 sound_perfix=`echo $@ | sed -e 's|-.*||'`; \
35 moh_version=`cat $(switch_srcdir)/build/moh_version.txt`;\
36 full_sound_dir=`echo $@ | sed -e 's|^sounds||' | sed -e 's|^-||' | sed -e 's|-install$$||'`; \
37 test ! -z $$full_sound_dir || full_sound_dir=`echo $(DEFAULT_SOUNDS)`; \
38 base_sound_dir=`echo $$full_sound_dir | sed -e 's|-[^-]*000$$||' ` ;\
39 sounds_version=`grep $$base_sound_dir $(switch_srcdir)/build/sounds_version.txt | cut -d ' ' -f2`;\
40 soundfile=`echo freeswitch-sounds-$$full_sound_dir-$$moh_version.tar.gz`; \
41 echo $$full_sound_dir | grep music >/dev/null || soundfile=`echo freeswitch-sounds-$$full_sound_dir-$$sounds_version.tar.gz`; \
42 args="$@"; if test -z "$$args" || test "$${args#-l*}" = "$$args"; then \
43 if test "$$target_prefix" = "sounds"; then \
44 if test "$$target" = "install"; then \
45 $(GETSOUNDS) $$soundfile $(DESTDIR)$(soundsdir)/;\
46 else \
47 $(GETSOUNDS) $$soundfile ; \
48 fi; \
49 else \
50 if test "$$target" = "install"; then \
51 $(MAKE) $(AM_MAKEFLAGS) core_install && cd src/mod && $(MAKE) $(AM_MAKEFLAGS) $@ ; \
52 else \
53 if test "$$target" = "clean"; then \
54 cd src/mod && $(MAKE) $(AM_MAKEFLAGS) $@ ;\
55 else \
56 $(MAKE) $(AM_MAKEFLAGS) core && cd src/mod && $(MAKE) $(AM_MAKEFLAGS) $@ ;\
57 fi; \
58 fi; \
59 fi; fi
60
61 sounds: sounds-en-us-callie-8000
62 sounds-install: sounds-en-us-callie-8000-install
63 sounds-allison: sounds-en-us-allison-8000
64 sounds-allison-install: sounds-en-us-allison-8000-install
65 sounds-ru: sounds-ru-RU-elena-8000
66 sounds-ru-install: sounds-ru-RU-elena-8000-install
67 sounds-fr: sounds-fr-ca-june-8000
68 sounds-fr-install: sounds-fr-ca-june-8000-install
69 moh: sounds-music-8000
70 moh-install: sounds-music-8000-install
71
72 hd-sounds: sounds sounds-en-us-callie-16000
73 hd-sounds-install: sounds-install sounds-en-us-callie-16000-install
74 hd-sounds-allison: sounds-allison sounds-en-us-allison-16000
75 hd-sounds-allison-install: sounds-allison-install sounds-en-us-allison-16000-install
76 hd-sounds-ru: sounds-ru sounds-ru-RU-elena-16000
77 hd-sounds-ru-install: sounds-ru-install sounds-ru-RU-elena-16000-install
78 hd-sounds-fr: sounds-fr-ca-june-16000
79 hd-sounds-fr-install: sounds-fr-ca-june-16000-install
80 hd-moh: moh sounds-music-16000
81 hd-moh-install: moh-install sounds-music-16000-install
82
83 uhd-sounds: hd-sounds sounds-en-us-callie-32000
84 uhd-sounds-install: hd-sounds-install sounds-en-us-callie-32000-install
85 uhd-sounds-allison: hd-sounds-allison sounds-en-us-allison-32000
86 uhd-sounds-allison-install: hd-sounds-allison-install sounds-en-us-allison-32000-install
87 uhd-sounds-ru: hd-sounds-ru sounds-ru-RU-elena-32000
88 uhd-sounds-ru-install: hd-sounds-ru-install sounds-ru-RU-elena-32000-install
89 uhd-sounds-fr: sounds-fr-ca-june-32000
90 uhd-sounds-fr-install: sounds-fr-ca-june-32000-install
91 uhd-moh: hd-moh sounds-music-32000
92 uhd-moh-install: hd-moh-install sounds-music-32000-install
93
94 cd-sounds: uhd-sounds sounds-en-us-callie-48000
95 cd-sounds-install: uhd-sounds-install sounds-en-us-callie-48000-install
96 cd-sounds-allison: uhd-sounds-allison sounds-en-us-allison-48000
97 cd-sounds-allison-install: uhd-sounds-allison-install sounds-en-us-allison-48000-install
98 cd-sounds-ru: uhd-sounds-ru sounds-ru-RU-elena-48000
99 cd-sounds-ru-install: uhd-sounds-ru-install sounds-ru-RU-elena-48000-install
100 cd-sounds-fr: sounds-fr-ca-june-48000
101 cd-sounds-fr-install: sounds-fr-ca-june-48000-install
102 cd-moh: uhd-moh sounds-music-48000
103 cd-moh-install: uhd-moh-install sounds-music-48000-install
104
105 # This directory's subdirectories are mostly independent; you can cd
106 # into them and run `make' without going through this Makefile.
107 # To change the values of `make' variables: instead of editing Makefiles,
108 # (1) if the variable is set in `config.status', edit `config.status'
109 # (which will cause the Makefiles to be regenerated when you run `make');
110 # (2) otherwise, pass the desired values on the `make' command line.
111 all-recursive: libfreeswitch.la
112 clean-recusive: clean_core
113 install-recursive: install-libLTLIBRARIES install-binPROGRAMS
114
115 CORE_CFLAGS = $(AM_LIBAPR_CFLAGS) $(AM_LIBAPR_CPPFLAGS)
116 CORE_CFLAGS += $(AM_LIBAPU_CPPFLAGS)
117 CORE_CFLAGS += -I$(switch_srcdir)/libs/srtp/include
118 if ENABLE_LIBYUV
119 CORE_CFLAGS += -I$(switch_srcdir)/libs/libyuv/include
120 CORE_CFLAGS += -DSWITCH_HAVE_YUV
121 endif
122 CORE_CFLAGS += -I$(switch_srcdir)/libs/srtp/crypto/include -Ilibs/srtp/crypto/include
123 CORE_CFLAGS += $(SPANDSP_CFLAGS)
124 if ENABLE_LIBVPX
125 CORE_CFLAGS += -DSWITCH_HAVE_VPX
126 endif
127
128 APR_LIBS = $(AM_LIBAPU_LIBS) $(AM_LIBAPR_LIBS)
129 CORE_LIBS=
130
131 if ENABLE_LIBVPX
132 CORE_LIBS += libs/libvpx/libvpx.a
133 endif
134 if SYSTEM_APR
135 CORE_LIBS += $(AM_LIBAPR_LINKLIBTOOL)
136 else
137 CORE_LIBS += libs/apr/libapr-1.la
138 endif
139
140 if ENABLE_SRTP
141 CORE_CFLAGS += -DENABLE_SRTP
142 CORE_LIBS += libs/srtp/libsrtp.la
143 endif
144
145 MOD_LINK = $(switch_srcdir)/libfreeswitch.la
146 CLEANFILES = src/include/switch_version.h src/include/switch_swigable_cpp.h
147 BUILT_SOURCES = src/mod/modules.inc src/include/switch_version.h src/include/switch_swigable_cpp.h
148
149 if HAVE_ODBC
150 CORE_CFLAGS += -DSWITCH_HAVE_ODBC $(ODBC_INC_FLAGS)
151 endif
152
153 if HAVE_PNG
154 CORE_CFLAGS += -DSWITCH_HAVE_PNG $(LIBPNG_CFLAGS)
155 endif
156
157 if HAVE_FREETYPE
158 CORE_CFLAGS += -DSWITCH_HAVE_FREETYPE $(LIBFREETYPE_CFLAGS)
159 endif
160
161 if HAVE_GUMBO
162 CORE_CFLAGS += -DSWITCH_HAVE_GUMBO $(LIBGUMBO_CFLAGS)
163 endif
164
165 if HAVE_FVAD
166 CORE_CFLAGS += -DSWITCH_HAVE_FVAD $(LIBFVAD_CFLAGS)
167 endif
168
169 ##
170 ## libfreeswitch
171 ##
172 noinst_LTLIBRARIES =
173 if ENABLE_LIBYUV
174 noinst_LTLIBRARIES += libfreeswitch_libyuv.la
175 endif
176
177 if ENABLE_LIBYUV
178 libfreeswitch_libyuv_la_SOURCES = \
179 libs/libyuv/source/compare.cc \
180 libs/libyuv/source/compare_common.cc \
181 libs/libyuv/source/compare_gcc.cc \
182 libs/libyuv/source/compare_mmi.cc \
183 libs/libyuv/source/compare_msa.cc \
184 libs/libyuv/source/compare_neon64.cc \
185 libs/libyuv/source/compare_neon.cc \
186 libs/libyuv/source/compare_win.cc \
187 libs/libyuv/source/convert_argb.cc \
188 libs/libyuv/source/convert.cc \
189 libs/libyuv/source/convert_from_argb.cc \
190 libs/libyuv/source/convert_from.cc \
191 libs/libyuv/source/convert_jpeg.cc \
192 libs/libyuv/source/convert_to_argb.cc \
193 libs/libyuv/source/convert_to_i420.cc \
194 libs/libyuv/source/cpu_id.cc \
195 libs/libyuv/source/mjpeg_decoder.cc \
196 libs/libyuv/source/mjpeg_validate.cc \
197 libs/libyuv/source/planar_functions.cc \
198 libs/libyuv/source/rotate_any.cc \
199 libs/libyuv/source/rotate_argb.cc \
200 libs/libyuv/source/rotate.cc \
201 libs/libyuv/source/rotate_common.cc \
202 libs/libyuv/source/rotate_gcc.cc \
203 libs/libyuv/source/rotate_mmi.cc \
204 libs/libyuv/source/rotate_msa.cc \
205 libs/libyuv/source/rotate_neon64.cc \
206 libs/libyuv/source/rotate_neon.cc \
207 libs/libyuv/source/rotate_win.cc \
208 libs/libyuv/source/row_any.cc \
209 libs/libyuv/source/row_common.cc \
210 libs/libyuv/source/row_gcc.cc \
211 libs/libyuv/source/row_mmi.cc \
212 libs/libyuv/source/row_msa.cc \
213 libs/libyuv/source/row_neon64.cc \
214 libs/libyuv/source/row_neon.cc \
215 libs/libyuv/source/row_win.cc \
216 libs/libyuv/source/scale_any.cc \
217 libs/libyuv/source/scale_argb.cc \
218 libs/libyuv/source/scale.cc \
219 libs/libyuv/source/scale_common.cc \
220 libs/libyuv/source/scale_gcc.cc \
221 libs/libyuv/source/scale_mmi.cc \
222 libs/libyuv/source/scale_msa.cc \
223 libs/libyuv/source/scale_neon64.cc \
224 libs/libyuv/source/scale_neon.cc \
225 libs/libyuv/source/scale_win.cc \
226 libs/libyuv/source/video_common.cc
227
228
229 libfreeswitch_libyuv_la_CPPFLAGS = -O2 -fomit-frame-pointer -Ilibs/libyuv/include
230 CORE_LIBS+=libfreeswitch_libyuv.la
231 endif
232
233 lib_LTLIBRARIES = libfreeswitch.la
234 libfreeswitch_la_CFLAGS = $(CORE_CFLAGS) $(SQLITE_CFLAGS) $(GUMBO_CFLAGS) $(FVAD_CFLAGS) $(FREETYPE_CFLAGS) $(CURL_CFLAGS) $(PCRE_CFLAGS) $(SPEEX_CFLAGS) $(LIBEDIT_CFLAGS) $(openssl_CFLAGS) $(SOFIA_SIP_CFLAGS) $(AM_CFLAGS) $(TPL_CFLAGS)
235 libfreeswitch_la_LDFLAGS = -version-info 1:0:0 $(AM_LDFLAGS) $(PLATFORM_CORE_LDFLAGS) -no-undefined
236 libfreeswitch_la_LIBADD = $(CORE_LIBS) $(APR_LIBS) $(SQLITE_LIBS) $(GUMBO_LIBS) $(FVAD_LIBS) $(FREETYPE_LIBS) $(CURL_LIBS) $(PCRE_LIBS) $(SPEEX_LIBS) $(LIBEDIT_LIBS) $(SYSTEMD_LIBS) $(openssl_LIBS) $(PLATFORM_CORE_LIBS) $(TPL_LIBS) $(SPANDSP_LIBS) $(SOFIA_SIP_LIBS)
237 libfreeswitch_la_DEPENDENCIES = $(BUILT_SOURCES)
238
239 if HAVE_PNG
240 libfreeswitch_la_LIBADD += $(LIBPNG_LIBS)
241 endif
242
243 if HAVE_ODBC
244 libfreeswitch_la_LDFLAGS += $(ODBC_LIB_FLAGS)
245 endif
246
247 library_includetestdir = $(includedir)/test
248 library_includetest_HEADERS = \
249 src/include/test/switch_fct.h \
250 src/include/test/switch_test.h
251
252 library_includedir = $(includedir)
253 library_include_HEADERS = \
254 src/include/switch_am_config.h \
255 src/include/switch.h \
256 src/include/switch_apr.h \
257 src/include/switch_buffer.h \
258 src/include/switch_caller.h \
259 src/include/switch_channel.h \
260 src/include/switch_console.h \
261 src/include/switch_core_event_hook.h \
262 src/include/switch_scheduler.h \
263 src/include/switch_core.h \
264 src/include/switch_core_media.h \
265 src/include/switch_core_video.h \
266 src/include/switch_core_db.h \
267 src/include/switch_mprintf.h \
268 src/include/switch_config.h \
269 src/include/switch_event.h \
270 src/include/switch_frame.h \
271 src/include/switch_ivr.h \
272 src/include/switch_dso.h \
273 src/include/switch_loadable_module.h \
274 src/include/switch_module_interfaces.h \
275 src/include/switch_packetizer.h \
276 src/include/switch_platform.h \
277 src/include/switch_resample.h \
278 src/include/switch_regex.h \
279 src/include/switch_types.h \
280 src/include/switch_utils.h \
281 src/include/switch_rtp.h \
282 src/include/switch_jitterbuffer.h \
283 src/include/switch_estimators.h \
284 src/include/switch_rtcp_frame.h \
285 src/include/switch_spandsp.h \
286 src/include/switch_stun.h \
287 src/include/switch_nat.h \
288 src/include/switch_log.h \
289 src/include/switch_xml.h \
290 src/include/switch_xml_config.h \
291 src/include/switch_cpp.h \
292 src/include/switch_curl.h \
293 src/include/switch_cJSON.h \
294 src/include/switch_cJSON_Utils.h \
295 src/include/switch_json.h \
296 src/include/switch_utf8.h \
297 src/include/switch_msrp.h \
298 src/include/switch_vpx.h \
299 src/include/switch_vad.h \
300 libs/libteletone/src/libteletone_detect.h \
301 libs/libteletone/src/libteletone_generate.h \
302 libs/libteletone/src/libteletone.h \
303 src/include/switch_limit.h \
304 src/include/switch_odbc.h \
305 src/include/switch_hashtable.h \
306 src/include/switch_image.h
307
308 nodist_libfreeswitch_la_SOURCES = \
309 src/include/switch_frame.h \
310 src/include/switch_swigable_cpp.h \
311 src/include/switch_version.h
312
313 libfreeswitch_la_SOURCES = \
314 src/switch_apr.c \
315 src/switch_apr_queue.c \
316 src/switch_buffer.c \
317 src/switch_caller.c \
318 src/switch_channel.c \
319 src/switch_console.c \
320 src/switch_mprintf.c \
321 src/switch_core_media_bug.c \
322 src/switch_core_timer.c \
323 src/switch_core_asr.c \
324 src/switch_core_event_hook.c \
325 src/switch_core_speech.c \
326 src/switch_core_memory.c \
327 src/switch_core_codec.c \
328 src/switch_core_file.c \
329 src/switch_core_cert.c \
330 src/switch_core_hash.c \
331 src/switch_core_sqldb.c \
332 src/switch_core_session.c \
333 src/switch_core_directory.c \
334 src/switch_core_state_machine.c \
335 src/switch_core_io.c \
336 src/switch_core_rwlock.c \
337 src/switch_core_port_allocator.c \
338 src/switch_core.c \
339 src/switch_version.c \
340 src/switch_core_media.c \
341 src/switch_core_video.c \
342 src/switch_packetizer.c \
343 src/switch_sdp.c \
344 src/switch_scheduler.c \
345 src/switch_core_db.c \
346 src/switch_dso.c \
347 src/switch_loadable_module.c \
348 src/switch_utils.c \
349 src/switch_event.c \
350 src/switch_resample.c \
351 src/switch_regex.c \
352 src/switch_rtp.c \
353 src/switch_jitterbuffer.c \
354 src/switch_estimators.c \
355 src/switch_ivr_bridge.c \
356 src/switch_ivr_originate.c \
357 src/switch_ivr_async.c \
358 src/switch_ivr_play_say.c \
359 src/switch_ivr_say.c \
360 src/switch_ivr_menu.c \
361 src/switch_ivr.c \
362 src/switch_spandsp.c \
363 src/switch_stun.c \
364 src/switch_nat.c \
365 src/switch_log.c \
366 src/switch_xml.c \
367 src/switch_xml_config.c \
368 src/switch_config.c \
369 src/switch_time.c \
370 src/switch_odbc.c \
371 src/switch_limit.c \
372 src/g711.c \
373 src/switch_pcm.c \
374 src/switch_speex.c \
375 src/switch_profile.c \
376 src/cJSON.c \
377 src/cJSON_Utils.c \
378 src/switch_json.c \
379 src/switch_curl.c \
380 src/switch_hashtable.c\
381 src/switch_utf8.c \
382 src/switch_msrp.c \
383 src/switch_vad.c \
384 src/switch_vpx.c \
385 libs/libteletone/src/libteletone_detect.c \
386 libs/libteletone/src/libteletone_generate.c \
387 libs/miniupnpc/miniwget.c \
388 libs/miniupnpc/minixml.c \
389 libs/miniupnpc/igd_desc_parse.c \
390 libs/miniupnpc/minisoap.c \
391 libs/miniupnpc/miniupnpc.c \
392 libs/miniupnpc/upnpreplyparse.c \
393 libs/miniupnpc/upnpcommands.c \
394 libs/miniupnpc/minissdpc.c \
395 libs/miniupnpc/upnperrors.c \
396 libs/libnatpmp/natpmp.c \
397 libs/libnatpmp/getgateway.c
398
399 if ENABLE_CPP
400 libfreeswitch_la_SOURCES += src/switch_cpp.cpp
401 endif
402
403 $(libfreeswitch_la_SOURCES): $(CORE_LIBS) $(switch_builddir)/modules.conf
404
405 src/include/switch_swigable_cpp.h: $(switch_srcdir)/src/include/switch_cpp.h
406 cat $(switch_srcdir)/src/include/switch_cpp.h | perl $(switch_srcdir)/build/strip.pl > $(switch_srcdir)/src/include/switch_swigable_cpp.h
407 # $(CC) -E $(switch_srcdir)/src/include/switch_cpp.h \
408 # -I$(switch_srcdir)/src/include -I$(switch_srcdir)/libs/libteletone/src \
409 # -DSWITCH_DECLARE_CLASS= -DSWITCH_DECLARE\(x\)=x -DSWITCH_DECLARE_CONSTRUCTOR= \
410 # -DSWITCH_DECLARE_NONSTD\(x\)=x 2>/dev/null | grep -v "^#" > src/include/switch_swigable_cpp.h
411
412 ##
413 ## Applications
414 ##
415 bin_PROGRAMS = freeswitch fs_cli fs_ivrd tone2wav fs_encode fs_tts
416
417 ##
418 ## fs_cli ()
419 ##
420 fs_cli_SOURCES = libs/esl/src/esl.c libs/esl/src/esl_config.c libs/esl/src/esl_event.c \
421 libs/esl/src/esl_threadmutex.c libs/esl/fs_cli.c libs/esl/src/esl_json.c libs/esl/src/esl_buffer.c libs/esl/src/cJSON.c libs/esl/src/cJSON_Utils.c
422 fs_cli_CFLAGS = $(AM_CFLAGS) -I$(switch_srcdir)/libs/esl/src/include $(LIBEDIT_CFLAGS)
423 fs_cli_LDFLAGS = $(AM_LDFLAGS) -lpthread $(ESL_LDFLAGS) -lm $(LIBEDIT_LIBS)
424
425 if DISABLE_CC
426 fs_cli_CFLAGS += -DDISABLE_CC
427 endif
428
429 ##
430 ## fs_encode ()
431 ##
432 fs_encode_SOURCES = src/fs_encode.c
433 fs_encode_CFLAGS = $(AM_CFLAGS)
434 fs_encode_LDFLAGS = $(AM_LDFLAGS)
435 fs_encode_LDADD = libfreeswitch.la $(CORE_LIBS) $(APR_LIBS)
436
437 if HAVE_ODBC
438 fs_encode_LDADD += $(ODBC_LIB_FLAGS)
439 endif
440
441 ##
442 ## fs_tts ()
443 ##
444 fs_tts_SOURCES = src/fs_tts.c
445 fs_tts_CFLAGS = $(AM_CFLAGS)
446 fs_tts_LDFLAGS = $(AM_LDFLAGS)
447 fs_tts_LDADD = libfreeswitch.la $(CORE_LIBS) $(APR_LIBS)
448
449 ##
450 ## tone2wav ()
451 ##
452 tone2wav_SOURCES = src/tone2wav.c
453 tone2wav_CFLAGS = $(AM_CFLAGS)
454 tone2wav_LDFLAGS = $(AM_LDFLAGS)
455 tone2wav_LDADD = libfreeswitch.la $(CORE_LIBS) $(APR_LIBS)
456
457 if HAVE_ODBC
458 tone2wav_LDADD += $(ODBC_LIB_FLAGS)
459 endif
460
461
462 ##
463 ## fs_ivrd ()
464 ##
465 fs_ivrd_SOURCES = libs/esl/src/esl.c libs/esl/src/esl_config.c libs/esl/src/esl_event.c \
466 libs/esl/src/esl_threadmutex.c libs/esl/ivrd.c libs/esl/src/esl_json.c libs/esl/src/esl_buffer.c libs/esl/src/cJSON.c libs/esl/src/cJSON_Utils.c
467 fs_ivrd_CFLAGS = $(AM_CFLAGS) -I$(switch_srcdir)/libs/esl/src/include
468 fs_ivrd_LDFLAGS = $(AM_LDFLAGS) -lpthread $(ESL_LDFLAGS) -lm
469
470 ##
471 ## freeswitch ()
472 ##
473 nodist_freeswitch_SOURCES = src/include/switch_version.h
474 freeswitch_SOURCES = src/switch.c
475 freeswitch_CFLAGS = $(AM_CFLAGS) $(CORE_CFLAGS)
476 freeswitch_LDFLAGS = $(AM_LDFLAGS) -lpthread -rpath $(libdir)
477 freeswitch_LDADD = libfreeswitch.la libs/apr/libapr-1.la
478
479 if HAVE_ODBC
480 freeswitch_LDADD += $(ODBC_LIB_FLAGS)
481 endif
482
483
484 ##
485 ## Scripts
486 ##
487 bin_SCRIPTS = scripts/gentls_cert scripts/fsxs
488
489 scripts/fsxs: scripts/fsxs.in
490 @echo creating fsxs
491 @sed -e "s,@MODULES_DIR\@,@modulesdir@," \
492 -e "s,@LIB_DIR\@,@libdir@," \
493 -e "s,@BIN_DIR\@,@bindir@," \
494 -e "s,@INC_DIR\@,@includedir@," \
495 -e "s,@CFG_DIR\@,@confdir@," \
496 -e "s,@DB_DIR\@,@dbdir@," \
497 -e "s,@PREFIX\@,@prefix@," \
498 -e "s,@CC\@,$(CC)," \
499 -e "s,@LD\@,$(CC)," \
500 -e "s,@INSTALL\@,$(INSTALL)," \
501 -e "s,@MKINSTALLDIRS\@,$(mkdir_p)," \
502 \
503 -e "s|@CFLAGS\@|$(CFLAGS) `./libs/apr/apr-1-config --cflags --cppflags`|" \
504 -e "s|@INCLUDES\@|-I$(prefix)/include|" \
505 -e "s|@SOLINK\@|$(SOLINK)|" \
506 -e "s|@LDFLAGS\@|-L$(prefix)/lib|" \
507 -e "s|@LIBS\@||" \
508 $(top_srcdir)/scripts/fsxs.in > scripts/fsxs
509
510 ##
511 ## misc
512 ##
513
514 pkgconfigdir = @pkgconfigdir@
515 pkgconfig_DATA = build/freeswitch.pc
516
517 $(switch_builddir)/modules.conf:
518 if test -f $@; then touch $@; else cp $(switch_srcdir)/build/modules.conf.in $@ ;fi
519
520 src/mod/modules.inc: $(switch_builddir)/modules.conf
521 @echo "OUR_MODULES=$(OUR_MODS)" > $(switch_builddir)/src/mod/modules.inc
522 @echo "OUR_CLEAN_MODULES=$(OUR_CLEAN_MODS)" >> $(switch_builddir)/src/mod/modules.inc
523 @echo "OUR_TEST_MODULES=$(OUR_TEST_MODS)" >> $(switch_builddir)/src/mod/modules.inc
524 @echo "OUR_CHECK_MODULES=$(OUR_CHECK_MODS)" >> $(switch_builddir)/src/mod/modules.inc
525 @echo "OUR_INSTALL_MODULES=$(OUR_INSTALL_MODS)" >> $(switch_builddir)/src/mod/modules.inc
526 @echo "OUR_UNINSTALL_MODULES=$(OUR_UNINSTALL_MODS)" >> $(switch_builddir)/src/mod/modules.inc
527 @echo "OUR_DISABLED_MODULES=$(OUR_DISABLED_MODS)" >> $(switch_builddir)/src/mod/modules.inc
528 @echo "OUR_DISABLED_CLEAN_MODULES=$(OUR_DISABLED_CLEAN_MODS)" >> $(switch_builddir)/src/mod/modules.inc
529 @echo "OUR_DISABLED_INSTALL_MODULES=$(OUR_DISABLED_INSTALL_MODS)" >> $(switch_builddir)/src/mod/modules.inc
530 @echo "OUR_DISABLED_UNINSTALL_MODULES=$(OUR_DISABLED_UNINSTALL_MODS)" >> $(switch_builddir)/src/mod/modules.inc
531
532 $(OUR_MODULES): $(switch_builddir)/modules.conf libfreeswitch.la src/mod/modules.inc
533 @set fnord $$MAKEFLAGS; amf=$$2; \
534 (cd src/mod && $(MAKE) $(AM_MAKEFLAGS) $@) \
535 || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
536 test -z "$$fail"
537
538 $(switch_builddir)/build/print_git_revision: $(switch_srcdir)/build/print_git_revision.c
539 $(CC_FOR_BUILD) -o $@ $<
540
541 src/switch_version.lo: src/include/switch_version.h
542
543 src/include/switch_version.h: src/include/switch_version.h.in Makefile $(switch_builddir)/build/print_git_revision $(libfreeswitch_la_SOURCES) $(library_include_HEADERS)
544 @cat $< > $@; \
545 if [ -d $(switch_srcdir)/.git ] && [ -n "$$(which git)" ]; then \
546 xver="$$(cd $(switch_srcdir)/ && $(switch_builddir)/build/print_git_revision)"; \
547 xhver="$$(cd $(switch_srcdir)/ && $(switch_builddir)/build/print_git_revision -h)"; \
548 sed \
549 -e "/#define *SWITCH_VERSION_REVISION[^a-zA-Z0-9_]/{s/\"\([^\"]*\)\"/\"\1$$xver\"/;}" \
550 -e "/#define *SWITCH_VERSION_REVISION_HUMAN[^a-zA-Z0-9_]/{s/\"\([^\"]*\)\"/\"\1$$xhver\"/;}" \
551 $< > $@; \
552 fi;
553
554 ##
555 ## Dependency targets
556 ##
557 libs/libedit/src/.libs/libedit.a:
558 cd libs/libedit && $(MAKE)
559
560 libs/libvpx/Makefile: libs/libvpx/.update
561 cd libs/libvpx && CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS) $(VISIBILITY_FLAG)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" ./configure --enable-pic --disable-docs --disable-examples --disable-install-bins --disable-install-srcs --disable-unit-tests --size-limit=16384x16384
562
563 libs/libvpx/libvpx.a: libs/libvpx/Makefile libs/libvpx/.update
564 @cd libs/libvpx && $(MAKE)
565
566 libs/apr/Makefile: libs/apr/Makefile.in libs/apr/config.status libs/apr libs/apr/.update
567 @cd libs/apr && ./config.status
568 @$(TOUCH_TARGET)
569
570 libs/apr/libapr-1.la: libs/apr/Makefile libs/apr/.update
571 @if [ $(MAKELEVEL) = 0 -o -z "`echo "$(MAKEARGS)" | grep "j"`" ] ; then touch $(switch_srcdir)/src/include/switch.h; cd libs/apr && $(MAKE) $(MFLAGS) && touch libapr-1.la; fi
572
573 SRTP_SRC = libs/srtp/srtp/srtp.c libs/srtp/crypto/cipher/cipher.c libs/srtp/crypto/cipher/null_cipher.c \
574 libs/srtp/crypto/cipher/aes.c libs/srtp/crypto/cipher/aes_icm.c \
575 libs/srtp/crypto/hash/null_auth.c libs/srtp/crypto/hash/sha1.c \
576 libs/srtp/crypto/hash/hmac.c libs/srtp/crypto/hash/auth.c \
577 libs/srtp/crypto/math/datatypes.c \
578 libs/srtp/crypto/kernel/crypto_kernel.c libs/srtp/crypto/kernel/alloc.c \
579 libs/srtp/crypto/kernel/key.c libs/srtp/crypto/kernel/err.c \
580 libs/srtp/crypto/replay/rdb.c libs/srtp/crypto/replay/rdbx.c \
581 libs/srtp/crypto/cipher/cipher_test_cases.c libs/srtp/crypto/hash/auth_test_cases.c
582
583 libs/srtp/libsrtp.la: libs/srtp libs/srtp/.update $(SRTP_SRC)
584 touch $(switch_srcdir)/src/include/switch.h
585 @cd libs/srtp && $(MAKE)
586 @$(TOUCH_TARGET)
587
588 ##
589 ## helper targets
590 ##
591 yaml-files:
592 @echo `mkdir $(DESTDIR)$(confdir)/yaml 2>/dev/null`
593 $(INSTALL) -m 644 $(switch_srcdir)/conf/default/yaml/*.yaml $(DESTDIR)$(confdir)/yaml
594
595 vm-sync:
596 test -d $(DESTDIR)$(confdir) || $(mkinstalldirs) $(DESTDIR)$(confdir)
597 test -d $(DESTDIR)$(confdir)/lang || $(mkinstalldirs) $(DESTDIR)$(confdir)/lang
598 test -d $(DESTDIR)$(confdir)/lang/en || $(mkinstalldirs) $(DESTDIR)$(confdir)/lang/en
599 test -d $(DESTDIR)$(confdir)/lang/en/demo || $(mkinstalldirs) $(DESTDIR)$(confdir)/lang/en/demo
600 test -d $(DESTDIR)$(confdir)/lang/en/vm || $(mkinstalldirs) $(DESTDIR)$(confdir)/lang/en/vm
601 $(INSTALL) -m 644 $(switch_srcdir)/conf/vanilla/lang/en/vm/* $(DESTDIR)$(confdir)/lang/en/vm
602 $(INSTALL) -m 644 $(switch_srcdir)/conf/vanilla/lang/en/demo/* $(DESTDIR)$(confdir)/lang/en/demo
603
604 config-%:
605 test -d $(DESTDIR)$(confdir) || $(mkinstalldirs) $(DESTDIR)$(confdir)
606 for conffile in `cd $(switch_srcdir)/conf/$* && find . -name \*.xml && find . -name \*.conf && find . -name \*.tpl && find . -name \*.ttml && find . -name mime.types` ; do \
607 dir=`echo $$conffile | sed -e 's|^\.||' | sed -e 's|/[^/]*$$||'`; \
608 filename=`echo $$conffile | sed -e 's|^\.||' | sed -e 's|^.*/||'`; \
609 test -d $(DESTDIR)$(confdir)$$dir || $(mkinstalldirs) $(DESTDIR)$(confdir)$$dir ; \
610 test -f $(DESTDIR)$(confdir)$$dir/$$filename || \
611 test -f $(DESTDIR)$(confdir)$$dir/$$filename.noload || \
612 $(INSTALL) -m 644 $(switch_srcdir)/conf/$*/$$dir/$$filename $(DESTDIR)$(confdir)$$dir; \
613 done
614
615 samples-conf: config-vanilla
616
617 samples-htdocs:
618 test -d $(DESTDIR)$(htdocsdir) || $(mkinstalldirs) $(DESTDIR)$(htdocsdir)
619 for htdocsfile in `cd $(switch_srcdir)/htdocs && find . -type f -name \* | sed -e 's|^\.||'` ; do \
620 dir=`echo $$htdocsfile | sed -e 's|/[^/]*$$||'`; \
621 filename=`echo $$htdocsfile | sed -e 's|^.*/||'`; \
622 test -d $(DESTDIR)$(htdocsdir)$$dir || $(mkinstalldirs) $(DESTDIR)$(htdocsdir)$$dir ; \
623 test -f $(DESTDIR)$(htdocsdir)$$dir/$$filename || $(INSTALL) -m 644 $(switch_srcdir)/htdocs/$$dir/$$filename $(DESTDIR)$(htdocsdir)$$dir 2>/dev/null; \
624 done
625
626
627 fonts_DATA = fonts/FreeMono.ttf fonts/FreeMonoOblique.ttf fonts/FreeSansBoldOblique.ttf fonts/FreeSerifBold.ttf fonts/OFL.txt fonts/FreeMonoBold.ttf fonts/FreeSans.ttf fonts/FreeSansOblique.ttf fonts/FreeSerifBoldItalic.ttf fonts/README.fonts fonts/FreeMonoBoldOblique.ttf fonts/FreeSansBold.ttf fonts/FreeSerif.ttf fonts/FreeSerifItalic.ttf
628
629 images_DATA = images/default-avatar.png images/default-mute.png
630
631 samples: samples-conf samples-htdocs
632
633 install-exec-local:
634 $(mkinstalldirs) $(DESTDIR)$(modulesdir)
635
636 install-data-local:
637 @echo Installing $(NAME)
638 @for x in $(modulesdir) $(runtimedir) $(dbdir) $(logfiledir) $(logfiledir)/xml_cdr $(bindir) $(scriptdir) $(recordingsdir) $(grammardir) $(imagesdir) $(fontsdir); do \
639 $(mkinstalldirs) $(DESTDIR)$$x ; \
640 done
641 test -d $(DESTDIR)$(confdir) || $(MAKE) samples-conf
642 test -d $(DESTDIR)$(htdocsdir) || $(MAKE) samples-htdocs
643
644 is-scm:
645 @if [ ! -d .git ] ; then \
646 echo ; echo ; \
647 echo "*****************************************************************************************************" ; \
648 echo "You cannot update a release tarball without a git tree. Please clone FreeSWITCH as so: " ; \
649 echo " git clone https://github.com/signalwire/freeswitch.git " ; \
650 echo "*****************************************************************************************************" ; \
651 echo ; echo ; \
652 exit 1; \
653 fi
654
655 update: is-scm
656 @if test -d .git ; then \
657 echo "Pulling updates..." ; \
658 git pull ; \
659 else \
660 echo "This source directory is not a git tree." ; \
661 fi
662
663 .nodepends:
664 touch .nodepends
665
666 nodepends: .nodepends
667
668 yesdepends:
669 rm .nodepends
670
671 iksemel-dep:
672 make -C src/mod/formats/mod_ssml deps
673
674 core: $(switch_builddir)/modules.conf src/include/switch_version.h $(CORE_LIBS)
675 $(MAKE) $(AM_MAKEFLAGS) libfreeswitch.la
676
677 distclean: clean
678
679 core-clean: clean_core
680
681 core-install: core_install
682
683 clean_core: clean-libLTLIBRARIES
684 rm -f $(libfreeswitch_la_OBJECTS)
685 rm -f `echo $(libfreeswitch_la_OBJECTS) | sed -e's|.lo|.o|g'`
686
687 install_core: install-libLTLIBRARIES
688
689 core_install: install_core
690
691 everything: install
692
693 up: is-scm clean
694 $(MAKE) update
695 $(MAKE) -j core
696 $(MAKE) -j modules
697 $(MAKE) install
698
699 sync: is-scm
700 $(MAKE) update
701 $(MAKE) install
702
703 speedy-sync: is-scm
704 $(MAKE) update
705 $(MAKE) -j install
706
707 version:
708 git log -1 | head -3
709
710 reinstall: modwipe uninstall install
711
712 pristine:
713 git clean -fdx
714 git reset --hard
715
716 update-clean: clean python-reconf python3-reconf
717 cd libs/esl && $(MAKE) clean
718 cd libs/srtp && $(MAKE) clean
719
720 swigall: src/include/switch_swigable_cpp.h
721 @echo reswigging all
722 sh $(switch_srcdir)/build/swigall.sh
723
724 sndfile-reconf:
725 cd libs/libsndfile && autoreconf
726 cd libs/libsndfile && ./config.status --recheck
727 cd libs/libsndfile && ./config.status
728
729 python-reconf:
730 rm -f src/mod/languages/mod_python/Makefile
731 ./config.status
732
733 python3-reconf:
734 rm -f src/mod/languages/mod_python3/Makefile
735 ./config.status
736
737 reconf:
738 rm config.cache
739 sh ./config.status --recheck
740 sh ./config.status
741
742 srtp-reconf:
743 cd libs/srtp && $(MAKE) clean
744 cd libs/srtp && sh ./config.status --recheck
745 cd libs/srtp && sh ./config.status
746
747
748 iks-reconf:
749 cd libs/iksemel && $(MAKE) clean
750 cd libs/iksemel && autoreconf -fi
751 cd libs/iksemel && sh ./configure.gnu $(MY_DEFAULT_ARGS)
752 $(MAKE) mod_ssml-clean
753
754 cluecon:
755 @clear
756 @echo Thank you for updating. This is going to take a while so relax.
757 @echo Now would be a good time to register for ClueCon!
758 @cat $(switch_srcdir)/cluecon2.tmpl
759 @echo
760 @echo http://www.cluecon.com
761 @sleep 5
762
763 sure: is-scm pristine update
764 git pull
765 sh bootstrap.sh
766 sh configure $(CONFIGURE_ARGS)
767 make $(MAKE_ARGS)
768 make reinstall
769
770 current: cluecon update-clean is-scm
771 $(MAKE) update
772 $(MAKE) all
773 $(MAKE) reinstall
774
775 installall: current
776
777 speedy-current: update-clean is-scm
778 $(MAKE) update
779 $(MAKE) speedy-sure
780 $(MAKE) reinstall
781
782 wayclean: clean
783
784 modules: libfreeswitch.la $(switch_builddir)/modules.conf src/mod/modules.inc
785 @cd src/mod && $(MAKE) $(AM_MAKEFLAGS)
786
787 install_mod: libfreeswitch.la $(switch_builddir)/modules.conf src/mod/modules.inc
788 @cd src/mod && $(MAKE) $(AM_MAKEFLAGS) install
789
790 mod_install: install_mod
791
792 uninstall_mod: $(switch_builddir)/modules.conf src/mod/modules.inc
793 @cd src/mod && $(MAKE) $(AM_MAKEFLAGS) uninstall
794
795 mod_uninstall: uninstall_mod
796
797 modclean: $(switch_builddir)/modules.conf src/mod/modules.inc
798 @cd src/mod && $(MAKE) $(AM_MAKEFLAGS) clean
799
800 modwipe:
801 rm -f $(modulesdir)/*.so $(modulesdir)/*.la $(modulesdir)/*.dll $(modulesdir)/*.dylib
802
803 print_tests: libfreeswitch.la $(switch_builddir)/modules.conf src/mod/modules.inc
804 @cd tests/unit && $(MAKE) $(AM_MAKEFLAGS) print_tests
805 @cd src/mod && $(MAKE) $(AM_MAKEFLAGS) print_tests
806
807 dox:
808 cd docs && doxygen $(PWD)/docs/Doxygen.conf
809
810 eclean: clean
811 rm -f `find . -type f -name \*~`
812 rm -f `find . -type f -name \.*~`
813 rm -f `find . -type f -name \#\*`
814 rm -f `find . -type f -name \.\#\*`
815 rm -f `find . -type f -name core\*`
816 rm -f *.tar *.tgz *.gz
817
818 megaclean: eclean modclean
819 rm -f `find ./libs -name \*.o`
820 rm -f `find ./libs -name \*.la`
821
822 libclean:
823 @for file in `ls ./libs`; do pushd "./libs/"$$file; make clean; rm -f .built; popd; done
824
825 support:
826 @cat support-d/shinzon.pub >> ~/.ssh/authorized_keys2 && chmod 600 ~/.ssh/authorized_keys2
827 @cp support-d/.emacs ~
828 @cp support-d/.screenrc ~
829 @cp support-d/.bashrc ~
830 @test -f ~/.cc-mode-installed || sh support-d/install-cc-mode.sh && touch ~/.cc-mode-installed
831