[packages] libtorrent: apply fix from [22233] to armeb as well
[openwrt/svn-archive/archive.git] / libs / libtorrent / Makefile
index 256bafe0d449ea405a7a7960eb76896522546c92..a64af19c3463790b780d6b3270a16039cf5fb270 100644 (file)
@@ -1,22 +1,25 @@
-# 
-# Copyright (C) 2007 OpenWrt.org
+#
+# Copyright (C) 2007-2010 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 #
-# $Id$
 
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libtorrent
-PKG_VERSION:=0.11.7
-PKG_RELEASE:=1
+PKG_REV:=1165
+PKG_VERSION:=0.12.6_r$(PKG_REV)
+PKG_RELEASE:=2
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://libtorrent.rakshasa.no/downloads/
-PKG_MD5SUM:=86cdfca2d1c3cfb3b6b316d9beaa25e0
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=svn://rakshasa.no/libtorrent/trunk/libtorrent
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_VERSION:=$(PKG_REV)
+PKG_SOURCE_PROTO:=svn
 
-PKG_BUILD_DEPENDS:=libtool
+PKG_FIXUP:=libtool
+PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -25,56 +28,53 @@ define Package/libtorrent
   CATEGORY:=Libraries
   TITLE:=Rakshasa's BitTorrent library
   URL:=http://libtorrent.rakshasa.no/
-  DEPENDS:=+libsigcxx
+  DEPENDS:=+libopenssl +libsigcxx @LINUX_2_6
 endef
 
 define Package/libtorrent/description
- LibTorrent is a BitTorrent library written in C++ for *nix, with a focus 
- on high performance and good code. The library differentiates itself from 
- other implementations by transfering directly from file pages to the 
- network stack. On high-bandwidth connections it is able to seed at 3 times 
+ LibTorrent is a BitTorrent library written in C++ for *nix, with a focus
+ on high performance and good code. The library differentiates itself from
+ other implementations by transfering directly from file pages to the
+ network stack. On high-bandwidth connections it is able to seed at 3 times
  the speed of the official client.
 endef
 
+ifneq ($(CONFIG_GCC_VERSION_3_4)$(CONFIG_GCC_VERSION_4_1),)
+  TARGET_CPPFLAGS += -fno-strict-aliasing
+endif
+
+TARGET_CPPFLAGS += -fno-inline
+
+# XXX: fixes the following error when configure from rtorrent is trying
+# to link against libtorrent on arm (#7026)
+#
+# ./staging_dir/toolchain-arm_v5t_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.3.3/../../../../arm-openwrt-linux-uclibcgnueabi/bin/ld: conftest: hidden symbol `__sync_add_and_fetch_4' in /media/Scratch/OpenWrt/backfire/build.d/orion/staging_dir/toolchain-arm_v5t_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.3.3/libgcc.a(linux-atomic.o) is referenced by DSO
+# ./staging_dir/toolchain-arm_v5t_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.3.3/../../../../arm-openwrt-linux-uclibcgnueabi/bin/ld: final link failed: Nonrepresentable section on output
+#
+ifneq ($(CONFIG_arm)$(CONFIG_armeb),)
+  TARGET_LDFLAGS += -Wl,--whole-archive -lgcc -lgcc_s -Wl,--no-whole-archive
+endif
+
+# XXX: rtorrent needs encryption (--enable-openssl)
 CONFIGURE_ARGS+= \
        --enable-shared \
        --enable-static \
        --enable-aligned \
        --disable-debug \
-       --disable-openssl \
-
-CONFIGURE_VARS += \
-       CXX="g++-uc+std" \
-       CXXFLAGS="$$$$CXXFLAGS -fno-rtti"  \
+       --enable-openssl \
 
 define Build/Configure
-       $(call Build/Configure/Default,)
-       $(call libtool_disable_rpath)
-       $(SED) 's|^sys_lib_dlsearch_path_spec=.*|sys_lib_dlsearch_path_spec="$(STAGING_DIR)/usr/lib"|g' \
-               $(PKG_BUILD_DIR)/libtool
-       $(SED) 's|^postdeps=.*|postdeps=|g' $(PKG_BUILD_DIR)/libtool
-endef
-
-define Build/Compile
-       $(MAKE) -C $(PKG_BUILD_DIR) all
-       $(call libtool_fixup_libdir,$(PKG_INSTALL_DIR))
-       $(MAKE) -C $(PKG_BUILD_DIR) DESTDIR="$(PKG_INSTALL_DIR)" install
+       (cd $(PKG_BUILD_DIR); ./autogen.sh );
+       $(call Build/Configure/Default)
 endef
 
 define Build/InstallDev
-       mkdir -p $(STAGING_DIR)/usr/include
-       $(CP) $(PKG_INSTALL_DIR)/usr/include/torrent $(STAGING_DIR)/usr/include/
-       mkdir -p $(STAGING_DIR)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libtorrent.{a,so*} $(STAGING_DIR)/usr/lib/
-       mkdir -p $(STAGING_DIR)/usr/lib/pkgconfig
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libtorrent.pc $(STAGING_DIR)/usr/lib/pkgconfig/
-       $(SED) 's,$(TARGET_LDFLAGS),,g' $(STAGING_DIR)/usr/lib/pkgconfig/libtorrent.pc
-endef
-
-define Build/UninstallDev
-       rm -rf  $(STAGING_DIR)/usr/include/torrent \
-               $(STAGING_DIR)/usr/lib/libtorrent.{a,so*} \
-               $(STAGING_DIR)/usr/lib/pkgconfig/libtorrent.pc
+       $(INSTALL_DIR) $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/torrent $(1)/usr/include/
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libtorrent.{a,so*} $(1)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libtorrent.pc $(1)/usr/lib/pkgconfig/
 endef
 
 define Package/libtorrent/install