# FILE. . . . . /home/hak/ilt/src/ilog/rcl/Makefile
# EDIT BY . . . Hassan Ait-Kaci
# ON MACHINE. . Latitude407.Ilog.Biz
# STARTED ON. . Wed Apr 26 16:07:13 2006

# Last modified on Thu Aug 31 15:23:53 2006 by hak

HOME		= C:/cygwin/home/hak
CLASSROOT	= ${HOME}/ilt/classes
CLASSPATH	= .;${CLASSROOT}
JARFILE		= $(CLASSROOT)/ilog.jar
#JC		= @javac -deprecation -O -d "$(CLASSROOT)" -classpath "$(JARFILE)"
JC		= @javac -O -d "$(CLASSROOT)" -classpath "$(CLASSPATH)" #-Xlint:unchecked
#DOCDIR		= $(ILT_HOME)/doc/ilog/code/rcl
DOCDIR		= ./RCLDoc
SAVEDIR		= $(ILT_HOME)/save/rcl
SAY		= @echo "***"
TRASH		= ,* ,.* *~ @*@ .*~ core ilog.rcl.tar*
JACC_OPTIONS	= 
#JACC		= @java -classpath "$(JARFILE)" ilog.language.syntax.Jacc ${JACC_OPTIONS}
JACC		= @java -classpath "$(CLASSPATH)" ilog.language.syntax.Jacc ${JACC_OPTIONS}
RM		= /bin/rm

all: parser classes

parser: clean RCL.grm
	$(SAY) Generating the parser...
	${JACC} -p Parser RCL

log: tidy
	$(SAY) Generating complete grammar log for RCL.grm...
	${JACC} -v 4 -n -o RCL.log RCL
	$(SAY) Grammar log written in file RCL.log

classes: tidy
	$(SAY) Compiling java files...
	$(JC) *.java	

bench: tidy
	$(SAY) Compiling Bench.java...
	$(JC) Bench.java	

full: clean save all zip

clean: tidy
	$(SAY) Removing the old parser\'s Java file...
	@${RM} -f Parser.java

zip: doc
	@zip RCLDoc RCLDoc/* RCLDoc/*/*
	$(SAY) Wrote RCLDoc.zip

doc: clean
	$(SAY) Removing old files...
	@\rm -rf "$(DOCDIR)/RCLDoc"
	$(SAY) Generating grammar hyperdocumentation
	${JACC} -doc RCL
	@cp *.rcl "$(DOCDIR)"
	@cp Test.run "$(DOCDIR)"
	@cp rcl "$(DOCDIR)"
	@\mv "$(DOCDIR)/index.html" "$(DOCDIR)/doc.html"
	$(SAY) See grammar doc in file $(DOCDIR)/doc.html.
	$(SAY) Hiliting HTML Java and Jacc sources in $(DOCDIR):
	@hl -! -p ilog.rcl -d $(DOCDIR) *.grm *.java
	$(SAY) Hilited HTML source code in $(DOCDIR)/index.html.

save: clean
	@tar cvf ilog.rcl.tar *.java *.grm Makefile > /dev/null
	@gzip ilog.rcl.tar
	mv -f ilog.rcl.tar.gz $(SAVEDIR)
	$(SAY) Saved archive ilog.rcl.tar.gz in $(SAVEDIR)

backup: clean
	$(SAY) Saving current package ilog.rcl
	$(SAY) Backing up previously saved version in $(SAVEDIR)/previous
	@tar cvf ilog.rcl.tar *.java *.grm Makefile > /dev/null
	@gzip ilog.rcl.tar
	@mv -f $(SAVEDIR)/previous /tmp
	@mkdir $(SAVEDIR)/previous
	@mv /tmp/previous $(SAVEDIR)/previous
	@mv $(SAVEDIR)/ilog.rcl.tar.gz $(SAVEDIR)/previous
	@mv -f ilog.rcl.tar.gz $(SAVEDIR)

tidy:
	$(SAY) Tidying up directory...
	@\rm -rf $(TRASH)
