Description: Makefiles for compiling geotrans
Author: Roberto Lumbreras <rover@debian.org>

Index: geotranz-3.3/Makefile
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ geotranz-3.3/Makefile	2018-07-27 17:41:15.043656838 +0200
@@ -0,0 +1,15 @@
+DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/buildflags.mk
+
+all:
+
+makefile-build-indep-target:
+	make -C GEOTRANS3/java_gui all
+
+makefile-build-arch-target:
+	make -C CCS/linux all
+
+clean distclean:
+	make -C GEOTRANS3/java_gui clean
+	make -C CCS/linux clean
+
Index: geotranz-3.3/CCS/linux/makefile
===================================================================
--- geotranz-3.3.orig/CCS/linux/makefile	2018-07-27 17:41:15.047656858 +0200
+++ geotranz-3.3/CCS/linux/makefile	2018-07-27 17:41:15.043656838 +0200
@@ -10,19 +10,22 @@
 #COMPILER_ISSUES = $(COMPILER_BOOLS) $(COMPILER_CASTS)
 
 #Gnu
-cc = gcc
-CC = g++
-posic = -shared -fPIC -m32 -march=pentium4  -pthread -std=gnu++98 -Wno-deprecated  -D_GNU_SOURCE -DREDHAT
+CC = gcc
+CXX = g++
+APP_CFLAGS = -fPIC -pthread -std=gnu++98 -Wno-deprecated -D_GNU_SOURCE
+CFLAGS += $(APP_CFLAGS) $(CPPFLAGS)
+LDFLAGS += -shared -Wl,-dy,--as-needed,--add-needed
+LIBS = -lm
 COMPILER_ISSUES = $(COMPILER_CASTS)
+RM = rm -f
+LN = ln -sf
+AR = ar
 
 ####
 # Support declarations
 ####
 
-DEBUG = -g
-
-CFLAGS = $(DEBUG)
-CCFLAGS = $(CFLAGS) $(COMPILER_ISSUES)
+CXXFLAGS += $(APP_CFLAGS) $(CPPFLAGS) $(COMPILER_ISSUES)
 
 ####
 # Directories
@@ -32,7 +35,7 @@
 CCSERVICEDIR = ../../CCS/src
 SRCDIR = ../../GEOTRANS3/java_gui/geotrans3/jni
 JNIDIR = ../../GEOTRANS3/java_gui/geotrans3/jni
-JAVADIR = /usr/jdk1.5.0_18#Note: Change this for your system
+JAVADIR = /usr/lib/jvm/default-java
 
 ####
 # Libraries
@@ -41,6 +44,10 @@
 LIBMSPDTCC = libMSPdtcc.so
 LIBMSPCCS = libMSPCoordinateConversionService.so
 LIBJNI = libjnimsp_ccs.so
+LIBGEOTRANS = libgeotranz.so
+SONAME = 3.7
+
+BINARY = $(LIBGEOTRANS) $(LIBJNI)
 
 #LIBS = $(XPCLASSLIBS) $(MOTIFLIBS) $(XLIBS) -lm
 
@@ -293,21 +300,32 @@
 # Targets
 ####
 
-all:    $(LIBMSPDTCC) $(LIBMSPCCS)
+all:    includes dtccincs $(BINARY)
+
+includes:
+	echo $(INCLUDES) > includes
+
+dtccincs:
+	echo $(DTCCINCS) > dtccincs
 
 # make libMSPdtcc.so
 $(LIBMSPDTCC):   $(DTCCSRCS) $(DTCCSRCS:.cpp=.o) $(CCSERVICESRCS) $(CCSERVICESRCS:.cpp=.o)
-	$(CC) -dy -o $(LIBMSPDTCC) $(posic) $(DTCC_O:.cpp=.o) $(CCSERVICE_O:.cpp=.o) -lm
+	$(CXX) -o $@ $(CXXFLAGS) $(LDFLAGS) $(DTCC_O:.cpp=.o) $(CCSERVICE_O:.cpp=.o) $(LIBS)
 
 #MSPCCS shared object library
 # make libmsp_ccs.so
 $(LIBMSPCCS):   $(CCSSRCS) $(CCSSRCS:.cpp=.o)
