summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego Elio Pettenò <flameeyes@gentoo.org>2010-01-31 16:32:08 +0000
committerDiego Elio Pettenò <flameeyes@gentoo.org>2010-01-31 16:32:08 +0000
commitb7751c52373bb72363a58b54543be591fe6fdd24 (patch)
tree79ce1e3b03363ba837b885b2c02602893bb7f8e7
parentStable on amd64 wrt bug #300713 (diff)
downloadgentoo-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/ChangeLog9
-rw-r--r--dev-java/jffi/files/jffi-0.7-makefile-flags.patch154
-rw-r--r--dev-java/jffi/jffi-0.7_pre20100131.ebuild84
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)"
+}