File gluegen2-add-ppc64-aarch64.patch of Package gluegen2

From 5309186d0bc361011b91c176f229a598496a5bf2 Mon Sep 17 00:00:00 2001
From: Peter Robinson <pbrobinson@gmail.com>
Date: Wed, 18 Feb 2015 17:30:28 +0000
Subject: Add support for aarch64/ppc64

patch retrieved from Fedora DB
and adapted to gluegen2 version 2.3.1

Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
Signed-off-by: Michel Normand <normand@linux.vnet.ibm.com>
---
 make/build.xml                 |   20 +++++++++++
 make/gluegen-cpptasks-base.xml |   70 +++++++++++++++++++++++++++++++++++++++--
 2 files changed, 87 insertions(+), 3 deletions(-)

Index: gluegen-v2.3.2/make/build.xml
===================================================================
--- gluegen-v2.3.2.orig/make/build.xml
+++ gluegen-v2.3.2/make/build.xml
@@ -306,6 +306,24 @@
       <property name="linker.cfg.id"                        value="linker.cfg.linux.ppc" /> 
     </target>
 
+    <target name="declare.linux.ppc64" if="isLinuxPpc64">
+      <echo message="Linux.ppc64" />
+      <property name="compiler.cfg.id"                      value="compiler.cfg.linux" />
+      <property name="linker.cfg.id"                        value="linker.cfg.linux.ppc64" />
+    </target>
+
+    <target name="declare.linux.ppc64le" if="isLinuxPpc64le">
+      <echo message="Linux.ppc64le" />
+      <property name="compiler.cfg.id"                      value="compiler.cfg.linux" />
+      <property name="linker.cfg.id"                        value="linker.cfg.linux.ppc64le" />
+    </target>
+
+    <target name="declare.linux.aarch64" if="isLinuxAarch64">
+      <echo message="Linux.aarch64" />
+      <property name="compiler.cfg.id"                      value="compiler.cfg.linux" />
+      <property name="linker.cfg.id"                        value="linker.cfg.linux.aarch64" />
+    </target>
+
     <target name="declare.linux.s390" if="isLinuxs390">
       <echo message="Linux.s390" />
       <property name="compiler.cfg.id"                      value="compiler.cfg.linux" /> 
@@ -324,7 +342,7 @@
       <property name="linker.cfg.id"                        value="linker.cfg.linux.sparc" /> 
     </target>
     
-    <target name="declare.linux" depends="declare.linux.x86,declare.linux.amd64,declare.linux.ia64,declare.linux.hppa,declare.linux.mips,declare.linux.mipsel,declare.linux.ppc,declare.linux.s390,declare.linux.s390x,declare.linux.sparc,declare.linux.armv6" if="isLinux" >
+    <target name="declare.linux" depends="declare.linux.x86,declare.linux.amd64,declare.linux.ia64,declare.linux.hppa,declare.linux.mips,declare.linux.mipsel,declare.linux.ppc,declare.linux.ppc64,declare.linux.ppc64le,declare.linux.s390,declare.linux.s390x,declare.linux.sparc,declare.linux.armv6,declare.linux.aarch64" if="isLinux" >
       <property name="c.src.dir.os"                         value="unix" />
     </target>
 
Index: gluegen-v2.3.2/make/gluegen-cpptasks-base.xml
===================================================================
--- gluegen-v2.3.2.orig/make/gluegen-cpptasks-base.xml
+++ gluegen-v2.3.2/make/gluegen-cpptasks-base.xml
@@ -43,11 +43,14 @@
    -   isLinuxARM64
    -   isLinuxARMv6Armel   (set in gluegen.cpptasks.detected.os.2)
    -   isLinuxARMv6Armhf   (set in gluegen.cpptasks.detected.os.2)
+   -   isLinuxAarch64
    -   isLinuxAlpha
    -   isLinuxHppa
    -   isLinuxMips
    -   isLinuxMipsel
    -   isLinuxPpc
+   -   isLinuxPpc64
+   -   isLinuxPpc64le
    -   isLinuxs390
    -   isLinuxs390x
    -   isLinuxSparc
@@ -133,6 +136,8 @@
    -   compiler.cfg.linux.mips
    -   compiler.cfg.linux.mipsel
    -   compiler.cfg.linux.ppc
+   -   compiler.cfg.linux.ppc64
+   -   compiler.cfg.linux.ppc64le
    -   compiler.cfg.linux.s390
    -   compiler.cfg.linux.s390x
    -   compiler.cfg.linux.sparc
@@ -417,6 +422,33 @@
     <condition property="ppc">
       <os arch="ppc" />
     </condition>
