[libnative-platform-java] 04/08: Do not use quilt for Makefile

Kai-Chung Yan seamlik-guest at moszumanska.debian.org
Fri Jun 5 15:50:45 UTC 2015


This is an automated email from the git hooks/post-receive script.

seamlik-guest pushed a commit to branch master
in repository libnative-platform-java.

commit 4e7d47a686eef042833af6773b843af91353d490
Author: Kai-Chung Yan <seamlikok at gmail.com>
Date:   Thu Jun 4 14:59:21 2015 +0800

    Do not use quilt for Makefile
---
 debian/Makefile       | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++
 debian/patches/series |  1 -
 2 files changed, 81 insertions(+), 1 deletion(-)

diff --git a/debian/Makefile b/debian/Makefile
new file mode 100644
index 0000000..c546a48
--- /dev/null
+++ b/debian/Makefile
@@ -0,0 +1,81 @@
+#  Description: Use make as buildsystem instead of Gradle to
+#  avoid a circular dependencies between gradle and native-platform.
+#  This is very minimalistic Makefile so it will only work for
+#  Debian use case for now.
+#  Author: Damien Raude-Morvan <drazzib at debian.org>
+#  Adapted for Fedora by: gil cattaneo <puntogil at libero.it>
+CXX ?= g++
+STRIP ?= strip
+JAVA_HOME ?= /usr/lib/default-java
+JOPT_JAR ?= $(shell locate jopt-simple.jar)
+JTARGET ?= 1.5
+JSOURCE ?= 1.5
+
+IDIR=src/main/headers
+SRCDIR=src/main/cpp
+JSRCDIR=src/main/java
+BUILD=build
+IGEN=$(BUILD)/headers
+JCLASSESDIR=$(BUILD)/classes
+JDOCDIR=$(BUILD)/docs/javadoc
+ODIR=$(BUILD)/binaries
+JAR=$(BUILD)/native-platform.jar
+JAR_ARCH=$(BUILD)/native-platform-linux.jar
+
+INCLUDE=-I$(IDIR) -I$(IGEN) -I/usr/include -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
+
+_OBJ_STD = generic.o generic_posix.o linux.o osx.o posix.o win.o
+_OBJ_CURSES = generic.o generic_posix.o curses.o
+OBJ_STD = $(patsubst %,$(ODIR)/%,$(_OBJ_STD))
+OBJ_CURSES = $(patsubst %,$(ODIR)/%,$(_OBJ_CURSES))
+_JAVA = $(shell find $(JSRCDIR) -name "*.java" -print)
+
+.PHONY: clean jar javadoc
+
+build: $(ODIR)/libnative-platform.so $(ODIR)/libnative-platform-curses.so jar javadoc arch-jar
+
+$(ODIR)/libnative-platform.so: $(OBJ_STD)
+	$(CXX) -shared -fPIC $(CFLAGS) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $^
+	$(STRIP) $@
+
+$(ODIR)/libnative-platform-curses.so: $(OBJ_CURSES)
+	$(CXX) $(CFLAGS) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) -lcurses -shared -fPIC -o $@ $^
+	$(STRIP) $@
+
+$(JCLASSESDIR)/%.class: javafiles-list
+	mkdir -p $(JCLASSESDIR)
+	$(JAVA_HOME)/bin/javac -source $(JTARGET) -target $(JSOURCE) -d $(JCLASSESDIR) -classpath $(JOPT_JAR) @javafiles-list
+
+javafiles-list: $(_JAVA)
+	echo $^ > javafiles-list
+
+javadoc: javafiles-list
+	mkdir -p $(JDOCDIR)
+	$(JAVA_HOME)/bin/javadoc -d $(JDOCDIR) -classpath $(JOPT_JAR) @javafiles-list
+
+jar: $(JCLASSESDIR)/%.class
+	mkdir -p $(JDOCDIR)
+	(cd $(JCLASSESDIR) ; $(JAVA_HOME)/bin/jar cf ../../$(JAR) .)
+
+arch-jar: $(ODIR)/libnative-platform.so $(ODIR)/libnative-platform-curses.so
+	(cd $(ODIR) ; $(JAVA_HOME)/bin/jar cf ../../$(JAR_ARCH) *.so)
+
+$(ODIR)/%.o: $(SRCDIR)/%.cpp $(IGEN)/native.h
+	mkdir -p $(ODIR)
+	$(CXX) $(CFLAGS) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) $(INCLUDE) -fPIC -c -o $@ $<
+
+$(IGEN)/native.h: $(JCLASSESDIR)/%.class
+	mkdir -p $(IGEN)
+	$(JAVA_HOME)/bin/javah -o $(IGEN)/native.h -classpath $(JCLASSESDIR) \
+	net.rubygrapefruit.platform.internal.jni.NativeLibraryFunctions \
+	net.rubygrapefruit.platform.internal.jni.PosixFileFunctions \
+	net.rubygrapefruit.platform.internal.jni.PosixFileSystemFunctions \
+	net.rubygrapefruit.platform.internal.jni.PosixProcessFunctions \
+	net.rubygrapefruit.platform.internal.jni.PosixTerminalFunctions \
+	net.rubygrapefruit.platform.internal.jni.TerminfoFunctions \
+	net.rubygrapefruit.platform.internal.jni.WindowsConsoleFunctions \
+	net.rubygrapefruit.platform.internal.jni.WindowsHandleFunctions
+
+clean:
+	-rm javafiles-list
+	-rm -Rf $(BUILD)
diff --git a/debian/patches/series b/debian/patches/series
index 07516b7..b9722fa 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,2 @@
 native_locator_usr_lib_first.patch
-make_buildsystem.diff
 libname.diff

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/libnative-platform-java.git



More information about the pkg-java-commits mailing list