#	
# $Id: Makefile,v 1.23 2000/10/13 05:48:32  $
#
# by default, just assume all executables are in the user's path

JV=		java
JVC=		javac

OPT=		-classpath ./Extra:./src -d ./bin
JVOPT=		-classpath ./Extra

ASMEDIR=	bin/AsmCode/
CTREDIR=	bin/Controlers/
INTEDIR=	bin/Interface/
MODEDIR=	bin/Model/
UTIEDIR=	bin/Utilitaires/

ASMSDIR=	src/AsmCode/
CTRSDIR=	src/Controlers/
INTSDIR=	src/Interface/
MODSDIR=	src/Model/
UTISDIR=	src/Utilitaires/

CTRPACK=	$(CTRSDIR)ArchiControl.java $(CTRSDIR)CmdControl.java $(CTRSDIR)EditControl.java $(CTRSDIR)EngineControl.java $(CTRSDIR)RamControl.java $(CTRSDIR)RegControl.java $(CTRSDIR)UIControl.java
UTIPACK=	$(UTISDIR)About.java $(UTISDIR)GridUtils.java $(UTISDIR)HelpView.java $(UTISDIR)PixConstants.java $(UTISDIR)Quintuplet.java $(UTISDIR)Randomize.java $(UTISDIR)Result.java $(UTISDIR)StepInfo.java $(UTISDIR)Tutorial.java $(UTISDIR)Utils.java
ASMPACK=	$(ASMSDIR)parser.java $(ASMSDIR)sym.java $(ASMSDIR)Yylex.java

all: $(ASMEDIR)parser.class $(ASMEDIR)sym.class $(ASMEDIR)Yylex.class $(CTREDIR)ArchiControl.class $(CTREDIR)CmdControl.class $(CTREDIR)EditControl.class $(CTREDIR)EngineControl.class $(CTREDIR)RamControl.class $(CTREDIR)RegControl.class $(CTREDIR)UIControl.class $(INTEDIR)IArchi/UIArchi.class $(INTEDIR)IArchi/Visual.class $(INTEDIR)ICmd/UICmd.class $(INTEDIR)IEdit/EditDataModel.class $(INTEDIR)IEdit/EditExt.class $(INTEDIR)IEdit/UIEdit.class $(INTEDIR)IRam/RamChoiceFrame.class $(INTEDIR)IRam/RamDataModel.class $(INTEDIR)IRam/UIRam.class $(INTEDIR)IReg/RegDataModel.class $(INTEDIR)IReg/UIReg.class $(INTEDIR)UI/Logo.class $(INTEDIR)UI/Menu.class $(INTEDIR)UI/UI.class $(MODEDIR)Engine.class $(MODEDIR)MArchi.class $(MODEDIR)MCmd.class $(MODEDIR)MEdit.class $(MODEDIR)MRam.class $(MODEDIR)MReg.class bin/PixArchi.class $(UTIEDIR)About.class $(UTIEDIR)GridUtils.class $(UTIEDIR)HelpView.class $(UTIEDIR)PixConstants.class $(UTIEDIR)Quintuplet.class $(UTIEDIR)Randomize.class $(UTIEDIR)Result.class $(UTIEDIR)StepInfo.class $(UTIEDIR)Tutorial.class $(UTIEDIR)Utils.class

$(ASMEDIR)parser.class:              $(ASMSDIR)parser.java $(ASMSDIR)Yylex.java $(UTIPACK)
	$(JVC) $(OPT) $(ASMSDIR)parser.java

$(ASMEDIR)sym.class:                 $(ASMSDIR)sym.java
	$(JVC) $(OPT) $(ASMSDIR)sym.java

$(ASMEDIR)Yylex.class:               $(ASMSDIR)Yylex.java
	$(JVC) $(OPT) $(ASMSDIR)Yylex.java

$(CTREDIR)ArchiControl.class:        $(CTRSDIR)ArchiControl.java
	$(JVC) $(OPT) $(CTRSDIR)ArchiControl.java

$(CTREDIR)CmdControl.class:          $(CTRSDIR)CmdControl.java $(INTSDIR)ICmd/UICmd.java $(MODSDIR)Engine.java
	$(JVC) $(OPT) $(CTRSDIR)CmdControl.java

$(CTREDIR)EditControl.class:         $(CTRSDIR)EditControl.java $(INTSDIR)IEdit/UIEdit.java $(INTSDIR)IEdit/EditExt.java $(MODSDIR)MEdit.java
	$(JVC) $(OPT) $(CTRSDIR)EditControl.java

