--- a/make/build.xml
+++ b/make/build.xml
@@ -316,6 +316,12 @@
       <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" /> 
@@ -334,7 +340,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.alpha,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.armel,declare.linux.armv6.armhf" if="isLinux" >
+    <target name="declare.linux" depends="declare.linux.x86,declare.linux.amd64,declare.linux.alpha,declare.linux.ia64,declare.linux.hppa,declare.linux.mips,declare.linux.mipsel,declare.linux.ppc,declare.linux.ppc64,declare.linux.ppc64le,declare.linux.aarch64,declare.linux.s390,declare.linux.s390x,declare.linux.sparc,declare.linux.armv6.armel,declare.linux.armv6.armhf" if="isLinux" >
       <property name="c.src.dir.os"                         value="unix" />
     </target>
 
--- a/make/gluegen-cpptasks-base.xml
+++ b/make/gluegen-cpptasks-base.xml
@@ -50,6 +50,7 @@
    -   isLinuxPpc
    -   isLinuxPpc64
    -   isLinuxPpc64le
+   -   isLinuxAarch64
    -   isLinuxs390
    -   isLinuxs390x
    -   isLinuxSparc
@@ -137,6 +138,7 @@
    -   compiler.cfg.linux.ppc
    -   compiler.cfg.linux.ppc64
    -   compiler.cfg.linux.ppc64le
+   -   compiler.cfg.linux.aarch64
    -   compiler.cfg.linux.s390
    -   compiler.cfg.linux.s390x
    -   compiler.cfg.linux.sparc
@@ -440,6 +442,15 @@
     <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}" />
@@ -626,6 +637,7 @@
     <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}" />
@@ -1511,7 +1523,7 @@
       <echo message="Linux.aarch64" />
       <property name="compiler.cfg.id.base"          value="compiler.cfg.linux.aarch64" /> 
       <property name="linker.cfg.id.base"            value="linker.cfg.linux.aarch64" /> 
-      <property name="java.lib.dir.platform"         value="${java.home.dir}/jre/lib/arm" />
+      <property name="java.lib.dir.platform"         value="${java.home.dir}/jre/lib/aarch64" />
     </target>
 
     <target name="gluegen.cpptasks.declare.compiler.linux.ia64" if="isLinuxIA64">
