Skip to content

Commit 8da0a40

Browse files
committed
Improve native builds
1 parent a2da229 commit 8da0a40

File tree

22 files changed

+157
-6010
lines changed

22 files changed

+157
-6010
lines changed

Makefile

+116-46
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,57 @@
1-
1+
#
2+
# Licensed under the Apache License, Version 2.0 (the "License");
3+
# you may not use this file except in compliance with the License.
4+
# You may obtain a copy of the License at
5+
#
6+
# http://www.apache.org/licenses/LICENSE-2.0
7+
#
8+
# Unless required by applicable law or agreed to in writing, software
9+
# distributed under the License is distributed on an "AS IS" BASIS,
10+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11+
# See the License for the specific language governing permissions and
12+
# limitations under the License.
13+
#
214
include Makefile.common
315

4-
.phony: all package native native-all deploy
16+
.PHONY: all package native native-all deploy crossbuild ducible clean-native
17+
18+
linux-armv6-digest:=@sha256:7bad6ab302af34bdf6634c8c2b02c8dc6ac932c67da9ecc199c549ab405e971e
19+
linux-x86-digest:=@sha256:7a8fda5ff1bb436ac1f2e7d40043deb630800fce33d123d04779d48f85702dcd
20+
windows-static-x86-digest:=@sha256:896bd4a43bbc89502904afdc8d00e6f2422f8f35852cc59777d6426bfc8491e8
21+
windows-static-x64-digest:=@sha256:f159861bc80b29e5dafb223477167bec53ecec6cdacb051d31e90c5823542100
22+
cross-build-digest:=@sha256:8dbaa86462270db93ae1b1b319bdd88d89272faf3a68632daf4fa36b414a326e
23+
freebsd-crossbuild-digest:=@sha256:cda62697a15d8bdc0bc26e780b1771ee78f12c55e7d5813e62c478af5a747c43
24+
mcandre-snek-digest:=@sha256:9f84e9fcdf66daafc1f1c3fb772a6c97977714e17800aeac2e3bbe5dc5039dd0
525

626
all: package
727

828
JANSI_OUT:=target/native-$(OS_NAME)-$(OS_ARCH)
929

1030
CCFLAGS:= -I$(JANSI_OUT) $(CCFLAGS)
1131

32+
target:
33+
@test -d target || mkdir target
34+
35+
download-includes: target
36+
@test -d target/inc || mkdir target/inc
37+
@test -d target/inc/unix || mkdir target/inc/unix
38+
@test -d target/inc/windows || mkdir target/inc/windows
39+
test -f target/inc/jni.h || wget -O target/inc/jni.h https://raw.githubusercontent.com/openjdk/jdk/jdk-11%2B28/src/java.base/share/native/include/jni.h
40+
test -f target/inc/unix/jni_md.h || wget -O target/inc/unix/jni_md.h https://raw.githubusercontent.com/openjdk/jdk/jdk-11%2B28/src/java.base/unix/native/include/jni_md.h
41+
test -f target/inc/windows/jni_md.h || wget -O target/inc/windows/jni_md.h https://raw.githubusercontent.com/openjdk/jdk/jdk-11%2B28/src/java.base/windows/native/include/jni_md.h
42+
43+
dockcross: target
44+
@test -d target/dockcross || mkdir target/dockcross
45+
46+
# This target does not generate the same image digest that the one uploaded
47+
#crossbuild: target
48+
# test -d target/crossbuild || git clone https://github.com/multiarch/crossbuild.git target/crossbuild
49+
# git -C target/crossbuild reset --hard d06cdc31fce0c85ad78408b44794366dafd59554
50+
# docker build target/crossbuild -t multiarch/crossbuild
51+
52+
ducible: target
53+
test -d target/ducible || git clone --branch v1.2.2 https://github.com/jasonwhite/ducible.git target/ducible
54+
make --directory=target/ducible ducible CROSS_PREFIX= CXX=g++ CC=gcc
1255

