2002-08-01 Miguel de Icaza <miguel@ximian.com>
[mono.git] / mcs / class / corlib / corlib.build
index 011f93c3f8e5a35edda66943c0f973a75d67471d..75dfd3403706aeeb1dbb8b4866dbb5c2333724be 100644 (file)
@@ -4,23 +4,33 @@
 <!-- Target windows builds libraries _for_ windows -->
 <!-- Target linux builds libraries _for_ linux -->
 
-<project name="corlib" default="linux">
+<project name="corlib" default="build">
        <property name="debug" value="true"/>
+       <property name="verbose" value="true"/>
 
-       <target name="linux">
+       <target name="build">
                <mkdir dir="../lib"/>
                <csc target="library" output="../lib/corlib.dll" debug="${debug}">
                        <!-- keep in sync with corlib_cmp.dll below -->
                        <arg value="/nowarn:1595"/>
                        <arg value="/nowarn:0649"/> <!-- field never assigned to -->
                        <arg value="/nowarn:0169"/> <!-- field never used -->
+                       <arg value="/nowarn:0679"/> <!-- internal may be overriden -->
                        <arg value="/unsafe"/>
+
+                       <arg value="/nostdlib"/>        <!-- don't reference mscorlib -->
+                       <arg value="/noconfig"/>        <!-- don't reference ms assemblies -->
+
                        <sources>
                                <includes name="**/*.cs"/>
+
                                <excludes name="Test/**"/>
+                               <excludes name="System.Security.Permissions/SecurityPermissionAttribute.cs"/>   <!-- custom security attributes problem -->
+
+                               <excludes name="Unix/**"/>
+                               <excludes name="Linux/**"/>
                                <excludes name="Windows/**"/>
-                               <excludes name="System.PAL/IOperatingSystem.cs"/>
-                               <excludes name="System.Resources/*"/>
+                               <excludes name="System.PAL/**"/>
                        </sources>
                </csc>
                <csc target="library" output="../lib/corlib_cmp.dll" debug="${debug}">
                        <arg value="/nowarn:1595"/>
                        <arg value="/nowarn:0649"/> <!-- field never assigned to -->
                        <arg value="/nowarn:0169"/> <!-- field never used -->
+                       <arg value="/nowarn:0679"/> <!-- internal may be overriden -->
                        <arg value="/unsafe"/>
+
+                       <arg value="/nostdlib"/>
+                       <arg value="/noconfig"/>
+                       <arg value="/r:mscorlib.dll"/>
+                       
                        <sources>
                                <includes name="**/*.cs"/>
+
                                <excludes name="Test/**"/>
+                               <excludes name="System.Security.Permissions/SecurityPermissionAttribute.cs"/>
+
+                               <excludes name="Unix/**"/>
+                               <excludes name="Linux/**"/>
                                <excludes name="Windows/**"/>
-                               <excludes name="System.PAL/IOperatingSystem.cs"/>
-                               <excludes name="System.Resources/*"/>
-                               <excludes name="System/Object.cs" />
-                               <excludes name="System/ValueType.cs" />
+                               <excludes name="System.PAL/**"/>
+
+                               <excludes name="System/Object.cs"/>
+                               <excludes name="System/ValueType.cs"/>
+                               <excludes name="System/Enum.cs"/>
+                               <excludes name="System/Delegate.cs"/>
+                               <excludes name="System/MulticastDelegate.cs"/>
+                               <excludes name="System/Exception.cs"/>
                        </sources>
                </csc>
                <!-- NUnit can only run under windows right now, so build for windows
                        <arg value="/nowarn:1595"/>
                        <arg value="/nowarn:0649"/> <!-- field never assigned to -->
                        <arg value="/nowarn:0169"/> <!-- field never used -->
+                       <arg value="/nowarn:0679"/> <!-- internal may be overriden -->
                        <arg value="/unsafe"/>
                        <sources>
                                <includes name="**/*.cs"/>
+
                                <excludes name="Test/**"/>
+
+                               <excludes name="Unix/**"/>
                                <excludes name="Linux/**"/>
+                               <excludes name="Windows/**"/>
+                               <excludes name="System.PAL/**"/>
+
                                <excludes name="System/Object.cs"/>
                                <excludes name="System/ValueType.cs"/>
+                               <excludes name="System/Enum.cs"/>
+                               <excludes name="System/Delegate.cs"/>
+                               <excludes name="System/MulticastDelegate.cs"/>
+                               <excludes name="System/Exception.cs"/>
                                <excludes name="System/Type.cs"/>
                                <excludes name="System/MonoType.cs"/>
                                <excludes name="System/Array.cs"/>
                                <excludes name="System/String.cs"/>
                                <excludes name="System/Console.cs"/>
                                <excludes name="System/AppDomain.cs"/>
