2003-04-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / mcs / class / corlib / corlib.build
1 <?xml version="1.0" encoding="iso-8859-1"?>
2
3 <!-- NAnt build file for corlib.dll -->
4 <!-- Target windows builds libraries _for_ windows -->
5 <!-- Target linux builds libraries _for_ linux -->
6
7 <project name="corlib" default="build">
8         <property name="debug" value="true"/>
9         <property name="verbose" value="true"/>
10
11         <target name="build">
12                 <mkdir dir="../lib"/>
13                 <csc target="library" output="../lib/corlib.dll" debug="${debug}">
14                         <!-- keep in sync with corlib_cmp.dll below -->
15                         <arg value="/nowarn:1595"/>
16                         <arg value="/nowarn:0649"/> <!-- field never assigned to -->
17                         <arg value="/nowarn:0169"/> <!-- field never used -->
18                         <arg value="/nowarn:0679"/> <!-- internal may be overriden -->
19                         <arg value="/unsafe"/>
20
21                         <arg value="/nostdlib"/>        <!-- don't reference mscorlib -->
22                         <arg value="/noconfig"/>        <!-- don't reference ms assemblies -->
23
24                         <sources>
25                                 <includes name="**/*.cs"/>
26
27                                 <excludes name="Test/**"/>
28                                 <excludes name="System.Security.Permissions/SecurityPermissionAttribute.cs"/>   <!-- custom security attributes problem -->
29
30                                 <excludes name="Unix/**"/>
31                                 <excludes name="Linux/**"/>
32                                 <excludes name="Windows/**"/>
33                                 <excludes name="System.PAL/**"/>
34                         </sources>
35                 </csc>
36                 <csc target="library" output="../lib/corlib_cmp.dll" debug="${debug}">
37                         <!-- This dll is used to compare with mscorlib -->
38                         <!-- It should be the same as corlib.dll minus Object and ValueTyp -->
39                         <arg value="/nowarn:1595"/>
40                         <arg value="/nowarn:0649"/> <!-- field never assigned to -->
41                         <arg value="/nowarn:0169"/> <!-- field never used -->
42                         <arg value="/nowarn:0679"/> <!-- internal may be overriden -->
43                         <arg value="/unsafe"/>
44
45                         <arg value="/nostdlib"/>
46                         <arg value="/noconfig"/>
47                         <arg value="/r:mscorlib.dll"/>
48                         
49                         <sources>
50                                 <includes name="**/*.cs"/>
51
52                                 <excludes name="Test/**"/>
53                                 <excludes name="System.Security.Permissions/SecurityPermissionAttribute.cs"/>
54
55                                 <excludes name="Unix/**"/>
56                                 <excludes name="Linux/**"/>
57                                 <excludes name="Windows/**"/>
58                                 <excludes name="System.PAL/**"/>
59
60                                 <excludes name="System/Object.cs"/>
61                                 <excludes name="System/ValueType.cs"/>
62                                 <excludes name="System/Enum.cs"/>
63                                 <excludes name="System/Delegate.cs"/>
64                                 <excludes name="System/MulticastDelegate.cs"/>
65                                 <excludes name="System.Runtime.CompilerServices/RuntimeHelpers.cs"/>
66                                 <!-- <excludes name="System/Exception.cs"/> -->
67
68                                 <!-- DecimalConstantAttribute presence causes security exceptions in corcompare -->
69                                 <excludes name="System/Decimal.cs"/>
70                                 <excludes name="System/DecimalFormatter.cs"/>
71                         </sources>
72                 </csc>
73                 <!-- NUnit can only run under windows right now, so build for windows
74                         even though this is inside the linux target -->
75                 <csc target="library" output="Test/corlib_res.dll" debug="${debug}">
76                         <arg value="/nowarn:1595"/>
77                         <arg value="/nowarn:0649"/> <!-- field never assigned to -->
78                         <arg value="/nowarn:0169"/> <!-- field never used -->
79                         <arg value="/nowarn:0679"/> <!-- internal may be overriden -->
80                         <arg value="/unsafe"/>
81                         <sources>
82                                 <includes name="**/*.cs"/>
83
84                                 <excludes name="Test/**"/>
85
86                                 <excludes name="Unix/**"/>
87                                 <excludes name="Linux/**"/>
88                                 <excludes name="Windows/**"/>
89                                 <excludes name="System.PAL/**"/>
90
91                                 <excludes name="System/Object.cs"/>
92                                 <excludes name="System/ValueType.cs"/>
93                                 <excludes name="System/Enum.cs"/>
94                                 <excludes name="System/Delegate.cs"/>
95                                 <excludes name="System/MulticastDelegate.cs"/>
96                                 <!-- <excludes name="System/Type.cs"/> -->
97                                 <excludes name="System/MonoType.cs"/>
98                                 <excludes name="System/Array.cs"/>
99                                 <excludes name="System/String.cs"/>
100                                 <excludes name="System/Console.cs"/>
101                                 <excludes name="System/RuntimeTypeHandle.cs"/>
102                                 <excludes name="System/ICloneable.cs"/>
103                                 <excludes name="System.Runtime.CompilerServices/RuntimeHelpers.cs"/>
104                                 <!-- <excludes name="System/AppDomain.cs"/> -->
105                                 <!-- <excludes name="System/Exception.cs"/> -->
106
107                                 <excludes name="System.Collections/Queue.cs"/>
108                                 <excludes name="System.Collections/ICollection.cs"/>
109                                 <excludes name="System.Collections/IEnumerator.cs"/>
110                                 <excludes name="System.Collections/IEnumerable.cs"/>
111                                 <excludes name="System.Collections/IList.cs"/>
112                                 <excludes name="System.PAL/IOperatingSystem.cs"/>
113                                 <!-- <excludes name="System.Reflection.Emit/**"/> -->
114                                 <!-- <excludes name="System.Runtime.CompilerServices/**"/> -->
115                                 <excludes name="System.Security.Permissions/SecurityPermissionAttribute.cs"/>
116                         </sources>
117                 </csc>
118                 <nant basedir="Test" target="build"/>
119         </target>
120
121         <target name="mcs-build">
122                 <mkdir dir="../lib"/>
123
124                 <mcs target="library" output="../lib/corlib_mcs.dll" debug="false" verbose="${verbose}">
125                         <arg value="--unsafe"/>
126
127                         <arg value="--nostdlib"/>       <!-- don't reference mscorlib -->
128                         <arg value="--noconfig"/>       <!-- don't reference ms assemblies -->
129
130                         <sources>
131                                 <includes name="**/*.cs"/>
132
133                                 <excludes name="Test/**"/>
134                                 <excludes name="System.Security.Permissions/SecurityPermissionAttribute.cs"/>   <!-- custom security attributes problem -->
135
136                                 <excludes name="Unix/**"/>
137                                 <excludes name="Linux/**"/>
138                                 <excludes name="Windows/**"/>
139                                 <excludes name="System.PAL/**"/>
140                         </sources>
141                 </mcs>
142
143         </target>
144
145         <target name="test" depends="build">
146                 <nant basedir="Test" target="test"/>
147         </target>
148
149         <target name="clean">
150                 <delete file="../lib/corlib.dll" failonerror="false"/>
151                 <delete file="../lib/corlib.pdb" failonerror="false"/>
152                 <delete file="../lib/corlib_cmp.dll" failonerror="false"/>
153                 <delete file="../lib/corlib_cmp.pdb" failonerror="false"/>
154                 <delete file="Test/corlib_res.dll" failonerror="false"/>
155                 <delete file="Test/corlib_res.pdb" failonerror="false"/>
156                 <nant basedir="Test" target="clean"/>
157         </target>
158 </project>