#######################################################################
#
# Universal Replication toolkit
# (Copyright information?)
#
#######################################################################
JAVAC_FLAGS = -g
JAVA_FLAGS = -Xms6m -Xmx100m
JAVAC = javac $(JAVAC_FLAGS)
JAVA = java
CLASSDIR = classes
SENDER = sender.smallwanlp.edgereplicat.emulab.net
RECEIVER = receiver.smallwanlp.edgereplicat.emulab.net
BARRIER_SERVER = el-greco.cs.utexas.edu
ALGORITHM = 1
#JOPTIONS1 = -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,address=8000
#JOPTIONS2 = -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,address=8001

ifeq "$(OSTYPE)" "linux"
  os = "linux"
endif
ifeq "$(OSTYPE)" "linux-gnu"
  os = "linux"
endif

ifndef os
  CLASSPATH = classes\;.\;./../../../../classes\;./../../../../je-1.7.1/lib/je.jar
  CONFIG_FILE = ./ufs.config
  JAVA_POLICY_FILE = ./java.security.SecurityPermission
else
  CLASSPATH = $(PWD)/classes:$(PWD):$(PWD)/../../../../classes:$(PWD)/../../../../je-1.7.1/lib/je.jar
  CONFIG_FILE = $(PWD)/ufs.config
  JAVA_POLICY_FILE = $(PWD)/java.security.SecurityPermission
endif


#
# Alphabetical list of all java files goes here
# (Note that javac *.java doesn't reliably work, so we're stuck with this.)
#

SRCDIR=.
DIR:=$(SRCDIR)/
SRCS := $(THESRCS) 
DIR:=$(CLASSDIR)/
THECLASSFILES := $(THESRCS:.java=.class)
CLASSFILES := $(THECLASSFILES)
CODEBASE := "file://$(PWD)/../../../../classes/ file://$(PWD)/classes/"
SECURITY_POLICY_FILE := $(PWD)/../../../../java.security.SecurityPermission
#CLASSPATH := classes:../../../classes:../../..:../../../je-1.7.1/lib/je.jar

.phony:			clean all

all:
			echo $(OSTYPE)
			mkdir -p $(CLASSDIR)
			$(JAVAC) -source 1.5 -d $(CLASSDIR) -classpath $(CLASSPATH) *.java

clean:
			rm -rf $(CLASSDIR)/*
			rmdir $(CLASSDIR)

classes/%.class: %.java
	mkdir -p $(CLASSDIR); $(JAVAC) -source 1.5 -d $(CLASSDIR) -classpath $(CLASSPATH) $<

%.class: %.java
	mkdir -p $(CLASSDIR); $(JAVAC) -source 1.5 -d $(CLASSDIR) -classpath $(CLASSPATH) $<

run-tracefile:
	export CLASSPATH=$(CLASSPATH)
	java -classpath $(CLASSPATH) -esa -ea TraceGenerator > inputTraceFile

run-sender:
	cp /var/local/universalReplication/code/gnu/getopt/*.properties /var/local/universalReplication/code/classes/gnu/getopt/
	export CLASSPATH=$(CLASSPATH)
	java $(JAVA_FLAGS) $(JOPTIONS1) -esa -ea -Djava.rmi.server.codebase=$(CODEBASE) -Djava.security.policy=$(SECURITY_POLICY_FILE) -classpath $(CLASSPATH) NiceExptSender ufs.config 9 10 $(ALGORITHM) sender.result.txt $(BARRIER_SERVER) < ../finalTrace.txt

run-receiver:
	cp /var/local/universalReplication/code/gnu/getopt/*.properties /var/local/universalReplication/code/classes/gnu/getopt/
	export CLASSPATH=$(CLASSPATH)
	java $(JAVA_FLAGS) $(JOPTIONS2) -esa -ea -Djava.rmi.server.codebase=$(CODEBASE) -Djava.security.policy=$(SECURITY_POLICY_FILE) -classpath $(CLASSPATH) NiceExptReceiver ufs.config 9 10 $(ALGORITHM) receiver.result.txt $(BARRIER_SERVER) < ../finalTrace.txt

run-barrier:
	$(JAVA) -esa -ea -classpath $(CLASSPATH) BarrierServer 4790 2

run-start1:
	export CLASSPATH=$(CLASSPATH)
	$(JAVA) -esa -ea -Djava.rmi.server.codebase=$(CODEBASE) -Djava.security.policy=$(SECURITY_POLICY_FILE) -classpath $(CLASSPATH) Synchronizer $(RECEIVER) 4790

run-start2:
	export CLASSPATH=$(CLASSPATH)
	$(JAVA) -esa -ea -Djava.rmi.server.codebase=$(CODEBASE) -Djava.security.policy=$(SECURITY_POLICY_FILE) -classpath $(CLASSPATH) Synchronizer $(SENDER) 4789 $(RECEIVER) 4791

#######################################################################
# $Log: Makefile,v $
# Revision 1.8  2005/10/14 10:35:34  nayate
# Fixed minor bug
#
# Revision 1.7  2005/10/14 10:26:28  nayate
# Changed experiment to get around the memory problem by forcing the receiver instead of the sender to write all objects first
#
# Revision 1.6  2005/10/13 22:36:40  nayate
# Minor bug fix
#
# Revision 1.5  2005/10/12 19:31:01  nayate
# Made logfile a parameter to NiceExptReceiver
#
# Revision 1.4  2005/10/09 23:20:26  nayate
# Fixed some bugs
#
# Revision 1.3  2005/10/08 00:37:12  nayate
# Fixed SENDER and RECEIVER
#
# Revision 1.2  2005/10/07 23:53:52  nayate
# Increased max and init memory usage
#
# Revision 1.1  2005/10/03 23:08:34  nayate
# Added the IBM trace experiment for the NSDI paper
#
# Revision 1.13  2005/06/08 14:14:23  dahlin
# adding scripts for nightly junit run
#
# Revision 1.12  2005/03/23 01:34:05  nayate
# Minor change
#
# Revision 1.11  2005/03/23 01:24:02  nayate
# Allowed specifying the algorithm on the command line
#
# Revision 1.10  2005/03/21 13:30:11  nayate
# Some bug fixes + minor changes
#
# Revision 1.9  2005/03/21 06:55:20  nayate
# Turned off output
#
# Revision 1.8  2005/03/21 00:23:13  nayate
# Minor fixes
#
# Revision 1.7  2005/03/21 00:20:39  nayate
# Added the ability to generate tracefiles
#
# Revision 1.6  2005/03/21 00:07:47  nayate
# Minor fix
#
# Revision 1.5  2005/03/20 23:35:10  nayate
# Changed names to avoid name collision
#
# Revision 1.4  2005/03/20 23:34:50  nayate
# Changed names to avoid name collision
#
# Revision 1.3  2005/03/20 13:27:20  nayate
# Minor fix
#
# Revision 1.2  2005/03/20 13:24:34  nayate
# Minor change
#
# Revision 1.1  2005/03/20 13:18:54  nayate
# Added a new experiment
#
#######################################################################
