Update java.make.
authorMichael Zucchi <notzed@gmail.com>
Sat, 19 Oct 2019 04:02:55 +0000 (14:32 +1030)
committerMichael Zucchi <notzed@gmail.com>
Sat, 19 Oct 2019 04:14:02 +0000 (14:44 +1030)
Rename config.make to config.make.in so edits are not tracked.
Fixed REAMDE for changed file locations.

.gitignore
README
config.make.in [moved from config.make with 90% similarity]
java.make

index 470b0ea..0ff731a 100644 (file)
@@ -2,4 +2,5 @@
 /bin/
 /build/
 /dist/
+config.make
 
diff --git a/README b/README
index e361372..da90562 100644 (file)
--- a/README
+++ b/README
@@ -20,23 +20,26 @@ This module must be compiled under a GNU/Linux system.  Cross
 compilation is possible to windows-amd64 by installing
 gcc-mingw-w64-x86-64.
 
+First copy config.make.in to config.make and edit as necessary.
+
 $ make
 $ make TARGET=linux-amd64
 $ make TARGET=windows-amd64
 
 The target-specific jmodule:
 
-`bin/notzed.nativez/<target>/notzed.nativez.jmod'
+`bin/<target>/jmods/notzed.nativez.jmod'
 
 Other files of import which can be used for an IDE, dependent project
 compilation, or non-modular use:
 
-`bin/notzed.nativez/notzed.nativez.jar' - portable modular jar
-`bin/notzed.nativez/<target>/include' - header files
-`bin/notzed.nativez/<target>/include' - header files
-`bin/notzed.nativez/<target>/lib/libnativez.so' - linux shared library
+`bin/<target>/lib/notzed.nativez.jar' - portable modular jar
+`bin/<target>/include' - header files
+`bin/<target>/lib/libnativez.so' - linux shared library
+`bin/<target>/bin/nativez.dll' - microsoft windows dynamic link library
+`bin/<target>/bin/nativez-gen' - table generator
+
 `bin/modules/notzed.nativez/' - compiled class files
-`bin/notzed.nativez/<target>/bin/nativez-gen' - table generator
 
 Usage
 -----
similarity index 90%
rename from config.make
rename to config.make.in
index f82e020..2986b96 100644 (file)
@@ -2,8 +2,6 @@
 TARGET ?= linux-amd64
 
 JAVA_HOME ?= /usr/local/jdk-11.0.2
-JAVAFX_HOME ?= /usr/local/javafx-sdk-11.0.2
-FFMPEG_HOME ?= /opt/ffmpeg/4.0
 
 JAVAC ?= javac
 JAR ?= jar
index 657910d..8896ca1 100644 (file)
--- a/java.make
+++ b/java.make
 
 # <library>_DEPENDENCIES       A list of other objects on which this library depends before linking.
 
+# <library>_DEFS       A list of .def files for nativez-gen.
+# <library>_DEFSFLAGS  Flags for nativez-gen invocation.
+
 # .c files have dependencies automatically generated
 
 # Targets
@@ -305,6 +308,7 @@ $($(1)_objdir)/%.o: src/$(1)/jni/%.c bin/status/$(1).classes
 $($(1)_incdir)/%.h: src/$(1)/jni/%.h
        install -DC $$< $$@
 
+# auto-dependencies for c files
 $($(1)_objdir)/%.d: src/$(1)/jni/%.c bin/status/$(1).classes
        @install -d $$(@D)
        @rm -f $$@
@@ -312,6 +316,11 @@ $($(1)_objdir)/%.d: src/$(1)/jni/%.c bin/status/$(1).classes
                $($(TARGET)_CPPFLAGS) $($(2)_CPPFLAGS) $$< -o $$@.d 2>/dev/null
        @sed 's,\($$*\.o\) *:,\1 $$@ : ,g' $$@.d > $$@ ; rm $$@.d
 
+# .def files for nativez mapping
+$($(1)_jnidir)/%.h: src/$(1)/jni/%.def
+       @install -d $$(@D)
+       $(NATIVEZ_HOME)/bin/nativez-gen -J $($(2)_DEFSFLAGS) $$< > $$@ || ( rm $$@ ; exit 1)
+
 bin jni $(1) $(java_jmoddir)/$(1).jmod: \
        $($(1)_libdir)/$(LIB)$(2)$(SO) \
        $(java_libdir)/$(LIB)$(2)$(SO) \
@@ -319,7 +328,7 @@ bin jni $(1) $(java_jmoddir)/$(1).jmod: \
        $(addprefix $(java_incdir)/,$($(2)_HEADERS)) \
        $(addprefix $($(1)_bindir)/,$($(2)_COMMANDS)) \
        $(addprefix $(java_bindir)/,$($(2)_COMMANDS)) \
-       $$(addprefix $($(1)_libdir)/,$$($(2)_LIBRARIES))
+       $(addprefix $($(1)_libdir)/,$($(2)_LIBRARIES))
 
 $(if $(filter clean dist gen,$(MAKECMDGOALS)),,-include $$($(2)_OBJS:.o=.d))
 endef
@@ -327,6 +336,9 @@ endef
 #$(foreach module,$(java_JMODS),$(foreach library,$($(module)_JNI_LIBRARIES),$(info $(call jni_library,$(module),$(library)))))
 $(foreach module,$(java_JMODS),$(foreach library,$($(module)_JNI_LIBRARIES),$(eval $(call jni_library,$(module),$(library)))))
 
+#$(foreach module,$(java_JMODS),$(foreach library,$($(module)_JNI_LIBRARIES),$(foreach def,$($(library)_DEFS),$(info $($(module)_objdir)/$(def:.def=.o): $($(module)_jnidir)/$(def:.def=.h)))))
+$(foreach module,$(java_JMODS),$(foreach library,$($(module)_JNI_LIBRARIES),$(foreach def,$($(library)_DEFS),$(eval $($(module)_objdir)/$(def:.def=.o): $($(module)_jnidir)/$(def:.def=.h)))))
+
 # ######################################################################
 
 dist: