Browse Source

make more apps statically linkable

- update libusb to latest upstream
- update bluez to latest upstream
- add a new PKG_OPTS option: libonly, useful for
  library only packages, which are not created, when
  static linking is choosen
Waldemar Brodkorb 14 years ago
parent
commit
6d26b19269

+ 14 - 8
mk/package.mk

@@ -3,24 +3,28 @@
 
 all: build-all-pkgs
 
+TCFLAGS:=		${TARGET_CFLAGS}
+TCXXFLAGS:=		${TARGET_CFLAGS}
+TCPPFLAGS:=		${TARGET_CPPFLAGS}
+TLDFLAGS:=		${TARGET_LDFLAGS} -Wl,-rpath -Wl,/usr/lib \
+			-Wl,-rpath-link -Wl,${STAGING_DIR}/usr/lib \
+			-L${STAGING_DIR}/lib -L${STAGING_DIR}/usr/lib
 ifeq ($(ADK_STATIC),y)
 TCFLAGS:=		${TARGET_CFLAGS} -static
 TCXXFLAGS:=		${TARGET_CFLAGS} -static
 TCPPFLAGS:=		${TARGET_CPPFLAGS} -static
+TLDFLAGS:=		${TARGET_LDFLAGS} -Wl,-rpath -Wl,/usr/lib \
+			-Wl,-rpath-link -Wl,${STAGING_DIR}/usr/lib \
+			-L${STAGING_DIR}/lib -L${STAGING_DIR}/usr/lib \
+			-static
+endif
 ifeq ($(ADK_NATIVE),y)
 TCFLAGS:=
 TCXXFLAGS:=
 TCPPFLAGS:=
 TLDFLAGS:=
-else
-TCFLAGS:=		${TARGET_CFLAGS}
-TCXXFLAGS:=		${TARGET_CFLAGS}
-TCPPFLAGS:=		${TARGET_CPPFLAGS}
-TLDFLAGS:=		${TARGET_LDFLAGS} -Wl,-rpath -Wl,/usr/lib \
-			-Wl,-rpath-link -Wl,${STAGING_DIR}/usr/lib \
-			-L${STAGING_DIR}/lib -L${STAGING_DIR}/usr/lib
-endif
 endif
+
 ifeq ($(ADK_DEBUG),)
 TCPPFLAGS+=		-DNDEBUG
 endif
@@ -232,7 +236,9 @@ ifeq (,$(filter noscripts,$(7)))
 		    >>'$${STAGING_PARENT}/pkg/$(1)'; \
 	done
 endif
+ifeq (,$(filter libonly,$(7)))
 	$${PKG_BUILD} $${IDIR_$(1)} $${PACKAGE_DIR} $(MAKE_TRACE)
+endif
 
 clean-targets: clean-dev-$(1)
 

+ 2 - 0
mk/pkg-bottom.mk

@@ -120,7 +120,9 @@ endif
 		[[ -e $$a ]] || continue; \
 		$(SED) "s,^prefix=.*,prefix=${STAGING_DIR}/usr," $$a; \
 	done
+ifeq (,$(filter libonly,${PKG_OPTS}))
 	@env ${MAKE_ENV} ${MAKE} post-install $(MAKE_TRACE)
+endif
 ifeq (,$(filter noremove,${PKG_OPTS}))
 	@if test -s '${STAGING_PARENT}/pkg/${PKG_NAME}'; then \
 		cd '${STAGING_DIR}'; \

+ 1 - 1
package/Depends.mk

@@ -9,7 +9,7 @@ atftp-compile: readline-compile ncurses-compile
 avahi-compile: libdaemon-compile expat-compile gdbm-compile glib-compile
 bind-compile: openssl-compile
 bitlbee-compile: libiconv-compile openssl-compile glib-compile
-bluez-compile: libusb-compile dbus-compile
+bluez-compile: libusb-compile dbus-compile glib-compile
 bogofilter-compile: libiconv-compile libdb-compile
 ifeq (${ADK_COMPILE_CBTT_WITH_UCLIBCXX},y)
 cbtt-compile: uclibc++-compile

+ 3 - 0
package/bluez/Config.in

@@ -3,6 +3,9 @@ config ADK_PACKAGE_BLUEZ
 	tristate
 	default n
 	select ADK_KPACKAGE_KMOD_BT
+	select ADK_PACKAGE_GLIB
+	select ADK_PACKAGE_DBUS
+	select ADK_PACKAGE_LIBUSB
 	help
 	  Bluez libs and apps. 
 	  

+ 10 - 2
package/bluez/Makefile