-	$(CC) -dy -o $(LIBMSPCCS) $(posic) $(CCS_O:.cpp=.o) -lm
+	$(CXX) -o $@ $(CXXFLAGS) $(LDFLAGS) $(CCS_O:.cpp=.o) $(LIBS)
+
+$(LIBGEOTRANS): $(DTCCSRCS) $(DTCCSRCS:.cpp=.o) $(CCSERVICESRCS) $(CCSERVICESRCS:.cpp=.o) $(CCSSRCS) $(CCSSRCS:.cpp=.o)
+	$(CXX) -o $@.$(SONAME) -Wl,-soname=$@.$(SONAME) $(CXXFLAGS) $(LDFLAGS) $(DTCC_O:.cpp=.o) $(CCSERVICE_O:.cpp=.o) $(CCS_O:.cpp=.o) $(LIBS)
+	$(LN) $@.$(SONAME) $@
+	$(AR) rcs $(@:.so=.a) $(DTCC_O:.cpp=.o) $(CCSERVICE_O:.cpp=.o) $(CCS_O:.cpp=.o)
 
 #JNI shared object library
 # make libjnimsp_ccs.so
-$(LIBJNI): posic_sources $(JNISRCS) $(JNISRCS:.cpp=.o)
-	$(CC) -dy -o $(LIBJNI) $(posic) $(LIBMSPCCS) $(LIBMSPDTCC) $(JNISRCS:.cpp=.o) $(SRCS:.cpp=.o) -lm
+$(LIBJNI): posic_sources $(JNISRCS) $(JNISRCS:.cpp=.o) $(LIBGEOTRANS)
+	$(CXX) -o $@ $(CXXFLAGS) $(LDFLAGS) $(JNISRCS:.cpp=.o) $(SRCS:.cpp=.o) $(LIBGEOTRANS) $(LIBS)
 
 ####
 # Supporting Rules
@@ -315,28 +333,28 @@
 
 #DT&CC Modules - for MSPCCS shared object library
 $(DTCCSRCS):
-	ln -s $(DTCCDIR)/$@ .
+	$(LN) $(DTCCDIR)/$@ .
 
 $(DTCCSRCS:.cpp=.o):$(@:.o=.cpp)
-	$(CC) -c $(CFLAGS) $(posic) $(INCLUDES) $(DTCCINCS) $(DTCCDIR)/$(@:.o=.cpp)
+	$(CXX) -c $(CXXFLAGS) @includes @dtccincs $(DTCCDIR)/$(@:.o=.cpp)
 
 #MSPCCS CCService - for MSPCCS shared object library
 $(CCSERVICESRCS):
-	ln -s $(CCSERVICEDIR)/$(@:.cpp=)/$@ .
+	$(LN) $(CCSERVICEDIR)/$@ .
 
 $(CCSERVICESRCS:.cpp=.o):$(@:.o=.cpp)
-	$(CC) -c $(CFLAGS) $(posic) $(INCLUDES) $(DTCCINCS) $(CCSERVICEDIR)/$(@:.o=.cpp)
+	$(CXX) -c $(CXXFLAGS) @includes @dtccincs $(CCSERVICEDIR)/$(@:.o=.cpp)
 
 #MSPCCS CCService - for MSPCCS shared object library
 $(CCSSRCS):
-	ln -s $(CCSERVICEDIR)/$(@:.cpp=)/$@ .
+	$(LN) $(CCSERVICEDIR)/$@ .
 
 $(CCSSRCS:.cpp=.o):$(@:.o=.cpp)
-	$(CC) -c $(CFLAGS) $(posic) $(INCLUDES) $(DTCCINCS) $(CCSERVICEDIR)/$(@:.o=.cpp)
+	$(CXX) -c $(CXXFLAGS) @includes @dtccincs $(CCSERVICEDIR)/$(@:.o=.cpp)
 
 #Misc MSPCCS sources
 $(SRCS):
