# FILE. . . . . /home/hak/ilt/dotnet/src/Ilog/Irl/Makefile
# EDIT BY . . . Hassan Ait-Kaci
# ON MACHINE. . Latitude407.Ilog.Biz
# STARTED ON. . Tue May 31 18:17:58 2005

# Last modified on Tue May 23 10:14:17 2006 by hak

ROOTDIR		= ${HOME}/ilt/dotnet/src/Ilog
LIBROOT		= ${ROOTDIR}/Language
COMMONFILES	= Lexicon.cs Tokenizer.cs Parser.cs
MAINFILES	= ${COMMONFILES} IrlMain.cs
TRACEFILES	= ${MAINFILES} Trace.cs
SCRIPTFILES	= ${COMMONFILES} TestParserScript.cs
ROOT		= Ilog.Language
LIBS		= -lib:"${LIBROOT}/IO/lib/" \
		  -lib:"${LIBROOT}/Util/lib/" \
		  -lib:"${LIBROOT}/Tools/lib/" \
		  -lib:"${LIBROOT}/Parsing/lib/"
REFS		= -r:"${ROOT}.IO.dll" \
		  -r:"${ROOT}.Util.dll"\
		  -r:"${ROOT}.Tools.dll"\
		  -r:"${ROOT}.Parsing.dll"
COMPILE		= @csc -nologo -o -t:exe -debug ${LIBS} ${REFS}
DOCDIR		= 
SAVEDIR		= 
SAY		= @echo "***"
TRASH		= ,* ,.* *~ @*@ .*~ core 
JACC_OPTIONS	= -choices 5 -trail 25 -amb #-rrp
CJACC_OPTIONS	= -choices 5 -trail 25
JACC		= @${LIBROOT}/Jacc/Jacc ${JACC_OPTIONS}
CJACC		= @${LIBROOT}/Jacc/Jacc ${CJACC_OPTIONS}
RM		= \rm -rf

all: clean parser main

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

conflicts: IRL.grm
	$(SAY) Conflict analysis...
	${CJACC} -v 2 -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

main: tidy
	$(SAY) Compiling main source files...
	$(COMPILE) -out:Main.exe ${MAINFILES}

trace: tidy
	$(SAY) Compiling trace source files...
	$(COMPILE) -out:Trace.exe -main:Ilog.Irl.Trace ${TRACEFILES}

script: tidy
	$(SAY) Compiling script source files...
	$(COMPILE) -out:Script.exe ${SCRIPTFILES}

#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)