$(CTREDIR)EngineControl.class:       $(CTRSDIR)EngineControl.java $(MODSDIR)Engine.java
	$(JVC) $(OPT) $(CTRSDIR)EngineControl.java

$(CTREDIR)RamControl.class:          $(CTRSDIR)RamControl.java $(UTIPACK) $(INTSDIR)IRam/UIRam.java $(MODSDIR)MRam.java $(CTRSDIR)RegControl.java
	$(JVC) $(OPT) $(CTRSDIR)RamControl.java

$(CTREDIR)RegControl.class:          $(CTRSDIR)RegControl.java $(UTIPACK) $(INTSDIR)IReg/UIReg.java $(MODSDIR)MReg.java
	$(JVC) $(OPT) $(CTRSDIR)RegControl.java

$(CTREDIR)UIControl.class:           $(CTRSDIR)UIControl.java $(UTIPACK) $(INTSDIR)UI/Logo.java $(INTSDIR)UI/Menu.java $(INTSDIR)UI/UI.java $(MODSDIR)MEdit.java
	$(JVC) $(OPT) $(CTRSDIR)UIControl.java

$(INTEDIR)IArchi/UIArchi.class:      $(INTSDIR)IArchi/UIArchi.java $(CTRSDIR)ArchiControl.java $(UTIPACK)
	$(JVC) $(OPT) $(INTSDIR)IArchi/UIArchi.java

$(INTEDIR)IArchi/Visual.class:       $(INTSDIR)IArchi/Visual.java $(UTISDIR)PixConstants.java
	$(JVC) $(OPT) $(INTSDIR)IArchi/Visual.java

$(INTEDIR)ICmd/UICmd.class:          $(INTSDIR)ICmd/UICmd.java $(CTRSDIR)CmdControl.java $(UTIPACK)
	$(JVC) $(OPT) $(INTSDIR)ICmd/UICmd.java

$(INTEDIR)IEdit/EditDataModel.class: $(INTSDIR)IEdit/EditDataModel.java $(INTSDIR)IEdit/UIEdit.java
	$(JVC) $(OPT) $(INTSDIR)IEdit/EditDataModel.java

$(INTEDIR)IEdit/EditExt.class:       $(INTSDIR)IEdit/EditExt.java $(CTRSDIR)EditControl.java $(UTIPACK)
	$(JVC) $(OPT) $(INTSDIR)IEdit/EditExt.java

$(INTEDIR)IEdit/UIEdit.class:        $(INTSDIR)IEdit/UIEdit.java $(CTRSDIR)EditControl.java $(UTIPACK)
	$(JVC) $(OPT) $(INTSDIR)IEdit/UIEdit.java

$(INTEDIR)IRam/RamChoiceFrame.class: $(INTSDIR)IRam/RamChoiceFrame.java $(UTIPACK)
	$(JVC) $(OPT) $(INTSDIR)IRam/RamChoiceFrame.java

$(INTEDIR)IRam/RamDataModel.class:   $(INTSDIR)IRam/RamDataModel.java $(INTSDIR)IRam/UIRam.java $(UTIPACK)
	$(JVC) $(OPT) $(INTSDIR)IRam/RamDataModel.java

$(INTEDIR)IRam/UIRam.class:          $(INTSDIR)IRam/UIRam.java $(CTRSDIR)RamControl.java $(UTIPACK)
	$(JVC) $(OPT) $(INTSDIR)IRam/UIRam.java

$(INTEDIR)IReg/RegDataModel.class:   $(INTSDIR)IReg/RegDataModel.java $(INTSDIR)IReg/UIReg.java $(UTIPACK)
	$(JVC) $(OPT) $(INTSDIR)IReg/RegDataModel.java

$(INTEDIR)IReg/UIReg.class:          $(INTSDIR)IReg/UIReg.java $(CTRSDIR)RegControl.java $(UTIPACK)
	$(JVC) $(OPT) $(INTSDIR)IReg/UIReg.java

$(INTEDIR)UI/Logo.class:             $(INTSDIR)UI/Logo.java 
	$(JVC) $(OPT) $(INTSDIR)UI/Logo.java

$(INTEDIR)UI/Menu.class:             $(INTSDIR)UI/Menu.java $(CTRSDIR)UIControl.java $(INTSDIR)UI/UI.java
	$(JVC) $(OPT) $(INTSDIR)UI/Menu.java