1356
clean-native:
1457
rm -rf $(JANSI_OUT)
@@ -18,17 +61,24 @@ $(JANSI_OUT)/%.o: src/main/native/%.c
1861
$(info running: $(CC) $(CCFLAGS) -c $< -o $@)
1962
$(CC) $(CCFLAGS) -c $< -o $@
2063

64+
ifeq ($(OS_NAME), Windows)
65+
$(JANSI_OUT)/$(LIBNAME): ducible
66+
endif
2167
$(JANSI_OUT)/$(LIBNAME): $(JANSI_OUT)/jansi.o $(JANSI_OUT)/jansi_isatty.o $(JANSI_OUT)/jansi_structs.o $(JANSI_OUT)/jansi_ttyname.o
2268
@mkdir -p $(@D)
2369
$(CC) $(CCFLAGS) -o $@ $(JANSI_OUT)/jansi.o $(JANSI_OUT)/jansi_isatty.o $(JANSI_OUT)/jansi_structs.o $(JANSI_OUT)/jansi_ttyname.o $(LINKFLAGS)
70+
ifeq ($(OS_NAME), Windows)
71+
target/ducible/ducible $(JANSI_OUT)/$(LIBNAME)
72+
endif
2473

2574
NATIVE_DIR=src/main/resources/org/fusesource/jansi/internal/native/$(OS_NAME)/$(OS_ARCH)
2675
NATIVE_TARGET_DIR:=target/classes/org/fusesource/jansi/internal/native/$(OS_NAME)/$(OS_ARCH)
2776
NATIVE_DLL:=$(NATIVE_DIR)/$(LIBNAME)
2877

2978
# For cross-compilation, install docker. See also https://github.com/dockcross/dockcross
79+
# Disabled linux-armv6 build because of this issue; https://github.com/dockcross/dockcross/issues/190
3080
native-all: linux-x86 linux-x86_64 linux-arm linux-armv6 linux-armv7 \
31-
linux-arm64 linux-ppc64 win-x86 win-x86_64 mac-x86 mac-x86_64 freebsd-x86 freebsd-x86_64
81+
linux-arm64 linux-ppc64 win-x86 win-x86_64 mac-x86 mac-x86_64 mac-arm64 freebsd-x86 freebsd-x86_64
3282

3383
native: $(NATIVE_DLL)
3484

@@ -38,50 +88,70 @@ $(NATIVE_DLL): $(JANSI_OUT)/$(LIBNAME)
3888
@mkdir -p $(NATIVE_TARGET_DIR)
3989
cp $< $(NATIVE_TARGET_DIR)/$(LIBNAME)
4090

41-
linux-x86:
42-
./docker/dockcross-linux-x86 bash -c 'make clean-native native OS_NAME=Linux OS_ARCH=x86'
43-
44-
linux-x86_64:
45-
docker run -it --rm -v $$PWD:/workdir -e CROSS_TRIPLE=x86_64-linux-gnu multiarch/crossbuild make clean-native native OS_NAME=Linux OS_ARCH=x86_64
46-
47-
linux-arm:
48-
docker run -it --rm -v $$PWD:/workdir -e CROSS_TRIPLE=arm-linux-gnueabi multiarch/crossbuild make clean-native native OS_NAME=Linux OS_ARCH=arm
49-
50-
linux-armv6:
51-
./docker/dockcross-linux-armv6 bash -c 'make clean-native native CROSS_PREFIX=armv6-unknown-linux-gnueabihf- OS_NAME=Linux OS_ARCH=armv6'
52-
53-
linux-armv7:
54-
docker run -it --rm -v $$PWD:/workdir -e CROSS_TRIPLE=arm-linux-gnueabihf multiarch/crossbuild make clean-native native OS_NAME=Linux OS_ARCH=armv7
55-
56-
linux-arm64:
57-
docker run -it --rm -v $$PWD:/workdir -e CROSS_TRIPLE=aarch64-linux-gnu multiarch/crossbuild make clean-native native OS_NAME=Linux OS_ARCH=arm64
58-
59-
linux-ppc64:
60-
docker run -it --rm -v $$PWD:/workdir -e CROSS_TRIPLE=powerpc64le-linux-gnu multiarch/crossbuild make clean-native native OS_NAME=Linux OS_ARCH=ppc64
61-
62-
win-x86:
63-
./docker/dockcross-windows-static-x86 bash -c 'make clean-native native CROSS_PREFIX=i686-w64-mingw32.static- OS_NAME=Windows OS_ARCH=x86'
64-
65-
win-x86_64:
66-
./docker/dockcross-windows-static-x64 bash -c 'make clean-native native CROSS_PREFIX=x86_64-w64-mingw32.static- OS_NAME=Windows OS_ARCH=x86_64'
67-
68-
mac-x86:
69-
docker run -it --rm -v $$PWD:/workdir -e CROSS_TRIPLE=i386-apple-darwin multiarch/crossbuild make clean-native native OS_NAME=Mac OS_ARCH=x86
70-
71-
mac-x86_64:
72-
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
73-
74-
mac-arm64:
75-
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"
76-
77-
freebsd-x86:
78-
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
79-
80-
freebsd-x86_64:
81-
docker run -it --rm -v $$PWD:/workdir empterdose/freebsd-cross-build:9.3 make clean-native native CROSS_PREFIX=x86_64-freebsd9- OS_NAME=FreeBSD OS_ARCH=x86_64
91+
target/dockcross/dockcross-linux-x86: dockcross
92+
docker run --rm dockcross/linux-x86$(linux-x86-digest) > target/dockcross/dockcross-linux-x86
93+
chmod +x target/dockcross/dockcross-linux-x86
94+
linux-x86: download-includes target/dockcross/dockcross-linux-x86
95+
target/dockcross/dockcross-linux-x86 bash -c 'make clean-native native OS_NAME=Linux OS_ARCH=x86'
96+
97+
linux-x86_64: download-includes
98+
docker run -it --rm -v $$PWD:/workdir --user $$(id -u):$$(id -g) \
99+
-e CROSS_TRIPLE=x86_64-linux-gnu multiarch/crossbuild$(cross-build-digest) make clean-native native OS_NAME=Linux OS_ARCH=x86_64
100+
101+
linux-arm: download-includes
102+
docker run -it --rm -v $$PWD:/workdir --user $$(id -u):$$(id -g) \
103+
-e CROSS_TRIPLE=arm-linux-gnueabi multiarch/crossbuild$(cross-build-digest) make clean-native native OS_NAME=Linux OS_ARCH=arm
104+
105+
target/dockcross/dockcross-linux-armv6: dockcross
106+
docker run --rm dockcross/linux-armv6$(linux-armv6-digest) > target/dockcross/dockcross-linux-armv6
107+
chmod +x target/dockcross/dockcross-linux-armv6
108+
linux-armv6: download-includes target/dockcross/dockcross-linux-armv6
109+
target/dockcross/dockcross-linux-armv6 bash -c 'make clean-native native CROSS_PREFIX=armv6-unknown-linux-gnueabihf- OS_NAME=Linux OS_ARCH=armv6'
110+
111+
linux-armv7: download-includes
112+
docker run -it --rm -v $$PWD:/workdir --user $$(id -u):$$(id -g) \
113+
-e CROSS_TRIPLE=arm-linux-gnueabihf multiarch/crossbuild$(cross-build-digest) make clean-native native OS_NAME=Linux OS_ARCH=armv7
114+
115+
linux-arm64: download-includes
116+
docker run -it --rm -v $$PWD:/workdir --user $$(id -u):$$(id -g) \
117+
-e CROSS_TRIPLE=aarch64-linux-gnu multiarch/crossbuild$(cross-build-digest) make clean-native native OS_NAME=Linux OS_ARCH=arm64
118+
119+
linux-ppc64: download-includes
120+
docker run -it --rm -v $$PWD:/workdir --user $$(id -u):$$(id -g) \
121+
-e CROSS_TRIPLE=powerpc64le-linux-gnu multiarch/crossbuild$(cross-build-digest) make clean-native native OS_NAME=Linux OS_ARCH=ppc64
122+
123+
target/dockcross/dockcross-windows-static-x86: dockcross
124+
docker run --rm dockcross/windows-static-x86$(windows-static-x86-digest) > target/dockcross/dockcross-windows-static-x86
125+
chmod +x target/dockcross/dockcross-windows-static-x86
126+
win-x86: download-includes target/dockcross/dockcross-windows-static-x86
127+
target/dockcross/dockcross-windows-static-x86 bash -c 'make clean-native native CROSS_PREFIX=i686-w64-mingw32.static- OS_NAME=Windows OS_ARCH=x86'
128+
129+
target/dockcross/dockcross-windows-static-x64: dockcross
130+
docker run --rm dockcross/windows-static-x64$(windows-static-x64-digest) > target/dockcross/dockcross-windows-static-x64
131+
chmod +x target/dockcross/dockcross-windows-static-x64
132+
win-x86_64: download-includes target/dockcross/dockcross-windows-static-x64
133+
target/dockcross/dockcross-windows-static-x64 bash -c 'make clean-native native CROSS_PREFIX=x86_64-w64-mingw32.static- OS_NAME=Windows OS_ARCH=x86_64'
134+
135+
mac-x86: download-includes
136+
docker run -it --rm -v $$PWD:/workdir --user $$(id -u):$$(id -g) \
137+
-e CROSS_TRIPLE=i386-apple-darwin multiarch/crossbuild$(cross-build-digest) make clean-native native OS_NAME=Mac OS_ARCH=x86
138+
139+
mac-x86_64: download-includes
140+
docker run -it --rm -v $$PWD:/workdir --user $$(id -u):$$(id -g) \
141+
-e CROSS_TRIPLE=x86_64-apple-darwin multiarch/crossbuild$(cross-build-digest) make clean-native native OS_NAME=Mac OS_ARCH=x86_64
142+
143+
mac-arm64: download-includes
144+
docker run -it --rm -v $$PWD:/src --user $$(id -u):$$(id -g) \
145+
-e TARGET=arm64-apple-darwin mcandre/snek$(mcandre-snek-digest) sh -c "make clean-native native CROSS_PREFIX=arm64-apple-darwin20.4- OS_NAME=Mac OS_ARCH=arm64"
146+
147+
freebsd-x86: download-includes
148+
docker run -it --rm -v $$PWD:/workdir --user $$(id -u):$$(id -g) \
149+
empterdose/freebsd-cross-build$(freebsd-crossbuild-digest) make clean-native native CROSS_PREFIX=i386-freebsd9- OS_NAME=FreeBSD OS_ARCH=x86
150+
151+
freebsd-x86_64: download-includes
152+
docker run -it --rm -v $$PWD:/workdir --user $$(id -u):$$(id -g) \
153+
empterdose/freebsd-cross-build$(freebsd-crossbuild-digest) make clean-native native CROSS_PREFIX=x86_64-freebsd9- OS_NAME=FreeBSD OS_ARCH=x86_64
82154

