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
This commit is contained in:
Michael Jerris 2007-03-14 14:35:11 +00:00
parent bc34fb766c
commit c99d8c9b08
8 changed files with 88 additions and 31 deletions

View File

@ -179,8 +179,13 @@ wayclean: clean
modules: libfreeswitch.la modules: libfreeswitch.la
$(MAKE) -C src/mod $(MAKE) -C src/mod
install_mod: libfreeswitch.la install_mod: libfreeswitch.la
$(MAKE) -C src/mod install $(MAKE) -C src/mod install
uninstall_mod:
$(MAKE) -C src/mod uninstall
modclean: modclean:
$(MAKE) -C src/mod clean $(MAKE) -C src/mod clean

View File

@ -184,6 +184,7 @@ EGREP = @EGREP@
EXEEXT = @EXEEXT@ EXEEXT = @EXEEXT@
F77 = @F77@ F77 = @F77@
FFLAGS = @FFLAGS@ FFLAGS = @FFLAGS@
GETLIB = @GETLIB@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
@ -1162,8 +1163,13 @@ wayclean: clean
modules: libfreeswitch.la modules: libfreeswitch.la
$(MAKE) -C src/mod $(MAKE) -C src/mod
install_mod: libfreeswitch.la install_mod: libfreeswitch.la
$(MAKE) -C src/mod install $(MAKE) -C src/mod install
uninstall_mod:
$(MAKE) -C src/mod uninstall
modclean: modclean:
$(MAKE) -C src/mod clean $(MAKE) -C src/mod clean

View File

@ -8,8 +8,10 @@ CXX=@CXX@
AWK=@AWK@ AWK=@AWK@
SHELL=@SHELL@ SHELL=@SHELL@
INSTALL=@INSTALL@ INSTALL=@INSTALL@
GETLIB=@GETLIB@
LIBTOOL=$(switch_builddir)/libtool LIBTOOL=$(switch_builddir)/libtool
LTINSTALL = $(LIBTOOL) --mode=install $(INSTALL) LTINSTALL=$(LIBTOOL) --mode=install $(INSTALL)
LTUNINSTALL=$(LIBTOOL) --mode=uninstall rm -f
CCLD = $(CC) CCLD = $(CC)
CXXLD = $(CXX) CXXLD = $(CXX)
@ -44,6 +46,7 @@ all: local_depend local_all $(MODNAME).$(DYNAMIC_LIB_EXTEN) Makefile
depend: local_depend depend: local_depend
clean: local_clean mod_clean clean: local_clean mod_clean
install: all depend_install local_install mod_install install: all depend_install local_install mod_install
uninstall: local_uninstall mod_uninstall
distclean: clean local_distclean distclean: clean local_distclean
extraclean: distclean local_extraclean extraclean: distclean local_extraclean
@ -54,13 +57,13 @@ Makefile:
echo include $$rulesdir/build/modmake.rules >> Makefile ; \ echo include $$rulesdir/build/modmake.rules >> Makefile ; \
fi ; 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 \ @if test -f $(CSOURCEFILE); then \
echo $(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); \ $(LINK) $(SOLINK) $(MODNAME).o -o $(MODNAME).$(DYNAMIC_LIB_EXTEN) $(LIBS) $(LOCAL_LDFLAGS) $(LOCAL_OBJS) $(LOCAL_LIBADD); \
else \ else \
echo $(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); \ $(CXXLINK) $(SOLINK) $(MODNAME).o -o $(MODNAME).$(DYNAMIC_LIB_EXTEN) $(LIBS) $(LOCAL_LDFLAGS) $(LOCAL_OBJS) $(LOCAL_LIBADD); \
fi; fi;
mod_clean: mod_clean:
@ -69,8 +72,11 @@ mod_clean:
mod_install: mod_install:
$(LTINSTALL) $(MODNAME).$(DYNAMIC_LIB_EXTEN) $(DESTDIR)$(PREFIX)/mod $(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 # 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 # Implicit rules for creating outputs from input files

6
configure vendored
View File

@ -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/speex"
ac_subdirs_all="$ac_subdirs_all libs/xmlrpc-c" ac_subdirs_all="$ac_subdirs_all libs/xmlrpc-c"
ac_subdirs_all="$ac_subdirs_all libs/portaudio" 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='' ac_subst_files=''
# Initialize some variables set by options. # Initialize some variables set by options.
@ -25236,6 +25236,9 @@ fi
test -n "$CURL" && break test -n "$CURL" && break
done done
GETLIB="cd $switch_srcdir/libs && ${SHELL} $switch_srcdir/build/getlib.sh"
# Check whether --enable-crash-protection or --disable-crash-protection was given. # Check whether --enable-crash-protection or --disable-crash-protection was given.
if test "${enable_crash_protection+set}" = set; then if test "${enable_crash_protection+set}" = set; then
@ -26163,6 +26166,7 @@ s,@ZCAT@,$ZCAT,;t t
s,@TAR@,$TAR,;t t s,@TAR@,$TAR,;t t
s,@WGET@,$WGET,;t t s,@WGET@,$WGET,;t t
s,@CURL@,$CURL,;t t s,@CURL@,$CURL,;t t
s,@GETLIB@,$GETLIB,;t t
s,@CRASHPROT_TRUE@,$CRASHPROT_TRUE,;t t s,@CRASHPROT_TRUE@,$CRASHPROT_TRUE,;t t
s,@CRASHPROT_FALSE@,$CRASHPROT_FALSE,;t t s,@CRASHPROT_FALSE@,$CRASHPROT_FALSE,;t t
s,@ISLINUX_TRUE@,$ISLINUX_TRUE,;t t s,@ISLINUX_TRUE@,$ISLINUX_TRUE,;t t

View File

@ -278,6 +278,9 @@ AC_PATH_PROGS(ZCAT, gunzip gzcat gzip zcat)
AC_PATH_PROGS(TAR, gtar tar) AC_PATH_PROGS(TAR, gtar tar)
AC_PATH_PROGS(WGET, wget) AC_PATH_PROGS(WGET, wget)
AC_PATH_PROGS(CURL, curl) AC_PATH_PROGS(CURL, curl)
GETLIB="cd $switch_srcdir/libs && ${SHELL} $switch_srcdir/build/getlib.sh"
AC_SUBST(GETLIB)
AC_ARG_ENABLE(crash-protection, AC_ARG_ENABLE(crash-protection,
[ --enable-crash-protection Compile with CRASH Protection],,[enable_crash_prot="no"]) [ --enable-crash-protection Compile with CRASH Protection],,[enable_crash_prot="no"])

View File

@ -36,7 +36,19 @@ install:
moddir=$(MOD_DIR); \ moddir=$(MOD_DIR); \
if test -f $$moddir/Makefile ; then \ 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) 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; \ fi; \
done done
@echo done @echo done

