#ASMLC = $(ASMLDEVDIR)\runtime\asmlc.exe
ASMLP = $(ASMLDEVDIR)\bin\Debug\asmlp.exe
ASMLC = $(ASMLDEVDIR)\AsmL\asmlc.bootx.exe
ASML2DOC = $(ASMLDEVDIR)\bin\Debug\WordGenerator.exe

ASharp = no
Config = Debug
TargetDir = $(ASMLDEVDIR)\bin\$(Config)
DocDir = $(ASMLDEVDIR)\AsmL\APIDoc

Docs=$(DocDir)\framework.backendservice.doc $(DocDir)\framework.checkingservice.doc $(DocDir)\framework.formatting.doc $(DocDir)\framework.formattingservice.doc $(DocDir)\framework.importservice.doc $(DocDir)\framework.loadingservice.doc $(DocDir)\framework.instrumentationservice.doc $(DocDir)\framework.uishellservice.doc $(DocDir)\framework.messagingservice.doc $(DocDir)\framework.metaservice.doc $(DocDir)\framework.monitoringservice.doc $(DocDir)\framework.parsingservice.doc $(DocDir)\framework.projectservice.doc $(DocDir)\framework.session.doc $(DocDir)\framework.sessiontools.doc $(DocDir)\framework.symbols.doc $(DocDir)\framework.syntax.doc $(DocDir)\framework.syntaxtools.doc $(DocDir)\framework.syntaxvisitors.doc $(DocDir)\framework.utilities.doc $(DocDir)\framework.editorservice.doc $(DocDir)\framework.serializationtools.doc $(DocDir)\framework.modelannotationservice.doc $(DocDir)\framework.modelannotationtools.doc $(DocDir)\framework.fsmgenerationservice.doc  $(DocDir)\framework.explorationservice.doc  $(DocDir)\framework.TestSuiteGenerationService.doc $(DocDir)\framework.testdataservice.doc $(DocDir)\framework.filefactoryservice.doc $(DocDir)\framework.executionservice.doc $(DocDir)\framework.stateinspectionservice.doc $(DocDir)\framework.conformancetestingservice.doc $(DocDir)\framework.testsuitecodegenerationservice.doc $(DocDir)\framework.ontheflyservice.doc

TargetName = $(TargetDir)\AsmL.Tools.Framework.dll
!if "$(Config)"=="QSelf1"
#QSELF1_OPTIONS=/basicblock
!endif

ASMLOPTS = $(QSELF1_OPTIONS) -localvaropt -allprimitive -nohint+"AsmL not longer" -nohint+"inserted a possibly failing" -v=4 
REFERENCES = /lib:$(TargetDir) /reference:System.dll /reference:System.Xml.dll /reference:System.Drawing.dll /reference:System.Design.dll /reference:System.Windows.Forms.dll /reference:System.Runtime.Serialization.Formatters.Soap.dll /reference:AsmL.Tools.CustomTypeEditors.dll 

!if "$(ASharp)"!="yes"
ASMLSRCS = manifest.asml formatting.asml utilities.asml symbols.asml syntax.asml session.asml messagingservice.asml checkingservice.asml parsingservice.asml backendservice.asml formattingservice.asml projectservice.asml loadingservice.asml instrumentationservice.asml importservice.asml monitoringservice.asml uishellservice.asml sessiontools.asml syntaxtools.asml syntaxvisitors.asml serializationtools.asml editorservice.asml datageneratorservice.asml modelannotationservice.asml modelannotationtools.asml explorationservice.asml ontheflyservice.asml fsmgenerationservice.asml launchingservice.asml TestSuiteGenerationService.asml testsuitecodegenerationservice.asml testdataservice.asml filefactoryservice.asml executionservice.asml stateinspectionservice.asml conformancetestingservice.asml autoconfigprovider.asml fsmviewerservice.cs helpservice.asml

!else
ASMLSRCS = manifest.asml formatting.as utilities.as symbols.as syntax.as session.as messagingservice.as checkingservice.as parsingservice.as backendservice.as formattingservice.as projectservice.as loadingservice.as instrumentationservice.as importservice.as monitoringservice.as uishellservice.as sessiontools.as syntaxtools.as syntaxvisitors.as serializationtools.as editorservice.as datageneratorservice.as modelannotationservice.as modelannotationtools.as explorationservice.as ontheflyservice.asml fsmgenerationservice.as launchingservice.asml filefactoryservice.asml executionservice.asml stateinspectionservice.asml conformancetestingservice.as autoconfigprovider.asml helpservice.asml fsmviewerservice.cs
!endif

