Description: patching the Makefiles for a Debian build
 - Indicating the paths of jni.h and jni_md.h in JAVA_HOME subdirs.
 - Linking against libsqlite3.so instead of getting sqlite3.c in the source
 archive downloaded from the Internet.
 - PAtching out the build of the OSInfo class as we don't need it.
Author: Pierre Gruet <pgt@debian.org>
Forwarded: not-needed
Last-Update: 2022-08-15

--- a/Makefile
+++ b/Makefile
@@ -54,9 +54,9 @@
 
 jni-header: $(TARGET)/common-lib/NativeDB.h
 
-$(TARGET)/common-lib/NativeDB.h: src/main/java/org/sqlite/core/NativeDB.java $(JAVA_CLASSPATH)
+$(TARGET)/common-lib/NativeDB.h: src/main/java/org/sqlite/core/NativeDB.java
 	@mkdir -p $(TARGET)/common-lib
-	$(JAVAC) -cp $(JAVA_CLASSPATH) -d $(TARGET)/common-lib -sourcepath $(SRC) -h $(TARGET)/common-lib src/main/java/org/sqlite/core/NativeDB.java
+	$(JAVAC) -cp /usr/share/java/slf4j-api.jar -d $(TARGET)/common-lib -sourcepath $(SRC) -h $(TARGET)/common-lib src/main/java/org/sqlite/core/NativeDB.java
 	mv target/common-lib/org_sqlite_core_NativeDB.h target/common-lib/NativeDB.h
 
 test:
@@ -107,14 +107,18 @@
 
 $(SQLITE_SOURCE)/sqlite3.h: $(SQLITE_UNPACKED)
 
-$(SQLITE_OUT)/$(LIBNAME): $(SQLITE_HEADER) $(SQLITE_OBJ) $(SRC)/org/sqlite/core/NativeDB.c $(TARGET)/common-lib/NativeDB.h
+#$(SQLITE_OUT)/$(LIBNAME): $(SQLITE_HEADER) $(SQLITE_OBJ) $(SRC)/org/sqlite/core/NativeDB.c $(TARGET)/common-lib/NativeDB.h
+$(SQLITE_OUT)/$(LIBNAME): /usr/include/sqlite3.h /usr/lib/$(DEB_HOST_MULTIARCH)/libsqlite3.so $(SRC)/org/sqlite/core/NativeDB.c $(TARGET)/common-lib/NativeDB.h
 	@mkdir -p $(@D)
-	$(CC) $(CCFLAGS) -I $(TARGET)/common-lib -c -o $(SQLITE_OUT)/NativeDB.o $(SRC)/org/sqlite/core/NativeDB.c
-	$(CC) $(CCFLAGS) -o $@ $(SQLITE_OUT)/NativeDB.o $(SQLITE_OBJ) $(LINKFLAGS)
+	#$(CC) $(CCFLAGS) -I $(TARGET)/common-lib -c -o $(SQLITE_OUT)/NativeDB.o $(SRC)/org/sqlite/core/NativeDB.c
+	$(CC) $(CCFLAGS) -I $(TARGET)/common-lib $(CPPFLAGS) -c -g -o $(SQLITE_OUT)/NativeDB.o $(SRC)/org/sqlite/core/NativeDB.c
+	#$(CC) $(CCFLAGS) -o $@ $(SQLITE_OUT)/NativeDB.o $(SQLITE_OBJ) $(LINKFLAGS)
+	$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $(SQLITE_OUT)/NativeDB.o $(LINKFLAGS) -lsqlite3
+# We don't need to strip the binary at this stage.
 # Workaround for strip Protocol error when using VirtualBox on Mac
-	cp $@ /tmp/$(@F)
-	$(STRIP) /tmp/$(@F)
-	cp /tmp/$(@F) $@
+	#cp $@ /tmp/$(@F)
+	#$(STRIP) /tmp/$(@F)
+	#cp /tmp/$(@F) $@
 
 NATIVE_DIR=src/main/resources/org/sqlite/native/$(OS_NAME)/$(OS_ARCH)
 NATIVE_TARGET_DIR:=$(TARGET)/classes/org/sqlite/native/$(OS_NAME)/$(OS_ARCH)
@@ -126,10 +130,11 @@
 native: $(NATIVE_DLL)
 
 $(NATIVE_DLL): $(SQLITE_OUT)/$(LIBNAME)
