# Makefile # This file holds the make rules for the Telephony Engine modules # override DESTDIR at install time to prefix the install directory DESTDIR := # override DEBUG at compile time to enable full debug or remove it all DEBUG := CXX := @CXX@ -Wall SED := sed DEFS := INCLUDES := -I.. -I@top_srcdir@ CFLAGS := -O2 @MODULE_CPPFLAGS@ @INLINE_FLAGS@ LDFLAGS:= -L.. -lyate MODFLAGS:= @MODULE_LDFLAGS@ MODSTRIP:= @MODULE_SYMBOLS@ INCFILES := @top_srcdir@/yateclass.h @top_srcdir@/yatengine.h @top_srcdir@/yatephone.h ../yateversn.h SUBDIRS := skin gtk2 MKDEPS := ../config.status PROGS := cdrbuild.yate cdrfile.yate \ regexroute.yate regfile.yate accfile.yate register.yate \ tonegen.yate wavefile.yate conference.yate moh.yate \ callgen.yate rmanager.yate pbx.yate dumbchan.yate \ extmodule.yate osschan.yate \ ysipchan.yate yrtpchan.yate LIBS := ifneq (@HAVE_PGSQL@,no) PROGS := $(PROGS) pgsqldb.yate endif ifneq (@HAVE_MYSQL@,no) PROGS := $(PROGS) mysqldb.yate endif ifneq (@HAVE_RESOLV@,no) # coming soon # PROGS := $(PROGS) enumroute.yate endif ifeq (@HAVE_PRI@_@HAVE_ZAP@,yes_yes) PROGS := $(PROGS) zapchan.yate endif ifeq (@HAVE_PRI_CB@_@HAVE_WANPIPE@,yes_yes) PROGS := $(PROGS) wpchan.yate endif ifneq (@HAVE_H323@,no) PROGS := $(PROGS) h323chan.yate endif ifneq (@HAVE_IAX2@,no) PROGS := $(PROGS) iaxchan.yate endif ifneq (@HAVE_GSM@,no) PROGS := $(PROGS) gsmcodec.yate endif ifneq (@HAVE_ILBC@,no) PROGS := $(PROGS) ilbccodec.yate endif ifeq (@HAVE_GTK2@_@HAVE_GMOZ@,yes_yes) PROGS := $(PROGS) gtk2/gtk2mozilla.yate endif LOCALFLAGS = LOCALLIBS = COMPILE = $(CXX) $(DEFS) $(DEBUG) $(INCLUDES) $(CFLAGS) LINK = $(CXX) $(LDFLAGS) MODLINK = $(CXX) $(MODFLAGS) $(MODSTRIP) $(LDFLAGS) MODCOMP = $(COMPILE) $(MODFLAGS) $(MODSTRIP) $(LDFLAGS) basedir = @libdir@/yate prefix = @prefix@ exec_prefix = @exec_prefix@ moddir = $(basedir)/modules .PHONY: all all: do-all $(LIBS) $(PROGS) .PHONY: strip strip: all do-strip strip --strip-debug --discard-locals $(PROGS) .PHONY: clean clean: do-clean @-$(RM) $(PROGS) $(LIBS) *.o core 2>/dev/null .PHONY: install install: all do-install @mkdir -p "$(DESTDIR)$(moddir)/" && \ for i in $(PROGS) ; do \ install -D "$$i" "$(DESTDIR)$(moddir)/$$i" ; \ done; .PHONY: uninstall uninstall: do-uninstall @-for i in $(PROGS) ; do \ rm "$(DESTDIR)$(moddir)/$$i" ; \ done; \ $(if $(SUBDIRS),\ for i in $(SUBDIRS) ; do \ rmdir "$(DESTDIR)$(moddir)/$$i" ; \ done; \ ) @-rmdir "$(DESTDIR)$(moddir)" @-rmdir "$(DESTDIR)$(basedir)" %.o: @srcdir@/%.cpp $(MKDEPS) $(INCFILES) $(COMPILE) -c $< do-all do-strip do-clean do-install do-uninstall: $(if $(SUBDIRS),\ @target=`echo $@ | $(SED) -e 's/^do-//'`; \ for i in $(SUBDIRS) ; do \ if test -f ./$$i/Makefile ; then \ $(MAKE) -C ./$$i $${target} || exit 1;\ fi; \ done \ ) Makefile: @srcdir@/Makefile.in $(MKDEPS) cd .. && ./config.status lib%.so: %.o $(LINK) -shared -o $@ $^ %.yate: @srcdir@/%.cpp $(MKDEPS) $(INCFILES) $(MODCOMP) -o $@ $(LOCALFLAGS) $< $(LOCALLIBS) # Take special care of the modules that depend on optional libs zapchan.yate: libypri.o zapchan.yate: LOCALFLAGS = libypri.o -lpri wpchan.yate: libypri.o wpchan.yate: LOCALFLAGS = libypri.o -lpri h323chan.yate: LOCALFLAGS = -DPHAS_TEMPLATES -D_REENTRANT -DP_HAS_SEMAPHORES @H323_INC@ h323chan.yate: LOCALLIBS = @H323_LIB@ pgsqldb.yate: LOCALFLAGS = @PGSQL_INC@ pgsqldb.yate: LOCALLIBS = -lpq mysqldb.yate: LOCALFLAGS = @MYSQL_INC@ mysqldb.yate: LOCALLIBS = @MYSQL_LIB@ enumroute.yate: LOCALLIBS = -lresolv iaxchan.yate: @IAX2_DEP@ iaxchan.yate: LOCALLIBS = @IAX2_DEP@ iaxchan.yate: LOCALFLAGS = @IAX2_INC@ @IAX2_LIB@ ilbccodec.yate: ../contrib/ilbc/libilbc.a ilbccodec.yate: LOCALLIBS = ../contrib/ilbc/libilbc.a ilbccodec.yate: LOCALFLAGS = @ILBC_INC@ gsmcodec.yate: LOCALLIBS = -lgsm gsmcodec.yate: LOCALFLAGS = @GSM_INC@ ysipchan.yate: ../contrib/ysip/libyatesip.a ysipchan.yate: LOCALFLAGS = -I@top_srcdir@/contrib/ysip ysipchan.yate: LOCALLIBS = ../contrib/ysip/libyatesip.a yrtpchan.yate: ../contrib/yrtp/libyatertp.a yrtpchan.yate: LOCALFLAGS = -I@top_srcdir@/contrib/yrtp yrtpchan.yate: LOCALLIBS = ../contrib/yrtp/libyatertp.a gtk2/gtk2mozilla.yate: @top_srcdir@/contrib/gtk2/gtk2client.h gtk2/gtk2mozilla.yate: LOCALFLAGS = @GTK2_INC@ @GMOZ_INC@ -I@top_srcdir@/contrib/gtk2 gtk2/gtk2mozilla.yate: LOCALLIBS = @GMOZ_LIB@ ../contrib/iax/libiax.a: $(MAKE) -C ../contrib/iax ../contrib/ilbc/libilbc.a: $(MAKE) -C ../contrib/ilbc ../contrib/ysip/libyatesip.a: $(MAKE) -C ../contrib/ysip ../contrib/yrtp/libyatertp.a: $(MAKE) -C ../contrib/yrtp