PPVALUETYPES=/ppvaluetype:TextPosition /ppvaluetype:GivenKind /ppvaluetype:MethodKind /ppvaluetype:Modifier /ppvaluetype:AttrTarget /ppvaluetype:StorageMode /ppvaluetype:FieldKind  /ppvaluetype:LocalUsage /ppvaluetype:CoreTypeTag /ppvaluetype:TypePatKind /ppvaluetype:ChoiceKind /ppvaluetype:QuantKind /ppvaluetype:WhileKind /ppvaluetype:ForKind /ppvaluetype:TryKind /ppvaluetype:BlockKind /ppvaluetype:AssertKind /ppvaluetype:CastKind /ppvaluetype:CastMode /ppvaluetype:BranchKind /ppvaluetype:System.Decimal /ppvaluetype:TriggerClass /ppvaluetype:ProjectTarget /ppvaluetype:UniMode /ppvaluetype:AsmLSignKind /ppvaluetype:CoreTypeKind /ppvaluetype:SyntaxLevel

.SUFFIXES: .asml .as
.asml.as:
      $(ASMLP) $(PPVALUETYPES) /compat15 /ppomitasml /pp:asharp /ppout:$*.as $**

all: build

build: $(TargetName)

$(TargetName): $(ASMLSRCS)
	$(ASMLC) $(ASMLOPTS) $(REFERENCES) /speed /v:4 /target:library /ocs:$(TargetDir)\framework.cs /out:$(TargetName) $(ASMLSRCS)

clean:
	-del $(TargetName)
    -del $(TargetDir)\framework.cs
	-del $(Docs)

rebuild: clean $(TargetName)

doc: makeDocDir $(Docs)

makeDocDir:
	if not exist $(DocDir) mkdir $(DocDir)	
	
$(DocDir)\framework.backendservice.doc: backendservice.asml
	$(ASML2DOC) backendservice.asml $(DocDir)\framework.backendservice.doc

$(DocDir)\framework.checkingservice.doc: checkingservice.asml
	$(ASML2DOC) checkingservice.asml $(DocDir)\framework.checkingservice.doc

$(DocDir)\framework.formatting.doc: formatting.asml
	$(ASML2DOC) formatting.asml $(DocDir)\framework.formatting.doc

$(DocDir)\framework.formattingservice.doc: formattingservice.asml
	$(ASML2DOC) formattingservice.asml $(DocDir)\framework.formattingservice.doc

$(DocDir)\framework.importservice.doc: importservice.asml
	$(ASML2DOC) importservice.asml $(DocDir)\framework.importservice.doc

$(DocDir)\framework.loadingservice.doc: loadingservice.asml
	$(ASML2DOC) loadingservice.asml $(DocDir)\framework.loadingservice.doc

$(DocDir)\framework.instrumentationservice.doc: instrumentationservice.asml
	$(ASML2DOC) instrumentationservice.asml $(DocDir)\framework.instrumentationservice.doc

$(DocDir)\framework.uishellservice.doc: uishellservice.asml
	$(ASML2DOC) uishellservice.asml $(DocDir)\framework.uishellservice.doc

#$(DocDir)\framework.simulatorservice.doc: simulatorservice.asml
#	$(ASML2DOC) simulatorservice.asml $(DocDir)\framework.simulatorservice.doc

$(DocDir)\framework.messagingservice.doc: messagingservice.asml
	$(ASML2DOC) messagingservice.asml $(DocDir)\framework.messagingservice.doc

$(DocDir)\framework.metaservice.doc: metaservice.asml
	$(ASML2DOC) metaservice.asml $(DocDir)\framework.metaservice.doc

$(DocDir)\framework.monitoringservice.doc: monitoringservice.asml
	$(ASML2DOC) monitoringservice.asml $(DocDir)\framework.monitoringservice.doc

$(DocDir)\framework.parsingservice.doc: parsingservice.asml
	$(ASML2DOC) parsingservice.asml $(DocDir)\framework.parsingservice.doc

$(DocDir)\framework.projectservice.doc: projectservice.asml
	$(ASML2DOC) projectservice.asml $(DocDir)\framework.projectservice.doc

