mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-10-27 12:48:22 +00:00
jna: add port
This commit is contained in:
@@ -0,0 +1,138 @@
|
||||
diff -urN --no-dereference jna-clean/build.xml jna-workdir/build.xml
|
||||
--- jna-clean/build.xml
|
||||
+++ jna-workdir/build.xml
|
||||
@@ -939,6 +939,9 @@
|
||||
<condition property="make.OS" value="OS=android">
|
||||
<matches pattern="^android-" string="${os.prefix}"/>
|
||||
</condition>
|
||||
+ <condition property="make.OS" value="OS=astral">
|
||||
+ <matches pattern="^astral-" string="${os.prefix}"/>
|
||||
+ </condition>
|
||||
<property name="make.OS" value="IGNORE="/>
|
||||
<!-- Ensure Makefile ARCH property properly set for darwin -->
|
||||
<condition property="ARCH" value="aarch64">
|
||||
diff -urN --no-dereference jna-clean/native/Makefile jna-workdir/native/Makefile
|
||||
--- jna-clean/native/Makefile
|
||||
+++ jna-workdir/native/Makefile
|
||||
@@ -32,7 +32,7 @@
|
||||
# NDK_PLATFORM below or set it in your environment.
|
||||
#
|
||||
# The windows build requires a cygwin installation. The build will use MSVC
|
||||
-# for compilation if cl.exe is found on the PATH, otherwise the build will fall
|
||||
+# for compilation if cl.exe is found on the PATH, otherwise the build will fall
|
||||
# back to mingw.
|
||||
|
||||
# Systems which support POSIX signals may be able to support VM crash
|
||||
@@ -118,7 +118,7 @@
|
||||
ALIBDIR=/usr/lib
|
||||
ifeq ($(ARCH),arm)
|
||||
PREFIX=arm-linux-androideabi-
|
||||
-COPT+= -mthumb-interwork -march=armv5te -mtune=xscale -msoft-float -fstack-protector
|
||||
+COPT+= -mthumb-interwork -march=armv5te -mtune=xscale -msoft-float -fstack-protector
|
||||
HOST=arm-linux-eabi
|
||||
else
|
||||
ifeq ($(ARCH),armv7)
|
||||
@@ -234,7 +234,7 @@
|
||||
ifeq ($(USE_MSVC),true)
|
||||
# MS compiler
|
||||
CC=$(FFI_SRC)/msvcc.sh
|
||||
-CDEFINES+=-DHAVE_PROTECTION
|
||||
+CDEFINES+=-DHAVE_PROTECTION
|
||||
ifneq ($(DYNAMIC_LIBFFI),true)
|
||||
CDEFINES+=-DUSE_STATIC_RTL
|
||||
endif
|
||||
@@ -396,13 +396,13 @@
|
||||
DARWIN_ARCH=$(ARCH)
|
||||
ifeq ($(ARCH),aarch64)
|
||||
DARWIN_ARCH=arm64
|
||||
-else
|
||||
+else
|
||||
ifeq ($(ARCH),x86-64)
|
||||
DARWIN_ARCH=x86_64
|
||||
else
|
||||
ifeq ($(ARCH),x86)
|
||||
DARWIN_ARCH=x86
|
||||
-else
|
||||
+else
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
@@ -455,6 +455,19 @@
|
||||
LIBS=
|
||||
endif
|
||||
|
||||
+ifeq ($(OS),astral)
|
||||
+PCFLAGS+=-fPIC
|
||||
+CDEFINES+=-DHAVE_PROTECTION
|
||||
+HOST_CONFIG=--host=x86_64-astral
|
||||
+JAVA_INCLUDES+=-I"$(JAVA_HOME)/include/linux"
|
||||
+ifeq ($(DYNAMIC_LIBFFI),true)
|
||||
+LDFLAGS+=-Wl,-soname,$@
|
||||
+else
|
||||
+# Ensure we bind to local libffi symbols
|
||||
+LDFLAGS+=-Wl,-soname,$@,-Bsymbolic
|
||||
+endif
|
||||
+endif
|
||||
+
|
||||
# Unfortunately, we have to use different libffi include files depending on
|
||||
# the target, so we can't do a simple universal build on darwin. Do
|
||||
# separate builds, then merge the results.
|
||||
@@ -473,7 +486,7 @@
|
||||
cp $(LIBRARY) $(INSTALLDIR)
|
||||
|
||||
ifeq ($(ARCH), amd64)
|
||||
-$(DLLCB): dll-callback.c
|
||||
+$(DLLCB): dll-callback.c
|
||||
$(MINGW) -DDEFINE_CALLBACKS -c $< $(COUT)
|
||||
endif
|
||||
|
||||
@@ -505,7 +518,7 @@
|
||||
$(LD) $(LDFLAGS) $< $(TESTDEP) $(LIBS)
|
||||
|
||||
ifneq ($(DYNAMIC_LIBFFI),true)
|
||||
-$(FFI_LIB):
|
||||
+$(FFI_LIB):
|
||||
@mkdir -p $(FFI_BUILD)
|
||||
@if [ ! -f $(FFI_SRC)/configure ]; then \
|
||||
echo "Generating configure"; \
|
||||
diff -urN --no-dereference jna-clean/src/com/sun/jna/Platform.java jna-workdir/src/com/sun/jna/Platform.java
|
||||
--- jna-clean/src/com/sun/jna/Platform.java
|
||||
+++ jna-workdir/src/com/sun/jna/Platform.java
|
||||
@@ -42,6 +42,7 @@
|
||||
public static final int GNU = 9;
|
||||
public static final int KFREEBSD = 10;
|
||||
public static final int NETBSD = 11;
|
||||
+ public static final int ASTRAL = 13;
|
||||
|
||||
/** Whether read-only (final) fields within Structures are supported. */
|
||||
public static final boolean RO_FIELDS;
|
||||
@@ -110,6 +111,9 @@
|
||||
else if (osName.equalsIgnoreCase("netbsd")) {
|
||||
osType = NETBSD;
|
||||
}
|
||||
+ else if (osName.startsWith("Astral")) {
|
||||
+ osType = ASTRAL;
|
||||
+ }
|
||||
else {
|
||||
osType = UNSPECIFIED;
|
||||
}
|
||||
@@ -175,6 +179,9 @@
|
||||
public static final boolean iskFreeBSD() {
|
||||
return osType == KFREEBSD;
|
||||
}
|
||||
+ public static final boolean isAstral() {
|
||||
+ return osType == ASTRAL;
|
||||
+ }
|
||||
public static final boolean isX11() {
|
||||
// TODO: check filesystem for /usr/X11 or some other X11-specific test
|
||||
return !Platform.isWindows() && !Platform.isMac();
|
||||
@@ -341,6 +348,9 @@
|
||||
case Platform.KFREEBSD:
|
||||
osPrefix = "kfreebsd-" + arch;
|
||||
break;
|
||||
+ case Platform.ASTRAL:
|
||||
+ osPrefix = "astral-" + arch;
|
||||
+ break;
|
||||
default:
|
||||
osPrefix = name.toLowerCase();
|
||||
int space = osPrefix.indexOf(" ");
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
name=jna
|
||||
revision=1
|
||||
from_source=jna
|
||||
imagedeps="build-essential zip unzip file ant openjdk-8-jdk"
|
||||
hostdeps="xgcc xbinutils"
|
||||
deps="base openjdk17"
|
||||
|
||||
configure() {
|
||||
cp -rp "${source_dir}/." .
|
||||
}
|
||||
|
||||
build() {
|
||||
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ant \
|
||||
-DCC=x86_64-astral-gcc \
|
||||
-Dos.prefix=linux-x86-64 \
|
||||
-Djre.arch=x86-64 \
|
||||
-Djdk.home="${sysroot_dir}/usr/lib/jvm/java-17" \
|
||||
-Dbuild-native=true \
|
||||
-Ddynlink.native=true \
|
||||
dist
|
||||
}
|
||||
|
||||
package() {
|
||||
mkdir -p "${dest_dir}${prefix}/share/jna"
|
||||
cp build/jna.jar "${dest_dir}${prefix}/share/jna"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
name=jna
|
||||
version=5.13.0
|
||||
source_method=tarball
|
||||
tarball_url="https://github.com/java-native-access/jna/archive/refs/tags/${version}.tar.gz"
|
||||
tarball_sha512=aefd0becc03bb7fd753e8c5cdcbcb20f6d590125a5fb03048bef0024e826ab0254b750e22a8bb26bea38cc89262ad45e5030b666cb2c857b01b15a6a55379a0f
|
||||
prepare() {
|
||||
true
|
||||
}
|
||||
Reference in New Issue
Block a user