summaryrefslogtreecommitdiff
path: root/src/runtime
diff options
context:
space:
mode:
authorThomas Hallgren <th-github@altocumulus.org>2019-03-20 14:40:17 +0100
committerThomas Hallgren <th-github@altocumulus.org>2019-03-20 14:40:17 +0100
commitde0a997fcd637150944c89f5856b13e633b727c9 (patch)
treed6ea3e91853cc4262b33b3a2ef379857fc797c42 /src/runtime
parent0f53431221198c64625d345e1599d6c297908d6f (diff)
parent099f2de5b4301c1450d3bc6c1d7c32490793ab83 (diff)
Merge branch 'master' of https://github.com/GrammaticalFramework/gf-core
Diffstat (limited to 'src/runtime')
-rw-r--r--src/runtime/java/Makefile32
1 files changed, 20 insertions, 12 deletions
diff --git a/src/runtime/java/Makefile b/src/runtime/java/Makefile
index d5a25a2f6..4af682699 100644
--- a/src/runtime/java/Makefile
+++ b/src/runtime/java/Makefile
@@ -1,29 +1,37 @@
+INSTALL_PATH = /usr/local
+
C_SOURCES = jpgf.c jsg.c jni_utils.c
JAVA_SOURCES = $(wildcard org/grammaticalframework/pgf/*.java) \
$(wildcard org/grammaticalframework/sg/*.java)
JNI_INCLUDES = $(if $(wildcard /usr/lib/jvm/default-java/include/.*), -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux, \
- $(if $(wildcard /System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/.*), -I/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers, \
- $(if $(wildcard /Library/Java/Home/include/.*), -I/Library/Java/Home/include/ -I/Library/Java/Home/include/darwin, \
- $(error No JNI headers found))))
+ $(if $(wildcard /usr/lib/jvm/java-1.11.0-openjdk-amd64/include/.*), -I/usr/lib/jvm/java-1.11.0-openjdk-amd64/include/ -I/usr/lib/jvm/java-1.11.0-openjdk-amd64/include/linux, \
+ $(if $(wildcard /System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/.*), -I/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers, \
+ $(if $(wildcard /Library/Java/Home/include/.*), -I/Library/Java/Home/include/ -I/Library/Java/Home/include/darwin, \
+ $(error No JNI headers found)))))
-# For Windows replace the previous line with something like this:
+# For compilation on Windows replace the previous line with something like this:
#
# JNI_INCLUDES = -I "C:/Program Files/Java/jdk1.8.0_171/include" -I "C:/Program Files/Java/jdk1.8.0_171/include/win32" -I "C:/MinGW/msys/1.0/local/include"
-# WINDOWS_FLAGS = -L"C:/MinGW/msys/1.0/local/lib" -no-undefined
+# WINDOWS_LDFLAGS = -L"C:/MinGW/msys/1.0/local/lib" -no-undefined
-INSTALL_PATH = /usr/local/lib
-LIBTOOL = glibtool --tag=CC
+GCC = gcc
+LIBTOOL = $(if $(shell command -v glibtool 2>/dev/null), glibtool, libtool) --tag=CC
-LIBTOOL = $(if $(shell command -v glibtool 2>/dev/null), glibtool --tag=CC, libtool)
+# For cross-compilation from Linux to Windows replace the previous two lines with:
+#
+# GCC = x86_64-w64-mingw32-gcc
+# LIBTOOL = ../c/libtool
+# WINDOWS_CCFLAGS = -I$(INSTALL_PATH)/include
+# WINDOWS_LDFLAGS = -L$(INSTALL_PATH)/lib -no-undefined
all: libjpgf.la jpgf.jar
libjpgf.la: $(patsubst %.c, %.lo, $(C_SOURCES))
- $(LIBTOOL) --mode=link gcc $(CFLAGS) -g -O -o libjpgf.la -shared $^ -rpath $(INSTALL_PATH) -lgu -lpgf -lsg $(WINDOWS_FLAGS)
+ $(LIBTOOL) --mode=link $(GCC) $(CFLAGS) -g -O -o libjpgf.la -shared $^ -rpath $(INSTALL_PATH)/lib -lgu -lpgf -lsg $(WINDOWS_LDFLAGS)
%.lo : %.c
- $(LIBTOOL) --mode=compile gcc $(CFLAGS) -g -O -c $(JNI_INCLUDES) -std=c99 -shared $< -o $@
+ $(LIBTOOL) --mode=compile $(GCC) $(CFLAGS) -g -O -c $(JNI_INCLUDES) $(WINDOWS_CCFLAGS) -std=c99 -shared $< -o $@
jpgf.jar: $(patsubst %.java, %.class, $(JAVA_SOURCES))
jar -cf $@ org/grammaticalframework/pgf/*.class org/grammaticalframework/sg/*.class
@@ -32,8 +40,8 @@ jpgf.jar: $(patsubst %.java, %.class, $(JAVA_SOURCES))
javac $<
install: libjpgf.la jpgf.jar
- $(LIBTOOL) --mode=install install -s libjpgf.la $(INSTALL_PATH)
- install jpgf.jar $(INSTALL_PATH)
+ $(LIBTOOL) --mode=install install -s libjpgf.la $(INSTALL_PATH)/lib
+ install jpgf.jar $(INSTALL_PATH)/lib
doc: