singrdk/base/Windows/csic/Makefile

283 lines
8.3 KiB
Makefile
Raw Normal View History

2008-11-17 18:29:00 -05:00
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