-	@mkdir -p $(@D)
-	cp $< $@
-	@mkdir -p $(NATIVE_TARGET_DIR)
-	cp $< $(NATIVE_TARGET_DIR)/$(LIBNAME)
+	# Do nothing more. The .so will be put into /usr/lib/jni, not into the jar.
+	#@mkdir -p $(@D)
+	#cp $< $@
+	#@mkdir -p $(NATIVE_TARGET_DIR)
+	#cp $< $(NATIVE_TARGET_DIR)/$(LIBNAME)
 
 win32: $(SQLITE_UNPACKED) jni-header
 	./docker/dockcross-windows-x86 -a $(DOCKER_RUN_OPTS) bash -c 'make clean-native native CROSS_PREFIX=i686-w64-mingw32.static- OS_NAME=Windows OS_ARCH=x86'
@@ -216,9 +221,12 @@
 mac-arm64-signed: mac-arm64
 	$(CODESIGN) src/main/resources/org/sqlite/native/Mac/aarch64/libsqlitejdbc.dylib
 
-package: native-all
+# No need to cross-build here.
+#package: native-all
+package: native
 	rm -rf target/dependency-maven-plugin-markers
-	$(MVN) package
+	# We shall handle the Java build through dh_auto_build, with maven-debian-helper.
+	#$(MVN) package
 
 clean-native:
 	rm -rf $(SQLITE_OUT)
--- a/Makefile.common
+++ b/Makefile.common
@@ -10,23 +10,25 @@
 
 TARGET := target
 SRC:=src/main/java
-OSINFO_CLASS := org.sqlite.util.OSInfo
-OSINFO_PROG := lib/org/sqlite/util/OSInfo.class
+#OSINFO_CLASS := org.sqlite.util.OSInfo
+#OSINFO_PROG := lib/org/sqlite/util/OSInfo.class
 JAVA_CLASSPATH:=$(TARGET)/classpath/slf4j-api.jar
 
 ## building OSInfo.java
-ifeq ("$(wildcard $(OSINFO_PROG))","")
-$(info Building OSInfo tool)
-$(shell mkdir -p $(TARGET)/classpath)
-$(shell curl -L -f -o$(JAVA_CLASSPATH) https://search.maven.org/remotecontent?filepath=org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar)
-$(shell $(JAVAC) -cp $(JAVA_CLASSPATH) -sourcepath $(SRC) -d lib src/main/java/org/sqlite/util/OSInfo.java)
-endif
+#ifeq ("$(wildcard $(OSINFO_PROG))","")
+#$(info Building OSInfo tool)
+#$(shell mkdir -p $(TARGET)/classpath)
+#$(shell curl -L -f -o$(JAVA_CLASSPATH) https://search.maven.org/remotecontent?filepath=org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar)
+#$(shell $(JAVAC) -cp $(JAVA_CLASSPATH) -sourcepath $(SRC) -d lib src/main/java/org/sqlite/util/OSInfo.java)
+#endif
 
 ifndef OS_NAME
-OS_NAME := $(shell $(JAVA) -cp lib:$(JAVA_CLASSPATH) $(OSINFO_CLASS) --os)
+#OS_NAME := $(shell $(JAVA) -cp lib:$(JAVA_CLASSPATH) $(OSINFO_CLASS) --os)
+OS_NAME := $(shell uname -s)
 endif
 ifndef OS_ARCH
-OS_ARCH := $(shell $(JAVA) -cp lib:$(JAVA_CLASSPATH) $(OSINFO_CLASS) --arch)
+#OS_ARCH := $(shell $(JAVA) -cp lib:$(JAVA_CLASSPATH) $(OSINFO_CLASS) --arch)
+OS_ARCH := $(shell uname -m)
 endif
 
 # Windows uses different path separators
@@ -39,12 +41,12 @@
 sqlite := sqlite-$(version)
 
 ifdef JAVA_HOME
-jni_h := $(shell find -L "$(JAVA_HOME)" -name jni.h)
+jni_h := "$(JAVA_HOME)/include/jni.h"
 ifneq ($(jni_h),)
 jni_include := $(shell dirname "$(jni_h)")
 endif
 
-jni_md := $(shell find -L "$(JAVA_HOME)" -name jni_md.h)
+jni_md := "$(JAVA_HOME)/include/linux/jni_md.h"
 ifneq ($(jni_md),)
 jni_md_include := $(shell dirname "$(jni_md)")
 endif
