diff options
author | Diego Elio Pettenò <flameeyes@gentoo.org> | 2010-01-31 16:32:08 +0000 |
---|---|---|
committer | Diego Elio Pettenò <flameeyes@gentoo.org> | 2010-01-31 16:32:08 +0000 |
commit | b7751c52373bb72363a58b54543be591fe6fdd24 (patch) | |
tree | 79ce1e3b03363ba837b885b2c02602893bb7f8e7 | |
parent | Stable on amd64 wrt bug #300713 (diff) | |
download | gentoo-2-b7751c52373bb72363a58b54543be591fe6fdd24.tar.gz gentoo-2-b7751c52373bb72363a58b54543be591fe6fdd24.tar.bz2 gentoo-2-b7751c52373bb72363a58b54543be591fe6fdd24.zip |
Add a snapshot from upstream, this time the path to the library is injected at build-time so that it does not have to be defined at runtime.
(Portage version: 2.2_rc62/cvs/Linux x86_64)
-rw-r--r-- | dev-java/jffi/ChangeLog | 9 | ||||
-rw-r--r-- | dev-java/jffi/files/jffi-0.7-makefile-flags.patch | 154 | ||||
-rw-r--r-- | dev-java/jffi/jffi-0.7_pre20100131.ebuild | 84 |
3 files changed, 246 insertions, 1 deletions
diff --git a/dev-java/jffi/ChangeLog b/dev-java/jffi/ChangeLog index 5d9b544fd807..61d80a3ffb76 100644 --- a/dev-java/jffi/ChangeLog +++ b/dev-java/jffi/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for dev-java/jffi # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-java/jffi/ChangeLog,v 1.9 2010/01/24 20:56:13 betelgeuse Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-java/jffi/ChangeLog,v 1.10 2010/01/31 16:32:07 flameeyes Exp $ + +*jffi-0.7_pre20100131 (31 Jan 2010) + + 31 Jan 2010; Diego E. Pettenò <flameeyes@gentoo.org> + +jffi-0.7_pre20100131.ebuild, +files/jffi-0.7-makefile-flags.patch: + Add a snapshot from upstream, this time the path to the library is + injected at build-time so that it does not have to be defined at runtime. 24 Jan 2010; Petteri Räty <betelgeuse@gentoo.org> jffi-0.6.0.2-r1.ebuild: Filter ecj. diff --git a/dev-java/jffi/files/jffi-0.7-makefile-flags.patch b/dev-java/jffi/files/jffi-0.7-makefile-flags.patch new file mode 100644 index 000000000000..394d65b44b5b --- /dev/null +++ b/dev-java/jffi/files/jffi-0.7-makefile-flags.patch @@ -0,0 +1,154 @@ +Index: wmeissner-jffi-6c5fb4a/jni/GNUmakefile +=================================================================== +--- wmeissner-jffi-6c5fb4a.orig/jni/GNUmakefile ++++ wmeissner-jffi-6c5fb4a/jni/GNUmakefile +@@ -58,7 +58,7 @@ OFLAGS = -O2 $(JFLAGS) + + # MacOS headers aren't completely warning free, so turn them off + ifneq ($(OS),darwin) +- WFLAGS = -W -Werror -Wall -Wno-unused -Wno-parentheses -Wundef ++ WFLAGS = -W -Wall -Wno-unused -Wno-parentheses -Wundef + endif + PICFLAGS = -fPIC + SOFLAGS = # Filled in for each OS specifically +@@ -70,8 +70,8 @@ FFI_CFLAGS = $(FFI_MMAP_EXEC) $(OFLAGS) + STRIP = strip -S + + JDK_INCLUDES = -I"$(JDK_HOME)/include" -I"$(JDK_HOME)/include/$(OS)" +-IFLAGS = -I"$(BUILD_DIR)" -I"$(BUILD_DIR)"/jni -I$(SRC_DIR) -I"$(JFFI_SRC_DIR)" -I"$(LIBFFI_BUILD_DIR)"/include +-CFLAGS = $(OFLAGS) $(WFLAGS) $(IFLAGS) $(PICFLAGS) $(JDK_INCLUDES) ++IFLAGS = -I"$(BUILD_DIR)" -I"$(BUILD_DIR)"/jni -I$(SRC_DIR) -I"$(JFFI_SRC_DIR)" ++CFLAGS += $(OFLAGS) $(WFLAGS) $(IFLAGS) $(PICFLAGS) $(JDK_INCLUDES) + CFLAGS += -D_REENTRANT -D_LARGEFILE64_SOURCE -D_GNU_SOURCE + CXXFLAGS = $(OFLAGS) $(IFLAGS) $(PICFLAGS) $(JDK_INCLUDES) + +@@ -204,15 +204,15 @@ ifneq ($(strip $(findstring $(OS), linux + endif + + LIBJFFI = $(BUILD_DIR)/$(PREFIX)$(LIBNAME)-$(VERSION).$(JNIEXT) +-FFI_CONFIGURE = $(LIBFFI_SRC_DIR)/configure --disable-static \ +- --with-pic=yes --disable-dependency-tracking +-ifdef CONFIGURE_HOST +- FFI_CONFIGURE += --host=$(CONFIGURE_HOST) +-endif +- +-ifdef CONFIGURE_BUILD +- FFI_CONFIGURE += --build=$(CONFIGURE_BUILD) +-endif ++#FFI_CONFIGURE = $(LIBFFI_SRC_DIR)/configure --disable-static \ ++# --with-pic=yes --disable-dependency-tracking ++#ifdef CONFIGURE_HOST ++# FFI_CONFIGURE += --host=$(CONFIGURE_HOST) ++#endif ++# ++#ifdef CONFIGURE_BUILD ++# FFI_CONFIGURE += --build=$(CONFIGURE_BUILD) ++#endif + + all: $(LIBJFFI) + +@@ -245,55 +245,55 @@ $(BUILD_DIR)/%.o : $(SRC_DIR)/%.cpp $(wi + $(CCACHE) $(CXX) $(CXXFLAGS) -c $< -o $@ + + +-ifeq ($(OS), darwin) +-build_ffi = \ +- mkdir -p $(BUILD_DIR)/libffi-darwin-$(1); \ +- (if [ ! -f $(BUILD_DIR)/libffi-darwin-$(1)/Makefile ]; then \ +- echo "Configuring libffi for $(1)"; \ +- cd $(BUILD_DIR)/libffi-darwin-$(1) && \ +- env CC="$(CCACHE) $(CC)" CFLAGS="-arch $(1) $(FFI_CFLAGS)" LDFLAGS="-arch $(1)" \ +- $(FFI_CONFIGURE) --host=$(1)-apple-darwin > /dev/null; \ +- fi); \ +- env MACOSX_DEPLOYMENT_TARGET=10.5 $(MAKE) -C $(BUILD_DIR)/libffi-darwin-$(1) +- +-$(LIBFFI): +- @mkdir -p $(@D) +- @for arch in $(ARCHES); do $(call build_ffi,$$arch);done +- +- # Assemble into a FAT (i386, x86_64, ppc) library +- @mkdir -p $(BUILD_DIR)/libffi/.libs +- @env MACOSX_DEPLOYMENT_TARGET=10.5 /usr/bin/libtool -static -o $@ \ +- $(foreach arch, $(ARCHES),$(BUILD_DIR)/libffi-darwin-$(arch)/.libs/libffi_convenience.a) +- @mkdir -p $(LIBFFI_BUILD_DIR)/include +- $(RM) $(LIBFFI_BUILD_DIR)/include/ffi.h +- @( \ +- printf "#if defined(__i386__)\n"; \ +- printf "#include \"libffi-darwin-i386/include/ffi.h\"\n"; \ +- printf "#elif defined(__x86_64__)\n"; \ +- printf "#include \"libffi-darwin-x86_64/include/ffi.h\"\n";\ +- printf "#elif defined(__ppc__)\n"; \ +- printf "#include \"libffi-darwin-ppc/include/ffi.h\"\n";\ +- printf "#endif\n";\ +- ) > $(LIBFFI_BUILD_DIR)/include/ffi.h +- @( \ +- printf "#if defined(__i386__)\n"; \ +- printf "#include \"libffi-darwin-i386/include/ffitarget.h\"\n"; \ +- printf "#elif defined(__x86_64__)\n"; \ +- printf "#include \"libffi-darwin-x86_64/include/ffitarget.h\"\n";\ +- printf "#elif defined(__ppc__)\n"; \ +- printf "#include \"libffi-darwin-ppc/include/ffitarget.h\"\n";\ +- printf "#endif\n";\ +- ) > $(LIBFFI_BUILD_DIR)/include/ffitarget.h +-else +-$(LIBFFI): +- @mkdir -p $(LIBFFI_BUILD_DIR) +- @if [ ! -f $(LIBFFI_BUILD_DIR)/Makefile ]; then \ +- echo "Configuring libffi for $(PLATFORM)"; \ +- cd $(LIBFFI_BUILD_DIR) && env CC="$(FFI_CC)" LD="$(FFI_LD)" CFLAGS="$(FFI_CFLAGS)" \ +- $(FFI_CONFIGURE) > /dev/null; \ +- fi +- $(MAKE) -C $(LIBFFI_BUILD_DIR) +-endif ++#ifeq ($(OS), darwin) ++#build_ffi = \ ++# mkdir -p $(BUILD_DIR)/libffi-darwin-$(1); \ ++# (if [ ! -f $(BUILD_DIR)/libffi-darwin-$(1)/Makefile ]; then \ ++# echo "Configuring libffi for $(1)"; \ ++# cd $(BUILD_DIR)/libffi-darwin-$(1) && \ ++# env CC="$(CCACHE) $(CC)" CFLAGS="-arch $(1) $(FFI_CFLAGS)" LDFLAGS="-arch $(1)" \ ++# $(FFI_CONFIGURE) --host=$(1)-apple-darwin > /dev/null; \ ++# fi); \ ++# env MACOSX_DEPLOYMENT_TARGET=10.5 $(MAKE) -C $(BUILD_DIR)/libffi-darwin-$(1) ++# ++#$(LIBFFI): ++# @mkdir -p $(@D) ++# @for arch in $(ARCHES); do $(call build_ffi,$$arch);done ++# ++# # Assemble into a FAT (i386, x86_64, ppc) library ++# @mkdir -p $(BUILD_DIR)/libffi/.libs ++# @env MACOSX_DEPLOYMENT_TARGET=10.5 /usr/bin/libtool -static -o $@ \ ++# $(foreach arch, $(ARCHES),$(BUILD_DIR)/libffi-darwin-$(arch)/.libs/libffi_convenience.a) ++# @mkdir -p $(LIBFFI_BUILD_DIR)/include ++# $(RM) $(LIBFFI_BUILD_DIR)/include/ffi.h ++# @( \ ++# printf "#if defined(__i386__)\n"; \ ++# printf "#include \"libffi-darwin-i386/include/ffi.h\"\n"; \ ++# printf "#elif defined(__x86_64__)\n"; \ ++# printf "#include \"libffi-darwin-x86_64/include/ffi.h\"\n";\ ++# printf "#elif defined(__ppc__)\n"; \ ++# printf "#include \"libffi-darwin-ppc/include/ffi.h\"\n";\ ++# printf "#endif\n";\ ++# ) > $(LIBFFI_BUILD_DIR)/include/ffi.h ++# @( \ ++# printf "#if defined(__i386__)\n"; \ ++# printf "#include \"libffi-darwin-i386/include/ffitarget.h\"\n"; \ ++# printf "#elif defined(__x86_64__)\n"; \ ++# printf "#include \"libffi-darwin-x86_64/include/ffitarget.h\"\n";\ ++# printf "#elif defined(__ppc__)\n"; \ ++# printf "#include \"libffi-darwin-ppc/include/ffitarget.h\"\n";\ ++# printf "#endif\n";\ ++# ) > $(LIBFFI_BUILD_DIR)/include/ffitarget.h ++#else ++#$(LIBFFI): ++# @mkdir -p $(LIBFFI_BUILD_DIR) ++# @if [ ! -f $(LIBFFI_BUILD_DIR)/Makefile ]; then \ ++# echo "Configuring libffi for $(PLATFORM)"; \ ++# cd $(LIBFFI_BUILD_DIR) && env CC="$(FFI_CC)" LD="$(FFI_LD)" CFLAGS="$(FFI_CFLAGS)" \ ++# $(FFI_CONFIGURE) > /dev/null; \ ++# fi ++# $(MAKE) -C $(LIBFFI_BUILD_DIR) ++#endif + clean:: + # nothing to do - ant will delete the build dir + diff --git a/dev-java/jffi/jffi-0.7_pre20100131.ebuild b/dev-java/jffi/jffi-0.7_pre20100131.ebuild new file mode 100644 index 000000000000..c7c5218829a7 --- /dev/null +++ b/dev-java/jffi/jffi-0.7_pre20100131.ebuild @@ -0,0 +1,84 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-java/jffi/jffi-0.7_pre20100131.ebuild,v 1.1 2010/01/31 16:32:07 flameeyes Exp $ + +# Probably best to leave the CFLAGS as they are here. See... +# http://weblogs.java.net/blog/kellyohair/archive/2006/01/compilation_of_1.html + +EAPI="2" +JAVA_PKG_IUSE="source test" +WANT_ANT_TASKS="ant-nodeps" +inherit java-pkg-2 java-ant-2 toolchain-funcs flag-o-matic versionator + +DESCRIPTION="An optimized Java interface to libffi" +HOMEPAGE="http://kenai.com/projects/jffi" + +TREE_HASH="6c5fb4a241a747f7c8561156ed81fbee52a0174f" +SRC_URI="http://github.com/wmeissner/jffi/tarball/${TREE_HASH} -> ${PN}-git-${PV}.tgz" +S="${WORKDIR}/wmeissner-${PN}-${TREE_HASH:0:7}" + +LICENSE="LGPL-3" +SLOT="0.4" +KEYWORDS="~amd64 ~ppc ~x86" +IUSE="" + +RDEPEND=">=virtual/jre-1.5 + virtual/libffi" + +DEPEND=">=virtual/jdk-1.5 + virtual/libffi + dev-util/pkgconfig + test? ( dev-java/ant-junit4 )" + +JAVA_PKG_BSFIX_NAME="build-impl.xml" +JAVA_PKG_FILTER_COMPILER="ecj-3.3 ecj-3.4 ecj-3.5" + +java_prepare() { + # Delete the bundled JARs. + find lib -name "*.jar" -delete || die + # Delete the bundled libffi + rm -rf jni/libffi || die + + # bug #271533 and #272058 + epatch "${FILESDIR}/${PN}-0.7-makefile-flags.patch" + + # bug #272058 + append-cflags $(pkg-config --cflags-only-I libffi) + + # any better function for this, excluding get_system_arch in java-vm-2 which is incorrect to inherit ? + local arch="" + use x86 && arch="i386" + use amd64 && arch="x86_64" + use ppc && arch="ppc" + + # Fetch our own prebuilt libffi. + mkdir -p "build/jni/libffi-${arch}-linux/.libs" || die + + ln -snf "/usr/$(get_libdir)/libffi.so" \ + "build/jni/libffi-${arch}-linux/.libs/libffi_convenience.a" || die + + # Don't include prebuilt files for other archs. + sed -i '/<zipfileset src="archive\//d' custom-build.xml || die + sed -i '/libs.CopyLibs.classpath/d' lib/nblibraries.properties || die + sed -i '/copylibstask.jar/d' lib/nblibraries.properties || die +} + +src_install() { + mkdir -p "${T}"/com/kenai/jffi + cat - > "${T}"/com/kenai/jffi/boot.properties <<EOF +jffi.boot.library.path = ${JAVA_PKG_LIBDEST} +EOF + + pushd "${T}" &>/dev/null + jar -uf "${S}"/dist/${PN}.jar com + popd + + java-pkg_dojar dist/${PN}.jar + java-pkg_doso build/jni/lib${PN}-$(get_version_component_range 1-2).so + use source && java-pkg_dosrc src/* +} + +src_test() { + ANT_TASKS="ant-junit4 ant-nodeps" eant test \ + -Dlibs.junit_4.classpath="$(java-pkg_getjars --with-dependencies junit-4)" +} |