Source code for Makefile

# Paths and arguments you may wish to change:
OBJECTSTORE_HOME = /usr/local/ObjectStore
XERCES_HOME = /usr/local/lib/xerces
JAVA_HOME = /usr/java/jdk
JAVA = $(JAVA_HOME)/bin/javac

# Settings below this line should not have to change.

OBJECTSTORE_LIBS = $(OBJECTSTORE_HOME)/pro.zip:$(OBJECTSTORE_HOME)/browser.jar:$(OBJECTSTORE_HOME)/tools.jar
XERCES_LIB = $(XERCES_HOME)/xerces.jar

# Important that persistent class directory precede "." directory so that
# post-processed versions of persistent classes take precedence
LOCAL_CLASSPATH = $(JAVA_HOME)/jre/lib/rt.jar:$(XERCES_LIB):$(PERSISTENT_CLASS_DIR):.:$(OBJECTSTORE_LIBS)
PERSISTENT_LOCAL_CLASSES = "PhoneApp/Data/PhoneRegion.class PhoneApp/Data/PhonebookEntry.class PhoneApp/Data/DataObject.class"
JAVA_FILES = PhoneApp/*.java PhoneApp/XML/*.java PhoneApp/Data/*.java
PERSISTENT_CLASS_DIR = ./pData

all: apps persistent

apps:
	$(JAVA) -classpath $(LOCAL_CLASSPATH) $(JAVA_FILES)


#Added: Need to post-process the persistent classes so that ObjectStore can properly
#store and manage them.
persistent:
	@PATH=$(PATH):$(JAVA_HOME)/bin; export PATH; CLASSPATH=$(LOCAL_CLASSPATH); export CLASSPATH; $(OBJECTSTORE_HOME)/bin/osjcfp -dest $(PERSISTENT_CLASS_DIR) -pc $(PERSISTENT_LOCAL_CLASSES)


apidoc:
	$(JAVA_HOME)/bin/javadoc -private -d docs/ PhoneApp PhoneApp.XML PhoneApp.Data

clean:
	@find . \( -name "*~" -o -name "*.class" \) -type f -exec rm \{\} \;

	@find ./docs \( -name "*.html" -o -name "*.css" -o -name "package-list" \) -type f -exec rm \{\} \;
	@find ./pData/ -type f -exec rm \{\} \;
	@find . -name "phones.*" -type f -exec rm \{\} \;

browse:
	$(JAVA_HOME)/bin/java -classpath $(LOCAL_CLASSPATH) com.odi.browser.Browser phones.odb

run:
	$(JAVA_HOME)/bin/java -classpath $(LOCAL_CLASSPATH):. PhoneApp.Admin