# installation path of the include files
SWIG_FLAGS := -I/usr/local/include -I/usr/include
# copy version-info from glpk package: src/Makefile.am
VERSION_INFO := 28:0:28
# copy revision from glpk package: configure.ac
REVISION := 4.43
# installation path for package
prefix = /usr/local

all:
	echo $(JAVA_HOME)
	mkdir -p classes
	mkdir -p doc
	mkdir -p src/java
	mkdir -p java/org/gnu/glpk
	cp *.java java/org/gnu/glpk
	swig $(SWIG_FLAGS) -java -package org.gnu.glpk -o src/java/glpk_wrap.c -outdir java/org/gnu/glpk glpk.i 
	libtool --mode=compile gcc $(SWIG_FLAGS) -c -fPIC src/java/glpk_wrap.c
	libtool --mode=link \
		gcc -version-info $(VERSION_INFO) -revision $(REVISION) \
		-g -O -o libglpk_java.la -rpath ${prefix}/lib/jni glpk_wrap.lo -lglpk 
	javadoc -sourcepath ./java *.java -d ./doc
	jar cf glpk-java-javadoc.jar -C ./doc .
	jar cf glpk-java-sources.jar -C ./java .
	javac -source 1.6 -target 1.6 -sourcepath java -d classes *.java 
	jar cf glpk-java.jar -C ./classes .

clean:
	rm -f -r src java .libs
	rm -f *.o *.la *.lo ../examples/*.class

distclean: clean
	rm -f *~ ../examples/*~ ../w32/*~ ../w64/*~

install:
	mkdir -p -m 755 $(DESTDIR)${prefix}/lib/jni;true
	libtool --mode=install install -c libglpk_java.la $(DESTDIR)${prefix}/lib/jni/libglpk_java.la
	libtool --mode=finish $(DESTDIR)${prefix}/lib/jni
	mkdir -p -m 755 $(DESTDIR)${prefix}/share/java;true
	install -m 644 glpk-java.jar $(DESTDIR)${prefix}/share/java/glpk-java-$(REVISION).jar
	cd $(DESTDIR)${prefix}/share/java/;ln -f -s glpk-java-$(REVISION).jar glpk-java.jar

check:
	cd ../examples/java;javac -source 1.6 -target 1.6 -classpath ../../swig/glpk-java.jar Gmpl.java
	cd ../examples/java;java -Djava.library.path=../../swig/.libs -classpath ../../swig/glpk-java.jar:. Gmpl marbles.mod
	cd ../examples/java;javac -source 1.6 -target 1.6 -classpath ../../swig/glpk-java.jar Lp.java
	cd ../examples/java;java -Djava.library.path=../../swig/.libs -classpath ../../swig/glpk-java.jar:. Lp
	cd ../examples/java;javac -source 1.6 -target 1.6 -classpath ../../swig/glpk-java.jar ErrorDemo.java
	cd ../examples/java;java -Djava.library.path=../../swig/.libs -classpath ../../swig/glpk-java.jar:. ErrorDemo
	cd ../examples/java;javac -source 1.6 -target 1.6 -classpath ../../swig/glpk-java.jar LinOrd.java
	cd ../examples/java;java -Djava.library.path=../../swig/.libs -classpath ../../swig/glpk-java.jar:. LinOrd tiw56r72.mat tiw56r72.sol;rm tiw56r72.sol