$(DocDir)\framework.session.doc: session.asml
	$(ASML2DOC) session.asml $(DocDir)\framework.session.doc

$(DocDir)\framework.sessiontools.doc: sessiontools.asml
	$(ASML2DOC) sessiontools.asml $(DocDir)\framework.sessiontools.doc			

$(DocDir)\framework.symbols.doc: symbols.asml
	$(ASML2DOC) symbols.asml $(DocDir)\framework.symbols.doc

$(DocDir)\framework.syntax.doc: syntax.asml
	$(ASML2DOC) syntax.asml $(DocDir)\framework.syntax.doc

$(DocDir)\framework.syntaxtools.doc: syntaxtools.asml
	$(ASML2DOC) syntaxtools.asml $(DocDir)\framework.syntaxtools.doc

$(DocDir)\framework.syntaxvisitors.doc: syntaxvisitors.asml
	$(ASML2DOC) syntaxvisitors.asml $(DocDir)\framework.syntaxvisitors.doc

$(DocDir)\framework.utilities.doc: utilities.asml
	$(ASML2DOC) utilities.asml $(DocDir)\framework.utilities.doc

$(DocDir)\framework.editorservice.doc: editorservice.asml
	$(ASML2DOC) editorservice.asml $(DocDir)\framework.editorservice.doc

$(DocDir)\framework.filefactoryservice.doc: filefactoryservice.asml
	$(ASML2DOC) filefactoryservice.asml $(DocDir)\framework.filefactoryservice.doc

$(DocDir)\framework.executionservice.doc: executionservice.asml
	$(ASML2DOC) executionservice.asml $(DocDir)\framework.executionservice.doc

$(DocDir)\framework.stateinspectionservice.doc: stateinspectionservice.asml
	$(ASML2DOC) stateinspectionservice.asml $(DocDir)\framework.stateinspectionservice.doc

$(DocDir)\framework.serializationtools.doc: serializationtools.asml
	$(ASML2DOC) serializationtools.asml $(DocDir)\framework.serializationtools.doc

$(DocDir)\framework.datageneratorservice.doc: datageneratorservice.asml
	$(ASML2DOC) datageneratorservice.asml $(DocDir)\framework.datageneratorservice.doc

$(DocDir)\framework.modelannotationservice.doc: modelannotationservice.asml
	$(ASML2DOC) modelannotationservice.asml $(DocDir)\framework.modelannotationservice.doc

$(DocDir)\framework.modelannotationtools.doc: modelannotationtools.asml
	$(ASML2DOC) modelannotationtools.asml $(DocDir)\framework.modelannotationtools.doc

$(DocDir)\framework.fsmgenerationservice.doc: fsmgenerationservice.asml
	$(ASML2DOC) fsmgenerationservice.asml $(DocDir)\framework.fsmgenerationservice.doc

$(DocDir)\framework.ontheflyservice.doc: ontheflyservice.asml
	$(ASML2DOC) ontheflyservice.asml $(DocDir)\framework.ontheflyservice.doc


$(DocDir)\framework.explorationservice.doc: explorationservice.asml
	$(ASML2DOC) explorationservice.asml $(DocDir)\framework.explorationservice.doc

$(DocDir)\framework.TestSuiteGenerationService.doc: TestSuiteGenerationService.asml
	$(ASML2DOC) TestSuiteGenerationService.asml $(DocDir)\framework.TestSuiteGenerationService.doc 	

$(DocDir)\framework.testsuitecodegenerationservice.doc: testsuitecodegenerationservice.asml
	$(ASML2DOC) testsuitecodegenerationservice.asml $(DocDir)\framework.testsuitecodegenerationservice.doc 	

$(DocDir)\framework.testdataservice.doc: testdataservice.asml
	$(ASML2DOC) testdataservice.asml $(DocDir)\framework.testdataservice.doc 	

$(DocDir)\framework.conformancetestingservice.doc: conformancetestingservice.asml
	$(ASML2DOC) conformancetestingservice.asml $(DocDir)\framework.conformancetestingservice.doc

$(DocDir)\framework.autoconfigprovider.doc: autoconfigprovider.asml
	$(ASML2DOC) autoconfigprovider.asml $(DocDir)\framework.autoconfigprovider.doc

$(DocDir)\framework.helpservice.doc: helpservice.asml
	$(ASML2DOC) helpservice.asml $(DocDir)\framework.helpservice.doc

install:

