##
## GCSpy - Makefile for the Java code
##

# NOTE: GCspy now requires Java 5 or later

UNAME=$(shell uname -s)

JAI_ROOT=$(HOME)/jai-1_1_2
JAVAC = javac -classpath $(CLASSES_DIR):$(JAI_ROOT)/lib/jai_core.jar

CLASSES_DIR=../../classes

GCSPY.java = gcspy/Main.java
GCSPY_INTERPRETER.java = $(shell find gcspy/interpreter -name "*.java")
GCSPY_COMM.java = $(shell find gcspy/comm -name "*.java")
GCSPY_TEST.java = $(shell find gcspy/test -name "*.java")
GCSPY_TOOLS.java = $(shell find gcspy/tools -name "*.java")
GCSPY_UTILS.java = $(shell find gcspy/utils -name "*.java")
GCSPY_VIS.java = $(shell find gcspy/vis -name "*.java")


all: java5 utils comm interpreter vis main tools test

java5:
	@echo  Checking for Java 5 or later
	@$(JAVAC) -version 2>&1 | grep -v '1.[0-4]' > /dev/null

classes_dir:
	mkdir -p $(CLASSES_DIR)

interpreter: classes_dir $(GCSPY_INTERPRETER.java)
	$(JAVAC) -d $(CLASSES_DIR) $(GCSPY_INTERPRETER.java)

comm: classes_dir $(GCSPY_COMM.java)
	$(JAVAC) -d $(CLASSES_DIR) $(GCSPY_COMM.java)

main: classes_dir $(GCSPY.java)
	$(JAVAC) -d $(CLASSES_DIR) $(GCSPY.java)

test: classes_dir $(GCSPY_TEST.java)
	$(JAVAC) -d $(CLASSES_DIR) $(GCSPY_TEST.java)

tools: classes_dir $(GCSPY_TOOLS.java)
	$(JAVAC) -d $(CLASSES_DIR) $(GCSPY_TOOLS.java)

utils: classes_dir $(GCSPY_UTILS.java)
	$(JAVAC) -d $(CLASSES_DIR) $(GCSPY_UTILS.java)

vis: classes_dir $(GCSPY_VIS.java)
	$(JAVAC) -d $(CLASSES_DIR) $(GCSPY_VIS.java)

install:
	cp -r icons $(CLASSES_DIR)
	mkdir -p $(CLASSES_DIR)/plugins
	jar cf $(CLASSES_DIR)/plugins/history.jar gcspy/vis/plugins/history/
	jar cf $(CLASSES_DIR)/plugins/text.jar gcspy/vis/plugins/text/
	jar cf $(CLASSES_DIR)/plugins/histogram.jar gcspy/vis/plugins/histogram/
#	mkdir -p $(CLASSES_DIR)

#clean: uninstall install
clean: uninstall
	mkdir -p $(CLASSES_DIR)

uninstall:
	rm -rf $(CLASSES_DIR)