View File

@ -88,6 +88,7 @@ EGREP = @EGREP@
EXEEXT = @EXEEXT@ EXEEXT = @EXEEXT@
F77 = @F77@ F77 = @F77@
FFLAGS = @FFLAGS@ FFLAGS = @FFLAGS@
GETLIB = @GETLIB@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
@ -274,7 +275,6 @@ all-am: Makefile
installdirs: installdirs:
install-exec: install-exec-am install-exec: install-exec-am
install-data: install-data-am install-data: install-data-am
uninstall: uninstall-am
install-am: all-am install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
@ -380,7 +380,19 @@ install:
moddir=$(MOD_DIR); \ moddir=$(MOD_DIR); \
if test -f $$moddir/Makefile ; then \ 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) 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; \ fi; \
done done
@echo done @echo done

View File

@ -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 MODNAME=mod_shout
LAME=lame-3.97 LAME=lame-3.97
SHOUT=libshout-2.2.2 SHOUT=libshout-2.2.2
LAMELA=$(BASE)/libs/$(LAME)/libmp3lame/libmp3lame.la switch_srcdir=../../../..
SHOUTLA=$(BASE)/libs/$(SHOUT)/src/libshout.la
CURLLA=$(BASE)/libs/curl/lib/libcurl.la LAME_DIR=$(switch_srcdir)/libs/$(LAME)
LOCAL_CFLAGS=-I$(BASE)/libs/curl/include -I$(BASE)/libs/$(SHOUT)/include -I$(BASE)/libs/$(LAME)/include SHOUT_DIR=$(switch_srcdir)/libs/$(SHOUT)
LOCAL_LDFLAGS=$(LAMELA) $(SHOUTLA) $(CURLLA) 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 MP3OBJS=common.o dct64_i386.o decode_ntom.o layer3.o tabinit.o interface.o
LOCAL_OBJS=$(MP3OBJS) LOCAL_OBJS=$(MP3OBJS)
include $(switch_srcdir)/build/modmake.rules
DEFAULT_ARGS=--prefix=$(PREFIX) --disable-shared --with-pic 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): $(LAMELA): $(LAME_DIR)/Makefile
MAKE="$(MAKE)" $(BASE)/build/buildlib.sh $(BASE) $(LAME).tar.gz $(DEFAULT_ARGS) --disable-decoder cd $(LAME_DIR) && $(MAKE)
$(SHOUTLA): $(SHOUT_DIR)/Makefile:
MAKE="$(MAKE)" MOD_CFLAGS="${ALL_CFLAGS}" MOD_LDFLAGS="${LD_CFLAGS}" $(BASE)/build/buildlib.sh $(BASE) $(SHOUT).tar.gz $(DEFAULT_ARGS) $(GETLIB) $(SHOUT).tar.gz
cd $(SHOUT_DIR) && ./configure $(DEFAULT_ARGS)
$(SHOUTLA): $(SHOUT_DIR)/Makefile
cd $(SHOUT_DIR) && $(MAKE)
$(CURLLA): $(CURLLA):
cd $(BASE)/libs/curl && $(MAKE) cd $(CURL_DIR) && $(MAKE)
%.o: %.c
$(CC) $(ALL_CFLAGS) -c -o $@ $<
local_depend: $(LAMELA) $(SHOUTLA) $(MP3OBJS)