2002-08-01 Miguel de Icaza <miguel@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/Exception.cs"/>
66                         </sources>
67                 </csc>
68                 <!-- NUnit can only run under windows right now, so build for windows
69                         even though this is inside the linux target -->
70                 <csc target="library" output="Test/corlib_res.dll" debug="${debug}">
71                         <arg value="/nowarn:1595"/>
72                         <arg value="/nowarn:0649"/> <!-- field never assigned to -->
73                         <arg value="/nowarn:0169"/> <!-- field never used -->
74                         <arg value="/nowarn:0679"/> <!-- internal may be overriden -->
75                         <arg value="/unsafe"/>
76                         <sources>
77                                 <includes name="**/*.cs"/>
78
79                                 <excludes name="Test/**"/>
80
81                                 <excludes name="Unix/**"/>
82                                 <excludes name="Linux/**"/>
83                                 <excludes name="Windows/**"/>
84                                 <excludes name="System.PAL/**"/>
85
86                                 <excludes name="System/Object.cs"/>
87                                 <excludes name="System/ValueType.cs"/>
88                                 <excludes name="System/Enum.cs"/>
89                                 <excludes name="System/Delegate.cs"/>
90                                 <excludes name="System/MulticastDelegate.cs"/>
91                                 <excludes name="System/Exception.cs"/>
92                                 <excludes name="System/Type.cs"/>
93                                 <excludes name="System/MonoType.cs"/>
94                                 <excludes name="System/Array.cs"/>
95                                 <excludes name="System/String.cs"/>
96                                 <excludes name="System/Console.cs"/>
97                                 <excludes name="System/AppDomain.cs"/>
98                                 <excludes name="System/RuntimeTypeHandle.cs"/>
99                                 <excludes name="System/ICloneable.cs"/>
100
101                                 <excludes name="System.Collections/Queue.cs"/>
102                                 <excludes name="System.Collections/ICollection.cs"/>
103                                 <excludes name="System.Collections/IEnumerator.cs"/>
104                                 <excludes name="System.Collections/IEnumerable.cs"/>
105                                 <excludes name="System.Collections/IList.cs"/>
106                                 <excludes name="System.PAL/IOperatingSystem.cs"/>
107                                 <excludes name="System.Reflection.Emit/**"/>
108                                 <excludes name="System.Runtime.CompilerServices/**"/>
109                                 <excludes name="System.Security.Permissions/SecurityPermissionAttribute.cs"/>
110                         </sources>
111                 </csc>
112                 <nant basedir="Test" target="build"/>
113         </target>
114
115         <target name="mcs-build">
116                 <mkdir dir="../lib"/>
117
118                 <mcs target="library" output="../lib/corlib_mcs.dll" debug="false" verbose="${verbose}">
119                         <arg value="--unsafe"/>
120
121                         <arg value="--nostdlib"/>       <!-- don't reference mscorlib -->
122                         <arg value="--noconfig"/>       <!-- don't reference ms assemblies -->
123
124                         <sources>
125                                 <includes name="**/*.cs"/>
126
127                                 <excludes name="Test/**"/>
128                                 <excludes name="System.Security.Permissions/SecurityPermissionAttribute.cs"/>   <!-- custom security attributes problem -->
129
130                                 <excludes name="Unix/**"/>
131                                 <excludes name="Linux/**"/>
132                                 <excludes name="Windows/**"/>
133                                 <excludes name="System.PAL/**"/>
134                         </sources>
135                 </mcs>
136
137         </target>
138
139         <target name="test" depends="build">
140                 <nant basedir="Test" target="test"/>
141         </target>
142
143         <target name="clean">
144                 <delete file="../lib/corlib.dll" failonerror="false"/>
145                 <delete file="../lib/corlib.pdb" failonerror="false"/>
146                 <delete file="../lib/corlib_cmp.dll" failonerror="false"/>
147                 <delete file="../lib/corlib_cmp.pdb" failonerror="false"/>
148                 <delete file="Test/corlib_res.dll" failonerror="false"/>
149                 <delete file="Test/corlib_res.pdb" failonerror="false"/>
150                 <nant basedir="Test" target="clean"/>
151         </target>
152 </project>