diff --git a/native/Makefile b/native/Makefile index 8cafe8a2..0548feb5 100644 --- a/native/Makefile +++ b/native/Makefile @@ -52,7 +52,7 @@ NATIVE_DLL:=$(NATIVE_DIR)/$(LIBNAME) # For cross-compilation, install docker. See also https://github.com/dockcross/dockcross # Disabled linux-armv6 build because of this issue; https://github.com/dockcross/dockcross/issues/190 native-all: linux-x86 linux-x86_64 linux-arm linux-armv6 linux-armv7 \ - linux-arm64 linux-ppc64 win-x86 win-x86_64 mac-x86 mac-x86_64 freebsd-x86 freebsd-x86_64 + linux-arm64 linux-ppc64 win-x86 win-x86_64 mac-x86 mac-x86_64 mac-arm64 freebsd-x86 freebsd-x86_64 native: $(NATIVE_DLL) @@ -95,6 +95,9 @@ mac-x86: download-includes mac-x86_64: download-includes docker run -it --rm -v $$PWD:/workdir -e CROSS_TRIPLE=x86_64-apple-darwin multiarch/crossbuild make clean-native native OS_NAME=Mac OS_ARCH=x86_64 +mac-arm64: download-includes + docker run -it --rm -v $$PWD:/src -e TARGET=arm64-apple-darwin mcandre/snek:darwin sh -c "make clean-native native CROSS_PREFIX=arm64-apple-darwin20.4- OS_NAME=Mac OS_ARCH=arm64" + freebsd-x86: download-includes docker run -it --rm -v $$PWD:/workdir empterdose/freebsd-cross-build:9.3 make clean-native native CROSS_PREFIX=i386-freebsd9- OS_NAME=FreeBSD OS_ARCH=x86 diff --git a/native/Makefile.common b/native/Makefile.common index 7bba9c98..f2457032 100644 --- a/native/Makefile.common +++ b/native/Makefile.common @@ -17,7 +17,7 @@ # os=Default is meant to be generic unix/linux -known_targets := Linux-x86 Linux-x86_64 Linux-arm Linux-armv6 Linux-armv7 Linux-android-arm Linux-ppc64 Mac-x86 Mac-x86_64 DragonFly-x86_64 FreeBSD-x86_64 OpenBSD-x86_64 Windows-x86 Windows-x86_64 SunOS-sparcv9 HPUX-ia64_32 +known_targets := Linux-x86 Linux-x86_64 Linux-arm Linux-armv6 Linux-armv7 Linux-android-arm Linux-ppc64 Mac-x86 Mac-x86_64 Mac-arm64 DragonFly-x86_64 FreeBSD-x86_64 OpenBSD-x86_64 Windows-x86 Windows-x86_64 SunOS-sparcv9 HPUX-ia64_32 target := $(OS_NAME)-$(OS_ARCH) ifeq (,$(findstring $(strip $(target)),$(known_targets))) @@ -143,6 +143,14 @@ Mac-x86_64_LINKFLAGS := -dynamiclib Mac-x86_64_LIBNAME := libmvndnative.jnilib Mac-x86_64_JANSI_FLAGS := +Mac-arm64_CC := $(CROSS_PREFIX)clang -v +Mac-arm64_STRIP := $(CROSS_PREFIX)strip -x +MAC_SDK := /usr/local/osxcross/SDK/MacOSX11.3.sdk/ +Mac-arm64_CCFLAGS := -I$(MAC_SDK)/System/Library/Frameworks/JavaVM.framework/Headers -Itarget/inc -Itarget/inc/unix -Os -fPIC -mmacosx-version-min=11.0 -fvisibility=hidden +Mac-arm64_LINKFLAGS := -shared +Mac-arm64_LIBNAME := libmvndnative.jnilib +Mac-arm64_JANSI_FLAGS := + Windows-x86_CC := $(CROSS_PREFIX)gcc Windows-x86_STRIP := $(CROSS_PREFIX)strip Windows-x86_CCFLAGS := -D_JNI_IMPLEMENTATION_ -Itarget/inc -Itarget/inc/windows -Os diff --git a/native/src/main/resources/org/mvndaemon/mvnd/nativ/Mac/arm64/libmvndnative.jnilib b/native/src/main/resources/org/mvndaemon/mvnd/nativ/Mac/arm64/libmvndnative.jnilib new file mode 100755 index 00000000..29b37737 Binary files /dev/null and b/native/src/main/resources/org/mvndaemon/mvnd/nativ/Mac/arm64/libmvndnative.jnilib differ