+    <condition property="isLinuxPpc64">
+      <and>
+        <istrue value="${isLinux}" />
+        <os arch="ppc64" />
+      </and>
+    </condition>
+    <condition property="ppc64">
+      <os arch="ppc64" />
+    </condition>
+    <condition property="isLinuxPpc64le">
+      <and>
+        <istrue value="${isLinux}" />
+        <os arch="ppc64le" />
+      </and>
+    </condition>
+    <condition property="ppc64le">
+      <os arch="ppc64le" />
+    </condition>
+    <condition property="isLinuxAarch64">
+      <and>
+        <istrue value="${isLinux}" />
+        <os arch="aarch64" />
+      </and>
+    </condition>
+    <condition property="aarch64">
+      <os arch="aarch64" />
+    </condition>
     <condition property="isLinuxs390">
       <and>
         <istrue value="${isLinux}" />
@@ -601,6 +633,9 @@
     <echo message="LinuxMips=${isLinuxMips}" />
     <echo message="LinuxMipsel=${isLinuxMipsel}" />
     <echo message="LinuxPpc=${isLinuxPpc}" />
+    <echo message="LinuxPpc64=${isLinuxPpc64}" />
+    <echo message="LinuxPpc64le=${isLinuxPpc64le}" />
+    <echo message="LinuxAarch64=${isLinuxAarch64}" />
     <echo message="Linuxs390=${isLinuxs390}" />
     <echo message="Linuxs390x=${isLinuxs390x}" />
     <echo message="LinuxSparc=${isLinuxSparc}" />
@@ -683,6 +718,14 @@
     <property name="os.and.arch" value="linux-ppc" />
   </target>
 
+  <target name="gluegen.cpptasks.detect.os.linux.ppc64" unless="gluegen.cpptasks.detected.os.2" if="isLinuxPpc64">
+    <property name="os.and.arch" value="linux-ppc64" />
+  </target>
+
+  <target name="gluegen.cpptasks.detect.os.linux.ppc64le" unless="gluegen.cpptasks.detected.os.2" if="isLinuxPpc64le">
+    <property name="os.and.arch" value="linux-ppc64le" />
+  </target>
+
   <target name="gluegen.cpptasks.detect.os.linux.s390" unless="gluegen.cpptasks.detected.os.2" if="isLinuxs390">
     <property name="os.and.arch" value="linux-s390" />
   </target>
@@ -707,7 +750,7 @@
     <property name="os.and.arch" value="android-aarch64" />
   </target>
 
-  <target name="gluegen.cpptasks.detect.os.linux" depends="gluegen.cpptasks.detect.os.linux.amd64,gluegen.cpptasks.detect.os.linux.ia64,gluegen.cpptasks.detect.os.linux.x86,gluegen.cpptasks.detect.os.linux.armv6.armel,gluegen.cpptasks.detect.os.linux.armv6.armhf,gluegen.cpptasks.detect.os.android.armv6.armel,gluegen.cpptasks.detect.os.linux.aarch64,gluegen.cpptasks.detect.os.android.armv6.armhf,gluegen.cpptasks.detect.os.android.aarch64,gluegen.cpptasks.detect.os.linux.alpha,gluegen.cpptasks.detect.os.linux.hppa,gluegen.cpptasks.detect.os.linux.mips,gluegen.cpptasks.detect.os.linux.mipsel,gluegen.cpptasks.detect.os.linux.ppc,gluegen.cpptasks.detect.os.linux.s390,gluegen.cpptasks.detect.os.linux.s390x,gluegen.cpptasks.detect.os.linux.sparc" unless="gluegen.cpptasks.detected.os.2" />
+  <target name="gluegen.cpptasks.detect.os.linux" depends="gluegen.cpptasks.detect.os.linux.amd64,gluegen.cpptasks.detect.os.linux.ia64,gluegen.cpptasks.detect.os.linux.x86,gluegen.cpptasks.detect.os.linux.armv6.armel,gluegen.cpptasks.detect.os.linux.armv6.armhf,gluegen.cpptasks.detect.os.android.armv6.armel,gluegen.cpptasks.detect.os.linux.aarch64,gluegen.cpptasks.detect.os.android.armv6.armhf,gluegen.cpptasks.detect.os.android.aarch64,gluegen.cpptasks.detect.os.linux.alpha,gluegen.cpptasks.detect.os.linux.hppa,gluegen.cpptasks.detect.os.linux.mips,gluegen.cpptasks.detect.os.linux.mipsel,gluegen.cpptasks.detect.os.linux.ppc,gluegen.cpptasks.detect.os.linux.ppc64,gluegen.cpptasks.detect.os.linux.ppc64le,gluegen.cpptasks.detect.os.linux.s390,gluegen.cpptasks.detect.os.linux.s390x,gluegen.cpptasks.detect.os.linux.sparc" unless="gluegen.cpptasks.detected.os.2" />
 
   <target name="gluegen.cpptasks.detect.os.osx" unless="gluegen.cpptasks.detected.os.2" if="isOSX">
     <property name="native.library.suffix"     value="*lib" />
