|
| 1 | +ifndef JAVA_HOME |
| 2 | +$(warning Set JAVA_HOME environment variable) |
| 3 | +endif |
| 4 | + |
| 5 | +JAVA := "$$JAVA_HOME/bin/java" |
| 6 | +JAVAC := "$$JAVA_HOME/bin/javac" |
| 7 | +JAVAH := "$$JAVA_HOME/bin/javah" |
| 8 | + |
| 9 | +TARGET := target |
| 10 | + |
| 11 | +# building OSInfo.java |
| 12 | +#$(info compiling OSInfo.java) |
| 13 | +#$(shell mkdir -p target/lib) |
| 14 | +#$(shell $(JAVAC) lib/OSInfo.java -d target/lib) |
| 15 | + |
| 16 | +#ifndef OS_NAME |
| 17 | +#OS_NAME := $(shell $(JAVA) -cp target/lib org.fusesource.jansi.OSInfo --os) |
| 18 | +#endif |
| 19 | +#ifndef OS_ARCH |
| 20 | +#OS_ARCH := $(shell $(JAVA) -cp target/lib org.fusesource.jansi.OSInfo --arch) |
| 21 | +#endif |
| 22 | + |
| 23 | +# Windows uses different path separators |
| 24 | +ifeq ($(OS_NAME),Windows) |
| 25 | + sep := ; |
| 26 | +else |
| 27 | + sep := : |
| 28 | +endif |
| 29 | + |
| 30 | +jansi := jansi-native-$(version) |
| 31 | + |
| 32 | +ifdef JAVA_HOME |
| 33 | +jni_h := $(shell find -L "$(JAVA_HOME)" -name jni.h) |
| 34 | +ifneq ($(jni_h),) |
| 35 | +jni_include := $(shell dirname "$(jni_h)") |
| 36 | +endif |
| 37 | + |
| 38 | +jni_md := $(shell find -L "$(JAVA_HOME)" -name jni_md.h) |
| 39 | +ifneq ($(jni_md),) |
| 40 | +jni_md_include := $(shell dirname "$(jni_md)") |
| 41 | +endif |
| 42 | +endif |
| 43 | + |
| 44 | +# os=Default is meant to be generic unix/linux |
| 45 | + |
| 46 | +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 |
| 47 | +target := $(OS_NAME)-$(OS_ARCH) |
| 48 | + |
| 49 | +ifeq (,$(findstring $(strip $(target)),$(known_targets))) |
| 50 | + target := Default |
| 51 | +endif |
| 52 | + |
| 53 | +# cross-compilation toolchain prefix (e.g. "arm-linux-gnueabi-") |
| 54 | +CROSS_PREFIX := |
| 55 | + |
| 56 | +Default_CC := $(CROSS_PREFIX)gcc |
| 57 | +Default_STRIP := $(CROSS_PREFIX)strip |
| 58 | +Default_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -Os -fPIC -fvisibility=hidden |
| 59 | +Default_LINKFLAGS := -shared |
| 60 | +Default_LIBNAME := libjansi.so |
| 61 | +Default_JANSI_FLAGS := |
| 62 | + |
| 63 | +Linux-x86_CC := $(CROSS_PREFIX)gcc |
| 64 | +Linux-x86_STRIP := $(CROSS_PREFIX)strip |
| 65 | +Linux-x86_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -Os -fPIC -m32 -fvisibility=hidden |
| 66 | +Linux-x86_LINKFLAGS := -shared -static-libgcc |
| 67 | +Linux-x86_LIBNAME := libjansi.so |
| 68 | +Linux-x86_JANSI_FLAGS := |
| 69 | + |
| 70 | +Linux-x86_64_CC := $(CROSS_PREFIX)gcc |
| 71 | +Linux-x86_64_STRIP := $(CROSS_PREFIX)strip |
| 72 | +Linux-x86_64_CCFLAGS := -Isrc/main/lib/inc_linux -I$(JAVA_HOME)/include -Os -fPIC -m64 -fvisibility=hidden |
| 73 | +Linux-x86_64_LINKFLAGS := -shared -static-libgcc |
| 74 | +Linux-x86_64_LIBNAME := libjansi.so |
| 75 | +Linux-x86_64_JANSI_FLAGS := |
| 76 | + |
| 77 | +Linux-arm_CC := $(CROSS_PREFIX)gcc |
| 78 | +Linux-arm_STRIP := $(CROSS_PREFIX)strip |
| 79 | +Linux-arm_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -Os -fPIC -mfloat-abi=softfp -mfpu=vfp -fvisibility=hidden |
| 80 | +Linux-arm_LINKFLAGS := -shared -static-libgcc |
| 81 | +Linux-arm_LIBNAME := libjansi.so |
| 82 | +Linux-arm_JANSI_FLAGS := |
| 83 | + |
| 84 | +Linux-armv6_CC := $(CROSS_PREFIX)gcc |
| 85 | +Linux-armv6_STRIP := $(CROSS_PREFIX)strip |
| 86 | +Linux-armv6_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -Os -mfloat-abi=hard -mfpu=vfp -fPIC -fvisibility=hidden |
| 87 | +Linux-armv6_LINKFLAGS := -shared -static-libgcc |
| 88 | +Linux-armv6_LIBNAME := libjansi.so |
| 89 | +Linux-armv6_JANSI_FLAGS := |
| 90 | + |
| 91 | +Linux-armv7_CC := $(CROSS_PREFIX)gcc |
| 92 | +Linux-armv7_STRIP := $(CROSS_PREFIX)strip |
| 93 | +Linux-armv7_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -Os -mfloat-abi=hard -mfpu=vfp -fPIC -fvisibility=hidden |
| 94 | +Linux-armv7_LINKFLAGS := -shared -static-libgcc |
| 95 | +Linux-armv7_LIBNAME := libjansi.so |
| 96 | +Linux-armv7_JANSI_FLAGS := |
| 97 | + |
| 98 | +Linux-arm64_CC := $(CROSS_PREFIX)gcc |
| 99 | +Linux-arm64_STRIP := $(CROSS_PREFIX)strip |
| 100 | +Linux-arm64_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -Os -mfloat-abi=hard -mfpu=vfp -fPIC -fvisibility=hidden |
| 101 | +Linux-arm64_LINKFLAGS := -shared -static-libgcc |
| 102 | +Linux-arm64_LIBNAME := libjansi.so |
| 103 | +Linux-arm64_JANSI_FLAGS := |
| 104 | + |
| 105 | +Linux-ppc64_CC := $(CROSS_PREFIX)gcc |
| 106 | +Linux-ppc64_STRIP := $(CROSS_PREFIX)strip |
| 107 | +Linux-ppc64_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -Os -fPIC -fvisibility=hidden |
| 108 | +Linux-ppc64_LINKFLAGS := -shared -static-libgcc |
| 109 | +Linux-ppc64_LIBNAME := libjansi.so |
| 110 | +Linux-ppc64_JANSI_FLAGS := |
| 111 | + |
| 112 | +DragonFly-x86_64_CC := $(CROSS_PREFIX)cc |
| 113 | +DragonFly-x86_64_STRIP := $(CROSS_PREFIX)strip |
| 114 | +DragonFly-x86_64_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -O2 -fPIC -fvisibility=hidden |
| 115 | +DragonFly-x86_64_LINKFLAGS := -shared |
| 116 | +DragonFly-x86_64_LIBNAME := libjansi.so |
| 117 | +DragonFly-x86_64_JANSI_FLAGS := |
| 118 | + |
| 119 | +FreeBSD-x86_CC := $(CROSS_PREFIX)gcc |
| 120 | +FreeBSD-x86_STRIP := $(CROSS_PREFIX)strip |
| 121 | +FreeBSD-x86_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -Os -fPIC -fvisibility=hidden |
| 122 | +FreeBSD-x86_LINKFLAGS := -shared |
| 123 | +FreeBSD-x86_LIBNAME := libjansi.so |
| 124 | +FreeBSD-x86_JANSI_FLAGS := |
| 125 | + |
| 126 | +FreeBSD-x86_64_CC := $(CROSS_PREFIX)gcc |
| 127 | +FreeBSD-x86_64_STRIP := $(CROSS_PREFIX)strip |
| 128 | +FreeBSD-x86_64_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -Os -fPIC -fvisibility=hidden |
| 129 | +FreeBSD-x86_64_LINKFLAGS := -shared |
| 130 | +FreeBSD-x86_64_LIBNAME := libjansi.so |
| 131 | +FreeBSD-x86_64_JANSI_FLAGS := |
| 132 | + |
| 133 | +OpenBSD-x86_64_CC := $(CROSS_PREFIX)gcc |
| 134 | +OpenBSD-x86_64_STRIP := $(CROSS_PREFIX)strip |
| 135 | +OpenBSD-x86_64_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -Os -fPIC -fvisibility=hidden |
| 136 | +OpenBSD-x86_64_LINKFLAGS := -shared |
| 137 | +OpenBSD-x86_64_LIBNAME := libjansi.so |
| 138 | +OpenBSD-x86_64_JANSI_FLAGS := |
| 139 | + |
| 140 | +SunOS-sparcv9_CC := $(CROSS_PREFIX)gcc |
| 141 | +SunOS-sparcv9_STRIP := $(CROSS_PREFIX)strip |
| 142 | +SunOS-sparcv9_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -O2s-fPIC -m64 -fvisibility=hidden |
| 143 | +SunOS-sparcv9_LINKFLAGS := -shared -static-libgcc |
| 144 | +SunOS-sparcv9_LIBNAME := libjansi.so |
| 145 | +SunOS-sparcv9_JANSI_FLAGS := |
| 146 | + |
| 147 | +HPUX-ia64_32_CC := cc |
| 148 | +HPUX-ia64_32_STRIP := strip |
| 149 | +HPUX-ia64_32_CCFLAGS := -Isrc/main/lib/inc_linux +Osize +z -Bhidden |
| 150 | +HPUX-ia64_32_LINKFLAGS := -b |
| 151 | +HPUX-ia64_32_LIBNAME := libjansi.so |
| 152 | +HPUX-ia64_32_JANSI_FLAGS := |
| 153 | + |
| 154 | +Mac-x86_CC := gcc |
| 155 | +Mac-x86_STRIP := strip -x |
| 156 | +Mac-x86_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_mac -Os -fPIC -mmacosx-version-min=10.4 -fvisibility=hidden |
| 157 | +Mac-x86_LINKFLAGS := -dynamiclib |
| 158 | +Mac-x86_LIBNAME := libjansi.jnilib |
| 159 | +Mac-x86_JANSI_FLAGS := -DJANSI_ENABLE_LOCKING_STYLE=0 |
| 160 | + |
| 161 | +Mac-x86_64_CC := gcc -arch $(OS_ARCH) |
| 162 | +Mac-x86_64_STRIP := strip -x |
| 163 | +MAC_SDK := /Developer/SDKs/MacOSX10.10.sdk |
| 164 | +ifeq ($(wildcard MAC_SDK),) |
| 165 | + MAC_SDK := /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk |
| 166 | +endif |
| 167 | +Mac-x86_64_CCFLAGS := -I$(MAC_SDK)/System/Library/Frameworks/JavaVM.framework/Headers -Isrc/main/lib/inc_mac -Os -fPIC -mmacosx-version-min=10.6 -fvisibility=hidden |
| 168 | +Mac-x86_64_LINKFLAGS := -dynamiclib |
| 169 | +Mac-x86_64_LIBNAME := libjansi.jnilib |
| 170 | +Mac-x86_64_JANSI_FLAGS := |
| 171 | + |
| 172 | +Windows-x86_CC := $(CROSS_PREFIX)gcc |
| 173 | +Windows-x86_STRIP := $(CROSS_PREFIX)strip |
| 174 | +Windows-x86_CCFLAGS := -D_JNI_IMPLEMENTATION_ -Isrc/main/lib/inc_win -Os |
| 175 | +Windows-x86_LINKFLAGS := -Wl,--kill-at -shared -static-libgcc |
| 176 | +Windows-x86_LIBNAME := jansi.dll |
| 177 | +Windows-x86_JANSI_FLAGS := |
| 178 | + |
| 179 | +Windows-x86_64_CC := $(CROSS_PREFIX)gcc |
| 180 | +Windows-x86_64_STRIP := $(CROSS_PREFIX)strip |
| 181 | +Windows-x86_64_CCFLAGS := -D_JNI_IMPLEMENTATION_ -Isrc/main/lib/inc_win -Os |
| 182 | +Windows-x86_64_LINKFLAGS := -Wl,--kill-at -shared -static-libgcc |
| 183 | +Windows-x86_64_LIBNAME := jansi.dll |
| 184 | +Windows-x86_64_JANSI_FLAGS := |
| 185 | + |
| 186 | + |
| 187 | +CC := $($(target)_CC) |
| 188 | +STRIP := $($(target)_STRIP) |
| 189 | +CCFLAGS := $($(target)_CCFLAGS) |
| 190 | +LINKFLAGS := $($(target)_LINKFLAGS) |
| 191 | +LIBNAME := $($(target)_LIBNAME) |
| 192 | +CCFLAGS := $(CCFLAGS) |
| 193 | +ifneq ($(jni_include),) |
| 194 | +CCFLAGS := $(CCFLAGS) -I"$(jni_include)" |
| 195 | +endif |
| 196 | +ifneq ($(jni_md_include),) |
| 197 | +CCFLAGS := $(CCFLAGS) -I"$(jni_md_include)" |
| 198 | +endif |
| 199 | +$(info CCFLAGS=$(CCFLAGS)) |
0 commit comments