
# JAVA_PACKAGE is the name of the java package Ibex must belong to
# (you can just leave "ibex" if you are not using java but don't make it blank). 
#===================================================
JAVA_PACKAGE=ibex
#===================================================


include ../common.mak

all : ibex_Java.o Test.class

JAVA_PATH=$(shell echo $(JAVA_PACKAGE) | sed "s/\./\//g")

# The package name (with "_" separator instead of ".") is included in the signature
# of the functions generated by JNI

JAVA_SIGNATURE=$(shell echo $(JAVA_PACKAGE) | sed "s/\./_/g")

Test.class : Test.java_
	echo "// This file is generated from Test.java_." > Test.java ; \
	echo "import "$(JAVA_PACKAGE)".Ibex;" >> Test.java ; \
	cat Test.java_ >> Test.java ; \
	javac Test.java
   
$(JAVA_PATH)/Ibex.class : Ibex.java_
	echo "java path="$(JAVA_PATH) ; \
	mkdir -p $(JAVA_PATH) ; \
	echo "// This file is generated from Ibex.java_." > $(JAVA_PATH)/Ibex.java ; \
	echo "package "$(JAVA_PACKAGE)";" >> $(JAVA_PATH)/Ibex.java ; \
	cat Ibex.java_ >> $(JAVA_PATH)/Ibex.java; javac $(JAVA_PATH)/Ibex.java
	
	
# renamed ".h_" to exclude this file from the IBEX includes.
$(JAVA_SIGNATURE)_Ibex.h_ : $(JAVA_PATH)/Ibex.class
	javah -jni $(JAVA_PACKAGE).Ibex; mv $(JAVA_SIGNATURE)_Ibex.h $(JAVA_SIGNATURE)_Ibex.h_
	
ibex_Java.o : ibex_Java.cpp_ $(JAVA_SIGNATURE)_Ibex.h_
	echo "// This file is generated from Ibex_Java.cpp_." > ibex_Java.cpp ; \
	echo "#include \""$(JAVA_SIGNATURE)_Ibex.h_"\"" >> ibex_Java.cpp ; \
	cat ibex_Java.cpp_ | sed "s/Java_/Java_$(JAVA_SIGNATURE)_/g" >> ibex_Java.cpp ; \
	$(CXX) $(CXXFLAGS) -I$(JAVA_INC) $(INC_DIR_OPT) -c -o $@ ibex_Java.cpp 

clean:
	rm -f Ibex.java Test.java ibex_Java.cpp $(JAVA_SIGNATURE)_Ibex.h_ *.o Test.class ; \
	if [ -d "$(JAVA_PATH)" ]; then rm -Rf `echo $(JAVA_PACKAGE) | cut -d"." -f1`; fi