-	ln -s $(SRCDIR)/$@ .
+	$(LN) $(SRCDIR)/$@ .
 
 posic_sources:
 	make "P=$(posic)" $(SRCS) $(SRCS:.cpp=.o)
@@ -344,14 +362,15 @@
 force_rebuild:
 
 $(SRCS:.cpp=.o):$(@:.o=.cpp) force_rebuild
-	$(CC) -c $(CFLAGS) $(P) $(INCLUDES) $(@:.o=.cpp)
+	$(CXX) -c $(CXXFLAGS) $(P) @includes $(@:.o=.cpp)
 
 #JNI sources - for Java version
 $(JNISRCS):
-	ln -s $(JNIDIR)/$@ .
+	$(LN) $(JNIDIR)/$@ .
 
 $(JNISRCS:.cpp=.o):$(@:.o=.cpp)
-	$(CC) -c $(CFLAGS) $(posic) $(INCLUDES) $(JNIINCS) $(JAVAINCS) $(@:.o=.cpp)
+	$(CXX) -c $(CXXFLAGS) @includes $(JNIINCS) $(JAVAINCS) $(@:.o=.cpp)
 
 clean:
 	$(RM) *.c *.cpp *.o $(BINARY)
+	$(RM) $(LIBGEOTRANS).$(SONAME) $(LIBGEOTRANS:.so=.a) includes dtccincs
Index: geotranz-3.3/GEOTRANS3/java_gui/MANIFEST.MF
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ geotranz-3.3/GEOTRANS3/java_gui/MANIFEST.MF	2018-07-27 17:41:15.043656838 +0200
@@ -0,0 +1,2 @@
+Manifest-Version: 1.0
+Main-Class: geotrans3.gui.MSP_GEOTRANS3
Index: geotranz-3.3/GEOTRANS3/java_gui/Makefile
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ geotranz-3.3/GEOTRANS3/java_gui/Makefile	2018-07-27 17:45:55.717066072 +0200
@@ -0,0 +1,41 @@
+SRC = geotrans3
+ICONS = $(SRC)/gui/icons
+JAVAC = /usr/lib/jvm/default-java/bin/javac
+
+all: MSPCCS.jar
+
+MSPCCS.jar: compile
+	jar cfm $@ MANIFEST.MF `find $(SRC) -type f ! -name '*.java' ! -name '*.h' ! -name '*.cpp'`
+
+compile: transparent_icons files
+	$(JAVAC) @files
+
+files:
+	find $(SRC) -type f -name '*.java' > files
+
+transparent_icons:
+	chmod 644 $(ICONS)/*.gif
+	test -f Geotrans_orig.gif || { \
+		cp $(ICONS)/Geotrans.gif Geotrans_orig.gif; \
+		giftrans -t '#ced0ce' -o $(ICONS)/Geotrans.gif Geotrans_orig.gif; \
+	}
+	test -f Icon_orig.gif || { \
+		cp $(ICONS)/Icon.gif Icon_orig.gif; \
+		convert -shave 2x2 -scale 16x16 $(ICONS)/Geotrans.gif $(ICONS)/Icon.gif; \
+	}
+	test -f NGA_orig.gif || { \
+		cp $(ICONS)/NGA.gif NGA_orig.gif; \
+		giftrans -t '#ffffff' -o $(ICONS)/NGA.gif NGA_orig.gif; \
+	}
+
+restore_icons:
+	for i in Geotrans Icon NGA; do \
+		if [ -f $${i}_orig.gif ]; then \
+			cp $${i}_orig.gif $(ICONS)/$$i.gif && \
+			rm -f $${i}_orig.gif ; \
+		fi ; \
+	done
+
+clean: restore_icons
+	rm -f MSPCCS.jar files
+	find $(SRC) -type f -name '*.class' -print0 | xargs -r0 rm
