# FILE. . . . . /home/hak/ilt/src/ilog/language/design/Makefile
# EDIT BY . . . Hassan Ait-Kaci
# ON MACHINE. . Latitude407
# STARTED ON. . Tue Aug  5 12:45:28 2003

# Last modified on Thu Sep 14 18:17:24 2006 by hak

CLASSPATH	= $(ILT_HOME)/classes
PACKMAIN	= ilog
PACKPREF1	= language
PACKPREF2	= design
DIRFIX		= 
PACKPREF	= $(PACKMAIN).$(PACKPREF1).$(PACKPREF2)
PACKAGE		= $(PACKPREF).$(PACKNAME)
PACKPATH	= $(PACKMAIN)/$(PACKPREF1)/$(PACKPREF2)/$(PACKNAME)
CLASSROOT	= $(ILT_HOME)/classes
SRCPATH		= $(ILT_HOME)/src/$(PACKMAIN)/$(PACKPREF1)/$(PACKPREF2)
PACKSRCDIR	= $(SRCPATH)/$(PACKNAME)
CLASSDIR	= $(CLASSROOT)/$(PACKPATH)
DOCDIR		= $(ILT_HOME)/doc/$(PACKMAIN)/code/$(PACKPREF1)/$(PACKPREF2)/$(PACKNAME)
SAVEDIR		= $(ILT_HOME)/save/$(PACKPREF1)/$(PACKPREF2)
JC		= @javac -classpath $(CLASSPATH) -O -d $(CLASSROOT)
SAY		= @echo "***"
TRASH		= $(PACKSRCDIR)/,* $(PACKSRCDIR)/,.* $(PACKSRCDIR)/*~ \
		  $(PACKSRCDIR)/@*@ $(PACKSRCDIR)/.*~ core 

all: kernel types instructions backend gen_all
	$(SAY) All $(PACKPREF) packages have been regenerated

full: all doc save

doc: kernel_doc types_doc instructions_doc backend_doc
	$(SAY) Completed source documentation for all $(PACKPREF) packages

save: kernel_save types_save instructions_save backend_save
	$(SAY) Overwriting the versions previously saved in $(SAVEDIR)
	$(SAY) All current $(PACKMAIN).$(PACKPREF1).$(PACKPREF2) packages have been saved


backup: kernel_backup types_backup instructions_backup backend_backup
	$(SAY) Backing up the versions previously saved in $(SAVEDIR)
	$(SAY) All current $(PACKMAIN).$(PACKPREF1).$(PACKPREF2) packages have been saved

kernel: kernel_pack

types: types_pack

instructions: instructions_pack

backend: backend_pack

kernel_pack:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=kernel" gen_pack
types_pack:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=types" gen_pack
instructions_pack:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=instructions" gen_pack
backend_pack:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=backend" gen_pack

kernel_doc:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=kernel" gen_doc
types_doc:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=types" gen_doc
instructions_doc:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=instructions" gen_doc
backend_doc:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=backend" gen_doc

kernel_save:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=kernel" gen_save
types_save:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=types" gen_save
instructions_save:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=instructions" gen_save
backend_save:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=backend" gen_save

kernel_backup:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=kernel" gen_backup
types_backup:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=types" gen_backup
instructions_backup:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=instructions" gen_backup
backend_backup:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=backend" gen_backup

gen_pack: tidy
	$(SAY) Deleting $(PACKAGE) package classes
	@\rm -fr $(CLASSDIR)/*.class

gen_all:
	$(SAY) Compiling $(PACKPREF) package...
	$(JC) $(DIRFIX)*/*.java
	$(SAY) Regeneration of $(PACKPREF) 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 $(DIRFIX)$(PACKNAME)/*.java > /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 $(DIRFIX)$(PACKNAME)/*.java  > /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

kernel_tidy:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=kernel" tidy
types_tidy:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=types" tidy
instructions_tidy:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=instructions" tidy
backend_tidy:
	@make -f "$(SRCPATH)/Makefile" "PACKNAME=backend" tidy

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

clean: kernel_tidy types_tidy instructions_tidy backend_tidy

cvs: clean
	cvs add kernel/*.java types/*.java instructions/*.java backend/*.java || true
	$(SAY) Added all the files the CVS repository...
