####################
# TRex JAR Makefile
# (c) Bastian Friedrich 2001

JAVAPATH= /usr/lib/java

ARCHIVE = trex.jar
FILES = trex/
CLASSES = classes
#CLASSPATH = .:
#CLASSPATH = .:/home/bastian/daten/studium/studienarbeit/TRex/libs/jai-1_1_1/lib/jai_codec.jar:/home/bastian/daten/studium/studienarbeit/TRex/libs/jai-1_1_1/lib/jai_core.jar:/home/bastian/daten/studium/studienarbeit/TRex/libs/jai-1_1_1/lib/mlibwrapper_jai.jar:
#CLASSPATH = .:/usr/lib/java/jre/lib/rt.jar:

MANIFEST = trex.manifest
JAR = $(JAVAPATH)/bin/jar
JVM = $(JAVAPATH)/bin/java
JAVADOC = $(JAVAPATH)/bin/javadoc
JAVAC = /usr/bin/jikes
#JAVAC = $(JAVAPATH)/bin/javac
SRC = src/

SOURCEFILES = $(SRC)/trex/TRexApp.java \
	$(SRC)/trex/Algo/StegoAlgoRGB.java \
	$(SRC)/trex/Algo/StegoAlgoLSB.java \
	$(SRC)/trex/Algo/StegoAlgoLSBpp.java \
	$(SRC)/trex/Algo/StegoAlgoFFT.java \
	$(SRC)/TransformTest.java

ICONS = trex/GUI/closeFile.gif trex/GUI/help.gif trex/GUI/openCrypt.gif trex/GUI/openFile.gif trex/GUI/ImageChooser/gifIcon.gif trex/GUI/ImageChooser/jpgIcon.gif trex/GUI/ImageChooser/picIcon.gif trex/GUI/ImageChooser/pngIcon.gif

default:
	@echo "Possible targets:"
	@echo "doc	-	create docs"
	@echo "run	-	to run project"
	@echo "jarrun	-	to run project from jar file"
	@echo "jar	-	to build jar file"
	@echo "class	-	run compiler"
	@echo "checker	-	run checker application"
	@echo "all	-	compile and create jar + doc"
	@echo "transform -	start transform test"
	@echo "icons	-	install icons to classpath"

all: class icons jar doc

doc: ALWAYS
	$(JAVADOC) \
	-d doc/api \
	-sourcepath $(SRC) \
	-version \
	-author \
	-doctitle 'TRex steganography demo' \
	-windowtitle 'TRex API specification' \
	-overview doc/overview.html \
	-use \
	-link http://java.sun.com/j2se/1.4/docs/api \
	trex trex.GUI.ImageChooser trex.Filter trex.Algo trex.GUI

icons:
	for i in $(ICONS) ; do \
		mkdir -p $(CLASSES)/`dirname $$i` ; \
		cp $(SRC)/$$i $(CLASSES)/$$i ; \
	done ;

run-default:
	$(JVM) -Xmx192m -classpath $(CLASSES):$(CLASSPATH) trex.TRexApp -f testdata/mietze-klein.jpg -d testdata/poems.txt

run:
	$(JVM) -Xmx192m -classpath $(CLASSES):$(CLASSPATH) trex.TRexApp

transform:
	$(JVM) -Xmx192m -classpath $(CLASSES):$(CLASSPATH) trex.TransformTest.TransformTest

jarrun:
	$(JVM) -jar $(ARCHIVE)

jar:
	$(JAR) cvfm $(ARCHIVE) $(MANIFEST) -C $(CLASSES) $(FILES)

class:
	$(JAVAC) -d $(CLASSES) -sourcepath $(SRC) $(SOURCEFILES)

checker:
	$(JVM) -classpath $(CLASSES) checker

ALWAYS:
	echo
