summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-java/jffi/ChangeLog8
-rw-r--r--dev-java/jffi/files/jffi-1.0.0-makefile.patch82
-rw-r--r--dev-java/jffi/jffi-1.0.0.ebuild75
3 files changed, 164 insertions, 1 deletions
diff --git a/dev-java/jffi/ChangeLog b/dev-java/jffi/ChangeLog
index 61d80a3ffb76..758637f9ee08 100644
--- a/dev-java/jffi/ChangeLog
+++ b/dev-java/jffi/ChangeLog
@@ -1,6 +1,12 @@
# 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.10 2010/01/31 16:32:07 flameeyes Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-java/jffi/ChangeLog,v 1.11 2010/03/12 22:42:12 ali_bush Exp $
+
+*jffi-1.0.0 (11 Mar 2010)
+
+ 11 Mar 2010; Alistair Bush <ali_bush@gentoo.org> +jffi-1.0.0.ebuild,
+ +files/jffi-1.0.0-makefile.patch:
+ Version Bump.
*jffi-0.7_pre20100131 (31 Jan 2010)
diff --git a/dev-java/jffi/files/jffi-1.0.0-makefile.patch b/dev-java/jffi/files/jffi-1.0.0-makefile.patch
new file mode 100644
index 000000000000..11ca2ed68530
--- /dev/null
+++ b/dev-java/jffi/files/jffi-1.0.0-makefile.patch
@@ -0,0 +1,82 @@
+--- jni/GNUmakefile 2010-03-12 12:06:39.000000000 +1300
++++ jni/GNUmakefile 2010-03-12 12:13:44.000000000 +1300
+@@ -65,7 +65,7 @@
+
+ # 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
+@@ -78,9 +78,9 @@
+
+ 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)"
+-CFLAGS = $(OFLAGS) $(WFLAGS) $(IFLAGS) $(PICFLAGS) $(JDK_INCLUDES) $(LIBFFI_CFLAGS)
++CFLAGS += $(OFLAGS) $(WFLAGS) $(IFLAGS) $(PICFLAGS) $(JDK_INCLUDES) $(LIBFFI_CFLAGS)
+ CFLAGS += -D_REENTRANT -D_LARGEFILE64_SOURCE -D_GNU_SOURCE
+-CXXFLAGS = $(OFLAGS) $(IFLAGS) $(PICFLAGS) $(JDK_INCLUDES) $(LIBFFI_CFLAGS)
++CXXFLAGS += $(OFLAGS) $(IFLAGS) $(PICFLAGS) $(JDK_INCLUDES) $(LIBFFI_CFLAGS)
+
+ ifeq ($(OS), win64)
+ override CPU = x86_64
+@@ -258,58 +258,6 @@
+ @mkdir -p $(@D)
+ $(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)" \
+- $(LIBFFI_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)" \
+- $(LIBFFI_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-1.0.0.ebuild b/dev-java/jffi/jffi-1.0.0.ebuild
new file mode 100644
index 000000000000..614fce2d9be0
--- /dev/null
+++ b/dev-java/jffi/jffi-1.0.0.ebuild
@@ -0,0 +1,75 @@
+# 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-1.0.0.ebuild,v 1.1 2010/03/12 22:42:12 ali_bush 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://github.com/wmeissner/jffi"
+
+SRC_URI="mirrors://gentoo/${P}.tar.gz"
+
+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 custom-build.xml"
+JAVA_PKG_FILTER_COMPILER="ecj-3.3 ecj-3.4 ecj-3.5"
+
+java_prepare() {
+ # Delete the bundled JARs.
+ find lib archive -name "*.jar" -delete || die
+ # Delete the bundled libffi
+ rm -rf jni/libffi || die
+
+ epatch "${FILESDIR}/${P}-makefile.patch"
+
+ # 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"
+
+ # 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
+}
+
+EANT_EXTRA_ARGS="-Duse.system.libffi=1"
+
+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 \
+ "${EANT_EXTRA_ARGS}" \
+ -Dlibs.junit_4.classpath="$(java-pkg_getjars --with-dependencies junit-4)"
+}