From 670b52a218e9b918b414c815e8e133bc01155207 Mon Sep 17 00:00:00 2001 From: Nicolas Thill Date: Sun, 7 May 2006 19:05:51 +0000 Subject: [PATCH] make asterisk chan_bluetooth and chan_h323 modules optional, link openh323 and pwlib statically. SVN-Revision: 3737 --- openwrt/package/Makefile | 4 +- openwrt/package/asterisk/Config.in | 4 +- openwrt/package/asterisk/Makefile | 34 +++--- .../asterisk/ipkg/asterisk-chan-h323.control | 2 +- .../asterisk-1.0.9-chan_bluetooth.patch | 15 +-- .../patches/asterisk-1.2.1-chan_h323.patch | 32 +++++ openwrt/package/depend.mk | 8 +- openwrt/package/openh323/Config.in | 6 +- openwrt/package/openh323/Makefile | 76 +++++++----- openwrt/package/pwlib/Config.in | 4 +- openwrt/package/pwlib/Makefile | 113 +++++++++++++----- 11 files changed, 195 insertions(+), 103 deletions(-) create mode 100644 openwrt/package/asterisk/patches/asterisk-1.2.1-chan_h323.patch diff --git a/openwrt/package/Makefile b/openwrt/package/Makefile index bc5f1f287b..7782afc570 100644 --- a/openwrt/package/Makefile +++ b/openwrt/package/Makefile @@ -170,7 +170,7 @@ package-$(BR2_PACKAGE_NTPCLIENT) += ntpclient package-$(BR2_PACKAGE_NVRAM) += nvram package-$(BR2_PACKAGE_OLSRD) += olsrd package-$(BR2_COMPILE_OPENCDK) += opencdk -package-$(BR2_PACKAGE_OPENH323) += openh323 +package-$(BR2_COMPILE_OPENH323) += openh323 package-$(BR2_COMPILE_OPENLDAP) += openldap package-$(BR2_PACKAGE_OPENNTPD) += openntpd package-$(BR2_PACKAGE_OPENSER) += openser @@ -203,7 +203,7 @@ package-$(BR2_PACKAGE_PRIVOXY) += privoxy package-$(BR2_PACKAGE_PROCMAIL) += procmail package-$(BR2_PACKAGE_PSYBNC) += psybnc package-$(BR2_PACKAGE_PTUNNEL) += ptunnel -package-$(BR2_PACKAGE_PWLIB) += pwlib +package-$(BR2_COMPILE_PWLIB) += pwlib package-$(BR2_PACKAGE_QUAGGA) += quagga package-$(BR2_COMPILE_RADIUSCLIENT_NG) += radiusclient-ng package-$(BR2_PACKAGE_RADVD) += radvd diff --git a/openwrt/package/asterisk/Config.in b/openwrt/package/asterisk/Config.in index 7efaee5771..a78300f59d 100644 --- a/openwrt/package/asterisk/Config.in +++ b/openwrt/package/asterisk/Config.in @@ -26,7 +26,9 @@ config BR2_PACKAGE_ASTERISK_CHAN_H323 tristate default m if CONFIG_DEVEL depends BR2_PACKAGE_ASTERISK - select BR2_PACKAGE_OPENH323 + select BR2_COMPILE_OPENH323 + select BR2_PACKAGE_LIBPTHREAD + select BR2_PACKAGE_UCLIBCXX help H.323 support for Asterisk diff --git a/openwrt/package/asterisk/Makefile b/openwrt/package/asterisk/Makefile index 015f0cc219..194e7eb667 100644 --- a/openwrt/package/asterisk/Makefile +++ b/openwrt/package/asterisk/Makefile @@ -49,6 +49,16 @@ endif ifneq ($(BR2_PACKAGE_ASTERISK_SQLITE),) EXTRA_CDR_MODULES += cdr_sqlite.so endif +ifneq ($(BR2_PACKAGE_ASTERISK_CHAN_BLUETOOTH),) +EXTRA_CHAN_MODULES += chan_bluetooth.so +endif +ifneq ($(BR2_PACKAGE_ASTERISK_CHAN_H323),) +EXTRA_DEFINES += \ + OPENH323DIR="$(BUILD_DIR)/openh323" \ + PWLIBDIR="$(BUILD_DIR)/pwlib" \ + CXXLIBS="-nodefaultlibs -luClibc++ -lc -lm -lgcc" +EXTRA_CHAN_MODULES += chan_h323.so +endif ifneq ($(BR2_PACKAGE_ASTERISK_CODEC_SPEEX),) EXTRA_CFLAGS += -I$(STAGING_DIR)/usr/include/speex EXTRA_CODEC_MODULES += codec_speex.so @@ -58,21 +68,12 @@ $(PKG_BUILD_DIR)/.configured: touch $@ $(PKG_BUILD_DIR)/.built: - (cd $(PKG_BUILD_DIR)/channels/h323/ ; \ - $(MAKE) \ - CROSS_ARCH="Linux" \ - CROSS_COMPILE="$(TARGET_CROSS)" \ - CROSS_COMPILE_BIN="/void/" \ - CROSS_COMPILE_TARGET="/void/" \ +ifneq ($(BR2_PACKAGE_ASTERISK_CHAN_H323),) + $(MAKE) -C "$(PKG_BUILD_DIR)/channels/h323" \ $(TARGET_CONFIGURE_OPTS) \ - HOST_CC="$(HOSTCC)" \ - OPTIMIZE="$(TARGET_CFLAGS)" \ - PROC="$(ARCH)" \ - DEBUG="" \ - OPTIONS="-DLOW_MEMORY -Dlinux" \ - OPENH323DIR=$(BUILD_DIR)/openh323-cvs-20051230 \ - opt ; \ - ); + $(EXTRA_DEFINES) \ + optnoshared +endif $(MAKE) -C "$(PKG_BUILD_DIR)" \ CROSS_ARCH="Linux" \ CROSS_COMPILE="$(TARGET_CROSS)" \ @@ -89,12 +90,12 @@ $(PKG_BUILD_DIR)/.built: EXTRA_LDFLAGS="$(EXTRA_LDFLAGS)" \ EXTRA_APP_MODULES="$(EXTRA_APP_MODULES)" \ EXTRA_CDR_MODULES="$(EXTRA_CDR_MODULES)" \ + EXTRA_CHAN_MODULES="$(EXTRA_CHAN_MODULES)" \ EXTRA_CODEC_MODULES="$(EXTRA_CODEC_MODULES)" \ EXTRA_RES_MODULES="$(EXTRA_RES_MODULES)" \ DESTDIR="$(PKG_INSTALL_DIR)" \ ASTVARLIBDIR="/usr/lib/asterisk" \ - OPENH323DIR=$(BUILD_DIR)/openh323-cvs-20051230 \ - PWLIBDIR=$(BUILD_DIR)/pwlib \ + $(EXTRA_DEFINES) \ all install samples rm -f $(PKG_INSTALL_DIR)/etc/asterisk/*.old touch $@ @@ -117,6 +118,7 @@ $(IPKG_ASTERISK): *mp3* *nbscat* *mysql* *postgres* *pgsql* *voicemail* *speex* \ *zapateller* *jpeg*; \ rm -f chan_bluetooth.so ; \ + rm -f chan_h323.so ; \ rm -f chan_mgcp.so ; \ rm -f chan_skinny.so ; \ rm -f {codec,format}_ilbc.so ; \ diff --git a/openwrt/package/asterisk/ipkg/asterisk-chan-h323.control b/openwrt/package/asterisk/ipkg/asterisk-chan-h323.control index 55af6f1421..fe6bf9a48d 100644 --- a/openwrt/package/asterisk/ipkg/asterisk-chan-h323.control +++ b/openwrt/package/asterisk/ipkg/asterisk-chan-h323.control @@ -2,4 +2,4 @@ Package: asterisk-chan-h323 Priority: optional Section: net Description: H.323 support for Asterisk -Depends: asterisk, openh323 +Depends: asterisk, libpthead, uclibc++ diff --git a/openwrt/package/asterisk/patches/asterisk-1.0.9-chan_bluetooth.patch b/openwrt/package/asterisk/patches/asterisk-1.0.9-chan_bluetooth.patch index 7c278a71b4..4f3425db3d 100644 --- a/openwrt/package/asterisk/patches/asterisk-1.0.9-chan_bluetooth.patch +++ b/openwrt/package/asterisk/patches/asterisk-1.0.9-chan_bluetooth.patch @@ -1,23 +1,14 @@ diff -ruN asterisk-1.0.9-old/channels/Makefile asterisk-1.0.9-new/channels/Makefile --- asterisk-1.0.9-old/channels/Makefile 2005-08-22 20:42:22.000000000 +0200 +++ asterisk-1.0.9-new/channels/Makefile 2005-08-22 21:12:14.000000000 +0200 -@@ -37,6 +37,12 @@ - # - #CHANNEL_LIBS+=chan_vofr +@@ -202,6 +202,13 @@ + chan_h323.so: chan_h323.o h323/libchanh323.a + $(CC) $(SOLINK) -o $@ $< h323/libchanh323.a $(CHANH323LIB) -L$(PWLIBDIR)/lib $(PTLIB) -L$(OPENH323DIR)/lib $(H323LIB) -L/usr/lib -lcrypto -lssl -lexpat +# +# Asterisk Bluetooth Support +# http://www.crazygreek.co.uk/content/chan_bluetooth +# -+CHANNEL_LIBS += chan_bluetooth.so -+ - ifeq (${OSARCH},OpenBSD) - MYSQLLIB=-L/usr/local/lib/mysql -lmysqlclient - CFLAGS+=-I/usr/local/include -@@ -202,6 +208,9 @@ - chan_h323.so: chan_h323.o h323/libchanh323.a - $(CC) $(SOLINK) -o $@ $< h323/libchanh323.a $(CHANH323LIB) -L$(PWLIBDIR)/lib $(PTLIB) -L$(OPENH323DIR)/lib $(H323LIB) -L/usr/lib -lcrypto -lssl -lexpat - +chan_bluetooth.so: chan_bluetooth.o + $(CC) $(SOLINK) -o $@ $< $(EXTRA_LDFLAGS) -lbluetooth + diff --git a/openwrt/package/asterisk/patches/asterisk-1.2.1-chan_h323.patch b/openwrt/package/asterisk/patches/asterisk-1.2.1-chan_h323.patch new file mode 100644 index 0000000000..10760de0be --- /dev/null +++ b/openwrt/package/asterisk/patches/asterisk-1.2.1-chan_h323.patch @@ -0,0 +1,32 @@ +diff -ruN asterisk-1.2.1-old/channels/Makefile asterisk-1.2.1-new/channels/Makefile +--- asterisk-1.2.1-old/channels/Makefile 2006-05-07 13:06:06.000000000 +0200 ++++ asterisk-1.2.1-new/channels/Makefile 2006-05-07 15:26:00.000000000 +0200 +@@ -15,6 +15,7 @@ + # + + CHANNEL_LIBS=chan_sip.so chan_agent.so chan_mgcp.so chan_iax2.so chan_local.so chan_skinny.so chan_features.so ++CXXLIBS=-lstdc++ + + ifneq (${OSARCH},CYGWIN) + # if you really, really want to use these drivers, uncomment the line below +@@ -230,7 +231,7 @@ + + ifeq (${OSARCH},Linux) + chan_h323.so: chan_h323.o h323/libchanh323.a h323/Makefile.ast +- $(CC) $(SOLINK) $(H323LDFLAGS) -o $@ $< h323/libchanh323.a $(H323LDLIBS) -lstdc++ ++ $(CC) $(SOLINK) $(H323LDFLAGS) -o $@ $< h323/libchanh323.a $(H323LDLIBS) $(CXXLIBS) + else + chan_h323.so: chan_h323.o h323/libchanh323.a + $(CC) $(SOLINK) -o $@ $< h323/libchanh323.a $(CHANH323LIB) -L$(PWLIBDIR)/lib $(PTLIB) -L$(OPENH323DIR)/lib $(H323LIB) -L/usr/lib -lcrypto -lssl -lexpat +diff -ruN asterisk-1.2.1-old/channels/h323/Makefile asterisk-1.2.1-new/channels/h323/Makefile +--- asterisk-1.2.1-old/channels/h323/Makefile 2005-11-29 19:24:39.000000000 +0100 ++++ asterisk-1.2.1-new/channels/h323/Makefile 2006-05-07 13:18:46.000000000 +0200 +@@ -30,7 +30,7 @@ + touch $(SOURCES) + + libchanh323.a: $(OBJS) +- ar crv $@ $(OBJS) ++ $(AR) crv $@ $(OBJS) + + Makefile.ast: FORCE + @echo H323CFLAGS = $(STDCCFLAGS) $(OPTCCFLAGS) $(CFLAGS) >$@.tmp diff --git a/openwrt/package/depend.mk b/openwrt/package/depend.mk index 63e185b2b2..f265cb581d 100644 --- a/openwrt/package/depend.mk +++ b/openwrt/package/depend.mk @@ -116,7 +116,13 @@ wpa_supplicant-compile: openssl-compile wx200d-compile: postgresql-compile xsupplicant-compile: openssl-compile -asterisk-compile: bluez-libs-compile ncurses-compile openssl-compile openh323-compile +asterisk-compile: ncurses-compile openssl-compile +ifneq ($(BR2_PACKAGE_ASTERISK_CHAN_BLUETOOTH),) +asterisk-compile: bluez-libs-compile +endif +ifneq ($(BR2_PACKAGE_ASTERISK_CHAN_H323),) +asterisk-compile: openh323-compile uclibc++-compile +endif ifneq ($(BR2_PACKAGE_ASTERISK_CODEC_SPEEX),) asterisk-compile: speex-compile endif diff --git a/openwrt/package/openh323/Config.in b/openwrt/package/openh323/Config.in index 1aa3202e9c..6dfe1f97a6 100644 --- a/openwrt/package/openh323/Config.in +++ b/openwrt/package/openh323/Config.in @@ -1,6 +1,6 @@ -config BR2_PACKAGE_OPENH323 - prompt "openh323.......................... OpenH323 implementation" +config BR2_COMPILE_OPENH323 +# prompt "openh323.......................... OpenH323 implementation" tristate - select BR2_PACKAGE_PWLIB + select BR2_COMPILE_PWLIB default n help diff --git a/openwrt/package/openh323/Makefile b/openwrt/package/openh323/Makefile index f9b8a514f9..a17ac00999 100644 --- a/openwrt/package/openh323/Makefile +++ b/openwrt/package/openh323/Makefile @@ -12,45 +12,57 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_CAT:=zcat PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) -PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install include $(TOPDIR)/package/rules.mk $(eval $(call PKG_template,OPENH323,openh323,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH))) $(PKG_BUILD_DIR)/.configured: - rm -rf $(PKG_INSTALL_DIR); - mkdir -p $(PKG_INSTALL_DIR); - ln -s $(PKG_BUILD_DIR)/../pwlib-cvs-20051227 $(PKG_BUILD_DIR)/../pwlib; - cd $(PKG_BUILD_DIR); rm -rf config.{cache,status}; \ - CFLAGS="$(TARGET_CFLAGS)" \ - CPPFLAGS="-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include" \ - LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib" \ - PWLIBDIR="$(STAGING_DIR)" \ - ./configure \ - --prefix=$(STAGING_DIR) \ - --target=$(GNU_TARGET_NAME) \ - --host=$(GNU_TARGET_NAME) \ - --build=$(GNU_HOST_NAME) \ - cd $(PKG_BUILD_DIR)/plugins; rm -rf config.{cache,status}; \ - CFLAGS="$(TARGET_CFLAGS)" \ - CPPFLAGS="-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include" \ - LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib" \ - PWLIBDIR="$(STAGING_DIR)" \ - ./configure \ - --prefix=$(STAGING_DIR) + ( cd $(PKG_BUILD_DIR); rm -rf config.{cache,status}; \ + CFLAGS="$(TARGET_CFLAGS)" \ + CXXFLAGS="$(TARGET_CFLAGS) -fno-builtin -fno-rtti" \ + CPPFLAGS="-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include" \ + LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib" \ + $(TARGET_CONFIGURE_OPTS) \ + ./configure \ + --target=$(GNU_TARGET_NAME) \ + --host=$(GNU_TARGET_NAME) \ + --build=$(GNU_HOST_NAME) \ + --program-prefix="" \ + --program-suffix="" \ + --prefix=/usr \ + --exec-prefix=/usr \ + --bindir=/usr/bin \ + --datadir=/usr/share \ + --includedir=/usr/include \ + --infodir=/usr/share/info \ + --libdir=/usr/lib \ + --libexecdir=/usr/lib \ + --localstatedir=/var \ + --mandir=/usr/share/man \ + --sbindir=/usr/sbin \ + --sysconfdir=/etc \ + $(DISABLE_LARGEFILE) \ + $(DISABLE_NLS) \ + \ + --enable-minsize \ + --enable-audio \ + --disable-video \ + ); touch $@ + $(PKG_BUILD_DIR)/.built: - CFLAGS="$(TARGET_CFLAGS)" \ - CPPFLAGS="-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include" \ - LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib" \ - PWLIBDIR="$(PKG_BUILD_DIR)/../pwlib-cvs-20051227/" \ - $(MAKE) -C $(PKG_BUILD_DIR)/plugins $(TARGET_CONFIGURE_OPTS) - - CFLAGS="$(TARGET_CFLAGS)" \ - CPPFLAGS="-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include" \ - LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib" \ - PWLIBDIR="$(PKG_BUILD_DIR)/../pwlib-cvs-20051227/" \ - $(MAKE) -C $(PKG_BUILD_DIR) $(TARGET_CONFIGURE_OPTS) opt install + $(MAKE) -C $(PKG_BUILD_DIR) \ + $(TARGET_CONFIGURE_OPTS) \ + optnoshared touch $@ + +install-link: + ln -s $(PKG_NAME)-$(PKG_VERSION) $(BUILD_DIR)/$(PKG_NAME) + +uninstall-link: + rm -rf $(BUILD_DIR)/$(PKG_NAME) + +compile-targets: $(PKG_BUILD_DIR)/.built install-link +clean-targets: uninstall-link diff --git a/openwrt/package/pwlib/Config.in b/openwrt/package/pwlib/Config.in index 1ad5429435..0d9d11c768 100644 --- a/openwrt/package/pwlib/Config.in +++ b/openwrt/package/pwlib/Config.in @@ -1,5 +1,5 @@ -config BR2_PACKAGE_PWLIB - prompt "pwlib............................. Portable Windows library" +config BR2_COMPILE_PWLIB +# prompt "pwlib............................. Portable Windows library" tristate select BR2_PACKAGE_LIBPTHREAD default n diff --git a/openwrt/package/pwlib/Makefile b/openwrt/package/pwlib/Makefile index cb933e1db9..66e806dc17 100644 --- a/openwrt/package/pwlib/Makefile +++ b/openwrt/package/pwlib/Makefile @@ -12,48 +12,95 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_CAT:=zcat PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) -PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install include $(TOPDIR)/package/rules.mk $(eval $(call PKG_template,PWLIB,pwlib,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH))) $(PKG_BUILD_DIR)/.configured: - rm -rf $(PKG_INSTALL_DIR) - mkdir -p $(PKG_INSTALL_DIR) - cd $(PKG_BUILD_DIR); rm -rf config.{cache,status}; \ - CFLAGS="$(TARGET_CFLAGS)" \ - CPPFLAGS="-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include" \ - LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib" \ - $(TARGET_CONFIGURE_OPTS) \ - ./configure \ - --prefix=$(STAGING_DIR) \ - --target=$(GNU_TARGET_NAME) \ - --host=$(GNU_TARGET_NAME) \ - --build=$(GNU_HOST_NAME) \ - --enable-openh323 \ - --disable-openldap \ - --disable-openssl \ - --disable-ftp \ - --disable-qos \ - --disable-expat \ - --disable-jabber \ - --disable-xmlrpc \ - --disable-ipv6 \ - --disable-sdl \ - --disable-video \ - --disable-socks \ - --disable-ftp \ - --disable-snmp \ - --disable-telnet \ - --disable-serial - --disable-pop3smtp \ - --disable-http \ - --disable-httpsvc + ( cd $(PKG_BUILD_DIR); rm -rf config.{cache,status}; \ + CFLAGS="$(TARGET_CFLAGS)" \ + CXXFLAGS="$(TARGET_CFLAGS) -fno-builtin -fno-rtti" \ + CPPFLAGS="-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include" \ + LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib" \ + $(TARGET_CONFIGURE_OPTS) \ + ./configure \ + --target=$(GNU_TARGET_NAME) \ + --host=$(GNU_TARGET_NAME) \ + --build=$(GNU_HOST_NAME) \ + --program-prefix="" \ + --program-suffix="" \ + --prefix=/usr \ + --exec-prefix=/usr \ + --bindir=/usr/bin \ + --datadir=/usr/share \ + --includedir=/usr/include \ + --infodir=/usr/share/info \ + --libdir=/usr/lib \ + --libexecdir=/usr/lib \ + --localstatedir=/var \ + --mandir=/usr/share/man \ + --sbindir=/usr/sbin \ + --sysconfdir=/etc \ + $(DISABLE_LARGEFILE) \ + $(DISABLE_NLS) \ + \ + --enable-minsize \ + --enable-openh323 \ + --disable-opal \ + --disable-internalregex \ + --disable-plugins \ + --enable-audio \ + --disable-alsa \ + --disable-asn \ + --disable-avc \ + --disable-dc \ + --disable-dtmf \ + --disable-expat \ + --disable-ftp \ + --disable-http \ + --disable-httpsvc \ + --disable-ipv6 \ + --disable-jabber \ + --disable-openldap \ + --disable-openssl \ + --disable-oss \ + --disable-pipechan \ + --disable-pop3smtp \ + --disable-remconn \ + --disable-resolver \ + --disable-qos \ + --disable-sasl \ + --disable-sdl \ + --disable-serial \ + --disable-shm-video \ + --disable-snmp \ + --disable-soap \ + --disable-socks \ + --disable-stun \ + --disable-telnet \ + --disable-tts \ + --disable-v4l \ + --disable-v4l2 \ + --disable-bsdvideo \ + --disable-video \ + --disable-vxml \ + --disable-wavfile \ + --disable-xmlrpc \ + ); touch $@ $(PKG_BUILD_DIR)/.built: $(MAKE) -C $(PKG_BUILD_DIR) \ $(TARGET_CONFIGURE_OPTS) \ - all install + optnoshared touch $@ + +install-link: + ln -s $(PKG_NAME)-$(PKG_VERSION) $(BUILD_DIR)/$(PKG_NAME) + +uninstall-link: + rm -rf $(BUILD_DIR)/$(PKG_NAME) + +compile-targets: $(PKG_BUILD_DIR)/.built install-link +clean-targets: uninstall-link -- 2.25.1