<!-- 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>