2002-08-15 Tim Coleman <tim@timcoleman.com>
[mono.git] / mcs / mcs / makefile
1 CSC=csc.exe
2 CSCFLAGS=/nologo /debug+ /debug:full  /optimize
3
4 VERSION=0.13
5
6 COMMON_SOURCES = cs-parser.cs cs-tokenizer.cs tree.cs location.cs
7
8 COMPILER_SOURCES = \
9         assign.cs                       \
10         attribute.cs                    \
11         driver.cs $(COMMON_SOURCES)     \
12         cfold.cs                        \
13         class.cs                        \
14         codegen.cs                      \
15         const.cs                        \
16         constant.cs                     \
17         decl.cs                         \
18         delegate.cs                     \
19         enum.cs                         \
20         ecore.cs                        \
21         expression.cs                   \
22         genericparser.cs                \
23         interface.cs                    \
24         literal.cs                      \
25         modifiers.cs                    \
26         namespace.cs                    \
27         parameter.cs                    \
28         pending.cs                      \
29         report.cs                       \
30         rootcontext.cs                  \
31         statement.cs                    \
32         support.cs                      \
33         typemanager.cs
34
35 TEST_TOKENIZER_SOURCES = test-token.cs $(COMMON_SOURCES)
36
37 all: mcs.exe
38
39 mcs.exe: cs-parser.cs $(COMPILER_SOURCES)
40         $(CSC) $(CSCFLAGS) /target:exe /r:System.dll /out:mcs.exe $(COMPILER_SOURCES)
41
42 res:
43         echo --target exe -o mcs2.exe $(COMPILER_SOURCES) > response
44
45 dum: cs-parser.cs
46         $(TIME) $(RUNTIME) ./mcs.exe --target exe -o mcs2.exe $(COMPILER_SOURCES)
47
48 mcs2.exe: mcs.exe
49         $(TIME) $(RUNTIME) ./mcs.exe $(XFLAGS) --target exe -o mcs2.exe $(COMPILER_SOURCES)
50
51 mcs3.exe: mcs2.exe
52         $(TIME) $(RUNTIME) ./mcs2.exe --target exe -o mcs3.exe $(COMPILER_SOURCES)
53
54 mcs-mono.exe: cs-parser.cs $(COMPILER_SOURCES) 
55         mono --precompile @mcs.exe mcs.exe --timestamp -o mcs-mono.exe $(COMPILER_SOURCES) 
56 mm:
57         mint $(MINTFLAGS) ./mcs.exe $(MCSFLAGS) --target exe -o mcs4.exe $(COMPILER_SOURCES)
58
59 mcs-mono2.exe: cs-parser.cs $(COMPILER_SOURCES)
60         mono mcs.exe --timestamp -o mcs-mono2.exe -g $(COMPILER_SOURCES)
61
62 mcs-mono3.exe: cs-parser.cs $(COMPILER_SOURCES)
63         mono --debug mcs-mono2.exe -o mcs-mono3.exe -g $(COMPILER_SOURCES)
64
65 mcs-mono4.exe: cs-parser.cs $(COMPILER_SOURCES)
66         mono --debug mcs-mono3.exe -o mcs-mono4.exe -g $(COMPILER_SOURCES)
67
68 monomcs: cs-parser.cs
69         mcs $(MCSFLAGS) --target exe -o mcs4.exe $(COMPILER_SOURCES)
70
71 test: mcs3.exe
72         ls -l mcs2.exe mcs3.exe
73
74 docs: cs-parser.cs
75         $(CSC) $(CSCFLAGS) /doc:docs.xml /nowarn:1591 /target:exe /r:System.dll /out:mcs.exe $(COMPILER_SOURCES)
76
77 windows: all
78
79 linux: all
80
81 opt:
82         $(CSC) /optimize+ /target:exe /r:System.dll /out:mcs.exe $(COMPILER_SOURCES)
83
84 old: test-tokenizer.exe
85 test-tokenizer.exe: $(TEST_TOKENIZER_SOURCES)
86         $(CSC) /target:exe /out:test-tokenizer.exe $(TEST_TOKENIZER_SOURCES)
87
88 bison:
89         perl -pe 's/\015//' < cs-parser.jay > x.y
90         bison --debug --verbose x.y
91
92 cs-parser.cs: cs-parser.jay
93         ../jay/jay -ctv < ../jay/skeleton.cs cs-parser.jay > cs-parser.cs
94
95 pn:
96         ../jay/jay -ctv < ../jay/skeleton.cs cs-parser.jay | grep -v '#line' > cs-parser.cs
97
98 #statementCollection.cs: X-Collection.cs
99 #       sed -e "s/@CONTAINEE@/Statement/g" -e "s/@arrayname@/statements/g" < X-Collection.cs > statementCollection.cs
100
101 #parameterCollection.cs: X-Collection.cs
102 #       sed -e "s/@CONTAINEE@/Parameter/g" -e "s/@arrayname@/parameters/g" < X-Collection.cs > parameterCollection.cs
103
104 clean:
105         rm -f mcs.exe cs-parser.cs y.output mcs.pdb *~ .*~ mcs.log response