# FILE. . . . . /home/hak/ilt/src/ilog/irl/Makefile
# EDIT BY . . . Hassan Ait-Kaci
# ON MACHINE. . Latitude407
# STARTED ON. . Tue Aug  5 12:50:42 2003

# Last modified on Wed Jan 16 19:12:04 2008 by hak

CLASSPATH	= ${ILT_HOME}/classes
CLASSROOT	= ${ILT_HOME}/classes
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/irl
SAVEDIR		= $(ILT_HOME)/save/irl
SAY		= @echo "***"
TRASH		= ,* ,.* *~ @*@ .*~ core 
JACC_OPTIONS	= -choices 5 -trail 25 -amb #-rrp
CJACC_OPTIONS	= -choices 5 -trail 25
#JACC		= @java -classpath "$(JARFILE)" ilog.language.syntax.Jacc ${JACC_OPTIONS}
JACC		= @java -classpath "$(CLASSPATH)" ilog.language.syntax.Jacc ${JACC_OPTIONS}
#CJACC		= @java -classpath "$(JARFILE)" ilog.language.syntax.Jacc ${CJACC_OPTIONS}
CJACC		= @java -classpath "$(CLASSPATH)" ilog.language.syntax.Jacc ${CJACC_OPTIONS}

all: clean parser classes

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

conflicts: IRL.grm
	$(SAY) Conflict analysis...
	${CJACC} -v2 -n IRL

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

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

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

full: clean doc save all

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

doc: clean
	$(SAY) Removing old files...
	@rm -rf IRLDoc/*.*
	@rm -f $(DOCDIR)/*.html
	$(SAY) Generating grammar hyperdocumentation
	${JACC} -doc IRL
	@\rm -rf "$(DOCDIR)/IRLDoc"
	@\mv IRLDoc "$(DOCDIR)/IRLDoc"
	@\ln -s "$(DOCDIR)/IRLDoc" IRLDoc
	$(SAY) Generating new hilited HTML source code
	@hl -! -p ilog.irl -d $(DOCDIR) *.grm *.java

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

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

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