283 lines
8.3 KiB
Makefile
283 lines
8.3 KiB
Makefile
DOTNETDIR=$(WINDIR)\Microsoft.NET\Framework\v2.0.50727
|
|
BIN=bin^\
|
|
B=Debug^\
|
|
RM=del /q
|
|
ICONT=$(BIN)nticont -u
|
|
CSC="$(DOTNETDIR)\csc" -nologo
|
|
CSCFLAGS=-d:DEBUG -debug -lib:Debug -lib:base
|
|
|
|
GRAMMAR = \
|
|
csharp-gram.xls \
|
|
typeswitch\typeswitch-gram.xls
|
|
|
|
PARSER = \
|
|
parser\disambiguate.cs \
|
|
parser\Enumerators.cs \
|
|
parser\Filters.cs \
|
|
parser\glr.cs \
|
|
parser\Image.cs \
|
|
parser\InputElementEnumerator.cs \
|
|
parser\KeywordHelp.cs \
|
|
parser\lexer.cs \
|
|
parser\parse2AST.cs \
|
|
parser\parser.cs \
|
|
parser\PPKeywordHelp.cs \
|
|
parser\Preprocessor.cs \
|
|
parser\tables.cs \
|
|
parser\UnicodeHelp.cs
|
|
|
|
BASE = \
|
|
base\AST.cs base\typeswitch-AST.cs \
|
|
base\ASTRoot.cs \
|
|
base\Attributes.cs \
|
|
base\BartokReader.cs \
|
|
base\BuiltinTypes.cs \
|
|
base\Debug.cs \
|
|
base\Imports.cs \
|
|
base\InputElement.cs \
|
|
base\Lists.cs \
|
|
base\MessageWriter.cs \
|
|
base\NullReader.cs \
|
|
base\ReflectionReader.cs \
|
|
base\SymbolRoot.cs \
|
|
base\Symbols.cs \
|
|
base\SymbolTable.cs \
|
|
base\Tracking.cs \
|
|
base\Types.cs \
|
|
base\VisitorDelegate.cs \
|
|
|
|
BROWSER = \
|
|
Browser\Browser.cs \
|
|
Browser\BrowserForm.cs \
|
|
Browser\BrowserVisitor.cs \
|
|
Browser\CodeDomTreeView.cs \
|
|
Browser\HistoryView.cs \
|
|
Browser\ILTextView.cs \
|
|
Browser\ObjectTreeView.cs \
|
|
Browser\ObjectBrowserForm.cs \
|
|
Browser\ParentView.cs \
|
|
Browser\SourceTabView.cs \
|
|
Browser\SourceTextView.cs \
|
|
Browser\tracking-ilgen.cs
|
|
|
|
GENS = \
|
|
$(BIN)Excel.dll \
|
|
$(BIN)excel2gram.exe \
|
|
$(BIN)mkKeyword.exe \
|
|
$(BIN)mkOperator.exe \
|
|
$(BIN)mkUnicode.exe \
|
|
$(BIN)mkvisitor.exe \
|
|
$(BIN)pgen.exe \
|
|
$(BIN)tlist.exe \
|
|
base\base.dll \
|
|
bind\bind.dll \
|
|
codedom\codedom.dll \
|
|
parser\parser.dll \
|
|
$BSHDocVw.dll \
|
|
rewrite\rewrite.dll \
|
|
typecheck\typecheck.dll \
|
|
xml\xml.dll \
|
|
csharp-gram.keywords \
|
|
csharp.g \
|
|
parser\KeywordHelp.cs \
|
|
keywords.txt \
|
|
lcsc.exe \
|
|
base\Lists.cs \
|
|
operators.txt \
|
|
parser\parse2AST.cs \
|
|
parser\PPKeywordHelp.cs \
|
|
parser\UnicodeHelp.cs
|
|
|
|
.SUFFIXES:
|
|
|
|
all:: lcsc.exe $(BIN)mkvisitor.exe operators.txt \
|
|
bind\bind.dll \
|
|
Browser\Browser.dll \
|
|
codedom\codedom.dll \
|
|
Compiler\Compiler.dll \
|
|
emit\emit.dll \
|
|
ilgen\ilgen.dll \
|
|
parser\parser.dll \
|
|
rewrite\rewrite.dll \
|
|
sortmembers\sortmembers.dll \
|
|
source\source.dll \
|
|
typecheck\typecheck.dll \
|
|
xml\xml.dll
|
|
|
|
prereqs: $(PARSER) $(BASE)
|
|
|
|
clean::
|
|
-$(RM) $(GENS) $B*.pdb $(BIN)*.pdb *.pdb
|
|
|
|
clobber:
|
|
$(RM) /s base.dll
|
|
$(RM) /s bind.dll
|
|
$(RM) /s Browser.dll
|
|
$(RM) /s codedom.dll
|
|
$(RM) /s Compiler.dll
|
|
$(RM) /s emit.dll
|
|
$(RM) /s ilgen.dll
|
|
$(RM) /s mkvisitor.dll
|
|
$(RM) /s parser.dll
|
|
$(RM) /s rewrite.dll
|
|
$(RM) /s sortmembers.dll
|
|
$(RM) /s source.dll
|
|
$(RM) /s typecheck.dll
|
|
$(RM) /s typeswitch.dll
|
|
$(RM) /s xml.dll
|
|
$(RM) /s base.pdb
|
|
$(RM) /s bind.pdb
|
|
$(RM) /s Browser.pdb
|
|
$(RM) /s codedom.pdb
|
|
$(RM) /s Compiler.pdb
|
|
$(RM) /s emit.pdb
|
|
$(RM) /s ilgen.pdb
|
|
$(RM) /s mkvisitor.pdb
|
|
$(RM) /s parser.pdb
|
|
$(RM) /s rewrite.pdb
|
|
$(RM) /s sortmembers.pdb
|
|
$(RM) /s source.pdb
|
|
$(RM) /s typecheck.pdb
|
|
$(RM) /s typeswitch.pdb
|
|
$(RM) /s xml.pdb
|
|
$(RM) csic.exe
|
|
$(RM) csic.pdb
|
|
$(RM) parser\tables.cs
|
|
|
|
lcsc.exe: driver.cs Compiler\Compiler.dll base\base.dll bind\bind.dll ilgen\ilgen.dll typecheck\typecheck.dll
|
|
$(CSC) $(CSCFLAGS) -lib:Compiler,ilgen,bind,typecheck /r:Compiler.dll,base.dll,bind.dll,ilgen.dll,typecheck.dll /out:$@ driver.cs
|
|
|
|
Compiler\Compiler.dll: Compiler\Compiler.cs parser\parser.dll base\base.dll
|
|
$(CSC) $(CSCFLAGS) -lib:parser /r:parser.dll,base.dll /out:$@ /target:library /out:$@ Compiler\Compiler.cs
|
|
|
|
parser\parser.dll: $(PARSER) base\base.dll
|
|
$(CSC) $(CSCFLAGS) /r:base.dll /target:library /out:$@ $(PARSER)
|
|
|
|
base\base.dll: $(BASE) $BSHDocVw.dll
|
|
$(CSC) $(CSCFLAGS) /r:Bartok.MSIL.dll,SHDocVw.dll /target:library /out:$@ $(BASE)
|
|
|
|
$BSHDocVw.dll:
|
|
tlbimp %WINDIR%/system32/shdocvw.dll /out:$@
|
|
|
|
bind\bind.dll: bind\bind.cs base\base.dll bind\csi-bind.cs
|
|
$(CSC) $(CSCFLAGS) /target:library /r:base.dll /out:$@ bind\bind.cs bind\csi-bind.cs
|
|
|
|
typecheck\typecheck.dll: typecheck\typecheck.cs parser\parser.dll bind\bind.dll base\base.dll typecheck\csi-typecheck.cs
|
|
$(CSC) $(CSCFLAGS) /target:library -lib:bind -lib:parser /r:parser.dll,bind.dll,base.dll /out:$@ typecheck\typecheck.cs typecheck\csi-typecheck.cs
|
|
|
|
xml\xml.dll: xml\xml.cs base\base.dll
|
|
$(CSC) $(CSCFLAGS) /r:base.dll /target:library /out:$@ xml\xml.cs
|
|
|
|
codedom\codedom.dll: codedom\codedom2.cs base\base.dll
|
|
$(CSC) $(CSCFLAGS) /target:library /r:base.dll /out:$@ codedom\codedom2.cs
|
|
|
|
emit\emit.dll: emit\emit.cs emit\gen.cs emit\execute.cs emit\save.cs base\base.dll
|
|
$(CSC) $(CSCFLAGS) /target:library /r:base.dll /out:$@ emit\emit.cs emit\gen.cs emit\execute.cs emit\save.cs
|
|
|
|
ilgen\ilgen.dll: ilgen\ilgen.cs emit\emit.dll source\source.dll base\base.dll ilgen\csi-ilgen.cs
|
|
$(CSC) $(CSCFLAGS) /target:library -lib:source -lib:emit /r:emit.dll,source.dll,base.dll,Bartok.MSIL.dll /out:$@ ilgen\ilgen.cs ilgen\csi-ilgen.cs
|
|
|
|
rewrite\rewrite.dll: rewrite\rewrite.cs base\base.dll
|
|
$(CSC) $(CSCFLAGS) /nowarn:0642 /target:library /r:base.dll /out:$@ rewrite\rewrite.cs
|
|
|
|
source\source.dll: source\source.cs base\base.dll
|
|
$(CSC) $(CSCFLAGS) /target:library /r:base.dll /out:$@ source\source.cs
|
|
|
|
sortmembers\sortmembers.dll: sortmembers\sortmembers.cs base\base.dll
|
|
$(CSC) $(CSCFLAGS) /target:library /r:base.dll /out:$@ sortmembers\sortmembers.cs
|
|
|
|
Browser\Browser.dll: $(BROWSER) codedom\codedom.dll ilgen\ilgen.dll base\base.dll
|
|
$(CSC) $(CSCFLAGS) /target:library -lib:codedom -lib:ilgen /r:codedom.dll,ilgen.dll,base.dll /out:$@ $(BROWSER)
|
|
|
|
$(BIN)tlist.exe: tlist.cs
|
|
$(CSC) $(CSCFLAGS) /out:$@ tlist.cs
|
|
|
|
$(BIN)mkvisitor.exe: mkvisitor.cs
|
|
$(CSC) $(CSCFLAGS) /r:base.dll /out:$@ mkvisitor.cs
|
|
|
|
base\Lists.cs: $(BIN)tlist.exe Makefile
|
|
$(BIN)tlist accessor_declaration attribute attribute_section expression \
|
|
argument statement declarator \
|
|
declaration using_directive parameter type event_accessor \
|
|
enum_member_declaration catch_clause switch_section switch_label switch_expression \
|
|
typeswitch_section variable_initializer named_argument compilation_unit \
|
|
int string InputElement VisitorDelegate InterfaceType Symbol Method Formal AST \
|
|
type_parameter type_parameter_constraints_clause >$@
|
|
|
|
operators.txt: $(BIN)mkOperator.exe OperatorData.txt
|
|
$(BIN)mkOperator < OperatorData.txt > operators.txt
|
|
|
|
parser\PPKeywordHelp.cs: $(BIN)mkKeyword.exe ppkeywords.txt
|
|
$(BIN)mkKeyword PPKeywordHelp < ppkeywords.txt > $@
|
|
|
|
parser\KeywordHelp.cs: $(BIN)mkKeyword.exe csharp-gram.keywords
|
|
$(BIN)mkKeyword KeywordHelp < csharp-gram.keywords > $@
|
|
|
|
parser\UnicodeHelp.cs: $(BIN)mkUnicode.exe UnicodeData.txt
|
|
$(BIN)mkUnicode < UnicodeData.txt > $@
|
|
|
|
parser\parse2AST.cs: $(GRAMMAR) $(BIN)excel2gram.exe
|
|
$(BIN)excel2gram rewrite $(GRAMMAR) > $@
|
|
|
|
csharp.g: $(GRAMMAR) $(BIN)excel2gram.exe
|
|
$(BIN)excel2gram gram $(GRAMMAR) > csharp.g
|
|
|
|
parser\tables.cs: $(BIN)pgen.exe csharp.g
|
|
$(BIN)pgen < csharp.g > $@
|
|
|
|
csharp-gram.keywords: $(GRAMMAR) $(BIN)excel2gram.exe
|
|
$(BIN)excel2gram keywords $(GRAMMAR) > csharp-gram.keywords
|
|
|
|
PGENSRCS = \
|
|
glr.icn \
|
|
main.icn
|
|
|
|
$(BIN)pgen.exe: $(PGENSRCS)
|
|
$(ICONT) -o $@ $(PGENSRCS)
|
|
|
|
# Excel.dll is checked in.
|
|
# $(BIN)Excel.dll:
|
|
# tlbimp /out:$@ $(EXCEL)
|
|
|
|
$(BIN)excel2gram.exe: excel2gram.cs $(BIN)Excel.dll
|
|
$(CSC) $(CSCFLAGS) /out:$@ /r:$(BIN)Excel.dll excel2gram.cs
|
|
|
|
$(BIN)mkKeyword.exe: mkKeyword.icn
|
|
$(ICONT) -o $@ mkKeyword.icn
|
|
|
|
$(BIN)mkOperator.exe: mkOperator.icn
|
|
$(ICONT) -o $@ mkOperator.icn
|
|
|
|
$(BIN)mkUnicode.exe: mkUnicode.icn
|
|
$(ICONT) -o $@ mkUnicode.icn
|
|
|
|
# typeswitch
|
|
|
|
all:: typeswitch\typeswitch.dll
|
|
|
|
typeswitch\typeswitch.dll: \
|
|
typeswitch\typeswitch-bind.cs \
|
|
typeswitch\typeswitch-typecheck.cs \
|
|
typeswitch\typeswitch-rewrite.cs \
|
|
typeswitch\typeswitch-ilgen.cs \
|
|
typeswitch\typeswitch-source.cs \
|
|
base\base.dll \
|
|
parser\parser.dll \
|
|
bind\bind.dll \
|
|
typecheck\typecheck.dll \
|
|
rewrite\rewrite.dll \
|
|
emit\emit.dll \
|
|
ilgen\ilgen.dll \
|
|
source\source.dll
|
|
$(CSC) $(CSCFLAGS) /target:library \
|
|
/r:base.dll,bind\bind.dll,typecheck\typecheck.dll,rewrite\rewrite.dll \
|
|
/r:ilgen\ilgen.dll,emit\emit.dll,source\source.dll /out:$@ \
|
|
typeswitch\typeswitch-bind.cs \
|
|
typeswitch\typeswitch-typecheck.cs \
|
|
typeswitch\typeswitch-rewrite.cs \
|
|
typeswitch\typeswitch-ilgen.cs \
|
|
typeswitch\typeswitch-source.cs
|
|
|
|
clean::
|
|
-$(RM) typeswitch\typeswitch.dll
|