83155
#sparcv9:
84156
# $(MAKE) native OS_NAME=SunOS OS_ARCH=sparcv9
85157

86-
87-

Makefile.common

+33-19
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
#
2+
# Licensed under the Apache License, Version 2.0 (the "License");
3+
# you may not use this file except in compliance with the License.
4+
# You may obtain a copy of the License at
5+
#
6+
# http://www.apache.org/licenses/LICENSE-2.0
7+
#
8+
# Unless required by applicable law or agreed to in writing, software
9+
# distributed under the License is distributed on an "AS IS" BASIS,
10+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11+
# See the License for the specific language governing permissions and
12+
# limitations under the License.
13+
#
14+
115
# os=Default is meant to be generic unix/linux
216

317
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
@@ -12,105 +26,105 @@ CROSS_PREFIX :=
1226

1327
Default_CC := $(CROSS_PREFIX)gcc
1428
Default_STRIP := $(CROSS_PREFIX)strip
15-
Default_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -Os -fPIC -fvisibility=hidden
29+
Default_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -fPIC -fvisibility=hidden
1630
Default_LINKFLAGS := -shared
1731
Default_LIBNAME := libjansi.so
1832
Default_JANSI_FLAGS :=
1933

2034
Linux-x86_CC := $(CROSS_PREFIX)gcc
2135
Linux-x86_STRIP := $(CROSS_PREFIX)strip
22-
Linux-x86_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -Os -fPIC -m32 -fvisibility=hidden
36+
Linux-x86_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -fPIC -m32 -fvisibility=hidden
2337
Linux-x86_LINKFLAGS := -shared -static-libgcc
2438
Linux-x86_LIBNAME := libjansi.so
2539
Linux-x86_JANSI_FLAGS :=
2640

