From c99d8c9b083896c559150b5a689063e86b0bb916 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Wed, 14 Mar 2007 14:35:11 +0000 Subject: [PATCH] add uninstall_mod target to the main makefile implement uninstall in modmake.rules add LIBADD_LOCAL var for use in the module makefiles, it both links to the module, and is a dependency like LOCAL_OBJS fix bug in src/mod/Makefile(.am) that was causing make install to fail on first run for those modules that used the default mod makefile implement the getlib.sh script in mod_shout Makefile (works.. but still wip) git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4589 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- Makefile.am | 5 +++ Makefile.in | 6 ++++ build/modmake.rules.in | 20 +++++++----- configure | 6 +++- configure.in | 3 ++ src/mod/Makefile.am | 14 ++++++++- src/mod/Makefile.in | 16 ++++++++-- src/mod/formats/mod_shout/Makefile | 49 ++++++++++++++++++------------ 8 files changed, 88 insertions(+), 31 deletions(-) diff --git a/Makefile.am b/Makefile.am index aafd8180f7..cd9a4e1019 100644 --- a/Makefile.am +++ b/Makefile.am @@ -179,8 +179,13 @@ wayclean: clean modules: libfreeswitch.la $(MAKE) -C src/mod + install_mod: libfreeswitch.la $(MAKE) -C src/mod install + +uninstall_mod: + $(MAKE) -C src/mod uninstall + modclean: $(MAKE) -C src/mod clean diff --git a/Makefile.in b/Makefile.in index bc1f28cb24..99feecc24c 100644 --- a/Makefile.in +++ b/Makefile.in @@ -184,6 +184,7 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ +GETLIB = @GETLIB@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -1162,8 +1163,13 @@ wayclean: clean modules: libfreeswitch.la $(MAKE) -C src/mod + install_mod: libfreeswitch.la $(MAKE) -C src/mod install + +uninstall_mod: + $(MAKE) -C src/mod uninstall + modclean: $(MAKE) -C src/mod clean diff --git a/build/modmake.rules.in b/build/modmake.rules.in index 64ac624f0f..d64b0a26fd 100644 --- a/build/modmake.rules.in +++ b/build/modmake.rules.in @@ -8,8 +8,10 @@ CXX=@CXX@ AWK=@AWK@ SHELL=@SHELL@ INSTALL=@INSTALL@ +GETLIB=@GETLIB@ LIBTOOL=$(switch_builddir)/libtool -LTINSTALL = $(LIBTOOL) --mode=install $(INSTALL) +LTINSTALL=$(LIBTOOL) --mode=install $(INSTALL) +LTUNINSTALL=$(LIBTOOL) --mode=uninstall rm -f CCLD = $(CC) CXXLD = $(CXX) @@ -44,6 +46,7 @@ all: local_depend local_all $(MODNAME).$(DYNAMIC_LIB_EXTEN) Makefile depend: local_depend clean: local_clean mod_clean install: all depend_install local_install mod_install +uninstall: local_uninstall mod_uninstall distclean: clean local_distclean extraclean: distclean local_extraclean @@ -54,13 +57,13 @@ Makefile: echo include $$rulesdir/build/modmake.rules >> Makefile ; \ fi ; -$(MODNAME).$(DYNAMIC_LIB_EXTEN): $(MODNAME).o $(LOCAL_OBJS) $(SOURCEFILE) +$(MODNAME).$(DYNAMIC_LIB_EXTEN): $(LOCAL_LIBADD) $(LOCAL_OBJS) $(SOURCEFILE) $(MODNAME).o @if test -f $(CSOURCEFILE); then \ - echo $(LINK) $(SOLINK) $(MODNAME).o -o $(MODNAME).$(DYNAMIC_LIB_EXTEN) $(LIBS) $(LOCAL_LDFLAGS) $(LOCAL_OBJS); \ - $(LINK) $(SOLINK) $(MODNAME).o -o $(MODNAME).$(DYNAMIC_LIB_EXTEN) $(LIBS) $(LOCAL_LDFLAGS) $(LOCAL_OBJS); \ + echo $(LINK) $(SOLINK) $(MODNAME).o -o $(MODNAME).$(DYNAMIC_LIB_EXTEN) $(LIBS) $(LOCAL_LDFLAGS) $(LOCAL_OBJS) $(LOCAL_LIBADD); \ + $(LINK) $(SOLINK) $(MODNAME).o -o $(MODNAME).$(DYNAMIC_LIB_EXTEN) $(LIBS) $(LOCAL_LDFLAGS) $(LOCAL_OBJS) $(LOCAL_LIBADD); \ else \ - echo $(CXXLINK) $(SOLINK) $(MODNAME).o -o $(MODNAME).$(DYNAMIC_LIB_EXTEN) $(LIBS) $(LOCAL_LDFLAGS) $(LOCAL_OBJS); \ - $(CXXLINK) $(SOLINK) $(MODNAME).o -o $(MODNAME).$(DYNAMIC_LIB_EXTEN) $(LIBS) $(LOCAL_LDFLAGS) $(LOCAL_OBJS); \ + echo $(CXXLINK) $(SOLINK) $(MODNAME).o -o $(MODNAME).$(DYNAMIC_LIB_EXTEN) $(LIBS) $(LOCAL_LDFLAGS) $(LOCAL_OBJS) $(LOCAL_LIBADD); \ + $(CXXLINK) $(SOLINK) $(MODNAME).o -o $(MODNAME).$(DYNAMIC_LIB_EXTEN) $(LIBS) $(LOCAL_LDFLAGS) $(LOCAL_OBJS) $(LOCAL_LIBADD); \ fi; mod_clean: @@ -69,8 +72,11 @@ mod_clean: mod_install: $(LTINSTALL) $(MODNAME).$(DYNAMIC_LIB_EXTEN) $(DESTDIR)$(PREFIX)/mod +mod_uninstall: + $(LTUNINSTALL) $(DESTDIR)$(PREFIX)/mod/$(MODNAME).$(DYNAMIC_LIB_EXTEN) + # define these in your makefile if you wish -local_all local_depend local_clean depend_install local_install local_distclean local_extraclean: +local_all local_depend local_clean depend_install local_install local_distclean local_extraclean local_uninstall: # # Implicit rules for creating outputs from input files diff --git a/configure b/configure index b7c07d2222..d4d5e2d362 100755 --- a/configure +++ b/configure @@ -490,7 +490,7 @@ ac_subdirs_all="$ac_subdirs_all libs/sofia-sip" ac_subdirs_all="$ac_subdirs_all libs/speex" ac_subdirs_all="$ac_subdirs_all libs/xmlrpc-c" ac_subdirs_all="$ac_subdirs_all libs/portaudio" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar switch_srcdir switch_builddir moddir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL PRTDIAG WANT_DEBUG_TRUE WANT_DEBUG_FALSE SWITCH_AM_CFLAGS SWITCH_AM_CXXFLAGS SWITCH_AM_LDFLAGS SOLINK DYNAMIC_LIB_EXTEN LIBOBJS voidp_size short_value int_value long_value int64_value size_t_value ssize_t_value int64_t_fmt uint64_t_fmt ssize_t_fmt size_t_fmt ZCAT TAR WGET CURL CRASHPROT_TRUE CRASHPROT_FALSE ISLINUX_TRUE ISLINUX_FALSE ISMAC_TRUE ISMAC_FALSE IS64BITLINUX_TRUE IS64BITLINUX_FALSE subdirs LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar switch_srcdir switch_builddir moddir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL PRTDIAG WANT_DEBUG_TRUE WANT_DEBUG_FALSE SWITCH_AM_CFLAGS SWITCH_AM_CXXFLAGS SWITCH_AM_LDFLAGS SOLINK DYNAMIC_LIB_EXTEN LIBOBJS voidp_size short_value int_value long_value int64_value size_t_value ssize_t_value int64_t_fmt uint64_t_fmt ssize_t_fmt size_t_fmt ZCAT TAR WGET CURL GETLIB CRASHPROT_TRUE CRASHPROT_FALSE ISLINUX_TRUE ISLINUX_FALSE ISMAC_TRUE ISMAC_FALSE IS64BITLINUX_TRUE IS64BITLINUX_FALSE subdirs LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -25236,6 +25236,9 @@ fi test -n "$CURL" && break done +GETLIB="cd $switch_srcdir/libs && ${SHELL} $switch_srcdir/build/getlib.sh" + + # Check whether --enable-crash-protection or --disable-crash-protection was given. if test "${enable_crash_protection+set}" = set; then @@ -26163,6 +26166,7 @@ s,@ZCAT@,$ZCAT,;t t s,@TAR@,$TAR,;t t s,@WGET@,$WGET,;t t s,@CURL@,$CURL,;t t +s,@GETLIB@,$GETLIB,;t t s,@CRASHPROT_TRUE@,$CRASHPROT_TRUE,;t t s,@CRASHPROT_FALSE@,$CRASHPROT_FALSE,;t t s,@ISLINUX_TRUE@,$ISLINUX_TRUE,;t t diff --git a/configure.in b/configure.in index 5586b2372e..7dac9ab158 100644 --- a/configure.in +++ b/configure.in @@ -278,6 +278,9 @@ AC_PATH_PROGS(ZCAT, gunzip gzcat gzip zcat) AC_PATH_PROGS(TAR, gtar tar) AC_PATH_PROGS(WGET, wget) AC_PATH_PROGS(CURL, curl) +GETLIB="cd $switch_srcdir/libs && ${SHELL} $switch_srcdir/build/getlib.sh" +AC_SUBST(GETLIB) + AC_ARG_ENABLE(crash-protection, [ --enable-crash-protection Compile with CRASH Protection],,[enable_crash_prot="no"]) diff --git a/src/mod/Makefile.am b/src/mod/Makefile.am index fe9d5d9aae..99c43fa8f3 100644 --- a/src/mod/Makefile.am +++ b/src/mod/Makefile.am @@ -36,7 +36,19 @@ install: moddir=$(MOD_DIR); \ if test -f $$moddir/Makefile ; then \ cd $$moddir && MODNAME=$(MOD_NAME) BASE=$(switch_builddir) $(MAKE) install ; else \ - cd $$moddir && MODNAME=$(MOD_NAME) BASE=$(switch_builddir) $(MAKE) -f $(switch_builddir)/build/modmake.rules clean ; \ + cd $$moddir && MODNAME=$(MOD_NAME) BASE=$(switch_builddir) $(MAKE) -f $(switch_builddir)/build/modmake.rules install ; \ + fi; \ + done + @echo done + +uninstall: + @echo Uninstalling Modules + @for i in $(OUR_MODULES) ; do \ + echo making uninstall $$i ; \ + moddir=$(MOD_DIR); \ + if test -f $$moddir/Makefile ; then \ + cd $$moddir && MODNAME=$(MOD_NAME) BASE=$(switch_builddir) $(MAKE) uninstall ; else \ + cd $$moddir && MODNAME=$(MOD_NAME) BASE=$(switch_builddir) $(MAKE) -f $(switch_builddir)/build/modmake.rules uninstall ; \ fi; \ done @echo done diff --git a/src/mod/Makefile.in b/src/mod/Makefile.in index 307cefbebc..08894c9563 100644 --- a/src/mod/Makefile.in +++ b/src/mod/Makefile.in @@ -88,6 +88,7 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ +GETLIB = @GETLIB@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -274,7 +275,6 @@ all-am: Makefile installdirs: install-exec: install-exec-am install-data: install-data-am -uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am @@ -380,7 +380,19 @@ install: moddir=$(MOD_DIR); \ if test -f $$moddir/Makefile ; then \ cd $$moddir && MODNAME=$(MOD_NAME) BASE=$(switch_builddir) $(MAKE) install ; else \ - cd $$moddir && MODNAME=$(MOD_NAME) BASE=$(switch_builddir) $(MAKE) -f $(switch_builddir)/build/modmake.rules clean ; \ + cd $$moddir && MODNAME=$(MOD_NAME) BASE=$(switch_builddir) $(MAKE) -f $(switch_builddir)/build/modmake.rules install ; \ + fi; \ + done + @echo done + +uninstall: + @echo Uninstalling Modules + @for i in $(OUR_MODULES) ; do \ + echo making uninstall $$i ; \ + moddir=$(MOD_DIR); \ + if test -f $$moddir/Makefile ; then \ + cd $$moddir && MODNAME=$(MOD_NAME) BASE=$(switch_builddir) $(MAKE) uninstall ; else \ + cd $$moddir && MODNAME=$(MOD_NAME) BASE=$(switch_builddir) $(MAKE) -f $(switch_builddir)/build/modmake.rules uninstall ; \ fi; \ done @echo done diff --git a/src/mod/formats/mod_shout/Makefile b/src/mod/formats/mod_shout/Makefile index 532d2d5596..b85ba7fd23 100644 --- a/src/mod/formats/mod_shout/Makefile +++ b/src/mod/formats/mod_shout/Makefile @@ -1,34 +1,43 @@ -# define these targets in your makefile if you wish -# local_all local_depend local_clean depend_install local_install local_distclean local_extraclean: - -# and define these variables to impact your build MODNAME=mod_shout LAME=lame-3.97 SHOUT=libshout-2.2.2 -LAMELA=$(BASE)/libs/$(LAME)/libmp3lame/libmp3lame.la -SHOUTLA=$(BASE)/libs/$(SHOUT)/src/libshout.la -CURLLA=$(BASE)/libs/curl/lib/libcurl.la -LOCAL_CFLAGS=-I$(BASE)/libs/curl/include -I$(BASE)/libs/$(SHOUT)/include -I$(BASE)/libs/$(LAME)/include -LOCAL_LDFLAGS=$(LAMELA) $(SHOUTLA) $(CURLLA) +switch_srcdir=../../../.. + +LAME_DIR=$(switch_srcdir)/libs/$(LAME) +SHOUT_DIR=$(switch_srcdir)/libs/$(SHOUT) +CURL_DIR=$(switch_srcdir)/libs/curl + +LAMELA=$(LAME_DIR)/libmp3lame/libmp3lame.la +SHOUTLA=$(SHOUT_DIR)/src/libshout.la +CURLLA=$(CURL_DIR)/lib/libcurl.la + +LOCAL_CFLAGS=-I$(CURL_DIR)/include -I$(SHOUT_DIR)/include -I$(LAME_DIR)/include +LOCAL_LIBADD=$(LAMELA) $(SHOUTLA) $(CURLLA) + MP3OBJS=common.o dct64_i386.o decode_ntom.o layer3.o tabinit.o interface.o LOCAL_OBJS=$(MP3OBJS) + +include $(switch_srcdir)/build/modmake.rules + DEFAULT_ARGS=--prefix=$(PREFIX) --disable-shared --with-pic -include ../../../../build/modmake.rules +$(LAME_DIR)/Makefile: + $(GETLIB) $(LAME).tar.gz + cd $(LAME_DIR) && ./configure $(DEFAULT_ARGS) --disable-decoder -$(LAMELA): - MAKE="$(MAKE)" $(BASE)/build/buildlib.sh $(BASE) $(LAME).tar.gz $(DEFAULT_ARGS) --disable-decoder +$(LAMELA): $(LAME_DIR)/Makefile + cd $(LAME_DIR) && $(MAKE) -$(SHOUTLA): - MAKE="$(MAKE)" MOD_CFLAGS="${ALL_CFLAGS}" MOD_LDFLAGS="${LD_CFLAGS}" $(BASE)/build/buildlib.sh $(BASE) $(SHOUT).tar.gz $(DEFAULT_ARGS) +$(SHOUT_DIR)/Makefile: + $(GETLIB) $(SHOUT).tar.gz + cd $(SHOUT_DIR) && ./configure $(DEFAULT_ARGS) + +$(SHOUTLA): $(SHOUT_DIR)/Makefile + cd $(SHOUT_DIR) && $(MAKE) $(CURLLA): - cd $(BASE)/libs/curl && $(MAKE) - -%.o: %.c - $(CC) $(ALL_CFLAGS) -c -o $@ $< - -local_depend: $(LAMELA) $(SHOUTLA) $(MP3OBJS) + cd $(CURL_DIR) && $(MAKE) +