Skip to content

Commit 8da0a40

Browse files
committedJun 2, 2022
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 :=

‎src/main/native/inc_linux/jni.h

-1,959
This file was deleted.

‎src/main/native/inc_linux/jni_md.h

-24
This file was deleted.

‎src/main/native/inc_mac/jni.h

-1,961
This file was deleted.

‎src/main/native/inc_mac/jni_md.h

-23
This file was deleted.

‎src/main/native/inc_win/jni.h

-1,951
This file was deleted.

‎src/main/native/inc_win/jni_md.h

-19
This file was deleted.

‎src/main/native/jansi.h

+8-8
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131
#include <unistd.h>
3232
#include <stdlib.h>
3333

34-
#include "inc_linux/jni.h"
35-
#include "inc_linux/jni_md.h"
34+
#include "jni.h"
35+
#include "jni_md.h"
3636
#endif
3737

3838
#ifdef __FreeBSD__
@@ -53,8 +53,8 @@
5353
#include <termios.h>
5454
#include <sys/ioctl.h>
5555

56-
#include "inc_linux/jni.h"
57-
#include "inc_linux/jni_md.h"
56+
#include "jni.h"
57+
#include "jni_md.h"
5858
#endif
5959

6060
/* Windows based build */
@@ -77,8 +77,8 @@
7777
#define MOUSE_HWHEELED 0x0008
7878
#endif
7979

80-
#include "inc_win/jni.h"
81-
#include "inc_win/jni_md.h"
80+
#include "jni.h"
81+
#include "jni_md.h"
8282
#endif
8383

8484
#if defined(__APPLE__) && defined(__MACH__)
@@ -96,8 +96,8 @@
9696
#include <sys/ioctl.h>
9797
#include <unistd.h>
9898

99-
#include "inc_mac/jni.h"
100-
#include "inc_mac/jni_md.h"
99+
#include "jni.h"
100+
#include "jni_md.h"
101101
#endif
102102

103103
#include <stdint.h>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)
Please sign in to comment.