2741
Linux-x86_64_CC := $(CROSS_PREFIX)gcc
2842
Linux-x86_64_STRIP := $(CROSS_PREFIX)strip
29-
Linux-x86_64_CCFLAGS := -Isrc/main/lib/inc_linux -I$(JAVA_HOME)/include -Os -fPIC -m64 -fvisibility=hidden
43+
Linux-x86_64_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -fPIC -m64 -fvisibility=hidden
3044
Linux-x86_64_LINKFLAGS := -shared -static-libgcc
3145
Linux-x86_64_LIBNAME := libjansi.so
3246
Linux-x86_64_JANSI_FLAGS :=
3347

3448
Linux-arm_CC := $(CROSS_PREFIX)gcc
3549
Linux-arm_STRIP := $(CROSS_PREFIX)strip
36-
Linux-arm_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -Os -fPIC -mfloat-abi=softfp -mfpu=vfp -fvisibility=hidden
50+
Linux-arm_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -fPIC -mfloat-abi=softfp -mfpu=vfp -fvisibility=hidden
3751
Linux-arm_LINKFLAGS := -shared -static-libgcc
3852
Linux-arm_LIBNAME := libjansi.so
3953
Linux-arm_JANSI_FLAGS :=
4054

4155
Linux-armv6_CC := $(CROSS_PREFIX)gcc
4256
Linux-armv6_STRIP := $(CROSS_PREFIX)strip
43-
Linux-armv6_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -Os -fPIC -fvisibility=hidden
57+
Linux-armv6_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -mfloat-abi=hard -mfpu=vfp -fPIC -fvisibility=hidden
4458
Linux-armv6_LINKFLAGS := -shared -static-libgcc
4559
Linux-armv6_LIBNAME := libjansi.so
4660
Linux-armv6_JANSI_FLAGS :=
4761

4862
Linux-armv7_CC := $(CROSS_PREFIX)gcc
4963
Linux-armv7_STRIP := $(CROSS_PREFIX)strip
50-
Linux-armv7_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -Os -mfloat-abi=hard -mfpu=vfp -fPIC -fvisibility=hidden
64+
Linux-armv7_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -mfloat-abi=hard -mfpu=vfp -fPIC -fvisibility=hidden
5165
Linux-armv7_LINKFLAGS := -shared -static-libgcc
5266
Linux-armv7_LIBNAME := libjansi.so
5367
Linux-armv7_JANSI_FLAGS :=
5468

