summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /dev-java/jffi
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'dev-java/jffi')
-rw-r--r--dev-java/jffi/Manifest5
-rw-r--r--dev-java/jffi/files/1.0.0-gcc-3.4.patch14
-rw-r--r--dev-java/jffi/files/jffi-1.0.0-makefile.patch82
-rw-r--r--dev-java/jffi/files/jffi-1.0.11_no-werror.patch13
-rw-r--r--dev-java/jffi/files/jffi-1.2.5_no-werror.patch13
-rw-r--r--dev-java/jffi/files/jffi-1.2.6_no-werror.patch13
-rw-r--r--dev-java/jffi/files/jffi-1.2.7-junit-4.11.patch14
-rw-r--r--dev-java/jffi/files/jffi-1.2.7-makefile.patch62
-rw-r--r--dev-java/jffi/files/jffi-1.2.7_no-werror.patch31
-rw-r--r--dev-java/jffi/files/jffi-1.2.8-junit-4.11.patch14
-rw-r--r--dev-java/jffi/files/jffi-1.2.8-makefile.patch52
-rw-r--r--dev-java/jffi/files/jffi_maven-build.xml259
-rw-r--r--dev-java/jffi/jffi-1.0.11-r1.ebuild107
-rw-r--r--dev-java/jffi/jffi-1.0.11.ebuild105
-rw-r--r--dev-java/jffi/jffi-1.2.5.ebuild96
-rw-r--r--dev-java/jffi/jffi-1.2.6.ebuild120
-rw-r--r--dev-java/jffi/jffi-1.2.7-r2.ebuild123
-rw-r--r--dev-java/jffi/jffi-1.2.7.ebuild122
-rw-r--r--dev-java/jffi/jffi-1.2.8.ebuild124
-rw-r--r--dev-java/jffi/metadata.xml8
20 files changed, 1377 insertions, 0 deletions
diff --git a/dev-java/jffi/Manifest b/dev-java/jffi/Manifest
new file mode 100644
index 000000000000..e6419066fa3d
--- /dev/null
+++ b/dev-java/jffi/Manifest
@@ -0,0 +1,5 @@
+DIST jffi-1.0.11.tar.gz 1899655 SHA256 b66781a07e095dbaf9d568b77762e06215da4458d963956ea22dd5adb5f3126a SHA512 0f98c1aa55dfd9fd9338399e173f118ef12d01a65429a49ed5264a23fa6700e7ebdf13ffb6b6318fcd8ea9dce66a47524c5cefa50f3f11a251ca44a4f38fd6aa WHIRLPOOL aa8c3f88b75a26221b3c41ed552fdd83c551ae05fc7455f072b8a3d7f3190cad26a638d1800a67b09d8074b5dfdd04f2be73287a7f22c0cfcc5dbc8df0d2ae12
+DIST jffi-1.2.5.tar.gz 1798081 SHA256 2101c48855558902f2e21baacd0b2c8b7098feb3ca1487a195c2bc3d9116ebd4 SHA512 2613a1874899e1a734ad54d68f7d969fe3bc12bd1ae1aaf5a63a17d63ac6ac6b9812740b7c7a771e66ba0e4ff02105c6a2427771d4571be40ae869f3d6f077e3 WHIRLPOOL 174303fc9f10cf295e009ef2320f9b13295f5e96187ab2ae4599de891b27e1279645ea47409eb8aec9a8b247a5568cddd6f8566950b64be37e399cb0eda0219f
+DIST jffi-1.2.6.tar.gz 1850410 SHA256 b568d832828bf0cb980c545e8fd16147034048ca2d3ffc62cae4f844c8cc6cec SHA512 df178691e6894599f2a45146950cca7e4c81e92c38fc751c40b39e660970c19d0dce41c9192053dddf07f42317d28033f59b7140c904784c477526e7471b6938 WHIRLPOOL adb57b9ac981177ae7d697aae41bbaaff3a38dab4c4364258b13272023076dacdd93a751eb24a339ae17a4162d4511685a4aa67afd5d8fab2f852e0403ee73f1
+DIST jffi-1.2.7.tar.gz 1908203 SHA256 25f1930f294cec9651447edd08a51a990b7c92c69eca87257233e86e4dd5f979 SHA512 837ebb0085ec2acc5dc688c3e1883a7c986df62a32a41887196b88f5b5714ee667f918f2bdf005f019faae02df2f7903f291fa32c5ec3cabc360d9b1d8e4548d WHIRLPOOL 0e9824d54b21eb61142f4a868cd10122d9837c34732fc4ff9ba3093c0d4c11ee25dc0e045a40a4157faed201de9498e7cea28df85e7f14d07b58d2f4d1fb26e1
+DIST jffi-1.2.8.tar.gz 1988785 SHA256 445263cd24dccc34e2bd7fb3c488aa182697b1bc3f86d3343e07183161e2986c SHA512 c6622a2cc0cd040d871417d66a074aeaad57f266559c8135692e2b76bb00f05287a4e4c4f17e8e4225c4d5e7e8941d9c883fbb4cfe5db920a79dd9a29ffea105 WHIRLPOOL 165f44b195310cf2826359d00ba74bb0eac66a47c566ec1a522df50627721c6564bd1730459098a8aa973433978fa815b3a418bbcf787b75ebf1cc3cd585909d
diff --git a/dev-java/jffi/files/1.0.0-gcc-3.4.patch b/dev-java/jffi/files/1.0.0-gcc-3.4.patch
new file mode 100644
index 000000000000..fc2bd5cae10a
--- /dev/null
+++ b/dev-java/jffi/files/1.0.0-gcc-3.4.patch
@@ -0,0 +1,14 @@
+diff --git a/jni/GNUmakefile b/jni/GNUmakefile
+index 7a027af..eaba319 100755
+--- a/jni/GNUmakefile
++++ b/jni/GNUmakefile
+@@ -188,9 +188,6 @@ endif
+
+ ifeq ($(CPU), i386)
+ MODEL = 32
+- ifeq ($(findstring $(OS), openbsd darwin mingw32 win32),)
+- CFLAGS += -march=i586 -mtune=generic
+- endif
+ endif
+
+ ifeq ($(CPU), amd64)
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/files/jffi-1.0.11_no-werror.patch b/dev-java/jffi/files/jffi-1.0.11_no-werror.patch
new file mode 100644
index 000000000000..25b7e4f8ec00
--- /dev/null
+++ b/dev-java/jffi/files/jffi-1.0.11_no-werror.patch
@@ -0,0 +1,13 @@
+diff --git a/jni/GNUmakefile b/jni/GNUmakefile
+index efe6230..25053c7 100755
+--- a/jni/GNUmakefile
++++ b/jni/GNUmakefile
+@@ -64,7 +64,7 @@ JFLAGS = -fno-omit-frame-pointer -fno-strict-aliasing -DNDEBUG
+ OFLAGS = -O2 $(JFLAGS)
+
+ # MacOS headers aren't completely warning free, so turn them off
+-WERROR = -Werror
++WERROR =
+ ifneq ($(OS),darwin)
+ WFLAGS += -Wundef $(WERROR)
+ endif
diff --git a/dev-java/jffi/files/jffi-1.2.5_no-werror.patch b/dev-java/jffi/files/jffi-1.2.5_no-werror.patch
new file mode 100644
index 000000000000..25b7e4f8ec00
--- /dev/null
+++ b/dev-java/jffi/files/jffi-1.2.5_no-werror.patch
@@ -0,0 +1,13 @@
+diff --git a/jni/GNUmakefile b/jni/GNUmakefile
+index efe6230..25053c7 100755
+--- a/jni/GNUmakefile
++++ b/jni/GNUmakefile
+@@ -64,7 +64,7 @@ JFLAGS = -fno-omit-frame-pointer -fno-strict-aliasing -DNDEBUG
+ OFLAGS = -O2 $(JFLAGS)
+
+ # MacOS headers aren't completely warning free, so turn them off
+-WERROR = -Werror
++WERROR =
+ ifneq ($(OS),darwin)
+ WFLAGS += -Wundef $(WERROR)
+ endif
diff --git a/dev-java/jffi/files/jffi-1.2.6_no-werror.patch b/dev-java/jffi/files/jffi-1.2.6_no-werror.patch
new file mode 100644
index 000000000000..25b7e4f8ec00
--- /dev/null
+++ b/dev-java/jffi/files/jffi-1.2.6_no-werror.patch
@@ -0,0 +1,13 @@
+diff --git a/jni/GNUmakefile b/jni/GNUmakefile
+index efe6230..25053c7 100755
+--- a/jni/GNUmakefile
++++ b/jni/GNUmakefile
+@@ -64,7 +64,7 @@ JFLAGS = -fno-omit-frame-pointer -fno-strict-aliasing -DNDEBUG
+ OFLAGS = -O2 $(JFLAGS)
+
+ # MacOS headers aren't completely warning free, so turn them off
+-WERROR = -Werror
++WERROR =
+ ifneq ($(OS),darwin)
+ WFLAGS += -Wundef $(WERROR)
+ endif
diff --git a/dev-java/jffi/files/jffi-1.2.7-junit-4.11.patch b/dev-java/jffi/files/jffi-1.2.7-junit-4.11.patch
new file mode 100644
index 000000000000..ac3843a0053a
--- /dev/null
+++ b/dev-java/jffi/files/jffi-1.2.7-junit-4.11.patch
@@ -0,0 +1,14 @@
+--- a/src/test/java/com/kenai/jffi/NumberTest.java
++++ b/src/test/java/com/kenai/jffi/NumberTest.java
+@@ -234,9 +234,8 @@
+ private void returnF32(InvokerType type) {
+ LibNumberTest lib = UnitHelper.loadTestLibrary(LibNumberTest.class, type);
+ float[] values = { 0f, 1.0f, -2.0f };
+- for (int i = 0; i < values.length; ++i) {
+- assertEquals("Value not returned correctly", values[i], lib.ret_float(values[i]), 0.1f);
+- }
++ float[] lib_values = { lib.ret_float(0f), lib.ret_float(1.0f), lib.ret_float(-2.0f) };
++ assertArrayEquals("Value not returned correctly", values, lib_values, 0.1f);
+ }
+
+ @Test public void returnDefaultF64() {
diff --git a/dev-java/jffi/files/jffi-1.2.7-makefile.patch b/dev-java/jffi/files/jffi-1.2.7-makefile.patch
new file mode 100644
index 000000000000..ed17f7882ce5
--- /dev/null
+++ b/dev-java/jffi/files/jffi-1.2.7-makefile.patch
@@ -0,0 +1,62 @@
+diff --git a/jffi-1.2.7/jni/GNUmakefile b/jffi-1.2.7/jni/GNUmakefile
+index 27737be..2e709d9 100755
+--- a/jffi-1.2.7/jni/GNUmakefile
++++ b/jffi-1.2.7/jni/GNUmakefile
+@@ -47,7 +47,6 @@ else
+ LIBFFI_SRC_DIR = $(SRC_DIR)/libffi
+ LIBFFI_BUILD_DIR = $(BUILD_DIR)/libffi-$(PLATFORM)
+ LIBFFI = $(LIBFFI_BUILD_DIR)/.libs/libffi_convenience.a
+- LIBFFI_LIBS = $(LIBFFI)
+ LIBFFI_CFLAGS = -I"$(LIBFFI_BUILD_DIR)"/include
+ endif
+
+@@ -64,11 +63,11 @@ JFLAGS = -fno-omit-frame-pointer -fno-strict-aliasing -DNDEBUG
+ OFLAGS = -O2 $(JFLAGS)
+
+ # MacOS headers aren't completely warning free, so turn them off
+-WERROR = -Werror
++WERROR =
+ ifneq ($(OS),darwin)
+ WFLAGS += -Wundef $(WERROR)
+ endif
+-WFLAGS += -W -Wall -Wno-unused -Wno-parentheses
++WFLAGS += -W -Wall -Wno-unused -Wno-unused-parameter -Wno-parentheses
+ PICFLAGS = -fPIC
+ SOFLAGS = # Filled in for each OS specifically
+ FFI_MMAP_EXEC = -DFFI_MMAP_EXEC_WRIT
+@@ -279,7 +278,7 @@ debug:
+ @echo "JFFI_BUILD_DIR=$(JFFI_BUILD_DIR)"
+ @echo "OBJS=$(OBJS)"
+
+-$(LIBJFFI): $(OBJS) $(LIBFFI_LIBS)
++$(LIBJFFI): $(OBJS)
+ $(CC) -o $@ $(LDFLAGS) $(SOFLAGS) $(OBJS) $(LIBFFI_LIBS) $(LIBS)
+ $(STRIP) $@
+
+@@ -291,7 +290,7 @@ $(BUILD_DIR)/%.o : $(SRC_DIR)/%.S $(wildcard $(JFFI_SRC_DIR)/*.h)
+ @mkdir -p $(@D)
+ @$(CC) $(CFLAGS) -o $@ -c $<
+
+-$(OBJS) : $(LIBFFI_LIBS)
++$(OBJS) :
+
+ ifeq ($(OS), darwin)
+ build_ffi = \
+diff --git a/jffi-1.2.7/libtest/GNUmakefile b/jffi-1.2.7/libtest/GNUmakefile
+index 9e70664..3e279a3 100644
+--- a/jffi-1.2.7/libtest/GNUmakefile
++++ b/jffi-1.2.7/libtest/GNUmakefile
+@@ -44,10 +44,10 @@ TEST_OBJS := $(patsubst $(SRC_DIR)/%.c, $(TEST_BUILD_DIR)/%.o, $(TEST_SRCS))
+ # Compiler/linker flags from:
+ # http://weblogs.java.net/blog/kellyohair/archive/2006/01/compilation_of_1.html
+ JFLAGS = -fno-omit-frame-pointer -fno-strict-aliasing
+-OFLAGS = -O2 $(JFLAGS)
+-WFLAGS = -W -Werror -Wall -Wno-unused -Wno-parentheses
++OFLAGS = $(JFLAGS)
++WFLAGS = -W -Wall -Wno-unused -Wno-unused-parameter -Wno-parentheses
+ PICFLAGS = -fPIC
+-SOFLAGS = -shared -Wl,-O1
++SOFLAGS = -shared
+ LDFLAGS += $(SOFLAGS)
+
+ IFLAGS = -I"$(BUILD_DIR)"
diff --git a/dev-java/jffi/files/jffi-1.2.7_no-werror.patch b/dev-java/jffi/files/jffi-1.2.7_no-werror.patch
new file mode 100644
index 000000000000..517a1e546d8b
--- /dev/null
+++ b/dev-java/jffi/files/jffi-1.2.7_no-werror.patch
@@ -0,0 +1,31 @@
+diff --git a/jffi-1.2.7/jni/GNUmakefile b/jffi-1.2.7/jni/GNUmakefile
+index 27737be..98f147e 100755
+--- a/jffi-1.2.7/jni/GNUmakefile
++++ b/jffi-1.2.7/jni/GNUmakefile
+@@ -64,7 +64,7 @@ JFLAGS = -fno-omit-frame-pointer -fno-strict-aliasing -DNDEBUG
+ OFLAGS = -O2 $(JFLAGS)
+
+ # MacOS headers aren't completely warning free, so turn them off
+-WERROR = -Werror
++WERROR =
+ ifneq ($(OS),darwin)
+ WFLAGS += -Wundef $(WERROR)
+ endif
+diff --git a/jffi-1.2.7/libtest/GNUmakefile b/jffi-1.2.7/libtest/GNUmakefile
+index 9e70664..72e4cc9 100644
+--- a/jffi-1.2.7/libtest/GNUmakefile
++++ b/jffi-1.2.7/libtest/GNUmakefile
+@@ -44,10 +44,10 @@ TEST_OBJS := $(patsubst $(SRC_DIR)/%.c, $(TEST_BUILD_DIR)/%.o, $(TEST_SRCS))
+ # Compiler/linker flags from:
+ # http://weblogs.java.net/blog/kellyohair/archive/2006/01/compilation_of_1.html
+ JFLAGS = -fno-omit-frame-pointer -fno-strict-aliasing
+-OFLAGS = -O2 $(JFLAGS)
+-WFLAGS = -W -Werror -Wall -Wno-unused -Wno-parentheses
++OFLAGS = $(JFLAGS)
++WFLAGS = -W -Wall -Wno-unused -Wno-parentheses
+ PICFLAGS = -fPIC
+-SOFLAGS = -shared -Wl,-O1
++SOFLAGS = -shared
+ LDFLAGS += $(SOFLAGS)
+
+ IFLAGS = -I"$(BUILD_DIR)"
diff --git a/dev-java/jffi/files/jffi-1.2.8-junit-4.11.patch b/dev-java/jffi/files/jffi-1.2.8-junit-4.11.patch
new file mode 100644
index 000000000000..ac3843a0053a
--- /dev/null
+++ b/dev-java/jffi/files/jffi-1.2.8-junit-4.11.patch
@@ -0,0 +1,14 @@
+--- a/src/test/java/com/kenai/jffi/NumberTest.java
++++ b/src/test/java/com/kenai/jffi/NumberTest.java
+@@ -234,9 +234,8 @@
+ private void returnF32(InvokerType type) {
+ LibNumberTest lib = UnitHelper.loadTestLibrary(LibNumberTest.class, type);
+ float[] values = { 0f, 1.0f, -2.0f };
+- for (int i = 0; i < values.length; ++i) {
+- assertEquals("Value not returned correctly", values[i], lib.ret_float(values[i]), 0.1f);
+- }
++ float[] lib_values = { lib.ret_float(0f), lib.ret_float(1.0f), lib.ret_float(-2.0f) };
++ assertArrayEquals("Value not returned correctly", values, lib_values, 0.1f);
+ }
+
+ @Test public void returnDefaultF64() {
diff --git a/dev-java/jffi/files/jffi-1.2.8-makefile.patch b/dev-java/jffi/files/jffi-1.2.8-makefile.patch
new file mode 100644
index 000000000000..7f9f07a500c5
--- /dev/null
+++ b/dev-java/jffi/files/jffi-1.2.8-makefile.patch
@@ -0,0 +1,52 @@
+--- jni/GNUmakefile
++++ jni/GNUmakefile
+@@ -41,6 +41,7 @@
+ JFFI_BUILD_DIR = $(BUILD_DIR)/jffi
+
+ ifeq ($(USE_SYSTEM_LIBFFI),1)
++ LIBFFI =
+ LIBFFI_LIBS ?= $(shell pkg-config --libs libffi)
+ LIBFFI_CFLAGS ?= $(shell pkg-config --cflags libffi)
+ else
+@@ -64,9 +65,8 @@
+ OFLAGS = -O2 $(JFLAGS)
+
+ # MacOS headers aren't completely warning free, so turn them off
+-WERROR = -Werror
+ ifneq ($(OS),darwin)
+- WFLAGS += -Wundef $(WERROR)
++ WFLAGS += -Wundef
+ endif
+ WFLAGS += -W -Wall -Wno-unused -Wno-parentheses -Wno-unused-parameter
+ PICFLAGS = -fPIC
+@@ -279,7 +279,7 @@
+ @echo "JFFI_BUILD_DIR=$(JFFI_BUILD_DIR)"
+ @echo "OBJS=$(OBJS)"
+
+-$(LIBJFFI): $(OBJS) $(LIBFFI_LIBS)
++$(LIBJFFI): $(OBJS) $(LIBFFI)
+ $(CC) -o $@ $(LDFLAGS) $(SOFLAGS) $(OBJS) $(LIBFFI_LIBS) $(LIBS)
+ $(STRIP) $@
+
+@@ -291,7 +291,7 @@
+ @mkdir -p $(@D)
+ @$(CC) $(CFLAGS) -o $@ -c $<
+
+-$(OBJS) : $(LIBFFI_LIBS)
++$(OBJS) : $(LIBFFI)
+
+ ifeq ($(OS), darwin)
+ build_ffi = \
+--- libtest/GNUmakefile
++++ libtest/GNUmakefile
+@@ -44,8 +44,8 @@
+ # Compiler/linker flags from:
+ # http://weblogs.java.net/blog/kellyohair/archive/2006/01/compilation_of_1.html
+ JFLAGS = -fno-omit-frame-pointer -fno-strict-aliasing
+-OFLAGS = -O2 $(JFLAGS)
+-WFLAGS = -W -Werror -Wall -Wno-unused -Wno-unused-parameter -Wno-parentheses
++OFLAGS = $(JFLAGS)
++WFLAGS = -W -Wall -Wno-unused -Wno-unused-parameter -Wno-parentheses
+ PICFLAGS = -fPIC
+ SOFLAGS = -shared -Wl,-O1
+ LDFLAGS += $(SOFLAGS)
diff --git a/dev-java/jffi/files/jffi_maven-build.xml b/dev-java/jffi/files/jffi_maven-build.xml
new file mode 100644
index 000000000000..d8114185ee41
--- /dev/null
+++ b/dev-java/jffi/files/jffi_maven-build.xml
@@ -0,0 +1,259 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ====================================================================== -->
+<!-- Ant build file (http://ant.apache.org/) for Ant 1.6.2 or above. -->
+<!-- ====================================================================== -->
+
+<!-- ====================================================================== -->
+<!-- ===================== - DO NOT EDIT THIS FILE! - ===================== -->
+<!-- ====================================================================== -->
+<!-- -->
+<!-- Any modifications will be overwritten. -->
+<!-- -->
+<!-- Generated by Maven Ant Plugin on 1/9/12 9:52 AM -->
+<!-- See: http://maven.apache.org/plugins/maven-ant-plugin/ -->
+<!-- -->
+<!-- ====================================================================== -->
+
+<project name="jffi-from-maven" default="package" basedir=".">
+
+ <!-- ====================================================================== -->
+ <!-- Build environment properties -->
+ <!-- ====================================================================== -->
+
+ <property file="${user.home}/.m2/maven.properties"/>
+ <property file="maven-build.properties"/>
+
+ <property name="maven.build.finalName" value="jffi-1.0.11"/>
+ <property name="maven.build.dir" value="target"/>
+ <property name="maven.build.outputDir" value="${maven.build.dir}/classes"/>
+ <property name="maven.build.srcDir.0" value="src/main/java"/>
+ <property name="maven.build.resourceDir.0" value="src/main/resources"/>
+ <property name="maven.build.testOutputDir" value="${maven.build.dir}/test-classes"/>
+ <property name="maven.build.testDir.0" value="src/test/java"/>
+ <property name="maven.build.testResourceDir.0" value="src/test/resources"/>
+ <property name="maven.test.reports" value="${maven.build.dir}/test-reports"/>
+ <property name="maven.reporting.outputDirectory" value="${maven.build.dir}/site"/>
+
+ <property name="maven.repo.local" value="${user.home}/.m2/repository"/>
+ <property name="maven.settings.offline" value="false"/>
+ <property name="maven.settings.interactiveMode" value="true"/>
+
+ <!-- ====================================================================== -->
+ <!-- Defining classpaths -->
+ <!-- ====================================================================== -->
+
+ <path id="build.classpath"/>
+ <path id="build.test.classpath">
+ <pathelement location="${maven.repo.local}/junit/junit/4.8.2/junit-4.8.2.jar"/>
+ </path>
+
+ <!-- ====================================================================== -->
+ <!-- Cleaning up target -->
+ <!-- ====================================================================== -->
+
+ <target name="clean" description="Clean the output directory">
+ <delete dir="${maven.build.dir}"/>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- Compilation target -->
+ <!-- ====================================================================== -->
+
+ <target name="compile" depends="get-deps" description="Compile the code">
+ <mkdir dir="${maven.build.outputDir}"/>
+ <javac destdir="${maven.build.outputDir}"
+ nowarn="false"
+ debug="true"
+ optimize="false"
+ deprecation="true"
+ target="1.1"
+ verbose="false"
+ fork="false"
+ source="1.3">
+ <src>
+ <pathelement location="${maven.build.srcDir.0}"/>
+ </src>
+ <classpath refid="build.classpath"/>
+ </javac>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- Test-compilation target -->
+ <!-- ====================================================================== -->
+
+ <target name="compile-tests"
+ depends="compile"
+ description="Compile the test code"
+ unless="maven.test.skip">
+ <mkdir dir="${maven.build.testOutputDir}"/>
+ <javac destdir="${maven.build.testOutputDir}"
+ nowarn="false"
+ debug="true"
+ optimize="false"
+ deprecation="true"
+ target="1.1"
+ verbose="false"
+ fork="false"
+ source="1.3">
+ <src>
+ <pathelement location="${maven.build.testDir.0}"/>
+ </src>
+ <classpath>
+ <path refid="build.test.classpath"/>
+ <pathelement location="${maven.build.outputDir}"/>
+ </classpath>
+ </javac>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- Run all tests -->
+ <!-- ====================================================================== -->
+
+ <target name="test"
+ depends="compile-tests, junit-missing"
+ unless="junit.skipped"
+ description="Run the test cases">
+ <mkdir dir="${maven.test.reports}"/>
+ <junit printSummary="yes" haltonerror="true" haltonfailure="true" fork="true" dir=".">
+ <sysproperty key="basedir" value="."/>
+ <formatter type="xml"/>
+ <formatter type="plain" usefile="false"/>
+ <classpath>
+ <path refid="build.test.classpath"/>
+ <pathelement location="${maven.build.outputDir}"/>
+ <pathelement location="${maven.build.testOutputDir}"/>
+ </classpath>
+ <batchtest todir="${maven.test.reports}" unless="test">
+ <fileset dir="${maven.build.testDir.0}">
+ <include name="**/Test*.java"/>
+ <include name="**/*Test.java"/>
+ <include name="**/*TestCase.java"/>
+ <exclude name="**/*Abstract*Test.java"/>
+ </fileset>
+ </batchtest>
+ <batchtest todir="${maven.test.reports}" if="test">
+ <fileset dir="${maven.build.testDir.0}">
+ <include name="**/${test}.java"/>
+ <exclude name="**/*Abstract*Test.java"/>
+ </fileset>
+ </batchtest>
+ </junit>
+ </target>
+
+ <target name="test-junit-present">
+ <available classname="junit.framework.Test" property="junit.present"/>
+ </target>
+
+ <target name="test-junit-status"
+ depends="test-junit-present">
+ <condition property="junit.missing">
+ <and>
+ <isfalse value="${junit.present}"/>
+ <isfalse value="${maven.test.skip}"/>
+ </and>
+ </condition>
+ <condition property="junit.skipped">
+ <or>
+ <isfalse value="${junit.present}"/>
+ <istrue value="${maven.test.skip}"/>
+ </or>
+ </condition>
+ </target>
+
+ <target name="junit-missing"
+ depends="test-junit-status"
+ if="junit.missing">
+ <echo>=================================== WARNING ===================================</echo>
+ <echo> JUnit is not present in your $ANT_HOME/lib directory. Tests not executed.</echo>
+ <echo>===============================================================================</echo>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- Javadoc target -->
+ <!-- ====================================================================== -->
+
+ <target name="javadoc" description="Generates the Javadoc of the application">
+ <javadoc sourcepath="${maven.build.srcDir.0}"
+ packagenames="*"
+ destdir="${maven.reporting.outputDirectory}/apidocs"
+ access="protected"
+ old="false"
+ verbose="false"
+ version="true"
+ use="true"
+ author="true"
+ splitindex="false"
+ nodeprecated="false"
+ nodeprecatedlist="false"
+ notree="false"
+ noindex="false"
+ nohelp="false"
+ nonavbar="false"
+ serialwarn="false"
+ charset="ISO-8859-1"
+ linksource="false"
+ breakiterator="false"/>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- Package target -->
+ <!-- ====================================================================== -->
+
+ <target name="package" depends="compile,test" description="Package the application">
+ <jar jarfile="${maven.build.dir}/${maven.build.finalName}.jar"
+ compress="true"
+ index="false"
+ basedir="${maven.build.outputDir}"
+ excludes="**/package.html"/>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- A dummy target for the package named after the type it creates -->
+ <!-- ====================================================================== -->
+
+ <target name="jar" depends="package" description="Builds the jar for the application"/>
+
+ <!-- ====================================================================== -->
+ <!-- Download dependencies target -->
+ <!-- ====================================================================== -->
+
+ <target name="test-offline">
+ <condition property="maven.mode.offline">
+ <equals arg1="${maven.settings.offline}" arg2="true"/>
+ </condition>
+ </target>
+
+ <target name="get-deps"
+ depends="test-offline"
+ description="Download all dependencies"
+ unless="maven.mode.offline">
+ <mkdir dir="${maven.repo.local}"/>
+ <mkdir dir="${maven.repo.local}/junit/junit/4.8.2"/>
+ <get src="http://repository.jboss.com/maven2/junit/junit/4.8.2/junit-4.8.2.jar"
+ dest="${maven.repo.local}/junit/junit/4.8.2/junit-4.8.2.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <get src="http://snapshots.jboss.org/maven2/junit/junit/4.8.2/junit-4.8.2.jar"
+ dest="${maven.repo.local}/junit/junit/4.8.2/junit-4.8.2.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <get src="http://repository.jboss.org/maven2//junit/junit/4.8.2/junit-4.8.2.jar"
+ dest="${maven.repo.local}/junit/junit/4.8.2/junit-4.8.2.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <get src="https://repository.jboss.org/nexus/content/groups/public-jboss//junit/junit/4.8.2/junit-4.8.2.jar"
+ dest="${maven.repo.local}/junit/junit/4.8.2/junit-4.8.2.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <get src="https://oss.sonatype.org/content/repositories/snapshots/junit/junit/4.8.2/junit-4.8.2.jar"
+ dest="${maven.repo.local}/junit/junit/4.8.2/junit-4.8.2.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <get src="http://repo1.maven.org/maven2/junit/junit/4.8.2/junit-4.8.2.jar"
+ dest="${maven.repo.local}/junit/junit/4.8.2/junit-4.8.2.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ </target>
+
+</project>
diff --git a/dev-java/jffi/jffi-1.0.11-r1.ebuild b/dev-java/jffi/jffi-1.0.11-r1.ebuild
new file mode 100644
index 000000000000..1f4dad71570b
--- /dev/null
+++ b/dev-java/jffi/jffi-1.0.11-r1.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+JAVA_PKG_IUSE="doc source test"
+
+inherit eutils java-pkg-2 java-ant-2 versionator
+
+DESCRIPTION="An optimized Java interface to libffi"
+HOMEPAGE="http://github.com/jnr"
+SRC_URI="https://github.com/jnr/jffi/tarball/${PV} -> ${P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 LGPL-3 )"
+SLOT="1.0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+COMMON_DEP="
+ virtual/libffi"
+RDEPEND="${COMMON_DEP}
+ >=virtual/jre-1.5"
+DEPEND="${COMMON_DEP}
+ >=virtual/jdk-1.5
+ virtual/pkgconfig
+ test? (
+ dev-java/ant-junit:0
+ dev-java/junit:4
+ )"
+
+src_unpack() {
+ unpack ${A}
+ mv jnr-jffi-* "${P}" || die
+}
+
+java_prepare() {
+ cp "${FILESDIR}"/${PN}_maven-build.xml build.xml || die
+ epatch "${FILESDIR}"/${P}_no-werror.patch
+ sed -i -e 's/-Werror //' libtest/GNUmakefile || die
+
+ find "${WORKDIR}" -iname '*.jar' -delete || die
+
+ # Fix build with GCC 4.7 #421501
+ sed -i -e "s|-mimpure-text||g" jni/GNUmakefile libtest/GNUmakefile || die
+}
+
+JAVA_ANT_REWRITE_CLASSPATH="yes"
+EANT_EXTRA_ARGS="-Dmaven.build.finalName=${PN}"
+
+src_compile() {
+ # generate Version.java
+ cat <<-EOF > src/main/java/com/kenai/jffi/Version.java
+ package com.kenai.jffi;
+ public final class Version {
+ private Version() {}
+ public static final int MAJOR = $(get_version_component_range 1);
+ public static final int MINOR = $(get_version_component_range 2);
+ public static final int MICRO = $(get_version_component_range 3);
+ }
+ EOF
+
+ java-pkg-2_src_compile
+
+ # generate headers
+ mkdir -p build/jni || die
+ javah -d build/jni -classpath target/classes \
+ com.kenai.jffi.Foreign \
+ com.kenai.jffi.ObjectBuffer \
+ com.kenai.jffi.Version \
+ || die
+
+ #build native library.
+ local args=(
+ SRC_DIR=jni
+ JNI_DIR=jni
+ BUILD_DIR=build/jni
+ VERSION=$(get_version_component_range 1-2)
+ USE_SYSTEM_LIBFFI=1
+ -f jni/GNUmakefile
+ )
+ emake "${args[@]}"
+}
+
+EANT_TEST_GENTOO_CLASSPATH="junit-4"
+src_test() {
+ # build native test library
+ emake BUILD_DIR=build -f libtest/GNUmakefile
+
+ _JAVA_OPTIONS="-Djffi.boot.library.path=build/jni" \
+ java-pkg-2_src_test
+}
+
+src_install() {
+ java-pkg_doso build/jni/lib${PN}-$(get_version_component_range 1-2).so
+
+ # must by after _doso to have JAVA_PKG_LIBDEST set
+ cat <<-EOF > boot.properties
+ jffi.boot.library.path = ${JAVA_PKG_LIBDEST}
+ EOF
+ jar -uf target/${PN}.jar boot.properties || die
+
+ java-pkg_dojar target/${PN}.jar
+
+ use doc && java-pkg_dojavadoc target/site/apidocs
+ use source && java-pkg_dosrc src/main/java/*
+}
diff --git a/dev-java/jffi/jffi-1.0.11.ebuild b/dev-java/jffi/jffi-1.0.11.ebuild
new file mode 100644
index 000000000000..6fc2b5a3c665
--- /dev/null
+++ b/dev-java/jffi/jffi-1.0.11.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+JAVA_PKG_IUSE="doc source test"
+
+inherit eutils java-pkg-2 java-ant-2 versionator
+
+DESCRIPTION="An optimized Java interface to libffi"
+HOMEPAGE="http://github.com/jnr"
+SRC_URI="https://github.com/jnr/jffi/tarball/${PV} -> ${P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 LGPL-3 )"
+SLOT="1.0"
+KEYWORDS="amd64 ~ppc x86"
+IUSE=""
+
+COMMON_DEP="
+ virtual/libffi"
+RDEPEND="${COMMON_DEP}
+ >=virtual/jre-1.5"
+DEPEND="${COMMON_DEP}
+ >=virtual/jdk-1.5
+ virtual/pkgconfig
+ test? (
+ dev-java/ant-junit:0
+ dev-java/junit:4
+ )"
+
+src_unpack() {
+ unpack ${A}
+ mv jnr-jffi-* "${P}" || die
+}
+
+java_prepare() {
+ cp "${FILESDIR}"/${PN}_maven-build.xml build.xml || die
+ epatch "${FILESDIR}"/${P}_no-werror.patch
+ sed -i -e 's/-Werror //' libtest/GNUmakefile || die
+
+ find "${WORKDIR}" -iname '*.jar' -delete
+
+ # Fix build with GCC 4.7 #421501
+ sed -i -e "s|-mimpure-text||g" jni/GNUmakefile libtest/GNUmakefile || die
+}
+
+JAVA_ANT_REWRITE_CLASSPATH="yes"
+
+EANT_EXTRA_ARGS="-Dmaven.build.finalName=${PN}"
+src_compile() {
+ # generate Version.java
+ cat <<-EOF > src/main/java/com/kenai/jffi/Version.java
+ package com.kenai.jffi;
+ public final class Version {
+ private Version() {}
+ public static final int MAJOR = $(get_version_component_range 1);
+ public static final int MINOR = $(get_version_component_range 2);
+ public static final int MICRO = $(get_version_component_range 3);
+ }
+ EOF
+
+ java-pkg-2_src_compile
+
+ # generate headers
+ mkdir -p build/jni
+ javah -d build/jni -classpath target/classes \
+ com.kenai.jffi.Foreign \
+ com.kenai.jffi.ObjectBuffer \
+ com.kenai.jffi.Version \
+ || die
+
+ #build native library.
+ local args=(
+ SRC_DIR=jni
+ JNI_DIR=jni
+ BUILD_DIR=build/jni
+ VERSION=$(get_version_component_range 1-2)
+ USE_SYSTEM_LIBFFI=1
+ -f jni/GNUmakefile
+ )
+ emake "${args[@]}"
+}
+
+EANT_TEST_GENTOO_CLASSPATH="junit-4"
+src_test() {
+ # build native test library
+ emake BUILD_DIR=build -f libtest/GNUmakefile
+
+ _JAVA_OPTIONS="-Djffi.boot.library.path=build/jni" \
+ java-pkg-2_src_test
+}
+
+src_install() {
+ cat <<-EOF > boot.properties
+ jffi.boot.library.path = ${JAVA_PKG_LIBDEST}
+ EOF
+ jar -uf target/${PN}.jar boot.properties || die
+
+ java-pkg_dojar target/${PN}.jar
+ java-pkg_doso build/jni/lib${PN}-$(get_version_component_range 1-2).so
+
+ use doc && java-pkg_dojavadoc target/site/apidocs
+ use source && java-pkg_dosrc src/main/java/*
+}
diff --git a/dev-java/jffi/jffi-1.2.5.ebuild b/dev-java/jffi/jffi-1.2.5.ebuild
new file mode 100644
index 000000000000..d7b2899f000a
--- /dev/null
+++ b/dev-java/jffi/jffi-1.2.5.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+JAVA_PKG_IUSE="doc source test"
+
+inherit eutils java-pkg-2 java-ant-2 versionator vcs-snapshot
+
+DESCRIPTION="An optimized Java interface to libffi"
+HOMEPAGE="https://github.com/jnr/jffi"
+SRC_URI="https://github.com/jnr/jffi/tarball/${PV} -> ${P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 LGPL-3 )"
+SLOT="1.2"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+COMMON_DEP="
+ virtual/libffi"
+RDEPEND="${COMMON_DEP}
+ >=virtual/jre-1.5"
+DEPEND="${COMMON_DEP}
+ >=virtual/jdk-1.5
+ virtual/pkgconfig
+ test? (
+ dev-java/ant-junit:0
+ dev-java/junit:4
+ )"
+
+java_prepare() {
+ cp "${FILESDIR}"/${PN}_maven-build.xml build.xml || die
+ epatch "${FILESDIR}"/${P}_no-werror.patch
+
+ find "${WORKDIR}" -iname '*.jar' -delete
+}
+
+JAVA_ANT_REWRITE_CLASSPATH="yes"
+
+EANT_EXTRA_ARGS="-Dmaven.build.finalName=${PN}"
+src_compile() {
+ # generate Version.java
+ cat > src/main/java/com/kenai/jffi/Version.java <<-EOF
+ package com.kenai.jffi;
+ public final class Version {
+ private Version() {}
+ public static final int MAJOR = $(get_version_component_range 1);
+ public static final int MINOR = $(get_version_component_range 2);
+ public static final int MICRO = $(get_version_component_range 3);
+ }
+ EOF
+
+ java-pkg-2_src_compile
+
+ # generate headers
+ mkdir -p build/jni
+ javah -d build/jni -classpath target/classes \
+ com.kenai.jffi.Foreign \
+ com.kenai.jffi.ObjectBuffer \
+ com.kenai.jffi.Version \
+ || die
+
+ #build native library.
+ local args=(
+ SRC_DIR=jni
+ JNI_DIR=jni
+ BUILD_DIR=build/jni
+ VERSION=$(get_version_component_range 1-2)
+ USE_SYSTEM_LIBFFI=1
+ -f jni/GNUmakefile
+ )
+ emake "${args[@]}"
+}
+
+EANT_TEST_GENTOO_CLASSPATH="junit-4"
+src_test() {
+ # build native test library
+ emake BUILD_DIR=build -f libtest/GNUmakefile
+
+ _JAVA_OPTIONS="-Djffi.boot.library.path=build/jni" \
+ java-pkg-2_src_test
+}
+
+src_install() {
+ cat > boot.properties <<-EOF
+ jffi.boot.library.path = ${JAVA_PKG_LIBDEST}
+ EOF
+ jar -uf target/${PN}.jar boot.properties || die
+
+ java-pkg_dojar target/${PN}.jar
+ java-pkg_doso build/jni/lib${PN}-$(get_version_component_range 1-2).so
+
+ use doc && java-pkg_dojavadoc target/site/apidocs
+ use source && java-pkg_dosrc src/main/java/*
+}
diff --git a/dev-java/jffi/jffi-1.2.6.ebuild b/dev-java/jffi/jffi-1.2.6.ebuild
new file mode 100644
index 000000000000..c9f8a54a7318
--- /dev/null
+++ b/dev-java/jffi/jffi-1.2.6.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+JAVA_PKG_IUSE="doc source test"
+
+inherit eutils java-pkg-2 java-ant-2 versionator vcs-snapshot
+
+DESCRIPTION="An optimized Java interface to libffi"
+HOMEPAGE="https://github.com/jnr/jffi"
+SRC_URI="https://github.com/jnr/jffi/tarball/${PV} -> ${P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 LGPL-3 )"
+SLOT="1.2"
+KEYWORDS="~amd64 ~ppc ~x86 ~ppc-macos ~x64-macos ~x86-macos"
+IUSE=""
+
+COMMON_DEP="
+ virtual/libffi"
+RDEPEND="${COMMON_DEP}
+ >=virtual/jre-1.5"
+DEPEND="${COMMON_DEP}
+ >=virtual/jdk-1.5
+ virtual/pkgconfig
+ test? (
+ dev-java/ant-junit:0
+ dev-java/junit:4
+ )"
+
+java_prepare() {
+ cp "${FILESDIR}"/${PN}_maven-build.xml build.xml || die
+ epatch "${FILESDIR}"/${P}_no-werror.patch
+
+ # misc fixes for Darwin
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ local uarch
+ # don't do multiarch
+ # avoid using Xcode stuff
+ # use Prefix' headers
+ # don't mess with deployment target
+ # set install_name
+ use x64-macos && uarch=x86_64
+ use x86-macos && uarch=i386
+ use ppc-macos && uarch=ppc
+ sed -i \
+ -e "/ARCHES +=/s/=.*$/= ${uarch}/" \
+ -e "/XCODE=/s:=.*$:=${EPREFIX}:" \
+ -e "/MACSDK/s/^/#/" \
+ -e "/MACOSX_DEPLOYMENT_TARGET=/s/MAC/NOMAC/" \
+ -e "/SOFLAGS =/s:=.*:= -install_name ${EPREFIX}/usr/lib/jffi-${SLOT}/libjffi-${SLOT}.jnilib:" \
+ jni/GNUmakefile || die
+ fi
+
+ find "${WORKDIR}" -iname '*.jar' -delete
+}
+
+JAVA_ANT_REWRITE_CLASSPATH="yes"
+
+EANT_EXTRA_ARGS="-Dmaven.build.finalName=${PN}"
+src_compile() {
+ # generate Version.java
+ cat > src/main/java/com/kenai/jffi/Version.java <<-EOF
+ package com.kenai.jffi;
+ public final class Version {
+ private Version() {}
+ public static final int MAJOR = $(get_version_component_range 1);
+ public static final int MINOR = $(get_version_component_range 2);
+ public static final int MICRO = $(get_version_component_range 3);
+ }
+ EOF
+
+ java-pkg-2_src_compile
+
+ # generate headers
+ mkdir -p build/jni
+ javah -d build/jni -classpath target/classes \
+ com.kenai.jffi.Foreign \
+ com.kenai.jffi.ObjectBuffer \
+ com.kenai.jffi.Version \
+ || die
+
+ #build native library.
+ local args=(
+ SRC_DIR=jni
+ JNI_DIR=jni
+ BUILD_DIR=build/jni
+ VERSION=$(get_version_component_range 1-2)
+ USE_SYSTEM_LIBFFI=1
+ -f jni/GNUmakefile
+ )
+ emake "${args[@]}"
+}
+
+EANT_TEST_GENTOO_CLASSPATH="junit-4"
+src_test() {
+ # build native test library
+ emake BUILD_DIR=build -f libtest/GNUmakefile
+
+ _JAVA_OPTIONS="-Djffi.boot.library.path=build/jni" \
+ java-pkg-2_src_test
+}
+
+src_install() {
+ local libname=".so"
+
+ cat > boot.properties <<-EOF
+ jffi.boot.library.path = ${JAVA_PKG_LIBDEST}
+ EOF
+ jar -uf target/${PN}.jar boot.properties || die
+
+ [[ ${CHOST} == *-darwin* ]] && libname=.jnilib
+
+ java-pkg_dojar target/${PN}.jar
+ java-pkg_doso build/jni/lib${PN}-$(get_version_component_range 1-2)${libname}
+
+ use doc && java-pkg_dojavadoc target/site/apidocs
+ use source && java-pkg_dosrc src/main/java/*
+}
diff --git a/dev-java/jffi/jffi-1.2.7-r2.ebuild b/dev-java/jffi/jffi-1.2.7-r2.ebuild
new file mode 100644
index 000000000000..151d77b05abc
--- /dev/null
+++ b/dev-java/jffi/jffi-1.2.7-r2.ebuild
@@ -0,0 +1,123 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+JAVA_PKG_IUSE="doc source test"
+
+inherit eutils java-pkg-2 java-ant-2 versionator vcs-snapshot
+
+DESCRIPTION="An optimized Java interface to libffi"
+HOMEPAGE="https://github.com/jnr/jffi"
+SRC_URI="https://github.com/jnr/jffi/tarball/${PV} -> ${P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 LGPL-3 )"
+SLOT="1.2"
+KEYWORDS="amd64 ~ppc x86 ~ppc-macos ~x64-macos ~x86-macos"
+
+COMMON_DEP="virtual/libffi:0"
+
+RDEPEND="${COMMON_DEP}
+ >=virtual/jre-1.5"
+
+DEPEND="${COMMON_DEP}
+ >=virtual/jdk-1.5
+ virtual/pkgconfig
+ test? (
+ dev-java/ant-junit4:0
+ dev-java/junit:4
+ )"
+
+java_prepare() {
+ cp "${FILESDIR}"/${PN}_maven-build.xml build.xml || die
+ epatch "${FILESDIR}"/${P}-makefile.patch
+ epatch "${FILESDIR}"/${P}-junit-4.11.patch
+
+ # misc fixes for Darwin
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ local uarch
+ # don't do multiarch
+ # avoid using Xcode stuff
+ # use Prefix' headers
+ # don't mess with deployment target
+ # set install_name
+ use x64-macos && uarch=x86_64
+ use x86-macos && uarch=i386
+ use ppc-macos && uarch=ppc
+ sed -i \
+ -e "/ARCHES +=/s/=.*$/= ${uarch}/" \
+ -e "/XCODE=/s:=.*$:=${EPREFIX}:" \
+ -e "/MACSDK/s/^/#/" \
+ -e "/MACOSX_DEPLOYMENT_TARGET=/s/MAC/NOMAC/" \
+ -e "/SOFLAGS =/s:=.*:= -install_name ${EPREFIX}/usr/lib/jffi-${SLOT}/libjffi-${SLOT}.jnilib:" \
+ jni/GNUmakefile || die
+ fi
+
+ find "${WORKDIR}" -iname '*.jar' -delete || die
+}
+
+JAVA_ANT_REWRITE_CLASSPATH="yes"
+
+EANT_EXTRA_ARGS="-Dmaven.build.finalName=${PN}"
+src_compile() {
+ # generate Version.java
+ cat > src/main/java/com/kenai/jffi/Version.java <<-EOF
+ package com.kenai.jffi;
+ public final class Version {
+ private Version() {}
+ public static final int MAJOR = $(get_version_component_range 1);
+ public static final int MINOR = $(get_version_component_range 2);
+ public static final int MICRO = $(get_version_component_range 3);
+ }
+ EOF
+
+ java-pkg-2_src_compile
+
+ # generate headers
+ mkdir -p build/jni
+ javah -d build/jni -classpath target/classes \
+ com.kenai.jffi.Foreign \
+ com.kenai.jffi.ObjectBuffer \
+ com.kenai.jffi.Version \
+ || die
+
+ #build native library.
+ local args=(
+ SRC_DIR=jni
+ JNI_DIR=jni
+ BUILD_DIR=build/jni
+ VERSION=$(get_version_component_range 1-2)
+ USE_SYSTEM_LIBFFI=1
+ -f jni/GNUmakefile
+ )
+ emake "${args[@]}"
+}
+
+EANT_TEST_GENTOO_CLASSPATH="ant-junit4,junit-4"
+
+src_test() {
+ # build native test library
+ emake BUILD_DIR=build -f libtest/GNUmakefile
+
+ _JAVA_OPTIONS="-Djffi.boot.library.path=${S}/build/jni" \
+ java-pkg-2_src_test
+}
+
+src_install() {
+ local libname=".so"
+
+ [[ ${CHOST} == *-darwin* ]] && libname=.jnilib
+ java-pkg_doso build/jni/lib${PN}-$(get_version_component_range 1-2)${libname}
+
+ # must by after _doso to have JAVA_PKG_LIBDEST set
+ cat > boot.properties <<-EOF
+ jffi.boot.library.path = ${JAVA_PKG_LIBDEST}
+ EOF
+ jar -uf target/${PN}.jar boot.properties || die
+
+ java-pkg_dojar target/${PN}.jar
+
+ use doc && java-pkg_dojavadoc target/site/apidocs
+ use source && java-pkg_dosrc src/main/java/*
+}
diff --git a/dev-java/jffi/jffi-1.2.7.ebuild b/dev-java/jffi/jffi-1.2.7.ebuild
new file mode 100644
index 000000000000..7fef0f629439
--- /dev/null
+++ b/dev-java/jffi/jffi-1.2.7.ebuild
@@ -0,0 +1,122 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+JAVA_PKG_IUSE="doc source test"
+
+inherit eutils java-pkg-2 java-ant-2 versionator vcs-snapshot
+
+DESCRIPTION="An optimized Java interface to libffi"
+HOMEPAGE="https://github.com/jnr/jffi"
+SRC_URI="https://github.com/jnr/jffi/tarball/${PV} -> ${P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 LGPL-3 )"
+SLOT="1.2"
+KEYWORDS="amd64 ppc x86 ~ppc-macos ~x64-macos ~x86-macos"
+
+COMMON_DEP="virtual/libffi:0"
+
+RDEPEND="${COMMON_DEP}
+ >=virtual/jre-1.5"
+
+DEPEND="${COMMON_DEP}
+ >=virtual/jdk-1.5
+ virtual/pkgconfig
+ test? (
+ dev-java/ant-junit4:0
+ dev-java/junit:4
+ )"
+
+java_prepare() {
+ cp "${FILESDIR}"/${PN}_maven-build.xml build.xml || die
+ epatch "${FILESDIR}"/${P}_no-werror.patch
+ epatch "${FILESDIR}"/${P}-junit-4.11.patch
+
+ # misc fixes for Darwin
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ local uarch
+ # don't do multiarch
+ # avoid using Xcode stuff
+ # use Prefix' headers
+ # don't mess with deployment target
+ # set install_name
+ use x64-macos && uarch=x86_64
+ use x86-macos && uarch=i386
+ use ppc-macos && uarch=ppc
+ sed -i \
+ -e "/ARCHES +=/s/=.*$/= ${uarch}/" \
+ -e "/XCODE=/s:=.*$:=${EPREFIX}:" \
+ -e "/MACSDK/s/^/#/" \
+ -e "/MACOSX_DEPLOYMENT_TARGET=/s/MAC/NOMAC/" \
+ -e "/SOFLAGS =/s:=.*:= -install_name ${EPREFIX}/usr/lib/jffi-${SLOT}/libjffi-${SLOT}.jnilib:" \
+ jni/GNUmakefile || die
+ fi
+
+ find "${WORKDIR}" -iname '*.jar' -delete
+}
+
+JAVA_ANT_REWRITE_CLASSPATH="yes"
+
+EANT_EXTRA_ARGS="-Dmaven.build.finalName=${PN}"
+src_compile() {
+ # generate Version.java
+ cat > src/main/java/com/kenai/jffi/Version.java <<-EOF
+ package com.kenai.jffi;
+ public final class Version {
+ private Version() {}
+ public static final int MAJOR = $(get_version_component_range 1);
+ public static final int MINOR = $(get_version_component_range 2);
+ public static final int MICRO = $(get_version_component_range 3);
+ }
+ EOF
+
+ java-pkg-2_src_compile
+
+ # generate headers
+ mkdir -p build/jni
+ javah -d build/jni -classpath target/classes \
+ com.kenai.jffi.Foreign \
+ com.kenai.jffi.ObjectBuffer \
+ com.kenai.jffi.Version \
+ || die
+
+ #build native library.
+ local args=(
+ SRC_DIR=jni
+ JNI_DIR=jni
+ BUILD_DIR=build/jni
+ VERSION=$(get_version_component_range 1-2)
+ USE_SYSTEM_LIBFFI=1
+ -f jni/GNUmakefile
+ )
+ emake "${args[@]}"
+}
+
+EANT_TEST_GENTOO_CLASSPATH="ant-junit4,junit-4"
+
+src_test() {
+ # build native test library
+ emake BUILD_DIR=build -f libtest/GNUmakefile
+
+ _JAVA_OPTIONS="-Djffi.boot.library.path=build/jni" \
+ java-pkg-2_src_test
+}
+
+src_install() {
+ local libname=".so"
+
+ cat > boot.properties <<-EOF
+ jffi.boot.library.path = ${JAVA_PKG_LIBDEST}
+ EOF
+ jar -uf target/${PN}.jar boot.properties || die
+
+ [[ ${CHOST} == *-darwin* ]] && libname=.jnilib
+
+ java-pkg_dojar target/${PN}.jar
+ java-pkg_doso build/jni/lib${PN}-$(get_version_component_range 1-2)${libname}
+
+ use doc && java-pkg_dojavadoc target/site/apidocs
+ use source && java-pkg_dosrc src/main/java/*
+}
diff --git a/dev-java/jffi/jffi-1.2.8.ebuild b/dev-java/jffi/jffi-1.2.8.ebuild
new file mode 100644
index 000000000000..064bc69413d6
--- /dev/null
+++ b/dev-java/jffi/jffi-1.2.8.ebuild
@@ -0,0 +1,124 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+JAVA_PKG_IUSE="doc source test"
+
+inherit eutils java-pkg-2 java-ant-2 versionator
+
+DESCRIPTION="An optimized Java interface to libffi"
+HOMEPAGE="https://github.com/jnr/jffi"
+SRC_URI="https://github.com/jnr/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 LGPL-3 )"
+SLOT="1.2"
+KEYWORDS="~amd64 ~ppc ~x86 ~ppc-macos ~x64-macos ~x86-macos"
+
+COMMON_DEP="virtual/libffi:0"
+
+RDEPEND="${COMMON_DEP}
+ >=virtual/jre-1.5"
+
+DEPEND="${COMMON_DEP}
+ >=virtual/jdk-1.5
+ virtual/pkgconfig
+ test? (
+ dev-java/ant-junit4:0
+ dev-java/junit:4
+ )"
+
+java_prepare() {
+ cp "${FILESDIR}"/${PN}_maven-build.xml build.xml || die
+ epatch "${FILESDIR}"/${PN}-1.2.8-makefile.patch
+ epatch "${FILESDIR}"/${PN}-1.2.8-junit-4.11.patch
+
+ # misc fixes for Darwin
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ local uarch
+ # don't do multiarch
+ # avoid using Xcode stuff
+ # use Prefix' headers
+ # don't mess with deployment target
+ # set install_name
+ use x64-macos && uarch=x86_64
+ use x86-macos && uarch=i386
+ use ppc-macos && uarch=ppc
+ sed -i \
+ -e "/ARCHES +=/s/=.*$/= ${uarch}/" \
+ -e "/XCODE=/s:=.*$:=${EPREFIX}:" \
+ -e "/MACSDK/s/^/#/" \
+ -e "/MACOSX_DEPLOYMENT_TARGET=/s/MAC/NOMAC/" \
+ -e "/SOFLAGS =/s:=.*:= -install_name ${EPREFIX}/usr/lib/jffi-${SLOT}/libjffi-${SLOT}.jnilib:" \
+ jni/GNUmakefile || die
+ fi
+
+ find "${WORKDIR}" -iname '*.jar' -delete || die
+}
+
+JAVA_ANT_REWRITE_CLASSPATH="yes"
+
+EANT_EXTRA_ARGS="-Dmaven.build.finalName=${PN}"
+src_compile() {
+ # generate Version.java
+ cat > src/main/java/com/kenai/jffi/Version.java <<-EOF
+ package com.kenai.jffi;
+ public final class Version {
+ private Version() {}
+ public static final int MAJOR = $(get_version_component_range 1);
+ public static final int MINOR = $(get_version_component_range 2);
+ public static final int MICRO = $(get_version_component_range 3);
+ }
+ EOF
+
+ java-pkg-2_src_compile
+
+ # generate headers
+ mkdir -p build/jni
+ javah -d build/jni -classpath target/classes \
+ com.kenai.jffi.Foreign \
+ com.kenai.jffi.ObjectBuffer \
+ com.kenai.jffi.Version \
+ || die
+
+ #build native library.
+ local args=(
+ SRC_DIR=jni
+ JNI_DIR=jni
+ BUILD_DIR=build/jni
+ VERSION=$(get_version_component_range 1-2)
+ USE_SYSTEM_LIBFFI=1
+ CCACHE=
+ -f jni/GNUmakefile
+ )
+ emake "${args[@]}"
+}
+
+EANT_TEST_GENTOO_CLASSPATH="ant-junit4,junit-4"
+
+src_test() {
+ # build native test library
+ emake BUILD_DIR=build -f libtest/GNUmakefile
+
+ _JAVA_OPTIONS="-Djffi.boot.library.path=${S}/build/jni" \
+ java-pkg-2_src_test
+}
+
+src_install() {
+ local libname=".so"
+
+ [[ ${CHOST} == *-darwin* ]] && libname=.jnilib
+ java-pkg_doso build/jni/lib${PN}-$(get_version_component_range 1-2)${libname}
+
+ # must by after _doso to have JAVA_PKG_LIBDEST set
+ cat > boot.properties <<-EOF
+ jffi.boot.library.path = ${JAVA_PKG_LIBDEST}
+ EOF
+ jar -uf target/${PN}.jar boot.properties || die
+
+ java-pkg_dojar target/${PN}.jar
+
+ use doc && java-pkg_dojavadoc target/site/apidocs
+ use source && java-pkg_dosrc src/main/java/*
+}
diff --git a/dev-java/jffi/metadata.xml b/dev-java/jffi/metadata.xml
new file mode 100644
index 000000000000..16e36e4cef41
--- /dev/null
+++ b/dev-java/jffi/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>java</herd>
+ <upstream>
+ <remote-id type="github">jnr/jffi</remote-id>
+ </upstream>
+</pkgmetadata>