$(INTEDIR)UI/UI.class:               $(INTSDIR)UI/UI.java $(UTIPACK) $(INTSDIR)IReg/UIReg.java $(INTSDIR)IRam/UIRam.java $(INTSDIR)IEdit/UIEdit.java $(INTSDIR)ICmd/UICmd.java $(INTSDIR)IArchi/UIArchi.java
	$(JVC) $(OPT) $(INTSDIR)UI/UI.java

$(MODEDIR)Engine.class:              $(MODSDIR)Engine.java $(CTRPACK) $(UTIPACK)
	$(JVC) $(OPT) $(MODSDIR)Engine.java

$(MODEDIR)MArchi.class:              $(MODSDIR)MArchi.java $(CTRSDIR)ArchiControl.java
	$(JVC) $(OPT) $(MODSDIR)MArchi.java

$(MODEDIR)MCmd.class:                $(MODSDIR)MCmd.java $(CTRSDIR)CmdControl.java
	$(JVC) $(OPT) $(MODSDIR)MCmd.java

$(MODEDIR)MEdit.class:               $(MODSDIR)MEdit.java $(CTRSDIR)EditControl.java $(CTRSDIR)UIControl.java $(ASMPACK)
	$(JVC) $(OPT) $(MODSDIR)MEdit.java

$(MODEDIR)MRam.class:                $(MODSDIR)MRam.java $(UTIPACK) $(CTRSDIR)RamControl.java
	$(JVC) $(OPT) $(MODSDIR)MRam.java

$(MODEDIR)MReg.class:                $(MODSDIR)MReg.java $(UTIPACK) $(CTRSDIR)RegControl.java
	$(JVC) $(OPT) $(MODSDIR)MReg.java

bin/PixArchi.class:                  src/PixArchi.java 
	$(JVC) $(OPT) src/PixArchi.java

$(UTIEDIR)About.class:               $(UTISDIR)About.java
	$(JVC) $(OPT) $(UTISDIR)About.java

$(UTIEDIR)GridUtils.class:           $(UTISDIR)GridUtils.java
	$(JVC) $(OPT) $(UTISDIR)GridUtils.java

$(UTIEDIR)HelpView.class:            $(UTISDIR)HelpView.java
	$(JVC) $(OPT) $(UTISDIR)HelpView.java

$(UTIEDIR)PixConstants.class:        $(UTISDIR)PixConstants.java
	$(JVC) $(OPT) $(UTISDIR)PixConstants.java

$(UTIEDIR)Quintuplet.class:          $(UTISDIR)Quintuplet.java
	$(JVC) $(OPT) $(UTISDIR)Quintuplet.java

$(UTIEDIR)Randomize.class:           $(UTISDIR)Randomize.java
	$(JVC) $(OPT) $(UTISDIR)Randomize.java

$(UTIEDIR)Result.class:              $(UTISDIR)Result.java 
	$(JVC) $(OPT) $(UTISDIR)Result.java

$(UTIEDIR)StepInfo.class:            $(UTISDIR)StepInfo.java $(UTISDIR)Quintuplet.java
	$(JVC) $(OPT) $(UTISDIR)StepInfo.java

$(UTIEDIR)Tutorial.class:            $(UTISDIR)Tutorial.java $(INTSDIR)UI/UI.java $(CTRPACK)
	$(JVC) $(OPT) $(UTISDIR)Tutorial.java

$(UTIEDIR)Utils.class:               $(UTISDIR)Utils.java
	$(JVC) $(OPT) $(UTISDIR)Utils.java

$(ASMSDIR)Yylex.java: $(ASMSDIR)edit.lex
	$(JV) $(JVOPT) JLex.Main $(ASMSDIR)edit.lex
	mv $(ASMSDIR)edit.lex.java $(ASMSDIR)Yylex.java

$(ASMSDIR)parser.java $(ASMSDIR)sym.java: $(ASMSDIR)edit.cup
	$(JV) $(JVOPT) java_cup.Main $(ASMSDIR)edit.cup
	mv parser.java $(ASMSDIR)
	mv sym.java $(ASMSDIR)


clean:
	rm $(ASMEDIR)*.class $(CTREDIR)*.class $(INTEDIR)IArchi/*.class $(INTEDIR)ICmd/*.class $(INTEDIR)IEdit/*.class $(INTEDIR)IRam/*.class $(INTEDIR)IReg/*.class $(INTEDIR)UI/*.class $(MODEDIR)*.class bin/PixArchi.class $(UTIEDIR)*.class $(ASMSDIR)*.java