5569
Linux-arm64_CC := $(CROSS_PREFIX)gcc
5670
Linux-arm64_STRIP := $(CROSS_PREFIX)strip
57-
Linux-arm64_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -Os -mfloat-abi=hard -mfpu=vfp -fPIC -fvisibility=hidden
71+
Linux-arm64_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -mfloat-abi=hard -mfpu=vfp -fPIC -fvisibility=hidden
5872
Linux-arm64_LINKFLAGS := -shared -static-libgcc
5973
Linux-arm64_LIBNAME := libjansi.so
6074
Linux-arm64_JANSI_FLAGS :=
6175

6276
Linux-ppc64_CC := $(CROSS_PREFIX)gcc
6377
Linux-ppc64_STRIP := $(CROSS_PREFIX)strip
64-
Linux-ppc64_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -Os -fPIC -fvisibility=hidden
78+
Linux-ppc64_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -fPIC -fvisibility=hidden
6579
Linux-ppc64_LINKFLAGS := -shared -static-libgcc
6680
Linux-ppc64_LIBNAME := libjansi.so
6781
Linux-ppc64_JANSI_FLAGS :=
6882

6983
DragonFly-x86_64_CC := $(CROSS_PREFIX)cc
7084
DragonFly-x86_64_STRIP := $(CROSS_PREFIX)strip
71-
DragonFly-x86_64_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -O2 -fPIC -fvisibility=hidden
85+
DragonFly-x86_64_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -O2 -fPIC -fvisibility=hidden
7286
DragonFly-x86_64_LINKFLAGS := -shared
7387
DragonFly-x86_64_LIBNAME := libjansi.so
7488
DragonFly-x86_64_JANSI_FLAGS :=
7589

7690
FreeBSD-x86_CC := $(CROSS_PREFIX)gcc
7791
FreeBSD-x86_STRIP := $(CROSS_PREFIX)strip
78-
FreeBSD-x86_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -Os -fPIC -fvisibility=hidden
92+
FreeBSD-x86_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -fPIC -fvisibility=hidden
7993
FreeBSD-x86_LINKFLAGS := -shared
8094
FreeBSD-x86_LIBNAME := libjansi.so
8195
FreeBSD-x86_JANSI_FLAGS :=
8296

8397
FreeBSD-x86_64_CC := $(CROSS_PREFIX)gcc
8498
FreeBSD-x86_64_STRIP := $(CROSS_PREFIX)strip
85-
FreeBSD-x86_64_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -Os -fPIC -fvisibility=hidden
99+
FreeBSD-x86_64_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -fPIC -fvisibility=hidden
86100
FreeBSD-x86_64_LINKFLAGS := -shared
87101
FreeBSD-x86_64_LIBNAME := libjansi.so
88102
FreeBSD-x86_64_JANSI_FLAGS :=
89103

90104
OpenBSD-x86_64_CC := $(CROSS_PREFIX)gcc
91105
OpenBSD-x86_64_STRIP := $(CROSS_PREFIX)strip
92-
OpenBSD-x86_64_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -Os -fPIC -fvisibility=hidden
106+
OpenBSD-x86_64_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -fPIC -fvisibility=hidden
93107
OpenBSD-x86_64_LINKFLAGS := -shared
94108
OpenBSD-x86_64_LIBNAME := libjansi.so
95109
OpenBSD-x86_64_JANSI_FLAGS :=
96110

97111
SunOS-sparcv9_CC := $(CROSS_PREFIX)gcc
98112
SunOS-sparcv9_STRIP := $(CROSS_PREFIX)strip
99-
SunOS-sparcv9_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_linux -O2s-fPIC -m64 -fvisibility=hidden
113+
SunOS-sparcv9_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -O2s-fPIC -m64 -fvisibility=hidden
100114
SunOS-sparcv9_LINKFLAGS := -shared -static-libgcc
101115
SunOS-sparcv9_LIBNAME := libjansi.so
102116
SunOS-sparcv9_JANSI_FLAGS :=
103117

