#*************************************************************#
#
# Main CEJAVA Makefile
#
# Author: Ohad Rodeh 7/2002
#
#*************************************************************#
ENSROOT = ..
include $(ENSROOT)/mk/config.mk
include $(ENSROOT)/cejava/cejava.mk
#*************************************************************#

# Java 2 SDK (1.2 or 1.3 should do)
J2SDK = $(JAVA_HOME)

CEINCLUDE= -I $(ENSROOT)/lib/$(PLATFORM)


#*************************************************************#
# Not supported yet on WIN32
#
ifeq ("$(PLATFORM)" , "nt")
opt all depend install demos doc clean: 
	echo "CEJAVA has not been ported to win32 yet"
else

#*************************************************************#

opt : all

all: compileClasses generateHeader compileJni buildLibrary demos


depend : 
	echo "cejava depend"

demos :
	javac -classpath classes RandTest.java PerfTest.java

install : 
	$(MKDIR) $(ENSBIN)/java_demo
	$(CP) classes/ensemble.jar $(ENSLIB)/
	$(CP) lib/* $(ENSLIB)/
	$(CP) RandTest*.class PerfTest*.class  $(ENSBIN)/java_demo

compileClasses: 
	$(MKDIR) classes
	javac -d classes View.java JoinOps.java Callbacks.java Group.java 
	cd classes ; jar cf ensemble.jar ensemble

generateHeader:
	javah -classpath classes ensemble.Group

compileJni:
	$(CC) -c  -I . -I $(J2SDK)/include -I $(J2SDK)/include/$(J2SDK_PLATFORM) $(CEINCLUDE) ensemble_Ce.c

buildLibrary:
	$(MKDIR) lib
	$(MKSHRLIB) $(MKSHRLIBO)libcejava$(SO) ensemble_Ce$(OBJS) $(ENSLIB)/libce_mt$(CELIB) $(CEJAVA_LINK_FLAGS)
	$(MV) libcejava.* lib/

doc :
	javadoc -public -classpath classes -d docs Callbacks.java JoinOps.java Group.java View.java

clean:
	$(RM) ensemble_Ce.h hs_err* core* *.class *.o *.obj lib/*
	$(RMDIR) classes/ensemble 
	$(RMDIR) docs


# 
# Running the demos
#
run_rand:
	java  -Djava.class.path=.:classes/ensemble.jar -Djava.library.path=lib RandTest  "-n" "5" "-t" "3" 

#"-trace" "CE_INBOARD" "-ctrace" "CE_INBOARD_C"

run_perf:
	java  -Djava.class.path=.:classes/ensemble.jar -Djava.library.path=lib -jar PerfTest.jar "-prog" "rpc" "-s" "1000" "-r" "0.01" 

#"-trace" "CE_INBOARD" "-ctrace" "CE_INBOARD_C" "-ctrace" "CE_INBOARD_MT" 


endif
#*************************************************************#

