From ab18bdb45752eeab9dd738b5f83093d27f314e12 Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Sat, 28 Nov 2020 09:12:41 -0800 Subject: [PATCH] Add a binary for Apple Silicon (M1) (#268) --- Makefile | 2 ++ Makefile.common | 8 +++++++- .../native/Mac/aarch64/libsnappyjava.dylib | Bin 0 -> 71184 bytes 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100755 src/main/resources/org/xerial/snappy/native/Mac/aarch64/libsnappyjava.dylib diff --git a/Makefile b/Makefile index 23021c72..1d82a8a9 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,8 @@ include Makefile.common +$(info OS_NAME:$(OS_NAME), OS_ARCH:$(OS_ARCH)) + MVN:=mvn SBT:=./sbt diff --git a/Makefile.common b/Makefile.common index 71be222f..ff1fcb6c 100755 --- a/Makefile.common +++ b/Makefile.common @@ -45,7 +45,7 @@ endif # os=Default is meant to be generic unix/linux -known_os_archs := Linux-x86 Linux-x86_64 Linux-arm Linux-armv6 Linux-armv7 Linux-android-arm Linux-aarch64 Linux-ppc Linux-ppc64 Linux-ppc64le Linux-s390 Linux-s390x Mac-x86 Mac-x86_64 FreeBSD-x86_64 Windows-x86 Windows-x86_64 SunOS-x86 SunOS-sparc SunOS-x86_64 AIX-ppc AIX-ppc64 +known_os_archs := Linux-x86 Linux-x86_64 Linux-arm Linux-armv6 Linux-armv7 Linux-android-arm Linux-aarch64 Linux-ppc Linux-ppc64 Linux-ppc64le Linux-s390 Linux-s390x Mac-x86 Mac-x86_64 Mac-aarch64 FreeBSD-x86_64 Windows-x86 Windows-x86_64 SunOS-x86 SunOS-sparc SunOS-x86_64 AIX-ppc AIX-ppc64 os_arch := $(OS_NAME)-$(OS_ARCH) IBM_JDK_7 := $(findstring IBM, $(shell $(JAVA) -version 2>&1 | grep IBM | grep "JRE 1.7")) @@ -250,6 +250,12 @@ Mac-x86_64_LINKFLAGS := -dynamiclib Mac-x86_64_LIBNAME := libsnappyjava.dylib Mac-x86_64_SNAPPY_FLAGS := +Mac-aarch64_CXX := c++ -arch arm64 +Mac-aarch64_STRIP := strip -x +Mac-aarch64_CXXFLAGS := -Ilib/inc_mac -I$(JAVA_HOME)/include -O2 -fPIC -mmacosx-version-min=10.7 -fvisibility=hidden -stdlib=libc++ -std=c++11 +Mac-aarch64_LINKFLAGS := -dynamiclib +Mac-aarch64_LIBNAME := libsnappyjava.dylib + FreeBSD-x86_64_CXX := $(CROSS_PREFIX)g++ FreeBSD-x86_64_STRIP := $(CROSS_PREFIX)strip FreeBSD-x86_64_CXXFLAGS := -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -std=c++11 diff --git a/src/main/resources/org/xerial/snappy/native/Mac/aarch64/libsnappyjava.dylib b/src/main/resources/org/xerial/snappy/native/Mac/aarch64/libsnappyjava.dylib new file mode 100755 index 0000000000000000000000000000000000000000..1ec30f5cfe991375e1f435b8d0a663616f04931b GIT binary patch literal 71184 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