# FILE. . . . . /home/hak/ilt/src/ilog/language/Makefile
# EDIT BY . . . Hassan Ait-Kaci
# ON MACHINE. . Latitude407
# STARTED ON. . Sat Aug  2 19:38:17 2003

# Last modified on Sat Apr 26 18:37:18 2008 by hak

ILT_HOME	= C:/cygwin/home/hak/ilt
CLASSPATH	= $(ILT_HOME)/classes;$(ILT_HOME)/classes/jdom.jar
PACKMAIN	= ilog
PACKPREF	= language
PACKAGE		= $(PACKMAIN).$(PACKPREF).$(PACKNAME)
PACKPATH	= $(PACKMAIN)/$(PACKPREF)/$(PACKNAME)
CLASSROOT	= $(ILT_HOME)/classes
SRCPATH		= $(ILT_HOME)/src/$(PACKMAIN)/$(PACKPREF)
PACKSRCDIR	= $(SRCPATH)/$(PACKNAME)
CLASSDIR	= $(CLASSROOT)/$(PACKPATH)
DOCDIR		= $(ILT_HOME)/doc/$(PACKMAIN)/code/$(PACKPREF)/$(PACKNAME)
SAVEDIR		= $(ILT_HOME)/save/language
JC		= @javac -classpath "$(CLASSPATH)" -O -d "$(CLASSROOT)"
SAY		= @echo "***"
TRASH		= $(PACKSRCDIR)/,* $(PACKSRCDIR)/,.* $(PACKSRCDIR)/*~ \
		  $(PACKSRCDIR)/@*@ $(PACKSRCDIR)/.*~ core 

single: syntax xml

all: tools util io syntax design_all
	$(SAY) All $(PACKMAIN).$(PACKPREF) packages have been regenerated

design: design_all

full: tools util io syntax doc save design_full api

api: clean
	@./make_api

doc: tools_doc util_doc io_doc syntax_doc design_doc
	$(SAY) Completed source documentation for all $(PACKMAIN).$(PACKPREF) packages

save: tools_save util_save io_save syntax_save
	$(SAY) Overwriting the versions previously saved in $(SAVEDIR)
	$(SAY) All current $(PACKMAIN).$(PACKPREF) packages have been saved

backup: tools_backup util_backup io_backup syntax_backup design_backup
	$(SAY) Backing up the versions previously saved in $(SAVEDIR)
	$(SAY) All current $(PACKMAIN).$(PACKPREF) packages have been saved

util: util_pack

tools: bootstrap_io tools_pack

io: io_pack

syntax: syntax_pack

syntax_all: syntax_xml syntax_pack syntax_doc

design_all:
	@make -f "$(SRCPATH)/design/Makefile" "DIRFIX = design/" all

design_doc:
	@make -f "$(SRCPATH)/design/Makefile" "DIRFIX = design/" doc

design_full:
	@make -f "$(SRCPATH)/design/Makefile" "DIRFIX = design/" full

bootstrap_io:
	$(SAY) Compiling io bootsrap classes...
	$(JC) io/FileTools.java io/IO.java
	$(SAY) Compilation of bootstrap classes done

util_pack:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=util" gen_pack
tools_pack:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=tools" gen_pack
io_pack:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=io" gen_pack
syntax_pack:
	$(SAY) Regenerating the ilog.language.syntax package
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=syntax" gen_pack

xml syntax_xml:
	$(SAY) Regenerating the the ilog.language.syntax.xml package
	@./make_xml

util_doc:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=util" gen_doc
tools_doc:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=tools" gen_doc
io_doc:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=io" gen_doc
syntax_doc:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=syntax" gen_doc
	$(SAY) Generating XML annotation documentation ...
	@make_xmldoc
	$(SAY) Moving XML annotation documentation files to $(DOCDIR)syntax/xml/
	@cp -r "$(SRCPATH)/syntax/xml/XmlAnnotationDoc" "$(DOCDIR)syntax/xml/"

util_save:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=util" gen_save
tools_save:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=tools" gen_save
io_save:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=io" gen_save
syntax_save:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=syntax" gen_save

util_backup:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=util" gen_backup
tools_backup:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=tools" gen_backup
io_backup:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=io" gen_backup
syntax_backup:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=syntax" gen_backup

design_backup:
	@make -f "$(SRCPATH)/design/Makefile" "DIRFIX = design/" backup

gen_pack: tidy
#	$(SAY) Deleting $(PACKAGE) package classes
#	@\rm -fr $(CLASSDIR)/*.class
	$(SAY) Compiling $(PACKAGE) package...
	$(JC) $(PACKNAME)/*.java
	$(SAY) Regeneration of $(PACKAGE) package completed

gen_doc: tidy
	$(SAY) Generating hilited HTML source code for $(PACKAGE) package
	@hl -! -s / -p $(PACKAGE) -d $(DOCDIR) $(PACKSRCDIR)/*.java > /dev/null

gen_save: tidy
	$(SAY) Saving current package $(PACKAGE) in $(SAVEDIR)/$(PACKNAME)
	$(SAY) Replacing the version that was previously saved in $(SAVEDIR)/$(PACKNAME)
#	@tar cvf $(PACKAGE).tar $(PACKNAME)/*.java  > /dev/null
	@tar cvf $(PACKAGE).tar $(PACKNAME)/*.* $(PACKNAME)/*/*.*  > /dev/null
	@gzip $(PACKAGE).tar
	@mv -f "$(PACKAGE).tar.gz" "$(SAVEDIR)/$(PACKNAME)"

gen_backup: tidy
	$(SAY) Saving current package $(PACKAGE) in $(SAVEDIR)/$(PACKNAME)
	$(SAY) Backing up previously saved version in $(SAVEDIR)/$(PACKNAME)/previous
#	@tar cvf $(PACKAGE).tar $(PACKNAME)/*.java  > /dev/null
	@tar cvf $(PACKAGE).tar $(PACKNAME)/*.* $(PACKNAME)/*/*.*  > /dev/null
	@gzip $(PACKAGE).tar
	@mv -f $(SAVEDIR)/$(PACKNAME)/previous /tmp
	@mkdir $(SAVEDIR)/$(PACKNAME)/previous
	@mv /tmp/previous $(SAVEDIR)/$(PACKNAME)/previous
	@mv $(PACKAGE).tar.gz $(SAVEDIR)/$(PACKNAME)/previous

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

clean:
	$(SAY) Tidying up directory $(SRCPATH)/tools
	@\rm -rf $(SRCPATH)/tools/,* @\rm -rf $(SRCPATH)/tools/@*@
	$(SAY) Tidying up directory $(SRCPATH)/util
	@\rm -rf $(SRCPATH)/util/,* @\rm -rf $(SRCPATH)/util/@*@
	$(SAY) Tidying up directory $(SRCPATH)/io
	@\rm -rf $(SRCPATH)/io/,* @\rm -rf $(SRCPATH)/io/@*@
	$(SAY) Tidying up directory $(SRCPATH)/syntax
	@\rm -rf $(SRCPATH)/syntax/,* @\rm -rf $(SRCPATH)/syntax/@*@
	$(SAY) Tidying up directory $(SRCPATH)/design
	@make -f "$(SRCPATH)/design/Makefile" "DIRFIX = design/" clean

basic: clean
	$(SAY) Compiling basic language package set 
	$(JC) $(SRCPATH)/tools/*.java $(SRCPATH)/util/*.java $(SRCPATH)/io/*.java $(SRCPATH)/syntax/*.java 

cvs: clean
	cvs add io/*.java util/*.java tools/*.java syntax/*.java || true
	$(SAY) Added all the files the CVS repository...