@@ -1268,6 +1311,15 @@
     <linker id="linker.cfg.linux.ppc" name="${gcc.compat.compiler}">
     </linker>
 
+    <linker id="linker.cfg.linux.ppc64" name="${gcc.compat.compiler}">
+    </linker>
+
+    <linker id="linker.cfg.linux.ppc64le" name="${gcc.compat.compiler}">
+    </linker>
+
+    <linker id="linker.cfg.linux.aarch64" name="${gcc.compat.compiler}">
+    </linker>
+
     <linker id="linker.cfg.linux.s390" name="${gcc.compat.compiler}">
     </linker>
 
@@ -1505,6 +1557,20 @@
       <property name="java.lib.dir.platform"         value="${java.home.dir}/jre/lib/ppc" />
     </target>
 
+    <target name="gluegen.cpptasks.declare.compiler.linux.ppc64" if="isLinuxPpc64">
+      <echo message="Linux.Ppc64" />
+      <property name="compiler.cfg.id.base"          value="compiler.cfg.linux" />
+      <property name="linker.cfg.id.base"            value="linker.cfg.linux" />
+      <property name="java.lib.dir.platform"         value="${java.home.dir}/jre/lib/ppc64" />
+    </target>
+
+    <target name="gluegen.cpptasks.declare.compiler.linux.ppc64le" if="isLinuxPpc64le">
+      <echo message="Linux.Ppc64le" />
+      <property name="compiler.cfg.id.base"          value="compiler.cfg.linux" />
+      <property name="linker.cfg.id.base"            value="linker.cfg.linux" />
+      <property name="java.lib.dir.platform"         value="${java.home.dir}/jre/lib/ppc64le" />
+    </target>
+
     <target name="gluegen.cpptasks.declare.compiler.linux.s390" if="isLinuxs390">
       <echo message="Linux.s390" />
       <property name="compiler.cfg.id.base"          value="compiler.cfg.linux" /> 
@@ -1526,7 +1592,7 @@
       <property name="java.lib.dir.platform"         value="${java.home.dir}/jre/lib/sparc" />
     </target>
 
-    <target name="gluegen.cpptasks.declare.compiler.linux" depends="gluegen.cpptasks.declare.compiler.linux.x86,gluegen.cpptasks.declare.compiler.linux.amd64,gluegen.cpptasks.declare.compiler.linux.ia64,gluegen.cpptasks.declare.compiler.linux.armv6,gluegen.cpptasks.declare.compiler.linux.aarch64,gluegen.cpptasks.declare.compiler.linux.alpha,gluegen.cpptasks.declare.compiler.linux.hppa,gluegen.cpptasks.declare.compiler.linux.mips,gluegen.cpptasks.declare.compiler.linux.mipsel,gluegen.cpptasks.declare.compiler.linux.ppc,gluegen.cpptasks.declare.compiler.linux.s390,gluegen.cpptasks.declare.compiler.linux.s390x,gluegen.cpptasks.declare.compiler.linux.sparc" if="isLinux">
+    <target name="gluegen.cpptasks.declare.compiler.linux" depends="gluegen.cpptasks.declare.compiler.linux.x86,gluegen.cpptasks.declare.compiler.linux.amd64,gluegen.cpptasks.declare.compiler.linux.ia64,gluegen.cpptasks.declare.compiler.linux.armv6,gluegen.cpptasks.declare.compiler.linux.aarch64,gluegen.cpptasks.declare.compiler.linux.alpha,gluegen.cpptasks.declare.compiler.linux.hppa,gluegen.cpptasks.declare.compiler.linux.mips,gluegen.cpptasks.declare.compiler.linux.mipsel,gluegen.cpptasks.declare.compiler.linux.ppc,gluegen.cpptasks.declare.compiler.linux.ppc64,gluegen.cpptasks.declare.compiler.linux.ppc64le,gluegen.cpptasks.declare.compiler.linux.s390,gluegen.cpptasks.declare.compiler.linux.s390x,gluegen.cpptasks.declare.compiler.linux.sparc" if="isLinux">
         <property name="java.includes.dir.platform" value="${java.includes.dir}/x11" />
     </target>