11SHELL =/bin/bash
2- CXX =g ++
2+ CXX =./zig/zig c ++
33NAME: =libsocket-can-java
44JAVA_HOME: =/usr/lib/jvm/java-17-openjdk-amd64/
55
@@ -17,12 +17,12 @@ LIB_DEST=lib
1717JAR_DEST =dist
1818JAR_DEST_FILE =$(JAR_DEST ) /$(NAME ) .jar
1919JAR_MANIFEST_FILE =META-INF/MANIFEST.MF
20- DIRS =stamps obj $(JAVA_DEST ) $(JAVA_TEST_DEST ) $(LIB_DEST ) $(JAR_DEST )
20+ DIRS =stamps obj $(JAVA_DEST ) $(JAVA_TEST_DEST ) $(LIB_DEST ) /x86_64 $( LIB_DEST ) /armv7a $(JAR_DEST )
2121JNI_DIR =jni
2222JNI_CLASSES =io.openems.edge.socketcan.driver.CanSocket
2323JAVAC_FLAGS =-g -Xlint:all
2424CXXFLAGS =-Iclasses -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions \
25- -fstack-protector - -param=ssp-buffer-size=4 -fPIC -Wno-unused-parameter \
25+ --param=ssp-buffer-size=4 -fPIC -Wno-unused-parameter \
2626 -pedantic -D_REENTRANT -D_GNU_SOURCE \
2727 $(JAVA_INCLUDES )
2828
@@ -38,51 +38,49 @@ all: stamps/create-jar stamps/compile-test
3838
3939.PHONY : clean
4040clean :
41- $(RM ) -r $(DIRS ) $(STAMPS ) $(filter % .h,$(JNI_SRC ) )
42- $(RM ) -r $(JNI_DIR ) /* .h
43- $(RM ) -r $(JNI_DIR ) /* .gch
44- find . -name " *.class" -exec rm {} \;
41+ $(RM ) -r $(DIRS ) $(STAMPS ) $(filter % .h,$(JNI_SRC ) )
42+ $(RM ) -r $(JNI_DIR ) /* .h
43+ $(RM ) -r $(JNI_DIR ) /* .gch
44+ find . -name " *.class" -exec rm {} \;
4545
4646stamps/dirs :
47- mkdir $(DIRS )
48- @touch $@
47+ mkdir $(DIRS )
48+ @touch $@
4949
5050stamps/compile-src : stamps/dirs $(JAVA_SRC )
51- @echo " JAVAC JAVA"
52- $(JAVAC ) $(JAVAC_FLAGS ) -d $(JAVA_DEST ) $(sort $(JAVA_SRC ) )
51+ $( call msg, JAVAC JAVA, $@ )
52+ $(Q )$( JAVAC ) $(JAVAC_FLAGS ) -d $(JAVA_DEST ) $(sort $(JAVA_SRC ) )
5353 @touch $@
5454
5555stamps/compile-test : stamps/compile-src $(JAVA_TEST_SRC )
56- $(JAVAC ) $(JAVAC_FLAGS ) -cp $(JAVA_DEST ) -d $(JAVA_TEST_DEST ) \
57- $(sort $(JAVA_TEST_SRC ) )
56+ $(Q )$(JAVAC ) $(JAVAC_FLAGS ) -cp $(JAVA_DEST ) -d $(JAVA_TEST_DEST ) $(sort $(JAVA_TEST_SRC ) )
5857 @touch $@
5958
6059stamps/generate-jni-h : stamps/compile-src
61- @echo " GEN HEADER"
62- $(JAVAH ) classes src/io/openems/edge/socketcan/driver/CanSocket.java
60+ $( call msg, GEN HEADER, $@ )
61+ $(Q )$( JAVAH ) classes $( sort $( JAVA_SRC ) )
6362 @touch $@
6463
65- stamps/compile-jni-4 : stamps/generate-jni-h $(JNI_SRC )
66- @echo " CC JNI Linux v4 "
67- $(CXX ) $( CXXFLAGS ) -I./include/ linux-4.19 $(LDFLAGS ) -shared -o $(LIB_DEST ) /lib$(SONAME ) _linux4 .so \
64+ stamps/compile-native-x86_64 : stamps/generate-jni-h $(JNI_SRC )
65+ $( call msg,CXX JNI Linux x86/64, $@ )
66+ $(Q )$( CXX ) -target x86_64- linux-gnu $(CXXFLAGS ) $( LDFLAGS ) -shared -o $(LIB_DEST ) /x86_64/ lib$(SONAME ) .so \
6867 $(sort $(filter % .cpp,$(JNI_SRC ) ) $(filter % .c,$(JNI_SRC ) ) )
6968 @touch $@
7069
71- stamps/compile-jni-5 : stamps/generate-jni-h $(JNI_SRC )
72- @echo " CC JNI Linux v5 "
73- $(CXX ) $( CXXFLAGS ) -I./include/ linux-5.10 $(LDFLAGS ) -shared -o $(LIB_DEST ) /lib$(SONAME ) _linux5 .so \
70+ stamps/compile-native-armv7a : stamps/generate-jni-h $(JNI_SRC )
71+ $( call msg,CXX JNI Linux ARM, $@ )
72+ $(Q )$( CXX ) -target arm- linux-gnueabihf $(CXXFLAGS ) $( LDFLAGS ) -shared -o $(LIB_DEST ) /armv7a/ lib$(SONAME ) .so \
7473 $(sort $(filter % .cpp,$(JNI_SRC ) ) $(filter % .c,$(JNI_SRC ) ) )
75- @touch $@
74+ @touch $@
7675
77- stamps/create-jar : stamps/compile-jni-4 stamps/compile-jni-5 $(JAR_MANIFEST_FILE )
78- @echo " $( java -version) "
79- @echo " JAVAC JAR"
80- $(JAR ) cMf $(JAR_DEST_FILE ) $(JAR_MANIFEST_FILE ) lib -C $(JAVA_DEST ) .
81- $(JAR ) cMf $(JAR_DEST_FILE ) $(JAR_MANIFEST_FILE ) lib -C $(JAVA_DEST ) .
76+ stamps/create-jar : stamps/compile-native-x86_64 stamps/compile-native-armv7a $(JAR_MANIFEST_FILE )
77+ $(call msg,$(java -version ) ,$@ )
78+ $(call msg,JAVAC JAR,$@ )
79+ $(Q )$(JAR ) cMf $(JAR_DEST_FILE ) $(JAR_MANIFEST_FILE ) lib -C $(JAVA_DEST ) .
8280 @touch $@
8381
84- .PHONY : check
85- check : stamps/create-jar stamps/compile-test
82+ .PHONY : test
83+ test : stamps/create-jar stamps/compile-test
8684 $(JAVA ) -ea -cp $(JAR_DEST_FILE ) :$(JAVA_TEST_DEST ) \
8785 -Xcheck :jni \
8886 io.openems.edge.socketcan.driver.CanSocketTest
0 commit comments