104118
HPUX-ia64_32_CC := cc
105119
HPUX-ia64_32_STRIP := strip
106-
HPUX-ia64_32_CCFLAGS := -Isrc/main/lib/inc_linux +Osize +z -Bhidden
120+
HPUX-ia64_32_CCFLAGS := -Itarget/inc -Itarget/inc/unix +Osize +z -Bhidden
107121
HPUX-ia64_32_LINKFLAGS := -b
108122
HPUX-ia64_32_LIBNAME := libjansi.so
109123
HPUX-ia64_32_JANSI_FLAGS :=
110124

111125
Mac-x86_CC := gcc
112126
Mac-x86_STRIP := strip -x
113-
Mac-x86_CCFLAGS := -I$(JAVA_HOME)/include -Isrc/main/lib/inc_mac -Os -fPIC -mmacosx-version-min=10.4 -fvisibility=hidden
127+
Mac-x86_CCFLAGS := -I$(JAVA_HOME)/include -Itarget/inc -Itarget/inc/unix -Os -fPIC -mmacosx-version-min=10.4 -fvisibility=hidden
114128
Mac-x86_LINKFLAGS := -dynamiclib
115129
Mac-x86_LIBNAME := libjansi.jnilib
116130
Mac-x86_JANSI_FLAGS := -DJANSI_ENABLE_LOCKING_STYLE=0
@@ -121,29 +135,29 @@ MAC_SDK := /Developer/SDKs/MacOSX10.10.sdk
121135
ifeq ($(wildcard MAC_SDK),)
122136
MAC_SDK := /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk
123137
endif
124-
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
138+
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
125139
Mac-x86_64_LINKFLAGS := -dynamiclib
126140
Mac-x86_64_LIBNAME := libjansi.jnilib
127141
Mac-x86_64_JANSI_FLAGS :=
128142

129143
Mac-arm64_CC := $(CROSS_PREFIX)clang -v
130144
Mac-arm64_STRIP := $(CROSS_PREFIX)strip -x
131145
MAC_SDK := /usr/local/osxcross/SDK/MacOSX11.3.sdk/
132-
Mac-arm64_CCFLAGS := -I$(MAC_SDK)/System/Library/Frameworks/JavaVM.framework/Headers -Isrc/main/lib/inc_mac -Os -fPIC -mmacosx-version-min=11.0 -fvisibility=hidden
146+
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
133147
Mac-arm64_LINKFLAGS := -shared
134148
Mac-arm64_LIBNAME := libjansi.jnilib
135149
Mac-arm64_JANSI_FLAGS :=
136150

137151
Windows-x86_CC := $(CROSS_PREFIX)gcc
138152
Windows-x86_STRIP := $(CROSS_PREFIX)strip
139-
Windows-x86_CCFLAGS := -D_JNI_IMPLEMENTATION_ -Isrc/main/lib/inc_win -Os
153+
Windows-x86_CCFLAGS := -D_JNI_IMPLEMENTATION_ -Itarget/inc -Itarget/inc/windows -Os
140154
Windows-x86_LINKFLAGS := -Wl,--kill-at -shared -static-libgcc
141155
Windows-x86_LIBNAME := jansi.dll
142156
Windows-x86_JANSI_FLAGS :=
143157

144158
Windows-x86_64_CC := $(CROSS_PREFIX)gcc
145159
Windows-x86_64_STRIP := $(CROSS_PREFIX)strip
146-
Windows-x86_64_CCFLAGS := -D_JNI_IMPLEMENTATION_ -Isrc/main/lib/inc_win -Os
160+
Windows-x86_64_CCFLAGS := -D_JNI_IMPLEMENTATION_ -Itarget/inc -Itarget/inc/windows -Os
147161
Windows-x86_64_LINKFLAGS := -Wl,--kill-at -shared -static-libgcc
148162
Windows-x86_64_LIBNAME := jansi.dll
149163
Windows-x86_64_JANSI_FLAGS :=

0 commit comments

Comments
 (0)