# FILE. . . . . /home/hak/ilt/src/ilog/rif/versions/bld-v1.0/Makefile
# EDIT BY . . . Hassan Ait-Kaci
# ON MACHINE. . 4j4zn71
# STARTED ON. . Thu Oct 09 19:12:03 2008

# Last modified on Wed Oct 15 11:20:21 2008 by hak

########################################################################

MAIN	= BLD
EXT	= bld
COMMAND	= ${EXT}

SOURCES		= ./sources
CLASSES		= ./classes
RESOURCES	= ${CLASSES}/resources
DOCS		= ./docs
EXAMPLES	= ./examples

ILT_JAR	= ilog.language.2008.10.07.jar
CLSPATH	= ${CLASSES};${CLASSES}/${ILT_JAR};${CLASSES}/jdom.jar
TRASH	= ,* ,.* *~ @*@ .*~ */,* */,.* */*~ */@*@ */.*~

JC	= @javac -O -d "${CLASSES}" -classpath "${CLSPATH}" #-Xlint:unchecked
JACC	= @java -classpath "${CLSPATH}" ilog.language.syntax.Jacc

MK	= @\make
ND	= @\mkdir -p
CP	= @\cp -f
LS	= @\ls
MV	= @\mv -f
RM	= @\rm -rf
SAY	= @echo "***"

HL_OPS	= -! -c "${RESOURCES}/Hilite.Configuration" 
HL	= @hl ${HL_OPS}
#HL	= java -classpath "${CLSPATH}" ilog.language.tools.HiliteCommand ${HL_OPS}

########################################################################

all: gen classes

########################################################################

full: all doc

########################################################################

gen: tidy ${SOURCES}/${MAIN}.grm
	${SAY} Make gen:
	${SAY} Generating the ${MAIN} parser...
	${JACC} -base ${SOURCES} -dest ${SOURCES} -p Parser ${SOURCES}/${MAIN}.grm

########################################################################

classes: tidy
	${SAY} Make classes:
	${SAY} Compiling java files...
	${JC} ${SOURCES}/*.java
	${SAY} Wrote class files in ${CLASSES}/

########################################################################

doc: rmdoc hyper hl

########################################################################

rmdoc:
	${SAY} Make rmdoc:
	${SAY} Removing old ${DOCS}/${MAIN}Doc documentation ...
	${RM} -rf ${DOCS}/${MAIN}Doc

########################################################################

hyper: rmdoc tidy
	${SAY} Make hyper:
	${SAY} Generating grammar hyperdocumentation ...
	${JACC} -doc -base ${SOURCES} ${SOURCES}/${MAIN}.grm
	${MV} ${MAIN}Doc ${DOCS}/
	${MK} images
	${MV} ${DOCS}/${MAIN}Doc/index.html ${DOCS}/${MAIN}Doc/ROOT.html
	${SAY} Visit ${DOCS}/${MAIN}Doc/ROOT.html to navigate the grammar documentation

########################################################################

images:
	${SAY} Make images:
	${SAY} Copying image files ...
	${ND} ${DOCS}/BLDDoc/images
	${ND} ${DOCS}/BLDDoc/images/ilog
	${ND} ${DOCS}/BLDDoc/images/arrows
	${ND} ${DOCS}/BLDDoc/images/arrows/misc/
	${CP} ${RESOURCES}/images/ilog/*.gif ${DOCS}/BLDDoc/images/ilog/
	${CP} ${RESOURCES}/images/arrows/misc/*.gif ${DOCS}/BLDDoc/images/arrows/misc/

########################################################################

hl: tidy
	${SAY} Make hl:
	${SAY} Hiliting HTML for Java and Jacc sources files ...
	${HL} -p ilog.rif.${EXT} -d ${DOCS}/${MAIN}Doc ${SOURCES}/*.grm ${SOURCES}/*.java
	${SAY} See hilited HTML source code in ${DOCS}/${MAIN}Doc/index.html.

########################################################################

log: tidy
	${SAY} Make log:
	${SAY} Generating the full grammar log for ${SOURCES}/${MAIN}.grm...
	${JACC} -v 4 -n -o ${MAIN}.log -base ${SOURCES} ${SOURCES}/${MAIN}
	${MV} ${MAIN}.log ${SOURCES}/${MAIN}.log
	${SAY} See grammar log in file ${SOURCES}/${MAIN}.log

########################################################################

distrib: clean save all zip

########################################################################

clean: tidy
	${SAY} Make clean:
	${SAY} Removing the old parser Java sources...
	${RM} -f Parser.java
	${SAY} Removing the old grammar analysis log...
	${RM} -f ${MAIN}.log 
	${SAY} Removing the old archives
	${RM} -f ${MAIN}Doc.zip ${MAIN}2XML.tar.gz

########################################################################

zip: clean doc
	@zip ${MAIN}Doc ${MAIN}Doc/* ${MAIN}Doc/*/* > /dev/null
	${SAY} Wrote zipped documentation ${MAIN}Doc.zip

########################################################################

save: clean
	${SAY} Make save:
	@tar cvf ilog.rif.${EXT}.tar Makefile bld *.bl? *.java *.grm > /dev/null
	@gzip ilog.rif.${EXT}.tar
	@mv -f ilog.rif.${EXT}.tar.gz ${SAVEDIR}
	${SAY} Saved archive ilog.rif.${EXT}.tar.gz in ${SAVEDIR}

########################################################################

backup: clean
	${SAY} Make backup:
	${SAY} Saving current package ilog.rif.${EXT}
	${SAY} Backing up previously saved version in ${SAVEDIR}/previous
	@tar cvf ilog.rif.${EXT}.tar *.java *.grm Makefile > /dev/null
	@gzip ilog.rif.${EXT}.tar
	${MV} -f ${SAVEDIR}/previous /tmp
	${ND} ${SAVEDIR}/previous
	${MV} /tmp/previous ${SAVEDIR}/previous
	${MV} ${SAVEDIR}/ilog.rif.${EXT}.tar.gz ${SAVEDIR}/previous
	${MV} -f ilog.rif.${EXT}.tar.gz ${SAVEDIR}

########################################################################

tidy:
	${SAY} Make tidy:
	${SAY} "Tidying up trash (if any) ..."
	${LS} ${TRASH} 2> /dev/null ; true
	${RM} -rf ${TRASH}

########################################################################