| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| |
| # 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 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))) |
| target := Default |
| endif |
| |
| # cross-compilation toolchain prefix (e.g. "arm-linux-gnueabi-") |
| CROSS_PREFIX := |
| |
| Default_CC := $(CROSS_PREFIX)gcc |
| Default_STRIP := $(CROSS_PREFIX)strip |
| Default_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -fPIC -fvisibility=hidden |
| Default_LINKFLAGS := -shared |
| Default_LIBNAME := libmvndnative.so |
| Default_JANSI_FLAGS := |
| |
| Linux-x86_CC := $(CROSS_PREFIX)gcc |
| Linux-x86_STRIP := $(CROSS_PREFIX)strip |
| Linux-x86_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -fPIC -m32 -fvisibility=hidden |
| Linux-x86_LINKFLAGS := -shared -static-libgcc |
| Linux-x86_LIBNAME := libmvndnative.so |
| Linux-x86_JANSI_FLAGS := |
| |
| Linux-x86_64_CC := $(CROSS_PREFIX)gcc |
| Linux-x86_64_STRIP := $(CROSS_PREFIX)strip |
| Linux-x86_64_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -fPIC -m64 -fvisibility=hidden |
| Linux-x86_64_LINKFLAGS := -shared -static-libgcc |
| Linux-x86_64_LIBNAME := libmvndnative.so |
| Linux-x86_64_JANSI_FLAGS := |
| |
| Linux-arm_CC := $(CROSS_PREFIX)gcc |
| Linux-arm_STRIP := $(CROSS_PREFIX)strip |
| Linux-arm_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -fPIC -mfloat-abi=softfp -mfpu=vfp -fvisibility=hidden |
| Linux-arm_LINKFLAGS := -shared -static-libgcc |
| Linux-arm_LIBNAME := libmvndnative.so |
| Linux-arm_JANSI_FLAGS := |
| |
| Linux-armv6_CC := $(CROSS_PREFIX)gcc |
| Linux-armv6_STRIP := $(CROSS_PREFIX)strip |
| Linux-armv6_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -mfloat-abi=hard -mfpu=vfp -fPIC -fvisibility=hidden |
| Linux-armv6_LINKFLAGS := -shared -static-libgcc |
| Linux-armv6_LIBNAME := libmvndnative.so |
| Linux-armv6_JANSI_FLAGS := |
| |
| Linux-armv7_CC := $(CROSS_PREFIX)gcc |
| Linux-armv7_STRIP := $(CROSS_PREFIX)strip |
| Linux-armv7_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -mfloat-abi=hard -mfpu=vfp -fPIC -fvisibility=hidden |
| Linux-armv7_LINKFLAGS := -shared -static-libgcc |
| Linux-armv7_LIBNAME := libmvndnative.so |
| Linux-armv7_JANSI_FLAGS := |
| |
| Linux-arm64_CC := $(CROSS_PREFIX)gcc |
| Linux-arm64_STRIP := $(CROSS_PREFIX)strip |
| Linux-arm64_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -mfloat-abi=hard -mfpu=vfp -fPIC -fvisibility=hidden |
| Linux-arm64_LINKFLAGS := -shared -static-libgcc |
| Linux-arm64_LIBNAME := libmvndnative.so |
| Linux-arm64_JANSI_FLAGS := |
| |
| Linux-ppc64_CC := $(CROSS_PREFIX)gcc |
| Linux-ppc64_STRIP := $(CROSS_PREFIX)strip |
| Linux-ppc64_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -fPIC -fvisibility=hidden |
| Linux-ppc64_LINKFLAGS := -shared -static-libgcc |
| Linux-ppc64_LIBNAME := libmvndnative.so |
| Linux-ppc64_JANSI_FLAGS := |
| |
| DragonFly-x86_64_CC := $(CROSS_PREFIX)cc |
| DragonFly-x86_64_STRIP := $(CROSS_PREFIX)strip |
| DragonFly-x86_64_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -O2 -fPIC -fvisibility=hidden |
| DragonFly-x86_64_LINKFLAGS := -shared |
| DragonFly-x86_64_LIBNAME := libmvndnative.so |
| DragonFly-x86_64_JANSI_FLAGS := |
| |
| FreeBSD-x86_CC := $(CROSS_PREFIX)gcc |
| FreeBSD-x86_STRIP := $(CROSS_PREFIX)strip |
| FreeBSD-x86_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -fPIC -fvisibility=hidden |
| FreeBSD-x86_LINKFLAGS := -shared |
| FreeBSD-x86_LIBNAME := libmvndnative.so |
| FreeBSD-x86_JANSI_FLAGS := |
| |
| FreeBSD-x86_64_CC := $(CROSS_PREFIX)gcc |
| FreeBSD-x86_64_STRIP := $(CROSS_PREFIX)strip |
| FreeBSD-x86_64_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -fPIC -fvisibility=hidden |
| FreeBSD-x86_64_LINKFLAGS := -shared |
| FreeBSD-x86_64_LIBNAME := libmvndnative.so |
| FreeBSD-x86_64_JANSI_FLAGS := |
| |
| OpenBSD-x86_64_CC := $(CROSS_PREFIX)gcc |
| OpenBSD-x86_64_STRIP := $(CROSS_PREFIX)strip |
| OpenBSD-x86_64_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -fPIC -fvisibility=hidden |
| OpenBSD-x86_64_LINKFLAGS := -shared |
| OpenBSD-x86_64_LIBNAME := libmvndnative.so |
| OpenBSD-x86_64_JANSI_FLAGS := |
| |
| SunOS-sparcv9_CC := $(CROSS_PREFIX)gcc |
| SunOS-sparcv9_STRIP := $(CROSS_PREFIX)strip |
| SunOS-sparcv9_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -O2s-fPIC -m64 -fvisibility=hidden |
| SunOS-sparcv9_LINKFLAGS := -shared -static-libgcc |
| SunOS-sparcv9_LIBNAME := libmvndnative.so |
| SunOS-sparcv9_JANSI_FLAGS := |
| |
| HPUX-ia64_32_CC := cc |
| HPUX-ia64_32_STRIP := strip |
| HPUX-ia64_32_CCFLAGS := -Itarget/inc -Itarget/inc/unix +Osize +z -Bhidden |
| HPUX-ia64_32_LINKFLAGS := -b |
| HPUX-ia64_32_LIBNAME := libmvndnative.so |
| HPUX-ia64_32_JANSI_FLAGS := |
| |
| Mac-x86_CC := gcc |
| Mac-x86_STRIP := strip -x |
| Mac-x86_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -fPIC -mmacosx-version-min=10.4 -fvisibility=hidden |
| Mac-x86_LINKFLAGS := -dynamiclib |
| Mac-x86_LIBNAME := libmvndnative.jnilib |
| Mac-x86_JANSI_FLAGS := -DJANSI_ENABLE_LOCKING_STYLE=0 |
| |
| Mac-x86_64_CC := gcc -arch $(OS_ARCH) |
| Mac-x86_64_STRIP := strip -x |
| MAC_SDK := /Developer/SDKs/MacOSX10.10.sdk |
| ifeq ($(wildcard MAC_SDK),) |
| MAC_SDK := /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk |
| endif |
| Mac-x86_64_CCFLAGS := -I$(MAC_SDK)/System/Library/Frameworks/JavaVM.framework/Headers -Itarget/inc -Itarget/inc/unix -Os -fPIC -mmacosx-version-min=10.6 -fvisibility=hidden |
| 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 |
| Windows-x86_LINKFLAGS := -Wl,--kill-at -shared -static-libgcc |
| Windows-x86_LIBNAME := mvndnative.dll |
| Windows-x86_JANSI_FLAGS := |
| |
| Windows-x86_64_CC := $(CROSS_PREFIX)gcc |
| Windows-x86_64_STRIP := $(CROSS_PREFIX)strip |
| Windows-x86_64_CCFLAGS := -D_JNI_IMPLEMENTATION_ -Itarget/inc -Itarget/inc/windows -Os |
| Windows-x86_64_LINKFLAGS := -Wl,--kill-at -shared -static-libgcc |
| Windows-x86_64_LIBNAME := mvndnative.dll |
| Windows-x86_64_JANSI_FLAGS := |
| |
| |
| CC := $($(target)_CC) |
| STRIP := $($(target)_STRIP) |
| CCFLAGS := $($(target)_CCFLAGS) |
| LINKFLAGS := $($(target)_LINKFLAGS) |
| LIBNAME := $($(target)_LIBNAME) |
| CCFLAGS := $(CCFLAGS) |