-                               <excludes name="System.Reflection.Emit/**"/>
                                <excludes name="System/RuntimeTypeHandle.cs"/>
-                               <excludes name="System.PAL/IOperatingSystem.cs"/>
+                               <excludes name="System/ICloneable.cs"/>
+
                                <excludes name="System.Collections/Queue.cs"/>
-                               <excludes name="System.Resources/*"/>
-                               <excludes name="System.Security/CodeAccessPermission.cs"/>
+                               <excludes name="System.Collections/ICollection.cs"/>
+                               <excludes name="System.Collections/IEnumerator.cs"/>
+                               <excludes name="System.Collections/IEnumerable.cs"/>
+                               <excludes name="System.Collections/IList.cs"/>
+                               <excludes name="System.PAL/IOperatingSystem.cs"/>
+                               <excludes name="System.Reflection.Emit/**"/>
+                               <excludes name="System.Runtime.CompilerServices/**"/>
+                               <excludes name="System.Security.Permissions/SecurityPermissionAttribute.cs"/>
                        </sources>
                </csc>
                <nant basedir="Test" target="build"/>
        </target>
 
-       <target name="test" depends="linux">
-               <nant basedir="Test" target="test"/>
-       </target>
-
-       <target name="windows">
+       <target name="mcs-build">
                <mkdir dir="../lib"/>
-               <csc target="library" output="../lib/corlib.dll" debug="${debug}">
-                       <arg value="/nowarn:1595"/>
-                       <arg value="/nowarn:0649"/> <!-- field never assigned to -->
-                       <arg value="/nowarn:0169"/> <!-- field never used -->
-                       <arg value="/unsafe"/>
-                       <sources>
-                               <includes name="**/*.cs"/> 
-                               <excludes name="Test/**"/>
-                               <excludes name="Linux/**"/>
-                               <excludes name="System.PAL/IOperatingSystem.cs"/>
-                               <excludes name="System.Resources/*"/>
-                       </sources>
-               </csc>
-               <csc target="library" output="Test/corlib_res.dll" debug="${debug}">
-                       <arg value="/nowarn:1595"/>
-                       <arg value="/nowarn:0649"/> <!-- field never assigned to -->
-                       <arg value="/nowarn:0169"/> <!-- field never used -->
-                       <arg value="/unsafe"/>
+
+               <mcs target="library" output="../lib/corlib_mcs.dll" debug="false" verbose="${verbose}">
+                       <arg value="--unsafe"/>
+
+                       <arg value="--nostdlib"/>       <!-- don't reference mscorlib -->
+                       <arg value="--noconfig"/>       <!-- don't reference ms assemblies -->
+
                        <sources>
                                <includes name="**/*.cs"/>
+
                                <excludes name="Test/**"/>
+                               <excludes name="System.Security.Permissions/SecurityPermissionAttribute.cs"/>   <!-- custom security attributes problem -->
+
+                               <excludes name="Unix/**"/>
                                <excludes name="Linux/**"/>
-                               <excludes name="System/Object.cs"/>
-                               <excludes name="System/ValueType.cs"/>
-                               <excludes name="System/Type.cs"/>
-                               <excludes name="System/Array.cs"/>
-                               <excludes name="System/String.cs"/>
-                               <excludes name="System/Console.cs"/>
-                               <excludes name="System/AppDomain.cs"/>
-                               <excludes name="System.Reflection.Emit/**"/>
-                               <excludes name="System/RuntimeTypeHandle.cs"/>
-                               <excludes name="System.PAL/IOperatingSystem.cs"/>
-                               <excludes name="System.Collections/Queue.cs"/>
-                               <excludes name="System.Resources/*"/>
-                               <excludes name="System.Security/CodeAccessPermission.cs"/>
+                               <excludes name="Windows/**"/>
+                               <excludes name="System.PAL/**"/>
                        </sources>
-               </csc>
-               <nant basedir="Test" target="build"/>
+               </mcs>
+
+       </target>
+
+       <target name="test" depends="build">
+               <nant basedir="Test" target="test"/>
        </target>
 
        <target name="clean">
                <delete file="../lib/corlib.dll" failonerror="false"/>
+               <delete file="../lib/corlib.pdb" failonerror="false"/>
                <delete file="../lib/corlib_cmp.dll" failonerror="false"/>
+               <delete file="../lib/corlib_cmp.pdb" failonerror="false"/>
                <delete file="Test/corlib_res.dll" failonerror="false"/>
+               <delete file="Test/corlib_res.pdb" failonerror="false"/>
                <nant basedir="Test" target="clean"/>
        </target>
 </project>