@@ -4,9 +4,9 @@
 include ${TOPDIR}/rules.mk
 
 PKG_NAME:=		bluez
-PKG_VERSION:=		4.40
+PKG_VERSION:=		4.56
 PKG_RELEASE:=		1
-PKG_MD5SUM:=		a25fa37c97c309338649f6a5fd4cea76
+PKG_MD5SUM:=		92ea2e86a5489f0d16567920f2ec9b36
 PKG_DESCR:=		bluetooth libraries and applications
 PKG_SECTION:=		bluetooth
 PKG_DEPENDS:=		kmod-bluetooth
@@ -17,7 +17,13 @@ include ${TOPDIR}/mk/package.mk
 
 $(eval $(call PKG_template,BLUEZ,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
 
+ifeq ($(ADK_STATIC),y)
+XAKE_FLAGS+=		V=1 CCLD="$(TARGET_CC) -all-static -pthread"
+else
+XAKE_FLAGS+=            V=1
+endif
 CONFIGURE_STYLE:=	gnu
+CONFIGURE_ENV+=		ac_cv_prog_cc_pie=no
 CONFIGURE_ARGS+=	--enable-tools \
 			--enable-alsa \
 			--enable-usb \
@@ -30,8 +36,10 @@ BUILD_STYLE:=		auto
 INSTALL_STYLE:=		auto
 
 post-install:
+ifeq ($(ADK_STATIC),n)
 	${INSTALL_DIR} ${IDIR_BLUEZ}/usr/lib
 	${CP} ${WRKINST}/usr/lib/libbluetooth.so.* ${IDIR_BLUEZ}/usr/lib/
+endif
 	${INSTALL_DIR} $(IDIR_BLUEZ)/etc/dbus-1/system.d
 	${INSTALL_DIR} ${IDIR_BLUEZ}/usr/bin
 	${CP} ${WRKINST}/usr/bin/* ${IDIR_BLUEZ}/usr/bin/

+ 9 - 4
package/dbus/Makefile

@@ -12,10 +12,13 @@ PKG_SECTION:=		net
 PKG_DEPENDS:=		libexpat
 PKG_URL:=		http://dbus.freedesktop.org
 PKG_SITES:=		http://dbus.freedesktop.org/releases/dbus/
+ifeq ($(ADK_STATIC),y)
+PKG_OPTS:=		libonly
+endif
 
 include ${TOPDIR}/mk/package.mk
 
-$(eval $(call PKG_template,DBUS,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+$(eval $(call PKG_template,DBUS,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
 
 CONFIGURE_STYLE:=	gnu
 CONFIGURE_ARGS+=	--disable-tests \
@@ -31,13 +34,15 @@ CONFIGURE_ENV+=		ac_cv_have_abstract_sockets=no
 BUILD_STYLE:=		auto
 INSTALL_STYLE:=		auto
 
+pre-install:
+	${INSTALL_DIR} $(STAGING_DIR)/usr/include/dbus-1.0/dbus
+	$(CP) $(WRKBUILD)/dbus/dbus-arch-deps.h \
+		$(STAGING_DIR)/usr/include/dbus-1.0/dbus/
+
 post-install:
 	${INSTALL_DIR} ${IDIR_DBUS}/etc ${IDIR_DBUS}/usr/lib ${IDIR_DBUS}/usr/bin
-	${INSTALL_DIR} $(STAGING_DIR)/usr/include/dbus-1.0/dbus
 	${CP} ${WRKINST}/etc/dbus-1 ${IDIR_DBUS}/etc/
 	${CP} ${WRKINST}/usr/lib/libdbus-1.so.* ${IDIR_DBUS}/usr/lib/
-	$(CP) $(WRKINST)/usr/lib/dbus-1.0/include/dbus/dbus-arch-deps.h \
-		$(STAGING_DIR)/usr/include/dbus-1.0/dbus/
 	${INSTALL_BIN} ${WRKINST}/usr/bin/dbus-daemon ${IDIR_DBUS}/usr/bin/
 	${INSTALL_BIN} ${WRKINST}/usr/bin/dbus-launch ${IDIR_DBUS}/usr/bin/
 

+ 8 - 5
package/expat/Makefile

@@ -7,18 +7,21 @@ PKG_NAME:=		expat
 PKG_VERSION:=		2.0.1
 PKG_RELEASE:=		1
 PKG_MD5SUM:=		ee8b492592568805593f81f8cdf2a04c
-PKG_DESCR:=		a fast, non-validating, stream-oriented XML parsing library
+PKG_DESCR:=		a XML parsing library
 PKG_SECTION:=		libs
 PKG_URL:=		http://expat.sourceforge.net
 PKG_SITES:=		${MASTER_SITE_SOURCEFORGE:=expat/}
+ifeq ($(ADK_STATIC),y)
+PKG_OPTS:=		libonly
+endif
 
 include ${TOPDIR}/mk/package.mk
 
-$(eval $(call PKG_template,LIBEXPAT,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+$(eval $(call PKG_template,LIBEXPAT,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
 
-CONFIGURE_STYLE=	gnu
-BUILD_STYLE=		auto
-INSTALL_STYLE=		auto
+CONFIGURE_STYLE:=	gnu
+BUILD_STYLE:=		auto
+INSTALL_STYLE:=		auto
 
 post-install:
 	${INSTALL_DIR} ${IDIR_LIBEXPAT}/usr/lib

+ 8 - 5
package/gettext/Makefile

@@ -11,15 +11,18 @@ PKG_DESCR:=		internationalisation library
 PKG_SECTION:=		libs
 PKG_DEPENDS:=		libiconv libpthread
 PKG_URL:=		http://www.gnu.org/software/gettext/
-PKG_SITES=		${MASTER_SITE_GNU:=gettext/}
+PKG_SITES:=		${MASTER_SITE_GNU:=gettext/}
+ifeq ($(ADK_STATIC),y)
+PKG_OPTS:=		libonly
+endif
 
 WRKDIST=		${WRKDIR}/${PKG_NAME}-${PKG_VERSION}/gettext-runtime
 
 include ${TOPDIR}/mk/package.mk
 
-$(eval $(call PKG_template,GETTEXT,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+$(eval $(call PKG_template,GETTEXT,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
 
-CONFIGURE_STYLE=	gnu
+CONFIGURE_STYLE:=	gnu
 CONFIGURE_ARGS+=	--disable-java \
 			--disable-native-java \
 			--disable-csharp \
@@ -33,8 +36,8 @@ CONFIGURE_ARGS+=	--disable-java \
 CONFIGURE_ENV+=		nls_cv_use_gnu_gettext=yes \
 			ac_cv_gnu_library_2=no \
 			gt_use_preinstalled_gnugettext=no
-BUILD_STYLE=		auto
-INSTALL_STYLE=		auto confprog
+BUILD_STYLE:=		auto
+INSTALL_STYLE:=		auto
 
 post-install:
 	${INSTALL_DIR} ${IDIR_GETTEXT}/usr/lib

+ 11 - 8
package/glib/Makefile

@@ -4,25 +4,28 @@
 include ${TOPDIR}/rules.mk
 
 PKG_NAME:=		glib
-PKG_VERSION:=		2.18.1
+PKG_VERSION:=		2.22.2
 PKG_RELEASE:=		1
-PKG_MD5SUM:=		d53836f7fdd9970d03e255e9d712bd83
+PKG_MD5SUM:=		00eb873975e2ef9361b8177131c7c943
 PKG_DESCR:=		low-level core library that forms the basis of GTK+
 PKG_SECTION:=		libs
 PKG_DEPENDS:=		gettext libiconv libpthread
 PKG_URL:=		http://www.gtk.org/
-PKG_SITES:=		ftp://ftp.gtk.org/pub/glib/2.18/
+PKG_SITES:=		ftp://ftp.gtk.org/pub/glib/2.22/
+ifeq ($(ADK_STATIC),y)
+PKG_OPTS:=		libonly
+endif
 
 include ${TOPDIR}/mk/package.mk
 
-$(eval $(call PKG_template,GLIB,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+$(eval $(call PKG_template,GLIB,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
 
-TCPPFLAGS+=		-I'${STAGING_DIR}/usr/include'
-CONFIGURE_STYLE=	gnu
+CONFIGURE_STYLE:=	gnu
 CONFIGURE_ARGS+=	--enable-debug=no \
 			--disable-mem-pools \
 			--disable-rebuilds \
 			--with-libiconv=gnu \
+			--disable-fam \
 			--with-threads=posix
 CONFIGURE_ENV+=		glib_cv_long_long_format=ll \
 			glib_cv_stack_grows=no \
@@ -30,8 +33,8 @@ CONFIGURE_ENV+=		glib_cv_long_long_format=ll \
 			glib_cv_uscore=no \
 			ac_cv_func_posix_getpwuid_r=yes \
 			ac_cv_func_posix_getgrgid_r=yes
-BUILD_STYLE=		auto
-INSTALL_STYLE=		auto confprog
+BUILD_STYLE:=		auto
+INSTALL_STYLE:=		auto
 
 post-install:
 	${INSTALL_DIR} ${IDIR_GLIB}/usr/lib

+ 20 - 0
package/glib/patches/patch-gio_Makefile_in

@@ -0,0 +1,20 @@
+--- glib-2.22.2.orig/gio/Makefile.in	2009-10-07 15:56:29.000000000 +0200
++++ glib-2.22.2/gio/Makefile.in	2009-10-11 11:04:35.126154998 +0200
+@@ -242,7 +242,7 @@ ETAGS = etags
+ CTAGS = ctags
+ am__tty_colors = \
+ red=; grn=; lgn=; blu=; std=
+-DIST_SUBDIRS = libasyncns xdgmime inotify fen win32 . fam tests
++DIST_SUBDIRS = libasyncns xdgmime inotify fen win32 . fam
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ am__relativize = \
+   dir0=`pwd`; \
+@@ -489,7 +489,7 @@ EXTRA_DIST = gio-marshal.list gio.symbol
+ TEST_PROGS = 
+ NULL = 
+ SUBDIRS = $(am__append_1) $(am__append_2) $(am__append_6) \
+-	$(am__append_9) . $(am__append_12) tests
++	$(am__append_9) . $(am__append_12)
+ @MS_LIB_AVAILABLE_TRUE@@OS_WIN32_AND_DLL_COMPILATION_TRUE@noinst_DATA = gio-2.0.lib
+ @MS_LIB_AVAILABLE_TRUE@@OS_WIN32_AND_DLL_COMPILATION_TRUE@install_ms_lib_cmd = $(INSTALL) gio-2.0.lib $(DESTDIR)$(libdir)
+ @MS_LIB_AVAILABLE_TRUE@@OS_WIN32_AND_DLL_COMPILATION_TRUE@uninstall_ms_lib_cmd = -rm $(DESTDIR)$(libdir)/gio-2.0.lib

+ 0 - 1
package/libiconv/Config.in

@@ -3,7 +3,6 @@ config ADK_PACKAGE_LIBICONV
 	tristate
 	default n
 	help
-
 	  This package contains a _very_ stripped down version of GNU Libiconv,
 	  all charsets have been removed, except ASCII, various unicode charsets
 	  and iso8896-1.

+ 9 - 9
package/libiconv/Makefile

@@ -4,29 +4,29 @@
 include ${TOPDIR}/rules.mk
 
 PKG_NAME:=		libiconv
-PKG_VERSION:=		1.13
+PKG_VERSION:=		1.13.1
 PKG_RELEASE:=		1
-PKG_MD5SUM:=		048032a3032ebd182150bdee30a5d533
+PKG_MD5SUM:=		7ab33ebd26687c744a37264a330bbe9a
 PKG_DESCR:=		character set conversion library
 PKG_SECTION:=		libs
 PKG_URL:=		http://www.gnu.org/software/libiconv
 PKG_SITES:=		${MASTER_SITE_GNU:=libiconv/}
+ifeq ($(ADK_STATIC),y)
+PKG_OPTS:=		libonly
+endif
 
 include ${TOPDIR}/mk/package.mk
 
-$(eval $(call PKG_template,LIBICONV,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+$(eval $(call PKG_template,LIBICONV,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
 
 TCFLAGS+=		-fPIC
-CONFIGURE_STYLE=	gnu
-BUILD_STYLE=		auto
-INSTALL_STYLE=		auto confprog
+CONFIGURE_STYLE:=	gnu
+BUILD_STYLE:=		auto
+INSTALL_STYLE:=		auto
 FAKE_FLAGS+=		libdir="${WRKINST}/usr/lib" \
 			includedir="${WRKINST}/usr/include" \
 INSTALL_TARGET=		install-lib
 
-post-extract:
-	@find ${WRKBUILD} -name *.rej -delete
-
 post-install:
 	${INSTALL_DIR} ${IDIR_LIBICONV}/usr/lib
 	${CP} ${WRKINST}/usr/lib/libiconv.so.* ${IDIR_LIBICONV}/usr/lib/

+ 16 - 0
package/libiconv/patches/patch-preload_Makefile_in

@@ -0,0 +1,16 @@
+--- libiconv-1.13.orig/preload/Makefile.in	2009-01-17 00:11:37.000000000 +0100
++++ libiconv-1.13/preload/Makefile.in	2009-10-10 22:01:15.666144195 +0200
+@@ -54,11 +54,11 @@ preloadable_libiconv.so : $(SOURCES)
+ 	done && \
+ 	$(LIBTOOL_LINK) $(CC) $(LDFLAGS) $(CFLAGS) -o libiconv.la -rpath $(libdir) -no-undefined objects/*.lo && \
+ 	$(RM) -r objects
+-	cp .libs/libiconv.so preloadable_libiconv.so
++	-test -f .libs/libiconv.so && cp .libs/libiconv.so preloadable_libiconv.so
+ 
+ install : all force
+ 	if [ ! -d $(DESTDIR)$(libdir) ] ; then $(mkinstalldirs) $(DESTDIR)$(libdir) ; fi
+-	if test -n "@PLUGLIB@"; then $(INSTALL_DATA) @PLUGLIB@ $(DESTDIR)$(libdir)/@PLUGLIB@.new && mv $(DESTDIR)$(libdir)/@PLUGLIB@.new $(DESTDIR)$(libdir)/@PLUGLIB@ ; fi
++	-if test -n "@PLUGLIB@"; then $(INSTALL_DATA) @PLUGLIB@ $(DESTDIR)$(libdir)/@PLUGLIB@.new && mv $(DESTDIR)$(libdir)/@PLUGLIB@.new $(DESTDIR)$(libdir)/@PLUGLIB@ ; fi
+ 
+ install-strip : install
+ 

+ 8 - 5
package/libusb/Makefile

@@ -4,23 +4,26 @@
 include ${TOPDIR}/rules.mk
 
 PKG_NAME:=		libusb
-PKG_VERSION:=		1.0.1
+PKG_VERSION:=		1.0.3
 PKG_RELEASE:=		1
-PKG_MD5SUM:=		8fb0e066678a0d294894b5b2969cb4b3
-PKG_DESCR:=		a Library for accessing Linux USB devices
+PKG_MD5SUM:=		03af26d0c49705fa46c1f732e1018e73
+PKG_DESCR:=		a library for accessing Linux USB devices
 PKG_SECTION:=		libs
 PKG_URL:=		http://libusb.wiki.sourceforge.net
 PKG_SITES:=		${MASTER_SITE_SOURCEFORGE:=libusb/}
+ifeq ($(ADK_STATIC),y)
+PKG_OPTS:=		libonly
+endif
 
 DISTFILES:=             ${PKG_NAME}-${PKG_VERSION}.tar.bz2
 
 include ${TOPDIR}/mk/package.mk
 
-$(eval $(call PKG_template,LIBUSB,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+$(eval $(call PKG_template,LIBUSB,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
 
 CONFIGURE_STYLE:=	gnu
 BUILD_STYLE:=		auto
-INSTALL_STYLE:=		auto confprog
+INSTALL_STYLE:=		auto
 
 post-install:
 	${INSTALL_DIR} ${IDIR_LIBUSB}/usr/lib

+ 4 - 8
scripts/scan-pkgs.sh

@@ -49,14 +49,10 @@ if [[ -n $ADK_PACKAGE_SQUID ]]; then
 	NEED_SSLDEV="$NEED_SSLDEV squid"
 fi
 
-#if [[ -n $ADK_PACKAGE_RUBY ]]; then
-#	NEED_RUBY="$NEED_RUBY ruby"
-#fi
-
-if [[ -n $ADK_PACKAGE_GLIB2 ]]; then
-	NEED_GLIBZWO="$NEED_GLIBZWO glib2"
-	NEED_GETTEXT="$NEED_GETTEXT glib2"
-	NEED_PKGCONFIG="$NEED_PKGCONFIG glib2"
+if [[ -n $ADK_PACKAGE_GLIB ]]; then
+	NEED_GLIBZWO="$NEED_GLIBZWO glib"
+	NEED_GETTEXT="$NEED_GETTEXT glib"
+	NEED_PKGCONFIG="$NEED_PKGCONFIG glib"
 fi
 
 

+ 2 - 7
scripts/tarpkg

@@ -9,16 +9,11 @@ if [ "$1" = "build" ];then
 	pkgname=$(grep "^Package:" $2/CONTROL/control | sed -e "s/^[^:]*:[[:space:]]*//")
 	version=$(grep "^Version:" $2/CONTROL/control | sed -e "s/^[^:]*:[[:space:]]*//")
 	arch=$(grep "^Architecture:" $2/CONTROL/control | sed -e "s/^[^:]*:[[:space:]]*//")
-	cd $2
-	rm -rf CONTROL 
-	tar -czf $3/${pkgname}_${version}_${arch}.tar.gz .
-	cd -
-	exit 0
+	rm -rf $2/CONTROL 
+	(cd $2 && tar -czf $3/${pkgname}_${version}_${arch}.tar.gz .)
 elif [ "$1" = "install" ];then
 	tar -xzpf $2 -C ${INSTROOT}
-	exit 0
 else
 	echo "unknown command"
 	exit 1
 fi
-exit 0