[build] Change the way how mcs references are passed to compiler to always use full...
authorMarek Safar <marek.safar@gmail.com>
Mon, 4 Apr 2016 11:42:47 +0000 (13:42 +0200)
committerMarek Safar <marek.safar@gmail.com>
Mon, 4 Apr 2016 11:48:44 +0000 (13:48 +0200)
One of csc prerequisites because csc uses -lib as path which is considered after
RuntimeEnvironment.GetRuntimeDirectory which makes -lib useless

326 files changed:
docs/docs.make
mcs/build/executable.make
mcs/build/library.make
mcs/build/profiles/build.make
mcs/build/profiles/mobile.make
mcs/build/profiles/mobile_static.make
mcs/build/profiles/monodroid.make
mcs/build/profiles/monotouch_runtime.make
mcs/build/profiles/net_4_x.make
mcs/build/profiles/xammac.make
mcs/build/profiles/xbuild_12.make
mcs/build/profiles/xbuild_14.make
mcs/build/rules.make
mcs/build/tests.make
mcs/class/Accessibility/Makefile
mcs/class/Commons.Xml.Relaxng/Makefile
mcs/class/Compat.ICSharpCode.SharpZipLib/Makefile
mcs/class/Cscompmgd/Makefile
mcs/class/CustomMarshalers/Makefile
mcs/class/Facades/Microsoft.Win32.Primitives/Makefile
mcs/class/Facades/Microsoft.Win32.Registry.AccessControl/Makefile
mcs/class/Facades/Microsoft.Win32.Registry/Makefile
mcs/class/Facades/System.AppContext/Makefile
mcs/class/Facades/System.Collections.Concurrent/Makefile
mcs/class/Facades/System.Collections.NonGeneric/Makefile
mcs/class/Facades/System.Collections.Specialized/Makefile
mcs/class/Facades/System.Collections/Makefile
mcs/class/Facades/System.ComponentModel.Annotations/Makefile
mcs/class/Facades/System.ComponentModel.EventBasedAsync/Makefile
mcs/class/Facades/System.ComponentModel.Primitives/Makefile
mcs/class/Facades/System.ComponentModel.TypeConverter/Makefile
mcs/class/Facades/System.ComponentModel/Makefile
mcs/class/Facades/System.Console/Makefile
mcs/class/Facades/System.Data.Common/Makefile
mcs/class/Facades/System.Data.SqlClient/Makefile
mcs/class/Facades/System.Diagnostics.Contracts/Makefile
mcs/class/Facades/System.Diagnostics.Debug/Makefile
mcs/class/Facades/System.Diagnostics.FileVersionInfo/Makefile
mcs/class/Facades/System.Diagnostics.PerformanceCounter/Makefile
mcs/class/Facades/System.Diagnostics.Process/Makefile
mcs/class/Facades/System.Diagnostics.StackTrace/Makefile
mcs/class/Facades/System.Diagnostics.TextWriterTraceListener/Makefile
mcs/class/Facades/System.Diagnostics.Tools/Makefile
mcs/class/Facades/System.Diagnostics.TraceEvent/Makefile
mcs/class/Facades/System.Diagnostics.TraceSource/Makefile
mcs/class/Facades/System.Diagnostics.Tracing/Makefile
mcs/class/Facades/System.Dynamic.Runtime/Makefile
mcs/class/Facades/System.Globalization.Calendars/Makefile
mcs/class/Facades/System.Globalization.Extensions/Makefile
mcs/class/Facades/System.Globalization/Makefile
mcs/class/Facades/System.IO.Compression.ZipFile/Makefile
mcs/class/Facades/System.IO.FileSystem.AccessControl/Makefile
mcs/class/Facades/System.IO.FileSystem.DriveInfo/Makefile
mcs/class/Facades/System.IO.FileSystem.Primitives/Makefile
mcs/class/Facades/System.IO.FileSystem.Watcher/Makefile
mcs/class/Facades/System.IO.FileSystem/Makefile
mcs/class/Facades/System.IO.IsolatedStorage/Makefile
mcs/class/Facades/System.IO.MemoryMappedFiles/Makefile
mcs/class/Facades/System.IO.Pipes/Makefile
mcs/class/Facades/System.IO.UnmanagedMemoryStream/Makefile
mcs/class/Facades/System.IO/Makefile
mcs/class/Facades/System.Linq.Expressions/Makefile
mcs/class/Facades/System.Linq.Parallel/Makefile
mcs/class/Facades/System.Linq.Queryable/Makefile
mcs/class/Facades/System.Linq/Makefile
mcs/class/Facades/System.Net.AuthenticationManager/Makefile
mcs/class/Facades/System.Net.Cache/Makefile
mcs/class/Facades/System.Net.Http.WebRequestHandler/Makefile
mcs/class/Facades/System.Net.HttpListener/Makefile
mcs/class/Facades/System.Net.Mail/Makefile
mcs/class/Facades/System.Net.NameResolution/Makefile
mcs/class/Facades/System.Net.NetworkInformation/Makefile
mcs/class/Facades/System.Net.Primitives/Makefile
mcs/class/Facades/System.Net.Requests/Makefile
mcs/class/Facades/System.Net.Security/Makefile
mcs/class/Facades/System.Net.ServicePoint/Makefile
mcs/class/Facades/System.Net.Sockets/Makefile
mcs/class/Facades/System.Net.Utilities/Makefile
mcs/class/Facades/System.Net.WebHeaderCollection/Makefile
mcs/class/Facades/System.Net.WebSockets.Client/Makefile
mcs/class/Facades/System.Net.WebSockets/Makefile
mcs/class/Facades/System.ObjectModel/Makefile
mcs/class/Facades/System.Private.CoreLib.InteropServices/Makefile
mcs/class/Facades/System.Private.CoreLib.Threading/Makefile
mcs/class/Facades/System.Reflection.Emit.ILGeneration/Makefile
mcs/class/Facades/System.Reflection.Emit.Lightweight/Makefile
mcs/class/Facades/System.Reflection.Emit/Makefile
mcs/class/Facades/System.Reflection.Extensions/Makefile
mcs/class/Facades/System.Reflection.Primitives/Makefile
mcs/class/Facades/System.Reflection.TypeExtensions/Makefile
mcs/class/Facades/System.Reflection/Makefile
mcs/class/Facades/System.Resources.ReaderWriter/Makefile
mcs/class/Facades/System.Resources.ResourceManager/Makefile
mcs/class/Facades/System.Runtime.CompilerServices.VisualC/Makefile
mcs/class/Facades/System.Runtime.Extensions/Makefile
mcs/class/Facades/System.Runtime.Handles/Makefile
mcs/class/Facades/System.Runtime.InteropServices.WindowsRuntime/Makefile
mcs/class/Facades/System.Runtime.InteropServices/Makefile
mcs/class/Facades/System.Runtime.Numerics/Makefile
mcs/class/Facades/System.Runtime.Serialization.Json/Makefile
mcs/class/Facades/System.Runtime.Serialization.Primitives/Makefile
mcs/class/Facades/System.Runtime.Serialization.Xml/Makefile
mcs/class/Facades/System.Runtime/Makefile
mcs/class/Facades/System.Security.AccessControl/Makefile
mcs/class/Facades/System.Security.Claims/Makefile
mcs/class/Facades/System.Security.Cryptography.DeriveBytes/Makefile
mcs/class/Facades/System.Security.Cryptography.Encoding/Makefile
mcs/class/Facades/System.Security.Cryptography.Encryption.Aes/Makefile
mcs/class/Facades/System.Security.Cryptography.Encryption.ECDiffieHellman/Makefile
mcs/class/Facades/System.Security.Cryptography.Encryption.ECDsa/Makefile
mcs/class/Facades/System.Security.Cryptography.Encryption/Makefile
mcs/class/Facades/System.Security.Cryptography.Hashing.Algorithms/Makefile
mcs/class/Facades/System.Security.Cryptography.Hashing/Makefile
mcs/class/Facades/System.Security.Cryptography.ProtectedData/Makefile
mcs/class/Facades/System.Security.Cryptography.RSA/Makefile
mcs/class/Facades/System.Security.Cryptography.RandomNumberGenerator/Makefile
mcs/class/Facades/System.Security.Cryptography.X509Certificates/Makefile
mcs/class/Facades/System.Security.Principal.Windows/Makefile
mcs/class/Facades/System.Security.Principal/Makefile
mcs/class/Facades/System.Security.SecureString/Makefile
mcs/class/Facades/System.ServiceModel.Duplex/Makefile
mcs/class/Facades/System.ServiceModel.Http/Makefile
mcs/class/Facades/System.ServiceModel.NetTcp/Makefile
mcs/class/Facades/System.ServiceModel.Primitives/Makefile
mcs/class/Facades/System.ServiceModel.Security/Makefile
mcs/class/Facades/System.ServiceProcess.ServiceController/Makefile
mcs/class/Facades/System.Text.Encoding.Extensions/Makefile
mcs/class/Facades/System.Text.Encoding/Makefile
mcs/class/Facades/System.Text.RegularExpressions/Makefile
mcs/class/Facades/System.Threading.AccessControl/Makefile
mcs/class/Facades/System.Threading.Overlapped/Makefile
mcs/class/Facades/System.Threading.Tasks.Parallel/Makefile
mcs/class/Facades/System.Threading.Tasks/Makefile
mcs/class/Facades/System.Threading.Thread/Makefile
mcs/class/Facades/System.Threading.ThreadPool/Makefile
mcs/class/Facades/System.Threading.Timer/Makefile
mcs/class/Facades/System.Threading/Makefile
mcs/class/Facades/System.Xml.ReaderWriter/Makefile
mcs/class/Facades/System.Xml.XDocument/Makefile
mcs/class/Facades/System.Xml.XPath.XDocument/Makefile
mcs/class/Facades/System.Xml.XPath/Makefile
mcs/class/Facades/System.Xml.XmlDocument/Makefile
mcs/class/Facades/System.Xml.XmlSerializer/Makefile
mcs/class/Facades/System.Xml.Xsl.Primitives/Makefile
mcs/class/I18N/CJK/Makefile
mcs/class/I18N/Common/Makefile
mcs/class/I18N/MidEast/Makefile
mcs/class/I18N/Other/Makefile
mcs/class/I18N/Rare/Makefile
mcs/class/I18N/West/Makefile
mcs/class/IBM.Data.DB2/Makefile
mcs/class/ICSharpCode.SharpZipLib/Makefile
mcs/class/Microsoft.Build.Engine/Makefile
mcs/class/Microsoft.Build.Framework/Makefile
mcs/class/Microsoft.Build.Tasks/Makefile
mcs/class/Microsoft.Build.Utilities/Makefile
mcs/class/Microsoft.Build/Makefile
mcs/class/Microsoft.VisualC/Makefile
mcs/class/Mono.C5/Makefile
mcs/class/Mono.CSharp/Makefile
mcs/class/Mono.Cecil.Mdb/Makefile
mcs/class/Mono.Cecil/Makefile
mcs/class/Mono.CodeContracts/Makefile
mcs/class/Mono.Data.Tds/Makefile
mcs/class/Mono.Debugger.Soft/Makefile
mcs/class/Mono.Directory.LDAP/Makefile
mcs/class/Mono.Dynamic.Interpreter/Makefile
mcs/class/Mono.Http/Makefile
mcs/class/Mono.Management/Makefile
mcs/class/Mono.Messaging.RabbitMQ/Makefile
mcs/class/Mono.Messaging/Makefile
mcs/class/Mono.Options/Makefile
mcs/class/Mono.Parallel/Makefile
mcs/class/Mono.Posix/Makefile
mcs/class/Mono.Security.Providers.NewTls/Makefile
mcs/class/Mono.Security/Makefile
mcs/class/Mono.Simd/Makefile
mcs/class/Mono.XBuild.Tasks/Makefile
mcs/class/Mono.Xml.Ext/Makefile
mcs/class/Novell.Directory.Ldap/Makefile
mcs/class/PEAPI/Makefile
mcs/class/RabbitMQ.Client/src/apigen/Makefile
mcs/class/System.Configuration.Install/Makefile
mcs/class/System.Configuration/Makefile
mcs/class/System.Data.OracleClient/Makefile
mcs/class/System.Data.Services/Makefile
mcs/class/System.Data/Makefile
mcs/class/System.Design/Makefile
mcs/class/System.DirectoryServices/Makefile
mcs/class/System.Drawing.Design/Makefile
mcs/class/System.Drawing/Makefile
mcs/class/System.EnterpriseServices/Makefile
mcs/class/System.IO.Compression.FileSystem/Makefile
mcs/class/System.IO.Compression/Makefile
mcs/class/System.IdentityModel/Makefile
mcs/class/System.Management/Makefile
mcs/class/System.Messaging/Makefile
mcs/class/System.Net.Http.WebRequest/Makefile
mcs/class/System.Net.Http/Makefile
mcs/class/System.Reactive.Core/Makefile
mcs/class/System.Reactive.Linq/Makefile
mcs/class/System.Reactive.Observable.Aliases/Makefile
mcs/class/System.Reactive.PlatformServices/Makefile
mcs/class/System.Reactive.Providers/Makefile
mcs/class/System.Reactive.Runtime.Remoting/Makefile
mcs/class/System.Reactive.Windows.Forms/Makefile
mcs/class/System.Reactive.Windows.Threading/Makefile
mcs/class/System.Runtime.Remoting/Makefile
mcs/class/System.Runtime.Serialization.Formatters.Soap/Makefile
mcs/class/System.Runtime.Serialization/Makefile
mcs/class/System.Security/Makefile
mcs/class/System.ServiceModel.Activation/Makefile
mcs/class/System.ServiceModel.Discovery/Makefile
mcs/class/System.ServiceModel.Routing/Makefile
mcs/class/System.ServiceModel/Makefile
mcs/class/System.Threading.Tasks.Dataflow/Makefile
mcs/class/System.Transactions/Makefile
mcs/class/System.Web.DynamicData/Makefile
mcs/class/System.Web.Extensions/Makefile
mcs/class/System.Web.Services/Makefile
mcs/class/System.Web/Makefile
mcs/class/System.Web/Test/tools/Makefile
mcs/class/System.Windows.Forms/Makefile
mcs/class/System.XML/Makefile
mcs/class/System/Makefile
mcs/class/WebMatrix.Data/Makefile
mcs/class/WindowsBase/Makefile
mcs/class/corlib/Makefile
mcs/class/monodoc/Makefile
mcs/nunit24/ClientUtilities/util/Makefile
mcs/nunit24/ConsoleRunner/nunit-console-exe/Makefile
mcs/nunit24/ConsoleRunner/nunit-console/Makefile
mcs/nunit24/NUnitCore/core/Makefile
mcs/nunit24/NUnitCore/interfaces/Makefile
mcs/nunit24/NUnitExtensions/core/Makefile
mcs/nunit24/NUnitExtensions/framework/Makefile
mcs/nunit24/NUnitFramework/framework/Makefile
mcs/nunit24/NUnitMocks/mocks/Makefile
mcs/tools/Makefile
mcs/tools/al/Makefile
mcs/tools/browsercaps-updater/Makefile
mcs/tools/cccheck/Makefile
mcs/tools/ccrewrite/Makefile
mcs/tools/cil-stringreplacer/Makefile
mcs/tools/cil-strip/Makefile
mcs/tools/compiler-tester/Makefile
mcs/tools/corcompare/Makefile
mcs/tools/corcompare/mono-api-html/ApiChange.cs [deleted file]
mcs/tools/corcompare/mono-api-html/ApiDiff.cs [deleted file]
mcs/tools/corcompare/mono-api-html/AssemblyComparer.cs [deleted file]
mcs/tools/corcompare/mono-api-html/ClassComparer.cs [deleted file]
mcs/tools/corcompare/mono-api-html/Comparer.cs [deleted file]
mcs/tools/corcompare/mono-api-html/ConstructorComparer.cs [deleted file]
mcs/tools/corcompare/mono-api-html/EventComparer.cs [deleted file]
mcs/tools/corcompare/mono-api-html/FieldComparer.cs [deleted file]
mcs/tools/corcompare/mono-api-html/Helpers.cs [deleted file]
mcs/tools/corcompare/mono-api-html/InterfaceComparer.cs [deleted file]
mcs/tools/corcompare/mono-api-html/MemberComparer.cs [deleted file]
mcs/tools/corcompare/mono-api-html/MethodComparer.cs [deleted file]
mcs/tools/corcompare/mono-api-html/NamespaceComparer.cs [deleted file]
mcs/tools/corcompare/mono-api-html/PropertyComparer.cs [deleted file]
mcs/tools/corcompare/mono-api-html/mono-api-html.csproj [deleted file]
mcs/tools/corcompare/mono-api-info.exe.sources [new file with mode: 0644]
mcs/tools/csharp/Makefile
mcs/tools/culevel/Makefile
mcs/tools/disco/Makefile
mcs/tools/dtd2rng/Makefile
mcs/tools/dtd2xsd/Makefile
mcs/tools/gacutil/Makefile
mcs/tools/genxs/Makefile
mcs/tools/ictool/Makefile
mcs/tools/ikdasm/Makefile
mcs/tools/installutil/Makefile
mcs/tools/installvst/Makefile
mcs/tools/lc/Makefile
mcs/tools/linker-analyzer/Makefile
mcs/tools/linker/Makefile
mcs/tools/mconfig/Makefile
mcs/tools/mdbdump/Makefile
mcs/tools/mdbrebase/Makefile
mcs/tools/mdoc/Makefile
mcs/tools/mkbundle/Makefile
mcs/tools/mod/Makefile
mcs/tools/mono-api-html/ApiChange.cs [new file with mode: 0644]
mcs/tools/mono-api-html/ApiDiff.cs [new file with mode: 0644]
mcs/tools/mono-api-html/AssemblyComparer.cs [new file with mode: 0644]
mcs/tools/mono-api-html/ClassComparer.cs [new file with mode: 0644]
mcs/tools/mono-api-html/Comparer.cs [new file with mode: 0644]
mcs/tools/mono-api-html/ConstructorComparer.cs [new file with mode: 0644]
mcs/tools/mono-api-html/EventComparer.cs [new file with mode: 0644]
mcs/tools/mono-api-html/FieldComparer.cs [new file with mode: 0644]
mcs/tools/mono-api-html/Helpers.cs [new file with mode: 0644]
mcs/tools/mono-api-html/InterfaceComparer.cs [new file with mode: 0644]
mcs/tools/mono-api-html/Makefile [new file with mode: 0644]
mcs/tools/mono-api-html/MemberComparer.cs [new file with mode: 0644]
mcs/tools/mono-api-html/MethodComparer.cs [new file with mode: 0644]
mcs/tools/mono-api-html/NamespaceComparer.cs [new file with mode: 0644]
mcs/tools/mono-api-html/PropertyComparer.cs [new file with mode: 0644]
mcs/tools/mono-api-html/mono-api-html.csproj [new file with mode: 0644]
mcs/tools/mono-api-html/mono-api-html.exe.sources [new file with mode: 0644]
mcs/tools/mono-configuration-crypto/cli/Makefile
mcs/tools/mono-configuration-crypto/lib/Makefile
mcs/tools/mono-service/Makefile
mcs/tools/mono-shlib-cop/Makefile
mcs/tools/mono-symbolicate/Makefile
mcs/tools/mono-xmltool/Makefile
mcs/tools/mono-xsd/Makefile
mcs/tools/monop/Makefile
mcs/tools/msbuild/Makefile
mcs/tools/nunit-lite/NUnitLite/Makefile
mcs/tools/nunit-lite/nunit-lite-console/Makefile
mcs/tools/nunitreport/Makefile
mcs/tools/pdb2mdb/Makefile
mcs/tools/resgen/Makefile
mcs/tools/security/Makefile
mcs/tools/security/certview/Makefile
mcs/tools/sgen/Makefile
mcs/tools/soapsuds/Makefile
mcs/tools/sqlmetal/Makefile
mcs/tools/sqlsharp/Makefile
mcs/tools/svcutil/Makefile
mcs/tools/tuner/Makefile
mcs/tools/wsdl/Makefile
mcs/tools/xbuild/Makefile
mcs/tools/xbuild/xbuild.make
mono/mini/Makefile.am.in

index c19ba5c33758cc2e935f459b907e8b3d22736a4a..f0b979903569b952d3875075a7af57206fc7f124 100644 (file)
@@ -13,10 +13,10 @@ ASSEMBLED_DOCS = \
        monoapi.tree monoapi.zip
 
 convert.exe: $(srcdir)/convert.cs AgilityPack.dll
-       $(CSCOMPILE) -r:System.Xml.dll -out:$@ $< -r:AgilityPack.dll
+       $(CSCOMPILE) -r:$(topdir)/class/lib/$(PROFILE)/System.Xml.dll -out:$@ $< -r:AgilityPack.dll
 
 AgilityPack.dll:
-       $(CSCOMPILE) -r:System.dll -r:System.Xml.dll -target:library -out:$@ $(srcdir)/HtmlAgilityPack/*.cs
+       $(CSCOMPILE) -r:$(topdir)/class/lib/$(PROFILE)/System.dll -r:$(topdir)/class/lib/$(PROFILE)/System.Xml.dll -target:library -out:$@ $(srcdir)/HtmlAgilityPack/*.cs
 
 monoapi.zip: monoapi.tree
        @test -f $@ || { rm -f $< && $(MAKE) $<; }
index 7ac3b33846239297cc064116a273e3035c542d00..29ba89909e6d397d8d2012a09999717af7561526 100644 (file)
@@ -31,6 +31,9 @@ ifdef base_prog_config
 PROGRAM_config := $(build_libdir)$(PROGRAM).config
 endif
 
+sn = $(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)/sn.exe
+SN = MONO_PATH="$(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(RUNTIME_FLAGS) $(sn) -q
+
 the_lib = $(the_libdir)$(base_prog)
 build_lib = $(build_libdir)$(base_prog)
 
@@ -110,7 +113,10 @@ endif
 $(the_lib): $(the_libdir)/.stamp
 
 $(build_lib): $(BUILT_SOURCES) $(EXTRA_SOURCES) $(response) $(build_libdir:=/.stamp)
-       $(PROGRAM_COMPILE) -target:exe -out:$@ $(BUILT_SOURCES) $(EXTRA_SOURCES) @$(response)
+       $(PROGRAM_COMPILE) $(MCS_REFERENCES) -target:exe -out:$@ $(BUILT_SOURCES) $(EXTRA_SOURCES) @$(response)
+ifdef PROGRAM_SNK
+       $(Q) $(SN) -R $@ $(PROGRAM_SNK)
+endif
 
 ifdef PROGRAM_USE_INTERMEDIATE_FILE
 $(the_lib): $(build_lib)
@@ -143,6 +149,9 @@ endif
 
 -include $(makefrag)
 
+MCS_REFERENCES = $(patsubst %,-r:$(topdir)/class/lib/$(PROFILE)/%.dll,$(LIB_REFS))
+MCS_REFERENCES += $(patsubst %,-r:$(topdir)/class/lib/$(PROFILE)/%.exe,$(EXE_REFS))
+
 all-local: $(makefrag) $(extra_targets)
 
 csproj-local:
index 1df98aeea1f035eb5e187138f58761eaccab60be..acaa93871214a61bebac58bfcbb5595f798d10ab 100644 (file)
 # Have to rename to handle differences between assembly/directory names
 DEP_LIBS=$(patsubst System.Xml,System.XML,$(LIB_REFS))
 
-LIB_MCS_FLAGS += $(patsubst %,-r:%.dll,$(LIB_REFS))
+_FILTER_OUT = $(foreach x,$(2),$(if $(findstring $(1),$(x)),,$(x)))
+
+LIB_REFS_FULL = $(call _FILTER_OUT,=, $(LIB_REFS))
+LIB_REFS_ALIAS = $(filter-out $(LIB_REFS_FULL),$(LIB_REFS))
+
+LIB_MCS_FLAGS += $(patsubst %,-r:$(topdir)/class/lib/$(PROFILE)/%.dll,$(LIB_REFS_FULL))
+LIB_MCS_FLAGS += $(patsubst %,-r:%.dll, $(subst =,=$(topdir)/class/lib/$(PROFILE)/,$(LIB_REFS_ALIAS)))
 
 sourcefile = $(LIBRARY).sources
 
index 5273928a0ed6143d4fff29ee27776f826f67a3f0..3b4c7e0706e4fb4862fc5eaf17fffb0d805e6c65 100644 (file)
@@ -12,8 +12,8 @@ MCS = MONO_PATH="$(topdir)/class/lib/$(BOOTSTRAP_PROFILE)$(PLATFORM_PATH_SEPARAT
 profile-check:
        @:
 
-DEFAULT_REFERENCES = -r:mscorlib.dll
-PROFILE_MCS_FLAGS = -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -lib:$(topdir)/class/lib/$(PROFILE) $(DEFAULT_REFERENCES)
+DEFAULT_REFERENCES = -r:$(topdir)/class/lib/$(PROFILE)/mscorlib.dll
+PROFILE_MCS_FLAGS = -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib $(DEFAULT_REFERENCES)
 
 NO_SIGN_ASSEMBLY = yes
 NO_TEST = yes
index 6f6108c08aa7d89ab89dda7de1b0247e3449494c..70908afa4e194fa55f910c259b89c231f11eebfd 100644 (file)
@@ -11,7 +11,7 @@ RESGEN = resgen2
 profile-check:
        @:
 
-DEFAULT_REFERENCES = -r:mscorlib.dll
+DEFAULT_REFERENCES = -r:$(topdir)/class/lib/$(PROFILE)/mscorlib.dll
 
 PROFILE_MCS_FLAGS = \
        -d:NET_1_1 \
@@ -26,7 +26,6 @@ PROFILE_MCS_FLAGS = \
        -d:DISABLE_CAS_USE \
        -nowarn:1699 \
        -nostdlib \
-       -lib:$(topdir)/class/lib/$(PROFILE) \
        $(DEFAULT_REFERENCES) \
        $(PLATFORM_DEBUG_FLAGS)
 
index 0c3c8125cfdcda56f5d59100d2dacb825666386b..f13e65d83ccb7bdfadde12ab9a255ee7001898aa 100644 (file)
@@ -11,7 +11,7 @@ RESGEN = resgen2
 profile-check:
        @:
 
-DEFAULT_REFERENCES = -r:mscorlib.dll
+DEFAULT_REFERENCES = -r:$(topdir)/class/lib/$(PROFILE)/mscorlib.dll
 
 PROFILE_MCS_FLAGS = \
        -d:NET_1_1 \
@@ -28,7 +28,6 @@ PROFILE_MCS_FLAGS = \
        -d:DISABLE_COM \
        -nowarn:1699 \
        -nostdlib \
-       -lib:$(topdir)/class/lib/$(PROFILE) \
        $(DEFAULT_REFERENCES) \
        $(PLATFORM_DEBUG_FLAGS)
 
index 49f85dcf8ee26c7273e367ef1a94366295cb9f47..9ea27d6c9c7f866de0d850093cad9056a9301ab9 100644 (file)
@@ -11,7 +11,7 @@ RESGEN = resgen2
 profile-check:
        @:
 
-DEFAULT_REFERENCES = -r:mscorlib.dll
+DEFAULT_REFERENCES = -r:$(topdir)/class/lib/$(PROFILE)/mscorlib.dll
 
 PROFILE_MCS_FLAGS = \
        -d:NET_1_1 \
@@ -28,7 +28,6 @@ PROFILE_MCS_FLAGS = \
        -d:ANDROID \
        -nowarn:1699 \
        -nostdlib \
-       -lib:$(topdir)/class/lib/$(PROFILE) \
        $(DEFAULT_REFERENCES) \
        $(PLATFORM_DEBUG_FLAGS)
 
index 7e963cb73c0e257ef02707a6f868c3259f9bd882..f127fd7d19043fc3f7a79656697477b03a109cfa 100644 (file)
@@ -13,7 +13,7 @@ RESGEN := $(dir $(shell which $(EXTERNAL_MCS)))resgen2
 profile-check:
        @:
 
-DEFAULT_REFERENCES = -r:mscorlib.dll
+DEFAULT_REFERENCES = -r:$(topdir)/class/lib/$(PROFILE)/mscorlib.dll
 PROFILE_MCS_FLAGS = \
        -d:NET_1_1 \
        -d:NET_2_0 \
@@ -30,7 +30,6 @@ PROFILE_MCS_FLAGS = \
        -d:FEATURE_INTERCEPTABLE_THREADPOOL_CALLBACK \
        -nowarn:1699 \
        -nostdlib \
-       -lib:$(topdir)/class/lib/$(PROFILE) \
        $(DEFAULT_REFERENCES) \
        $(PLATFORM_DEBUG_FLAGS)
 
index a634dac392874f47f2629511bd5195a631403a69..a93b03b7f6b4fffa902356cac8ca5e2728aa2400 100644 (file)
@@ -10,8 +10,8 @@ MCS = MONO_PATH="$(topdir)/class/lib/$(BOOTSTRAP_PROFILE)$(PLATFORM_PATH_SEPARAT
 profile-check:
        @:
 
-DEFAULT_REFERENCES = -r:mscorlib.dll
-PROFILE_MCS_FLAGS = -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE  -nowarn:1699 -nostdlib -lib:$(topdir)/class/lib/$(PROFILE) $(DEFAULT_REFERENCES) $(PLATFORM_DEBUG_FLAGS)
+DEFAULT_REFERENCES = -r:$(topdir)/class/lib/$(PROFILE)/mscorlib.dll
+PROFILE_MCS_FLAGS = -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE  -nowarn:1699 -nostdlib $(DEFAULT_REFERENCES) $(PLATFORM_DEBUG_FLAGS)
 
 FRAMEWORK_VERSION = 4.5
 XBUILD_VERSION = 4.0
index a9a6ef9ab25b2d2eb070270665be2120624311e5..d3cbdb5d972e886f246edaf9ffef7269086697e5 100644 (file)
@@ -9,7 +9,7 @@ RESGEN := $(dir $(shell which $(EXTERNAL_MCS)))resgen2
 profile-check:
        @:
 
-DEFAULT_REFERENCES = -r:mscorlib.dll
+DEFAULT_REFERENCES = -r:$(topdir)/class/lib/$(PROFILE)/mscorlib.dll
 
 PROFILE_MCS_FLAGS = \
        -d:NET_1_1 \
@@ -27,7 +27,6 @@ PROFILE_MCS_FLAGS = \
        -d:XAMARIN_MODERN \
        -nowarn:1699 \
        -nostdlib \
-       -lib:$(topdir)/class/lib/$(PROFILE) \
        $(DEFAULT_REFERENCES) \
        $(PLATFORM_DEBUG_FLAGS)
 
index 7150d2529e9085cf0967696a6d2cd8855916af8f..a0b681071ddb49c38d4c62d9ed349c669e4391d8 100644 (file)
@@ -2,6 +2,10 @@
 
 include $(topdir)/build/profiles/net_4_x.make
 
-PROFILE_MCS_FLAGS := $(PROFILE_MCS_FLAGS) -d:XBUILD_12 -d:MONO -d:DISABLE_CAS_USE  -lib:$(topdir)/class/lib/net_4_x
+PARENT_PROFILE = ../net_4_x/
+DEFAULT_REFERENCES = -r:$(topdir)/class/lib/net_4_x/mscorlib.dll
+PROFILE_MCS_FLAGS := $(PROFILE_MCS_FLAGS) -d:XBUILD_12
+
+RESGEN_EXE = $(topdir)/class/lib/net_4_x/resgen.exe
 
 XBUILD_VERSION = 12.0
index 4e35ffc2305ef7a8c198773b45bdfda9b53b012a..60809393a62f1c526c67bd61f29d471753926fa9 100644 (file)
@@ -1,7 +1,7 @@
 # -*- makefile -*-
 
-include $(topdir)/build/profiles/net_4_x.make
+include $(topdir)/build/profiles/xbuild_12.make
 
-PROFILE_MCS_FLAGS := $(PROFILE_MCS_FLAGS) -d:XBUILD_12 -d:XBUILD_14 -d:MONO -d:DISABLE_CAS_USE  -lib:$(topdir)/class/lib/net_4_x
+PROFILE_MCS_FLAGS := $(PROFILE_MCS_FLAGS) -d:XBUILD_14
 
 XBUILD_VERSION = 14.0
index 54c946a8730f775da8f7976bdcec8fba17a3edf3..5fda8826d12968f30542b58a29219ceff5d11208 100644 (file)
@@ -43,9 +43,10 @@ MKINSTALLDIRS = $(SHELL) $(topdir)/mkinstalldirs
 INTERNAL_MBAS = $(RUNTIME) $(RUNTIME_FLAGS) $(topdir)/mbas/mbas.exe
 INTERNAL_GMCS = $(RUNTIME) $(RUNTIME_FLAGS) $(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)/mcs.exe
 INTERNAL_ILASM = $(RUNTIME) $(RUNTIME_FLAGS) $(topdir)/class/lib/$(PROFILE)/ilasm.exe
-corlib = mscorlib.dll
+INTERNAL_CSC = $(RUNTIME) $(RUNTIME_FLAGS) $(CSC_LOCATION)
 
-INTERNAL_RESGEN = $(RUNTIME) $(RUNTIME_FLAGS) $(topdir)/class/lib/$(PROFILE)/resgen.exe
+RESGEN_EXE = $(topdir)/class/lib/$(PROFILE)/resgen.exe
+INTERNAL_RESGEN = $(RUNTIME) $(RUNTIME_FLAGS) $(RESGEN_EXE)
 RESGEN = MONO_PATH="$(topdir)/class/lib/$(PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(INTERNAL_RESGEN)
 STRING_REPLACER = MONO_PATH="$(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(RUNTIME_FLAGS) $(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)/cil-stringreplacer.exe
 
index e8d52d00332ba0d9a181e513ee90c06fd297b6e0..7f27dd9fd511c66eca5e9044e336c75bc5157a27 100644 (file)
@@ -25,7 +25,9 @@ else
 test_nunit_lib = nunit.framework.dll nunit.core.dll nunit.util.dll nunit.mocks.dll
 endif
 
-test_nunit_dep = $(test_nunit_lib:%=$(topdir)/class/lib/$(PROFILE)/%)
+TEST_LIB_MCS_FLAGS = $(patsubst %,-r:$(topdir)/class/lib/$(PROFILE)/%.dll,$(TEST_LIB_REFS))
+
+test_nunit_dep = $(test_nunit_lib:%=$(topdir)/class/lib/$(PROFILE)/$(PARENT_PROFILE)%)
 test_nunit_ref = $(test_nunit_dep:%=-r:%)
 tests_CLEAN_FILES += TestResult*.xml
 
@@ -41,7 +43,7 @@ test_sourcefile_excludes = $(test_lib).excludes
 test_pdb = $(test_lib:.dll=.pdb)
 test_response = $(depsdir)/$(test_lib).response
 test_makefrag = $(depsdir)/$(test_lib).makefrag
-test_flags = -r:$(the_assembly) $(test_nunit_ref) $(TEST_MCS_FLAGS)
+test_flags = -r:$(the_assembly) $(test_nunit_ref) $(TEST_MCS_FLAGS) $(TEST_LIB_MCS_FLAGS)
 tests_CLEAN_FILES += $(ASSEMBLY:$(ASSEMBLY_EXT)=_test*.dll) $(ASSEMBLY:$(ASSEMBLY_EXT)=_test*.pdb) $(test_response) $(test_makefrag)
 
 ifndef HAVE_CS_TESTS
@@ -58,11 +60,15 @@ $(test_nunit_dep): $(topdir)/build/deps/nunit-$(PROFILE).stamp
 
 ifdef NUNIT_LITE
 $(topdir)/build/deps/nunit-$(PROFILE).stamp:
+ifndef PARENT_PROFILE
        cd ${topdir}/tools/nunit-lite && $(MAKE)
+endif
        echo "stamp" >$@
 else
 $(topdir)/build/deps/nunit-$(PROFILE).stamp:
+ifndef PARENT_PROFILE
        cd ${topdir}/nunit24 && $(MAKE)
+endif
        echo "stamp" >$@
 endif
 
index 907ce82bb5bbd804a374c994167c2474a3479ec8..8700935681bd7b9038775d2d58304eb83be90ec2 100644 (file)
@@ -3,7 +3,7 @@ SUBDIRS =
 include ../../build/rules.make
 
 LIBRARY = Accessibility.dll
-LIB_MCS_FLAGS = /r:$(corlib)
+LIB_MCS_FLAGS =
 NO_TEST = yes
 
 include ../../build/library.make
index 1bc0fd2f2773f1c6f2c6e9a93d5de3ffddff8845..d63e7af0565267712121ff183e65084bf9ef92b0 100644 (file)
@@ -8,7 +8,7 @@ OTHER_RES = $(RESOURCE_FILES)
 
 LIBRARY = Commons.Xml.Relaxng.dll
 LIB_REFS = System System.Xml
-LIB_MCS_FLAGS = /r:$(corlib) \
+LIB_MCS_FLAGS = \
        $(foreach r, $(OTHER_RES), /resource:$(r),$(notdir $(r)))
 TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -nowarn:0618 -nowarn:219 -nowarn:169
 EXTRA_DISTFILES = \
index 9c11dbac65c299d9b2f5ad86cbe5b77fa28b999d..74debbe57e66c8e91a2587a24e111aa2b826f924 100644 (file)
@@ -8,7 +8,7 @@ LIBRARY_COMPAT = yes
 LIBRARY_SNK = SharpZipLib.key
 
 LIB_REFS = System System.Xml
-LIB_MCS_FLAGS = -r:$(corlib)
+LIB_MCS_FLAGS =
 NO_TEST = yes
 EXTRA_DISTFILES = SharpZipLib.pub $(LIBRARY_SNK)
 
index 3afddcca8fa2e31a225144ff1f86066acfa865f2..54ff581cee0b50832f0065c1d6f68a8cfd840820 100644 (file)
@@ -4,7 +4,7 @@ include ../../build/rules.make
 
 LIBRARY = Cscompmgd.dll
 LIB_REFS = System
-LIB_MCS_FLAGS = /r:$(corlib)
+LIB_MCS_FLAGS =
 TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -nowarn:0618 -nowarn:219 -nowarn:169
 LIBRARY_NAME = cscompmgd.dll
 
index 0e432dc33b19daa4ce376521876b7c89027df2e0..366921c583ffa6a658be493402581d2ac40a06c7 100644 (file)
@@ -4,7 +4,7 @@ include ../../build/rules.make
 
 LIBRARY = CustomMarshalers.dll
 LIB_REFS = System
-LIB_MCS_FLAGS = /r:$(corlib)
+LIB_MCS_FLAGS =
 NO_TEST = yes
 
 include ../../build/library.make
index 4b0a8ce48f852315136014265fd5026e902eee2b..d1b93730000cfeb9d7a940589a9551dd045769e6 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = Microsoft.Win32.Primitives.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 68c77b28ef9b7ab8da342c4ffc948e0cef4b36ed..0b5f4acf6daad43a1597f99ada62b9ebd4f05fc2 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = Microsoft.Win32.Registry.AccessControl.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 95a931f2a73e6c76d6e18cb230bab4b083e8f8eb..5f1030b7c72c610cf09e6c850a32935ca7874590 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = Microsoft.Win32.Registry.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index a428634b310354eea16aa4b1464e33d3906562a4..9170d927e04e6a6100557b4bd0eabadc421dd750 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.AppContext.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 9fe40d3d849ba6f5fe9a1b854d89d270fb47f01b..d94e5d55dd2aa4ad2de702786f5ad8e7835bec6e 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Collections.Concurrent.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 6aa88932bd39bd51fdb5b480a0fc15c6c4844e00..f2f3cdb4772de684efb7216f3b876b12a3abb2f9 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Collections.NonGeneric.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 7730dc6182e9ce19d9066541087e11619c71a1b6..d391fa9ac5190ed4715718989e3ae3d0b0213ef3 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Collections.Specialized.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index e91fa63b8d8946bd8b7d8bfc58b8f9039ffb6a97..dc6dca0073a2334fa85a0aa17e1017c539d8d556 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Collections.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System System.Core
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 0e5a336b82cfd49d13d88ef67dbf30ca33847a0d..a4f1cc41c4d0305260e88acd5defefb4817be0e9 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ComponentModel.Annotations.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.ComponentModel.DataAnnotations
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 3bb78c169959296cd387ae7f09351add9b11ded6..48a6b9c11e617451abde35a362f117b433457a89 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ComponentModel.EventBasedAsync.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 8b46af0e4c20bec7dd4b688c8be54e40dbddd4ad..dac065757dee333e4ff0d549b12c6223ac8c1f2d 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ComponentModel.Primitives.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 9479c31e5d55ff566a80649825d80416fac742f4..6062e304a95bddb5401c33402610baa81e6b1251 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ComponentModel.TypeConverter.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 57c23bab8fcb480ec9199e685f7a0297d96e7cde..33b88f9541ee8bbac2b728a5064e1a6ef3dd7e33 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ComponentModel.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 7ec5ccd75e51a9b9b5fb3357bd4fd3ff911aa004..ea7312a4d7060b96f47c03c998097150cc34720f 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Console.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index ca5b55bb5e4dfbdb31f8bb7e204654ee536e14ab..30bf3dd018146c2ca81002fde79578ff7f6457c1 100644 (file)
@@ -11,8 +11,8 @@ LIBRARY = System.Data.Common.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Data.dll
+LIB_REFS = System System.Data
+LIB_MCS_FLAGS = $(SIGN_FLAGS)
 
 PLATFORM_DEBUG_FLAGS =
 
index 0fa130c8e282d2a27762cf34c4acf6278a628f29..f5eb7097fd6366eaad0662aa3f5f809e40fe6874 100644 (file)
@@ -11,8 +11,8 @@ LIBRARY = System.Data.SqlClient.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Data.dll /r:System.Xml.dll
+LIB_REFS = System System.Data System.Xml
+LIB_MCS_FLAGS = $(SIGN_FLAGS)
 
 PLATFORM_DEBUG_FLAGS =
 
index 23dad544fc916db57359e244df2f82a805919bd4..391da57605b41150b50ce48906995e07bea39df2 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Diagnostics.Contracts.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 34574abc438294f2009aacc169f0ee69ab33a4df..0eccd8767190f9b3a811a712cf0522f6e3a4cef2 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Diagnostics.Debug.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 2d2c4bfe8bbb783b2159ba9e254bd68a055e9bf3..1ac2f6cc2a05917d5e5d678a5a348715a75496b2 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Diagnostics.FileVersionInfo.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 499d313fc6cdc2b3b2974083d721641cbd401735..beda86068884cf88af0a51a363dd73dcca126150 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Diagnostics.PerformanceCounter.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index c6980725fd1d3b9b2a3bac340130b476134c2cb3..83fd768e25124252caa659b24c03af6afdc7f86c 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Diagnostics.Process.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 169d8b79e1e61e7fd1a9ac44b712d11c37d90d7b..25d8ac37eddd1351ee41e37670615d9b8df46531 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Diagnostics.StackTrace.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 27e24e5ed7a223b4bd997a432b0d26d4ee02e314..aa7c6dc119fc4cfa8f0d8ed154b0cfcb4fa4ec9e 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Diagnostics.TextWriterTraceListener.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 494f8b90da060b4dbce7f760c85e0b015540994b..3d9b5158255726324e164ef659a6f48d05f977bd 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Diagnostics.Tools.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index a109b64df9ac0b9102519fab385426eb04e91a1f..342e82dbf4a4288cc8cfa0269205ba1aa6b77de7 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Diagnostics.TraceEvent.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 2dbd5475cca82641a0af997389e9b86bc0582941..3467273f7c9ea984a9a7770ce90dc0e44359ee36 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Diagnostics.TraceSource.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 53a49cfff704df5cbefb9b134f291956caffa328..14b380da866454c7569c53a115dfa4e473422415 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Diagnostics.Tracing.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 9380c0ecba4f95c19ba8b621b03f7c82d5dcf9af..a6bcda9f3deddfa3d64379e1b6908a4d1e884fe3 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Dynamic.Runtime.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Core System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 1659260c032b06ce4d0fb36e2e12558812ab73a9..5f419e9b635d47e2424ac026cdc42178f821cc79 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Globalization.Calendars.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index e4923237e7b79385a76d073e0722c9a5a461419d..d3a57fa307dbd8b7121b25630aa667270b3dc640 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Globalization.Extensions.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index e94f4b5561bbe4b68878cc75eca0e2ef3d851661..4f01dfeb76258fc89d9d03cecedd4742bf77d306 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Globalization.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 0865314a1bda3abaed6ff8033176b11a9859d7f1..b4e4896a6295a8936564f4a0539974952652070c 100644 (file)
@@ -11,8 +11,8 @@ LIBRARY = System.IO.Compression.ZipFile.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.IO.Compression.FileSystem.dll
+LIB_REFS = System System.IO.Compression.FileSystem
+LIB_MCS_FLAGS = $(SIGN_FLAGS)
 
 PLATFORM_DEBUG_FLAGS =
 
index 6574fc6249952d0b4ddb143a5c2bcc03cf632b59..0198747a8a312def61d8cb153e45a6b6d038c168 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.IO.FileSystem.AccessControl.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 096d6c7a7facd196627c335924caea1de7d4cfa3..0925c49d1557f854176a41a134cbcd81ad6bf124 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.IO.FileSystem.DriveInfo.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 2622a088f2d2547165a9965bef8781de3e51bc12..31b27077e454a42cb23a1d7436d72e0498c6334b 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.IO.FileSystem.Primitives.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 2a4d25e107348b40b171c36f5d4da5414f7a5fd0..caade8a02a0195d34405de7b8659995ef95b0d31 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.IO.FileSystem.Watcher.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index cbd49ccc53525461d170e49f2cc040e30a8264f1..178aa60efeaaad5830ac94aaab910a13751441e2 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.IO.FileSystem.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index e89d4be370bff6b7b2db7177c7470edc9ab28814..be6a315004b208b1c49e37455206199af6e43093 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.IO.IsolatedStorage.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 1ea56e44d9432db6cd5104cca5ca05b32611ba71..656b03cd1262185c1b50734329bc9296795d8515 100644 (file)
@@ -11,8 +11,8 @@ LIBRARY = System.IO.MemoryMappedFiles.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Core.dll
+LIB_REFS = System System.Core
+LIB_MCS_FLAGS = $(SIGN_FLAGS)
 
 PLATFORM_DEBUG_FLAGS =
 
index 999b161afd3c7fdcc284a39e5cbe958651a3b734..0d156aafeb131b3bf55145cd637bb68770340e39 100644 (file)
@@ -11,8 +11,8 @@ LIBRARY = System.IO.Pipes.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Core.dll
+LIB_REFS = System System.Core
+LIB_MCS_FLAGS = $(SIGN_FLAGS)
 
 PLATFORM_DEBUG_FLAGS =
 
index c65888b23119152c3780cb424380e97c5bd4779c..c1605d9ccf85284ae1fa300fbc17dc35dfb10eb9 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.IO.UnmanagedMemoryStream.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 42a6a9413b47bdab5bbf0052fc480259c8a19e99..89fc0db09634da4466bd382a6874697d517e21ab 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.IO.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index d2ad276ef09b821064fa829c6c23ecc933c16c01..bb78580fb433de302a0fdf8ef84e8abe7532799e 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Linq.Expressions.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Core
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index d68ebb41633709974ae71f366d6b7735bdbef05b..7d314bf5e9502836ca18c6ec152739898fba656c 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Linq.Parallel.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Core
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 1f0225e3aeab978987d912eedf0b8ade5b17a445..6ea4c746ec840f02659775c5a1d330f33bb6c516 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Linq.Queryable.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Core
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 17bcabbdf83bb028dc8fd82f28cebeb0c9d0dbd3..d9778697d4c882d682b44b80d7da16b3a0136284 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Linq.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Core
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 4efed6d1b282b95efb47cbbc2d355990e87ce01e..293f80d25d36c56bcde1dd969c536cd941d29d6b 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.AuthenticationManager.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 9826235d5b1b5b01139196b8ba490e066808e91c..bbdcfce759232bb82559b6705da145b52307792a 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.Cache.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 202bfbe892aba93b0356b9f9626664d9f218d49e..7750bbae45a12a74751e744aa15684e2309aac89 100644 (file)
@@ -11,8 +11,8 @@ LIBRARY = System.Net.Http.WebRequestHandler.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Net.Http.WebRequest.dll /r:System.Net.Http.dll
+LIB_REFS = System System.Net.Http.WebRequest System.Net.Http
+LIB_MCS_FLAGS = $(SIGN_FLAGS)
 
 PLATFORM_DEBUG_FLAGS =
 
index 401f473303c78037d6d58df94c47046c9f5e7396..3109e7076150771cdc3703a58b00258b94b09a77 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.HttpListener.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS)
 
 PLATFORM_DEBUG_FLAGS =
 
index 32aca2f9665420600d201bb2d5a9499c83e9a5dd..fe936b17d9141732b41bf59c2e95fe8096f9f23f 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.Mail.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS)
 
 PLATFORM_DEBUG_FLAGS =
 
index ae8b68c79d68b08b685526fdfb1fdd796ffea20b..142a303c38e0b9869ff4e7c185efb0d3977661e0 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.NameResolution.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 29df735469a22123eafc2e9d28163f4c1fd6331f..bc2a7ec81660b1daf4d03a1da95c73f02d8202aa 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.NetworkInformation.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index babbd33274be478c719ef7b019bd31c6b5106e57..bc36271325922ee154f7268ad5ccec15fd8069a6 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.Primitives.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 947ca929cef91ae7c3a41704f7f45eb1f8a39f06..7a8a231bc3b45ac31461994436df5075a7cc81e6 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.Requests.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 4eab13bc8c870e90a8ff203be795f68f61467f90..cdd7db906c94970e9fab160103797a5d2baf446f 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.Security.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS)
 
 PLATFORM_DEBUG_FLAGS =
 
index bb8e7229f721bdedb2aab7f4e0d6afe4fe5875f4..f0d095317dcaeea6f0b93505b3b726053a491f7a 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.ServicePoint.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 0cd78a8dac09f04214e7e0456b16cff94bbee806..bf60d5fef6be2147d79b9b70e5ab29430dc1f651 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.Sockets.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS)
 
 PLATFORM_DEBUG_FLAGS =
 
index 77d83647a6d9ffc7f567085ea2122e49ac32391c..6f1a5166b8aa215aed0bc604a0f27cd72a06a610 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.Utilities.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index b3fe02b3456caade8da72a4ef77390194ca72a8b..f6ec2a06526ec525bee6876f87f7ba7dd9055bdb 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.WebHeaderCollection.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 8489220e9602c57945b8d28077d393162d791f78..2552b0e0d5b3032027e0b89eb7bf4b6221791a6e 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.WebSockets.Client.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 783ae541c93d3af0459500e74594aec89b22b86e..e9fa98fd8b48fd01450122ab9bd74fc0a98b8d1c 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Net.WebSockets.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 56ca84ae0daa2b92d814c4b658b5e131364d5320..0838b23d3cfe1e301d46448072fec98ed020cb07 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ObjectModel.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index ee55fc623754b07f78cbb5d91bfc0eb44d0247d7..7b03ca8fdb0eb1b55a0f6e5b49507b65a189e0df 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Private.CoreLib.InteropServices.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 52ce0e308ad25c830d36c54686ea57fcb720fe0c..347b171983ea6f8483fa59cb2b914782d4091029 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Private.CoreLib.Threading.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index f9c54c54b2f4031fe241980dae629348dca72f0b..6ee536f7b71437a4b774e62b45834cde0297142e 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Reflection.Emit.ILGeneration.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 70a46b888d520a0311bfccc254c7206ca5531df9..93292276ab10e15f578a62e8431405bc2153544c 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Reflection.Emit.Lightweight.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 2227a3ca80f0acea2a613d60c0ac2f76accaeb1d..798d457271e1b199a3d1ade55adb63f526df5eaa 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Reflection.Emit.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index db7f3df173d8978bbda3b8522034c160c4336455..e1799cc150e5da36dfa74d857f5b85461b302b76 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Reflection.Extensions.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 99a3a39505d2072a5501f32f5981201724999951..ee500e52ecbdc726ce75a1352b9925cd4d64e5cf 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Reflection.Primitives.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 3e4d713ac5353037aee66eab5b599de85e59c8ab..b2bb49ecfd1b431029d66f45927f36d0e712e26b 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Reflection.TypeExtensions.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 862b9333ccc43509c9fe37ab453d52f5f9742856..3061a268a236132b4ab3e97479b4cd5a6f55d090 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Reflection.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 48c56ade5a33b199bf38475aab9abbabc36908db..e2795e40f7d39338970d51e1603db8126eb12771 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Resources.ReaderWriter.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 72e539364cf89dc38ca7ac96214114c61ebe0336..15f241e4091c0ca1bbc9533964eeec76f904aa8e 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Resources.ResourceManager.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 21d3f78844e17e8b91ce7bd25c04536df3abcfed..6f7f15c612e98df05db8f54e26515c807767901c 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Runtime.CompilerServices.VisualC.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 981cb5f8233e46740c20088a087db5f600d7acdc..70fd8c9330577b0c140791d38ccf5a615110ce01 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Runtime.Extensions.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 396738e44e53ccbd4cfed370816717bb0bf63158..db800c29abf056babb2ba8c8ee077d8f93a9bf94 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Runtime.Handles.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System System.Core
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index a6340fb3e76fde42cd7b3347c0ef8aa00aafccd5..1aaf02e2fc58c6d2334902e8acb610e1df459464 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Runtime.InteropServices.WindowsRuntime.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 51ef698b24c1f5b14b64230d738372e2c0fa929f..dd20654dcd3a4675f21e4d31e77ab535d64f180b 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Runtime.InteropServices.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System System.Core
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index e452fc5aca5f84d2abe6e8501d24f19502be2e4b..57867bb26a13f9894d1fe689fb82339f35a94af3 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Runtime.Numerics.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Numerics
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 304059eaabb16eac768554ffa94417381e4cdba8..b5ca5ce40b28333fc7b1d16bc3772b22cdbe537c 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Runtime.Serialization.Json.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Runtime.Serialization
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 648884fc9b72276c82b7103587d657d025e332f6..3a2519549fc638191e38dad30136d69222edbd3a 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Runtime.Serialization.Primitives.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Runtime.Serialization
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index cc0aec4a369d40f21e1c667f26bd1b7781ffb351..774289eb4de9e987c0368ce80e90d818c7b7ef7e 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Runtime.Serialization.Xml.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Runtime.Serialization System.Xml
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index c59de1384080e288a20a1b5f3a5368e79129067d..e8ab4049a267a27e87f64c2f7668058c18d67e5b 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Runtime.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System System.ComponentModel.Composition System.Core
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS)
 
 PLATFORM_DEBUG_FLAGS =
 
index 3491238f861b314949c1a6100278ec2f80c0c77c..5c6ad1c09ecffa7c0aad056d7828a93449bf3610 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.AccessControl.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 72b761e38a545cdae65eb899e1b28e82073642ab..36ff76137bace6f96b5ca5552a5439e4f57235f6 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Claims.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 1beaa35e01372bf07f4670eafcc4754e474d5471..4988d34843d478cb1ac0c81001090c141349d195 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Cryptography.DeriveBytes.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 5bf1ccf0ab3e4c366b2ae21f30d67d69e061b646..71d37e200e0d5a4f8c55a0f64eb805898bcb2918 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Cryptography.Encoding.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index b43610b676465f01bffde31cd47e558455c90c64..0598a53f1d492c67996b709b6a8fbdf5d423152e 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Cryptography.Encryption.Aes.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index a2c373ac08aa6e3267ab7a26502ab4acdbbf4913..03e69f1f95ae0e0e097336d9145814392b64978c 100644 (file)
@@ -11,8 +11,8 @@ LIBRARY = System.Security.Cryptography.Encryption.ECDiffieHellman.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Core.dll
+LIB_REFS = System System.Core
+LIB_MCS_FLAGS = $(SIGN_FLAGS)
 
 PLATFORM_DEBUG_FLAGS =
 
index 2bae1ac269dfca35f65fd3a3b6065d512796a146..08e99941082c8f1c4bf6531a99da34dfa9b62543 100644 (file)
@@ -11,8 +11,8 @@ LIBRARY = System.Security.Cryptography.Encryption.ECDsa.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Core.dll
+LIB_REFS = System System.Core
+LIB_MCS_FLAGS = $(SIGN_FLAGS)
 
 PLATFORM_DEBUG_FLAGS =
 
index 26d1d81df8097a7ab2b9d711f3674cc949b7ce0f..0e8b16442809185da2b5cbbd1360e5d6179ef6d7 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Cryptography.Encryption.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index e146e689b9771f847bdbddbd1cdbec3fef37e7c3..45dad5331da23e4452f0c252b3a388870f1eb3c4 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Cryptography.Hashing.Algorithms.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 450bb596fd866717afb7f142bc914b02ce12a80b..9df5800609b98319608e55b58dd3b6579ff61ba9 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Cryptography.Hashing.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index f82c860416253a13030c5d35a30a5049c7a540b9..1cdbf1de8f3decb38ad50b6f289edf3d0ecdece2 100644 (file)
@@ -11,8 +11,8 @@ LIBRARY = System.Security.Cryptography.ProtectedData.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Security.dll
+LIB_REFS = System System.Security
+LIB_MCS_FLAGS = $(SIGN_FLAGS)
 
 PLATFORM_DEBUG_FLAGS =
 
index a88e14ef6cc0dbbc3879cc0836347dd1401bade5..ea7df7a042ad62c9639d3c530aa08f154aeb648d 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Cryptography.RSA.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index d9fdec015a2853bf6591d0d2b8bb3386e067fb98..2ffcdbc236f40d94b2eeb61092344223b2c593e0 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Cryptography.RandomNumberGenerator.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 911aa9fd26809df82d0a84e05d3316cd939dbd46..5ad2d813f95f024e4a80de3a6e15c9458230b531 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Cryptography.X509Certificates.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 8284f5fd5ba3a6e7d3478e9a83c425fc8e546d70..a287f05cb84ff339c878bdd67fed4c535bcff718 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.Principal.Windows.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index c4db680014922ad7d1a4320932584cd5d56eb691..1a1265a0e0571e49dac2d921ebeb481e2f287253 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Security.Principal.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index fb949fbe07e8e40b7b59c5bb96cb2fac21b685f5..b33d20dc20261912e900021303cca36c3d41bda3 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Security.SecureString.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 90f55a71d5eb9168513708b07cc5fab8d7454c7a..a8f568f78b58b0c2fa004f9c5efa73db345a3b76 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ServiceModel.Duplex.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.ServiceModel
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 99587810c49caec9570c7cb6cde16120cc562fc1..05f7925c2c66740a9ee27f12489d9e2e73fc10a8 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ServiceModel.Http.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.ServiceModel
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index c01e4819efb8fdd94d709a6ca49971c8854025d5..f0af8c7dc6088864b77f302a9f60619ba3cb9170 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ServiceModel.NetTcp.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.ServiceModel
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 6f94ff346f87c6ea87d72ee2e5b3f4f32e4d54d2..5f65e0599a30b14d256482f517c0ec7e66a5e4db 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ServiceModel.Primitives.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.ServiceModel System.Xml
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 4e572464aa800736c72743cc8eba12301c2bd2f7..f68beafd26e7bb4b12b0d47624ee46a3e4babc93 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.ServiceModel.Security.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.ServiceModel
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 9025a6cd91d1f028b489d5f179ab64dd0975a0a7..2724a34a105c35861c75080253a8dbf96d954e99 100644 (file)
@@ -11,8 +11,8 @@ LIBRARY = System.ServiceProcess.ServiceController.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.ServiceProcess.dll
+LIB_REFS = System System.ServiceProcess
+LIB_MCS_FLAGS = $(SIGN_FLAGS)
 
 PLATFORM_DEBUG_FLAGS =
 
index 114132e3a0fed95137f758c3280942607c68be5d..e851968fdb46f4ea5872733d58708af28e99f521 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Text.Encoding.Extensions.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index aeb003f7bb8810403737dc41b4f80faef827224d..fdfff71849704bb266a05fbd0132cba0818a7080 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Text.Encoding.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 423212c687c95c769db104d74301ac7e4648c234..b345b0d5dcd484cb273644a2f97f5527a1e15200 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Text.RegularExpressions.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 56cf986675d62aa503060f6c9a8578ddb6563781..b0c9264a03b466ee7b50290b3c4b12b5fb140b92 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Threading.AccessControl.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 29dbfe5e191a07be8389120ac3cde1845bb14299..460fb4aff26d042fd0beb0c5b8bb7cd8ced7eb27 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Threading.Overlapped.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 1f74d4934d3698e818a16092e451a4b49aa1be56..7e350f61c2acd2c8ae208c847eb2e76a22427d3d 100644 (file)
@@ -11,7 +11,7 @@ LIBRARY = System.Threading.Tasks.Parallel.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index c89db2377a85d6f7038bd6d382659d0814225f88..deea2c66a8a2cb9ddec8ba6e75ffeb52203f6af2 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Threading.Tasks.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Core
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 177e8890f9f3a4ae66a69b6c8bbeaf8ddd9e838a..cc0bb96aa06b08bbbfa65e9c5b331bafd5a80571 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Threading.Thread.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 67b0082be9eb45a7f2bc53ab978ac782134423b3..604a88c87e7065f9427cf4e430610963436abe7e 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Threading.ThreadPool.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 35df02e1825fa6abfa486350d6610baa3b9d6278..5ab3f8409016c7442859ec1cb18d8ebd38b8347e 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Threading.Timer.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System System.Core
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 1982ff8384e9ea2d120a49c149c125271ca7e772..b6b5c4cd67b94f12e4fe086238d094da6917ff56 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Threading.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System System.Core
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index 373c1ff882e09ea5f2813bbb97da43f8a7131ae3..27f820f582efa014841e2520d00d2bf79d5fdd0d 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Xml.ReaderWriter.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Xml
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index e55fec5512e39b994298218c5a744dd2f42d218e..79eaaf4424997ed36fae1a6e2819ff5f82446db0 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Xml.XDocument.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Xml.Linq System.Xml
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index ee05487967b100037c597d31a989ec4f46ec68bc..45ffe3482e084120afd9a7685bf6684b584bee83 100644 (file)
@@ -11,8 +11,8 @@ LIBRARY = System.Xml.XPath.XDocument.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Xml.Linq.dll
+LIB_REFS = System System.Xml.Linq
+LIB_MCS_FLAGS = $(SIGN_FLAGS)
 
 PLATFORM_DEBUG_FLAGS =
 
index 86a093ba7ad96381ac707493d035fec55368bf6d..7a7ebf6de9d82973eadd8dac53399cf398d5630f 100644 (file)
@@ -11,8 +11,8 @@ LIBRARY = System.Xml.XPath.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Xml.dll
+LIB_REFS = System System.Xml
+LIB_MCS_FLAGS = $(SIGN_FLAGS)
 
 PLATFORM_DEBUG_FLAGS =
 
index 68224f9f25fc2ddfc202bae61e11053f3299cafe..8628579f2f12557479e7a490377ff041f4506371 100644 (file)
@@ -11,8 +11,8 @@ LIBRARY = System.Xml.XmlDocument.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Xml.dll
+LIB_REFS = System System.Xml
+LIB_MCS_FLAGS = $(SIGN_FLAGS)
 
 PLATFORM_DEBUG_FLAGS =
 
index 3a1e1396f75e7777c6f502807a016ebdb931a45a..f8c09af8c35d9f2ceaf74aac97f3f9f0c2d6afa1 100644 (file)
@@ -12,7 +12,7 @@ LIBRARY = System.Xml.XmlSerializer.dll
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
 LIB_REFS = System.Xml
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll
+LIB_MCS_FLAGS = $(SIGN_FLAGS) 
 
 PLATFORM_DEBUG_FLAGS =
 
index d038a8d5840d941fd48ecde2056776e6492a1beb..abddd14886e03137b45f4bc0b9b742496446bfcc 100644 (file)
@@ -11,8 +11,8 @@ LIBRARY = System.Xml.Xsl.Primitives.dll
 
 KEY_FILE = ../../msfinal.pub
 SIGN_FLAGS = /delaysign /keyfile:$(KEY_FILE) /nowarn:1616,1699
-LIB_REFS = System
-LIB_MCS_FLAGS = $(SIGN_FLAGS) /r:mscorlib.dll /r:System.Xml.dll
+LIB_REFS = System System.Xml
+LIB_MCS_FLAGS = $(SIGN_FLAGS)
 
 PLATFORM_DEBUG_FLAGS =
 
index 9d6c885099cefc9977a2be3b657c859db4e1dcb5..e5b85c14f00e175c866a1a4669d514a8218accaa 100644 (file)
@@ -3,7 +3,9 @@ SUBDIRS =
 include ../../../build/rules.make
 
 LIBRARY = I18N.CJK.dll
-LOCAL_MCS_FLAGS = /unsafe /resource:big5.table /resource:gb2312.table /resource:jis.table /resource:ks.table /resource:gb18030.table /r:$(corlib) /r:I18N.dll /define:DISABLE_UNSAFE
+LIB_REFS = I18N
+LOCAL_MCS_FLAGS = /unsafe /resource:big5.table /resource:gb2312.table /resource:jis.table /resource:ks.table /resource:gb18030.table /define:DISABLE_UNSAFE
+TEST_LIB_REFS = I18N
 
 EXTRA_DISTFILES = big5.table jis.table gb2312.table ks.table gb18030.table \
        README.gb18030 \
index af1aa401cd540d337743de75df02a68dcde2a914..b68973bdc26d306d50fbd3015329e547b33519f3 100644 (file)
@@ -3,7 +3,7 @@ SUBDIRS =
 include ../../../build/rules.make
 
 LIBRARY = I18N.dll
-LOCAL_MCS_FLAGS = /r:$(corlib) /unsafe /define:DISABLE_UNSAFE
+LOCAL_MCS_FLAGS = /unsafe /define:DISABLE_UNSAFE
 NO_TEST = yes
 
 include ../../../build/library.make
index aafe245f6a451fb417b2830e9e16d9c69d73eafd..1872c831e58291d947e74991686bf28cee8764ff 100644 (file)
@@ -3,8 +3,9 @@ SUBDIRS =
 include ../../../build/rules.make
 
 LIBRARY = I18N.MidEast.dll
-LOCAL_MCS_FLAGS = /r:$(corlib) /r:I18N.dll /unsafe
-#NO_TEST = yes
+LIB_REFS = I18N
+LOCAL_MCS_FLAGS = /unsafe
+TEST_LIB_REFS = I18N
 
 EXTRA_DISTFILES = $(wildcard *.ucm) \
        $(wildcard Test/texts/*.txt)
index e5740f32cb6cd1d248e8c29e3887530fc4e02a3d..47fac195ad91e2e7fc8153446f289c74d2aa8260 100644 (file)
@@ -3,7 +3,8 @@ SUBDIRS =
 include ../../../build/rules.make
 
 LIBRARY = I18N.Other.dll
-LOCAL_MCS_FLAGS = /r:$(corlib) /r:I18N.dll /unsafe
+LIB_REFS = I18N
+LOCAL_MCS_FLAGS = /unsafe
 NO_TEST = yes
 
 EXTRA_DISTFILES = $(wildcard *.ucm)
index fd315cfce147139cbdb02f64a060a34320ce283a..f558e20e555a7ac67077770c20b82913d4743ef6 100644 (file)
@@ -3,7 +3,8 @@ SUBDIRS =
 include ../../../build/rules.make
 
 LIBRARY = I18N.Rare.dll
-LOCAL_MCS_FLAGS = /r:$(corlib) /r:I18N.dll /unsafe
+LIB_REFS = I18N
+LOCAL_MCS_FLAGS = /unsafe
 NO_TEST = yes
 
 EXTRA_DISTFILES = $(wildcard *.ucm)
index e8b7afe3d0732c1589f0ee5ab59e551a4a953cd5..bc4b2386188478bf070d57a2a90973b2a6b08cc7 100644 (file)
@@ -3,7 +3,8 @@ SUBDIRS =
 include ../../../build/rules.make
 
 LIBRARY = I18N.West.dll
-LOCAL_MCS_FLAGS = /r:$(corlib) /r:I18N.dll /unsafe
+LIB_REFS = I18N
+LOCAL_MCS_FLAGS = /unsafe
 #NO_TEST = yes
 
 EXTRA_DISTFILES = $(wildcard *.ucm) \
index 732087d903e16fd8ff8484e352dd2440285fe2e0..630df027785d0286fa1c729208e98a65a39d4a69 100644 (file)
@@ -4,7 +4,7 @@ include ../../build/rules.make
 
 LIBRARY = IBM.Data.DB2.dll
 LIB_REFS = System System.Xml System.Data
-LIB_MCS_FLAGS = /unsafe /r:$(corlib) -warn:1
+LIB_MCS_FLAGS = /unsafe -warn:1
 NO_TEST = yes
 
 EXTRA_DISTFILES = ibm.pub
index 6a4052c5577796fcaffcaae252c9f334c9244693..bd64d2a4d66c7b991e6609fc8547288ec40a3bd3 100644 (file)
@@ -6,7 +6,7 @@ LIBRARY = ICSharpCode.SharpZipLib.dll
 LIBRARY_SNK = SharpZipLib.key
 
 LIB_REFS = System System.Xml
-LIB_MCS_FLAGS = /r:$(corlib) -warn:1
+LIB_MCS_FLAGS = -warn:1
 NO_TEST = yes
 EXTRA_DISTFILES = SharpZipLib.pub $(LIBRARY_SNK)
 
index 47216dc7d240adcdc7aff86163e6c1514107b056..7cd5d287a6247bb31daea2b519f4ec8806e54848 100644 (file)
@@ -7,19 +7,11 @@ include $(XBUILD_DIR)/xbuild.make
 
 LIBRARY = Microsoft.Build.Engine.dll
 
-LIB_REFS = System System.Core System.Xml
-LIB_MCS_FLAGS = \
-       /r:$(corlib)            \
-       /r:System.dll           \
-       /r:System.Core.dll      \
-       /r:System.Xml.dll       \
-       /r:$(XBUILD_FRAMEWORK)  \
-       /r:$(XBUILD_UTILITIES)
-
-TEST_MCS_FLAGS = \
-       /r:$(XBUILD_FRAMEWORK)  \
-       /r:$(XBUILD_UTILITIES) \
-       /r:System.Xml.dll
+LIB_REFS = $(PARENT_PROFILE)System $(PARENT_PROFILE)System.Core $(PARENT_PROFILE)System.Xml $(XBUILD_FRAMEWORK) $(XBUILD_UTILITIES)
+LIB_MCS_FLAGS =
+
+TEST_MCS_FLAGS =
+TEST_LIB_REFS = $(XBUILD_FRAMEWORK) $(XBUILD_UTILITIES) $(PARENT_PROFILE)System.Xml
 
 EXTRA_DISTFILES = \
        Test/resources/TestTasks.cs             \
@@ -27,16 +19,16 @@ EXTRA_DISTFILES = \
        Test/resources/*.csproj
 
 Test/resources/TestTasks-$(PROFILE).dll: Test/resources/TestTasks.cs
-       $(CSCOMPILE) /out:$@ Test/resources/TestTasks.cs /r:$(XBUILD_FRAMEWORK) /r:$(XBUILD_UTILITIES) /target:library
+       $(CSCOMPILE) /out:$@ Test/resources/TestTasks.cs /r:$(topdir)/class/lib/$(PROFILE)/$(XBUILD_FRAMEWORK).dll /r:$(topdir)/class/lib/$(PROFILE)/$(XBUILD_UTILITIES).dll /target:library
 
 clean-test-resources:
-       rm -f Test/resources/TestTasks*.dll Test/resources/TestTasks*.dll.mdb
+       rm -f Test/resources/TestTasks*.dll Test/resources/TestTasks*.pdb
 
 test-local: compile-resources
 
 compile-resources: Test/resources/TestTasks-$(PROFILE).dll
        cp Test/resources/TestTasks-$(PROFILE).dll Test/resources/TestTasks.dll
-       cp Test/resources/TestTasks-$(PROFILE).dll.mdb Test/resources/TestTasks.dll.mdb
+       cp Test/resources/TestTasks-$(PROFILE).pdb Test/resources/TestTasks.pdb
 
 clean-local: clean-test-resources
 
index 779dc9e2fd40f9df98f2e3dfdc2ed60fb4817198..f31f5a5835ea5f0b8f33c7bdfc059a0490a3e8e9 100644 (file)
@@ -7,10 +7,8 @@ include $(XBUILD_DIR)/xbuild.make
 
 LIBRARY = Microsoft.Build.Framework.dll
 
-LIB_REFS = System
-LIB_MCS_FLAGS = \
-       /r:$(corlib)                            \
-       /r:System.dll
+LIB_REFS = $(PARENT_PROFILE)System
+LIB_MCS_FLAGS =
 
 EXTRA_DISTFILES = \
        Mono.XBuild.Framework/AssemblyLoadInfo.cs
index 66b74a847289a6e708a92bb23fa294d3cab2e4bf..d451c754e74471c627da9bbd3e6ffd86fd871a90 100644 (file)
@@ -9,28 +9,14 @@ LIBRARY = Microsoft.Build.Tasks.dll
 
 LIBRARY_NAME = Microsoft.Build.Tasks$(NAME_SUFFIX).dll
 
-LIB_REFS = System System.Core System.Xml System.Windows.Forms
-LIB_MCS_FLAGS = \
-       /r:$(corlib)                            \
-       /r:System.dll                           \
-       /r:System.Core.dll                      \
-       /r:System.Xml.dll                       \
-       /r:System.Windows.Forms.dll             \
-       /r:$(XBUILD_UTILITIES)                  \
-       /r:$(XBUILD_FRAMEWORK)                  \
-       /r:$(XBUILD_ENGINE)                     \
-       /r:$(XBUILD_TASKS)
-
-TEST_MCS_FLAGS = \
-       /r:System.Xml.dll                       \
-       /r:$(XBUILD_ENGINE)     \
-       /r:$(XBUILD_FRAMEWORK)  \
-       /r:$(XBUILD_TASKS)      \
-       /r:$(XBUILD_UTILITIES)                  \
-       /r:System.Core.dll
+LIB_REFS = $(PARENT_PROFILE)System $(PARENT_PROFILE)System.Core $(PARENT_PROFILE)System.Xml $(PARENT_PROFILE)System.Windows.Forms \
+                       $(XBUILD_UTILITIES) $(XBUILD_FRAMEWORK) $(XBUILD_ENGINE) $(XBUILD_TASKS)
+
+TEST_MCS_FLAGS =
+TEST_LIB_REFS = $(PARENT_PROFILE)System.Xml $(XBUILD_ENGINE) $(XBUILD_FRAMEWORK) $(XBUILD_TASKS) $(XBUILD_UTILITIES) $(PARENT_PROFILE)System.Core
 
 ifeq (4, $(FRAMEWORK_VERSION_MAJOR))
-       TEST_MCS_FLAGS += /r:Microsoft.Build.dll
+TEST_LIB_REFS += Microsoft.Build
 endif
 
 EXTRA_DISTFILES = \
@@ -41,7 +27,7 @@ EXTRA_DISTFILES = \
        Test/test-config-file*
 
 Test/resources/test.dll: Test/resources/test.cs
-       $(CSCOMPILE) -target:library Test/resources/test.cs
+       $(CSCOMPILE) -target:library /out:$@ $<
 
 clean-test-resources:
        rm -f Test/resources/test.dll
index e44bbc2fe80a85d6b9b06961e073b20b66097b3a..b854d2bc853f73f702b2b428ae7fae7e3b164c9f 100644 (file)
@@ -8,17 +8,13 @@ include $(XBUILD_DIR)/xbuild.make
 LIBRARY = Microsoft.Build.Utilities.dll
 LIBRARY_NAME = Microsoft.Build.Utilities$(NAME_SUFFIX).dll
 
-LIB_REFS = System System.Core System.Xml
-LIB_MCS_FLAGS = \
-       /r:$(corlib)                            \
-       /r:System.dll                           \
-       /r:System.Core.dll                      \
-       /r:System.Xml.dll                       \
-       /r:$(XBUILD_FRAMEWORK)
+LIB_REFS = $(PARENT_PROFILE)System $(PARENT_PROFILE)System.Core $(PARENT_PROFILE)System.Xml $(XBUILD_FRAMEWORK)
+LIB_MCS_FLAGS =
 
 TEST_RESX_RESOURCES = Test/Microsoft.Build.Utilities/Strings.resources
 
-TEST_MCS_FLAGS = /r:$(XBUILD_ENGINE) /r:$(XBUILD_FRAMEWORK) -r:System.dll -r:System.Core.dll $(TEST_RESX_RESOURCES:%=-resource:%)
+TEST_LIB_REFS = $(XBUILD_ENGINE) $(XBUILD_FRAMEWORK) $(PARENT_PROFILE)System $(PARENT_PROFILE)System.Core
+TEST_MCS_FLAGS = $(TEST_RESX_RESOURCES:%=-resource:%)
 
 include $(XBUILD_DIR)/xbuild_test.make
 include ../../build/library.make
index 68cd09eb0431b5ef865d8b5197a966ec6e25834a..933782ff268b64d48a5d746d2223c93ffee7d39c 100644 (file)
@@ -7,18 +7,12 @@ include $(XBUILD_DIR)/xbuild.make
 
 LIBRARY = Microsoft.Build.dll
 
-LIB_REFS = System System.Core System.Xml Microsoft.Build.Engine Microsoft.Build.Framework
+LIB_REFS = $(PARENT_PROFILE)System $(PARENT_PROFILE)System.Core $(PARENT_PROFILE)System.Xml Microsoft.Build.Engine Microsoft.Build.Framework
 LIB_MCS_FLAGS = \
-       /r:$(corlib)                            \
-       /r:System.dll                           \
-       /r:System.Core.dll                      \
-       /r:System.Xml.dll                       \
-       /r:Microsoft.Build.Engine.dll           \
-       /r:Microsoft.Build.Framework.dll        \
        /d:MICROSOFT_BUILD_DLL
        
-TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) \
-       /r:Microsoft.Build.Utilities.v4.0.dll
+TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
+TEST_LIB_REFS = $(XBUILD_UTILITIES)
 
 EXTRA_DISTFILES = \
        Microsoft.Build.Internal/ExpressionParser.jay   \
index 4110234a9803d8022b090bc1c2b724fac5825921..5d38210947f1d5370be2d19a2b626f56450c890e 100644 (file)
@@ -4,7 +4,7 @@ include ../../build/rules.make
 
 LIBRARY = Microsoft.VisualC.dll
 LIB_REFS = System
-LIB_MCS_FLAGS = /r:$(corlib)
+LIB_MCS_FLAGS =
 NO_TEST = yes
 
 include ../../build/library.make
index 71430e729329903df359647cba9950ff227dd722..c5f80e37114cd2d05a90a1ff92d7ee561a8d1422 100644 (file)
@@ -5,7 +5,7 @@ include ../../build/rules.make
 LIBRARY = Mono.C5.dll
 LIBRARY_SNK = c5.snk
 LIB_REFS = System
-LIB_MCS_FLAGS = /r:$(corlib) -nowarn:169,219,414,1030,3001,3005,3006
+LIB_MCS_FLAGS = -nowarn:169,219,414,1030,3001,3005,3006
 TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -nowarn:0618 -nowarn:219 -nowarn:169
 
 EXTRA_DISTFILES = \
index 5fe1a18705aa43e4600800f4ed850a216c73066b..d2ed176601d823af3053fa2f8ff4e6b6df0bf2b6 100644 (file)
@@ -15,9 +15,14 @@ ifndef NO_THREAD_ABORT
 REFERENCE_SOURCES_FLAGS += -d:MONO_FEATURE_THREAD_ABORT
 endif
 
-TEST_MCS_FLAGS = -r:System.Core.dll
+TEST_MCS_FLAGS =
+TEST_LIB_REFS = System.Core
 
 LIB_MCS_FLAGS += $(REFERENCE_SOURCES_FLAGS)
 
 include ../../build/library.make
 
+$(topdir)/mcs/cs-parser.cs:
+       $(MAKE) -C $(topdir)/mcs cs-parser.cs
+
+$(the_lib): $(topdir)/mcs/cs-parser.cs
index 70c759c1dab476f0ef70911f277f800221112e34..50357a7903d865a25d955aab0bb58912503f66da 100644 (file)
@@ -6,7 +6,7 @@ LIBRARY_SNK = ../mono.snk
 LIBRARY_PACKAGE = none
 
 LIB_REFS = System Mono.Cecil
-LIB_MCS_FLAGS = /r:$(corlib) /d:CECIL -keyfile:$(LIBRARY_SNK)
+LIB_MCS_FLAGS = /d:CECIL -keyfile:$(LIBRARY_SNK) -publicsign
 
 NO_TEST = yes
 NO_INSTALL = yes
index 790a21809ff02d6f977e5425d24e9289b163a4c8..53aee64f34a11535ec3a8a6bcd875bbba40e0cbf 100644 (file)
@@ -6,7 +6,7 @@ LIBRARY_SNK = ../mono.snk
 LIBRARY_PACKAGE = none
 
 LIB_REFS = System.Core
-LIB_MCS_FLAGS = /r:$(corlib) -keyfile:$(LIBRARY_SNK) -d:NET_3_5
+LIB_MCS_FLAGS = -keyfile:$(LIBRARY_SNK) -d:NET_3_5 /publicsign
 
 NO_TEST = yes
 
index 92a7619d1049ab94c9d42dcd5187db0d9cedae9e..b5e733dbcd989bf7ace531e2e599ce868a1d40a4 100644 (file)
@@ -6,8 +6,8 @@ LIBRARY = Mono.CodeContracts.dll
 
 LIB_REFS = System System.Core Mono.Cecil Mono.Cecil.Mdb
 LIB_MCS_FLAGS =
-#-r:Mono.Cecil.Pdb.dll
 
-TEST_MCS_FLAGS = -r:System.Core.dll -debug
+TEST_MCS_FLAGS =
+TEST_LIB_REFS = System.Core
 
 include ../../build/library.make
index 4f6cc0ca353c6e4f1a798b176a7b3fb68f2031ed..f1764c2282bff00b3e63a2fbdf97489cb93e5f22 100644 (file)
@@ -4,8 +4,9 @@ include ../../build/rules.make
 
 LIBRARY = Mono.Data.Tds.dll
 LIB_REFS = System System.Xml Mono.Security
-LIB_MCS_FLAGS = /r:$(corlib)
+LIB_MCS_FLAGS =
 
-TEST_MCS_FLAGS = /r:System.dll /r:System.Net.dll 
+TEST_MCS_FLAGS =
+TEST_LIB_REFS = System System.Net 
 
 include ../../build/library.make
index 659cf71668e2ae51c6e6846d8730e97ce77b1de8..d92fb61f8a9b42622bb75b7adf1437104e2833da 100644 (file)
@@ -5,9 +5,10 @@ LIBRARY = Mono.Debugger.Soft.dll
 LIBRARY_SNK = ../mono.snk
 
 LIB_REFS = System Mono.Cecil System.Core
-LIB_MCS_FLAGS = /r:$(corlib) /unsafe -D:MONO_DATACONVERTER_STATIC_METHODS -keyfile:$(LIBRARY_SNK)
+LIB_MCS_FLAGS = /unsafe -D:MONO_DATACONVERTER_STATIC_METHODS -keyfile:$(LIBRARY_SNK) /publicsign
 
-TEST_MCS_FLAGS = /r:Mono.Cecil.dll /r:System.dll /r:System.Core.dll
+TEST_MCS_FLAGS =
+TEST_LIB_REFS = Mono.Cecil System System.Core
 
 VALID_TEST_PROFILE := $(filter net_4_x, $(PROFILE))
 
@@ -17,7 +18,7 @@ ifdef VALID_TEST_PROFILE
 test-local: dtest-app.exe dtest-excfilter.exe
 
 dtest-app.exe: Test/dtest-app.cs
-       $(CSCOMPILE) -out:$@ -unsafe -debug -optimize- Test/dtest-app.cs
+       $(CSCOMPILE) -r:$(topdir)/class/lib/$(PROFILE)/System.Core.dll -r:$(topdir)/class/lib/$(PROFILE)/System.dll -out:$@ -unsafe $(PLATFORM_DEBUG_FLAGS) -optimize- Test/dtest-app.cs
 
 dtest-excfilter.exe: Test/dtest-excfilter.il
        MONO_PATH=$(topdir)/class/lib/$(PROFILE) $(INTERNAL_ILASM) -out:$@ /exe /debug Test/dtest-excfilter.il
@@ -29,7 +30,7 @@ check:
 
 endif
 
-CLEAN_FILES = dtest-app.exe dtest-app.exe.mdb dtest-excfilter.exe dtest-excfilter.exe.mdb
+CLEAN_FILES = dtest-app.exe dtest-app.exe.mdb dtest-app.pdb dtest-excfilter.exe dtest-excfilter.exe.mdb dtest-excfilter.pdb
 
 EXTRA_DISTFILES = \
        Test/dtest-app.cs \
index 919f24f0d62cc6c6d81d6cae14996cd8805c73cf..040a1801e1c29afd53171d01eb1a6e6cb9796542 100644 (file)
@@ -4,6 +4,6 @@ include ../../build/rules.make
 
 LIBRARY = Mono.Directory.LDAP.dll
 LIB_REFS = System System.Data
-LIB_MCS_FLAGS = /r:$(corlib)
+LIB_MCS_FLAGS =
 
 include ../../build/library.make
index 903006b49b56052e2c2ad929f63327c4ff43e085..6d9565ccbeec7bcc54cb52a404691fa3c3ee9a05 100644 (file)
@@ -4,7 +4,7 @@ include ../../build/rules.make
 
 LIBRARY = Mono.Dynamic.Interpreter.dll
 
-LIB_REFS = System System.Core
+LIB_REFS = System
 LIB_MCS_FLAGS = \
        -d:FEATURE_CORE_DLR,FEATURE_DBNULL,FEATURE_DEFAULT_PARAMETER_VALUE,FEATURE_GET_TYPE_INFO,FEATURE_VARIANCE,FEATURE_SERIALIZATION,CLR45 \
        -d:MONO_INTERPRETER \
@@ -12,7 +12,9 @@ LIB_MCS_FLAGS = \
 
 ifdef MOBILE_STATIC
 mono_dynamic_interpreter_deps = $(the_libdir_base)plaincore/System.Core.dll
-LIB_MCS_FLAGS += -lib:$(the_libdir_base)plaincore
+LIB_REFS += plaincore/System.Core
+else
+LIB_REFS += System.Core
 endif
 
 include ../../build/library.make
index d52144b2154268ec3c8b3322bd9816967b29b33e..f3801411afa27024cb3d2cb3624f384c2d951fa8 100644 (file)
@@ -4,8 +4,7 @@ include ../../build/rules.make
 
 LIBRARY = Mono.Http.dll
 LIB_REFS = System System.Xml System.Web ICSharpCode.SharpZipLib Mono.Security
-LIB_MCS_FLAGS = -r:$(corlib) \
-               -nowarn:618
+LIB_MCS_FLAGS = -nowarn:618
 
 NO_TEST = yes
 
index c4a97a86a898fc9bd75931f24356566facc105f3..5b7c92c5e4d83a7d3474efdee4fac9bf7e0722e9 100644 (file)
@@ -5,7 +5,7 @@ include ../../build/rules.make
 LIBRARY = Mono.Management.dll
 
 LIB_REFS = System Mono.Posix
-LIB_MCS_FLAGS = /r:$(corlib)
+LIB_MCS_FLAGS =
 NO_TEST = yes
 
 include ../../build/library.make
index d07fee59e7e9e17fe03a716395fe8728ee7aec4c..67f382812d8c76d0d99be3a27a3070dd84cd578e 100644 (file)
@@ -6,8 +6,8 @@ LIBRARY = Mono.Messaging.RabbitMQ.dll
 LIB_REFS = System System.Messaging Mono.Messaging RabbitMQ.Client
 LIB_MCS_FLAGS = -nowarn:618
 
-TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -nowarn:0618 -nowarn:219 -nowarn:169 \
-       /r:nunit.mocks.dll
+TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -nowarn:0618 -nowarn:219 -nowarn:169
+TEST_LIB_REFS = nunit.mocks
 
 include ../../build/library.make
 
index a2e3fbf7b44c30cd95a8f1e5c5f9aa3048a314f6..7788dfb60c89ec9946a89124b1f377312d4edd94 100644 (file)
@@ -7,6 +7,7 @@ LIBRARY = Mono.Messaging.dll
 LIB_REFS = System System.Configuration
 LIB_MCS_FLAGS =
 
-TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -nowarn:0618 -nowarn:219 -nowarn:169 /r:System.Messaging.dll /r:nunit.mocks.dll
+TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -nowarn:0618 -nowarn:219 -nowarn:169
+TEST_LIB_REFS = System.Messaging nunit.mocks
 
 include ../../build/library.make
index beee719c77f79c11e661f5b6f74856321a674e55..2fb4724b28123360a10f265cb35ae4fe5ce77153 100644 (file)
@@ -8,8 +8,9 @@ LIBRARY_PACKAGE = none
 NO_INSTALL = yes
 
 LIB_REFS = System
-LIB_MCS_FLAGS = /r:$(corlib)
-TEST_MCS_FLAGS = /r:Mono.Posix.dll /r:System.dll /r:System.Core.dll
+LIB_MCS_FLAGS =
+TEST_MCS_FLAGS =
+TEST_LIB_REFS = Mono.Posix System System.Core
 
 mono_sourcelibs_DIR  = $(DESTDIR)$(mono_libdir)/mono-source-libs
 mono_options_DATA = Mono.Options/Options.cs
index e2f587ed5e6b7ece3c9dcc9aaade968855c36736..75b5aff640be5ba18b2bd66e09a27292166e1f0e 100644 (file)
@@ -6,7 +6,8 @@ LIBRARY = Mono.Parallel.dll
 
 include ../../build/library.make
 
-TEST_MCS_FLAGS = /r:System.Core.dll
+TEST_MCS_FLAGS =
+TEST_LIB_REFS = System.Core
 
 LIB_REFS += System.Core System
-LIB_MCS_FLAGS += -d:INSIDE_MONO_PARALLEL -r:$(corlib)
+LIB_MCS_FLAGS += -d:INSIDE_MONO_PARALLEL
index 9cde3498e4d17dde9a74721a7ad9a25052da0ec4..10d14fc45edf0aee2674b538db53dcf7fefb8274 100644 (file)
@@ -6,8 +6,9 @@ LIBRARY = Mono.Posix.dll
 # Don't warn about [Obsolete] members, as there are now *lots* of [Obsolete]
 # members, generating volumes of output.
 LIB_REFS = System
-LIB_MCS_FLAGS = /unsafe /r:$(corlib) /nowarn:0618,612
-TEST_MCS_FLAGS = /unsafe /r:Mono.Posix.dll /r:System.dll /nowarn:0219,0618
+LIB_MCS_FLAGS = /unsafe /nowarn:0618,612
+TEST_MCS_FLAGS = /unsafe /nowarn:0219,0618
+TEST_LIB_REFS = Mono.Posix System
 
 LIBRARY_COMPILE = $(BOOT_COMPILE)
 
index a5f641229e46c52357d9af322f91e043b5f52272..54270bccc55d7dba50f4b2fb1d7cc47860e41135 100644 (file)
@@ -3,8 +3,8 @@ SUBDIRS =
 include ../../build/rules.make
 
 LIBRARY = Mono.Security.Providers.NewTls.dll
-LIB_MCS_FLAGS = -unsafe -nowarn:1030 -keyfile:../mono.pub -delaysign -r:System.dll \
-       -r:NewSystemSource=Mono.Security.Providers.NewSystemSource.dll -r:Mono.Security.dll
+LIB_REFS = System NewSystemSource=Mono.Security.Providers.NewSystemSource Mono.Security
+LIB_MCS_FLAGS = -unsafe -nowarn:1030 -keyfile:../mono.pub -delaysign
 
 include ../../build/library.make
 
index 8a873fa9a47f0ca2085f41ca0a1e712ce04a1b3b..30d065aa304cc991dcee3e0a1482a3ebf4784333 100644 (file)
@@ -4,7 +4,7 @@ include ../../build/rules.make
 
 LIBRARY = Mono.Security.dll
 LOCAL_MCS_FLAGS = -lib:$(the_libdir_base)bare
-LIB_REFS = System
+LIB_REFS = bare/System
 LIB_MCS_FLAGS = -unsafe -nowarn:1030,3009
 TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -nowarn:169,219,618,672
 
index 3e394f9287d9844f3ccad7606f3d0bfaed7988a9..d8e1e47414107bd6f95da97b4d1cf223d9f810cd 100644 (file)
@@ -4,8 +4,7 @@ include ../../build/rules.make
 
 LIBRARY = Mono.Simd.dll
 LIB_REFS = System.Core
-LIB_MCS_FLAGS = -r:$(corlib) /unsafe
-TEST_MCS_FLAGS = -r:Mono.Simd.dll
+LIB_MCS_FLAGS = /unsafe
 
 NO_TEST = yes
 
index ef144fe461de5ddc869c9b340e9a8296300434e3..8d50c7ad6294d7f8c10c527a4b39005e1c272e01 100644 (file)
@@ -7,11 +7,8 @@ include $(XBUILD_DIR)/xbuild.make
 
 LIBRARY = Mono.XBuild.Tasks.dll
 
-LIB_REFS = System System.Xml
-LIB_MCS_FLAGS = \
-       /r:$(corlib)                            \
-       /r:System.dll                           \
-       /r:System.Xml.dll
+LIB_REFS = $(PARENT_PROFILE)System $(PARENT_PROFILE)System.Xml
+LIB_MCS_FLAGS =
 
 include $(XBUILD_DIR)/xbuild_test.make
 
index 32b46e6664a290d399701de9d9f919500afe9035..e7ac06790fb53969ee5264f120f45abf95affe33 100644 (file)
@@ -11,7 +11,7 @@ SCARY_LIB=/lib:$(prefix)/lib
 endif
 
 LIB_REFS = System System.Xml
-LIB_MCS_FLAGS = $(SCARY_LIB) /unsafe /r:$(corlib)
+LIB_MCS_FLAGS = $(SCARY_LIB) /unsafe
 TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = \
index 25cd6cc4fdc4610fb6a4783f4cc441acf6f8e44a..9e0d99d6c0b7de775b2ecfc44b3d2a0067d41f15 100644 (file)
@@ -7,9 +7,6 @@ LIBRARY = Novell.Directory.Ldap.dll
 LIB_REFS = System Mono.Security
 LIB_MCS_FLAGS = \
        -warn:1 -nowarn:612 \
-       -r:$(corlib)                            \
-       -r:System.dll                           \
-       -r:Mono.Security.dll                    \
        $(RESX_RES:%=/res:%)
 
 include ../../build/library.make
index e699f77f53f1f88d963a7d07db05b820b682066a..f303415ba6ddae5b83ededf702d4c221c01dd489 100644 (file)
@@ -4,7 +4,7 @@ include ../../build/rules.make
 
 LIBRARY = PEAPI.dll
 LIB_REFS = System
-LIB_MCS_FLAGS = /r:$(corlib) -nowarn:414,618
+LIB_MCS_FLAGS = -nowarn:414,618
 NO_TEST = yes
 
 EXTRA_DISTFILES = README.txt
index 9d5e49a318156426af592e19ce0c9142f98f731c..9c48a40e29ddfb28882d65f65c684f91a69122ea 100644 (file)
@@ -4,9 +4,7 @@ SUBDIRS =
 include ../../../../build/rules.make
 
 PROGRAM = RabbitMQ.Client.Apigen.exe
-
-LOCAL_MCS_FLAGS = /r:System.dll     \
-                  /r:System.Xml.dll \
-                  /main:RabbitMQ.Client.Apigen.Apigen
+LIB_REFS = System System.Xml
+LOCAL_MCS_FLAGS = /main:RabbitMQ.Client.Apigen.Apigen
 
 include ../../../../build/executable.make
index 2da44f09fe567c5cae5d4d53fe703c7810e4b88e..cc8b4f8e95c096df78e66cd908d2ec93d242a37a 100644 (file)
@@ -3,7 +3,7 @@ include ../../build/rules.make
 
 LIBRARY = System.Configuration.Install.dll
 LIB_REFS = System System.Xml
-LIB_MCS_FLAGS = /r:$(corlib)
+LIB_MCS_FLAGS =
 
 NO_TEST = yes
 
index 43fc4253383bc9b14704a56345d09e916ff320a4..065753050515d74addcbc04d91e84ec71296e0c9 100644 (file)
@@ -5,11 +5,11 @@ include ../../build/rules.make
 
 LIBRARY = System.Configuration.dll
 
-LOCAL_MCS_FLAGS = -lib:$(secxml_libdir) -lib:$(bare_libdir)
-test_remove = $(LOCAL_MCS_FLAGS)
-LIB_REFS = System System.Xml System.Security
-LIB_MCS_FLAGS = -r:$(corlib) -nowarn:618
-TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) 
+LOCAL_MCS_FLAGS = 
+LIB_REFS = secxml/System bare/System.Xml System.Security
+LIB_MCS_FLAGS = -nowarn:618
+TEST_MCS_FLAGS =
+TEST_LIB_REFS = System.Xml System
 
 include ../../build/library.make
 
index a4415a382bd4bce358826b9cd00e9c5e8bed9c39..2a70299375e2d0b0945dab6dde31376765b61d0b 100644 (file)
@@ -4,7 +4,7 @@ include ../../build/rules.make
 
 LIBRARY = System.Data.OracleClient.dll
 LIB_REFS = System System.Xml System.Data System.EnterpriseServices System.Drawing
-LIB_MCS_FLAGS = /r:$(corlib)
+LIB_MCS_FLAGS =
 
 TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) /nowarn:618
 
index 5f9aeccafce598da00344ce165221e47a8a90874..b5fb3cb6fdd43622e5dcbd4664aa43b53329969f 100644 (file)
@@ -11,6 +11,7 @@ ifeq (4, $(FRAMEWORK_VERSION_MAJOR))
 LIB_REFS += System.ServiceModel.Activation
 endif
 
-TEST_MCS_FLAGS = -r:System.ServiceModel.dll -r:System.Core.dll
+TEST_MCS_FLAGS =
+TEST_LIB_REFS = System.ServiceModel System.Core
 
 include ../../build/library.make
index 9e19d39aed4c00ec15fedb482998a69ce3067e8c..0c84bbb1b4596a37674c746cdd4467ff84417034 100644 (file)
@@ -28,7 +28,8 @@ endif
 
 TXT_RESOURCE_STRINGS = ../../../external/referencesource/System.Data/system.data.txt
 
-TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -r:System.Core.dll -r:Mono.Data.Sqlite.dll -nowarn:618,169,612,219,168
+TEST_LIB_REFS = System.Core Mono.Data.Sqlite
+TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -nowarn:618,169,612,219,168
 
 TEST_MONO_PATH = .
 
index e941324ef83cafd239f80d65df847e4ff0104c26..3dc11aa3b01e293dc886b475ccd6ff36704715d2 100644 (file)
@@ -4,13 +4,11 @@ include ../../build/rules.make
 
 LIBRARY = System.Design.dll
 
-LIB_REFS = System System.Xml System.Web System.Windows.Forms System.Drawing Accessibility System.Data System.Configuration
-LIB_MCS_FLAGS = -r:$(corlib)
+LIB_REFS = System System.Xml plainweb/System.Web System.Windows.Forms System.Drawing Accessibility System.Data System.Configuration
+LIB_MCS_FLAGS =
 
-plainweb_dir = $(the_libdir_base)plainweb
-LOCAL_MCS_FLAGS = -lib:$(plainweb_dir)
-
-TEST_MCS_FLAGS = /r:System.dll -r:System.Drawing.dll -r:System.Windows.Forms
+TEST_LIB_REFS = System System.Drawing System.Windows.Forms
+TEST_MCS_FLAGS =
 
 include ../../build/library.make
 
index ff5403fd06a9fc2a583051869f7a69a85d068f78..7eccfe87a4e731d6cac7f8f7ae98709cebd1463a 100644 (file)
@@ -4,7 +4,7 @@ include ../../build/rules.make
 
 LIBRARY = System.DirectoryServices.dll
 LIB_REFS = System Novell.Directory.Ldap
-LIB_MCS_FLAGS = /r:$(corlib)
+LIB_MCS_FLAGS =
 TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -nowarn:0618 -nowarn:219 -nowarn:169
 
 include ../../build/library.make
index 9fa2fea63b52942595784a69c89493953f34c9da..7abb4b3f3aed433d4ad2975c59cdb8016af1414e 100644 (file)
@@ -4,7 +4,7 @@ include ../../build/rules.make
 
 LIBRARY = System.Drawing.Design.dll
 LIB_REFS = System System.Drawing System.Windows.Forms
-LIB_MCS_FLAGS = /r:$(corlib)
+LIB_MCS_FLAGS =
 NO_TEST = yes
 
 include ../../build/library.make
index 8827cb4f826929dbba8d2605da6f3972a634df93..59ff776b9f1ccbf1bb35ea36e60206a59417782f 100644 (file)
@@ -5,13 +5,14 @@ SUBDIRS =
 LIBRARY = System.Drawing.dll
 
 LIB_REFS = System
-LIB_MCS_FLAGS = /unsafe /r:$(corlib) \
+LIB_MCS_FLAGS = /unsafe \
        -resource:Assembly/Mono.ico,Mono.ico -resource:Assembly/Information.ico,Information.ico \
        -resource:Assembly/Error.ico,Error.ico -resource:Assembly/Warning.ico,Warning.ico \
        -resource:Assembly/Question.ico,Question.ico -resource:Assembly/Shield.ico,Shield.ico
 
+TEST_LIB_REFS = System.Drawing System.Runtime.Serialization.Formatters.Soap System.Xml
+
 TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -define:TEST -resource:Test/resources/indexed.png,indexed.png \
-        -r:System.Drawing.dll -r:System.Runtime.Serialization.Formatters.Soap.dll -r:System.Xml.dll \
        -nowarn:0618 -nowarn:219 -nowarn:169
 
 include ../../build/library.make
index f0eac39bcdf5cf9df7b333031f147f91d7d64ffb..90f38e9fc9ade77d12212d6d6ceffb38a063ab2d 100644 (file)
@@ -4,7 +4,7 @@ include ../../build/rules.make
 
 LIBRARY = System.EnterpriseServices.dll
 LIB_REFS = System.Transactions
-LIB_MCS_FLAGS = /nowarn:0168 /nowarn:0162 /r:$(corlib)
+LIB_MCS_FLAGS = /nowarn:0168 /nowarn:0162
 NO_TEST = yes
 
 include ../../build/library.make
index abc4e30ee80dea672bbb6ae14cfdd90449b6d521..7cfa024a71de3b0be96972f3dbe6ff146e649d33 100644 (file)
@@ -5,6 +5,7 @@ include ../../build/rules.make
 LIBRARY = System.IO.Compression.FileSystem.dll
 LIB_REFS = System System.IO.Compression
 LIB_MCS_FLAGS =
-TEST_MCS_FLAGS = /r:System.dll /r:System.Core.dll /r:System.IO.Compression.dll
+TEST_MCS_FLAGS =
+TEST_LIB_REFS = System System.Core System.IO.Compression
 
 include ../../build/library.make
index 3ca6899dacde9f589312031a31c0a8622a766770..0987f09e6e3085a0a4802b7c47a198d065cee52b 100644 (file)
@@ -5,6 +5,7 @@ include ../../build/rules.make
 LIBRARY = System.IO.Compression.dll
 LIB_REFS = System System.Core
 LIB_MCS_FLAGS = /unsafe
-TEST_MCS_FLAGS = /r:System.dll /r:System.Core.dll
+TEST_MCS_FLAGS =
+TEST_LIB_REFS = System System.Core
 
 include ../../build/library.make
index 9bf7e1d5877a04ff18d63b6b9fe8002f11023ab6..5a8a72c4c50e416866c1a7670beb50a626555741 100644 (file)
@@ -2,12 +2,6 @@ thisdir = class/System.IdentityModel
 SUBDIRS = 
 include ../../build/rules.make
 
-ifndef NO_SYSTEM_WEB_APPSERVICES_DEPENDENCY
-ifeq (4, $(FRAMEWORK_VERSION_MAJOR))
-OTHER_LIB_MCS_FLAGS = -r:System.Web.ApplicationServices.dll
-endif
-endif
-
 LIBRARY = System.IdentityModel.dll
 LIB_REFS = System System.Xml System.Security System.Configuration Mono.Security System.Runtime.Serialization
 LIB_MCS_FLAGS = \
@@ -18,6 +12,13 @@ ifndef NO_SYSTEM_WEB_DEPENDENCY
 LIB_REFS += System.Web
 endif
 
+
+ifndef NO_SYSTEM_WEB_APPSERVICES_DEPENDENCY
+ifeq (4, $(FRAMEWORK_VERSION_MAJOR))
+LIB_REFS += System.Web.ApplicationServices
+endif
+endif
+
 TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
 EXTRA_DISTFILES = \
index 4fe9d03dca2d1ff0808913fbdbed90c9da9de364..df76cf43bc2b085e3bc3c690db46e0ccaa0b00f2 100644 (file)
@@ -4,7 +4,7 @@ include ../../build/rules.make
 
 LIBRARY = System.Management.dll
 LIB_REFS = System System.Configuration.Install
-LIB_MCS_FLAGS = /r:$(corlib)
+LIB_MCS_FLAGS =
 NO_TEST = yes
 
 include ../../build/library.make
index 4cf4c29ab083040b47ed92087f5c42d22d0fdd2a..0412ea01555cf6bbcf44cb375c526bc75b3406bd 100644 (file)
@@ -10,8 +10,8 @@ LIB_REFS += System.Drawing
 endif
 
 LIB_MCS_FLAGS = /resource:System.Messaging/MessageQueue.resx
-TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -nowarn:0618 -nowarn:219 -nowarn:169 \
-               /r:nunit.mocks.dll
+TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -nowarn:0618 -nowarn:219 -nowarn:169
+TEST_LIB_REFS = nunit.mocks
 
 EXTRA_DISTFILES = System.Messaging/MessageQueue.resx
 
index fad726ff5f37fe25c837b901c5319e60293cd55f..b0d8e7a1a87879a4ee0431abe256ec6ab3538128 100644 (file)
@@ -7,6 +7,7 @@ LIBRARY = System.Net.Http.WebRequest.dll
 LIB_REFS = System.Net.Http System
 LIB_MCS_FLAGS =
 
-TEST_MCS_FLAGS = -r:System.Net.Http.dll
+TEST_MCS_FLAGS =
+TEST_LIB_REFS = System.Net.Http
 
 include ../../build/library.make
index aa3cdf921e56f3563c5d53c213ed72cf7c2cd1a9..bf1cbbd2799e04788e4554d8964bcdc757d54d64 100644 (file)
@@ -7,6 +7,7 @@ LIBRARY = System.Net.Http.dll
 LIB_REFS = System.Core System
 LIB_MCS_FLAGS = $(EXTRA_LIB_MCS_FLAGS)
 
-TEST_MCS_FLAGS = -r:System.dll -r:System.Core.dll
+TEST_LIB_REFS = System System.Core
+TEST_MCS_FLAGS =
 
 include ../../build/library.make
index 8e5efe308ce8a52ef8d8ea3c6492ee93188715aa..fc666baf51ca53b437ad7b1eb98e476efcad6f5b 100644 (file)
@@ -5,8 +5,7 @@ include ../../build/rules.make
 LIBRARY = System.Reactive.Core.dll
 LIB_REFS = System System.Core System.Reactive.Interfaces
 LIB_MCS_FLAGS = \
-               @more_build_args \
-               -r:System.Reactive.Interfaces.dll
+               @more_build_args
 
 ifeq (true, $(GENERATE_RESOURCES))
 LIB_MCS_FLAGS += /define:GENERATING_RESOURCES
index e05d3c0236e2cb69a33984069812a7674007bf90..f7f8f44e195f2eab4d452a18f622827a8a0742bd 100644 (file)
@@ -5,8 +5,7 @@ include ../../build/rules.make
 LIBRARY = System.Reactive.Linq.dll
 LIB_REFS = System System.Core System.Reactive.Interfaces System.Reactive.Core
 LIB_MCS_FLAGS = \
-               @more_build_args \
-               -r:System.Reactive.Core.dll
+               @more_build_args
 
 ifeq (true, $(GENERATE_RESOURCES))
 LIB_MCS_FLAGS += /define:GENERATING_RESOURCES
index ec5e06a73a84530412b32ec9723312c695c01319..0db9de14052ca03748e8ce734006ee299325b53f 100644 (file)
@@ -5,8 +5,7 @@ include ../../build/rules.make
 LIBRARY = System.Reactive.Observable.Aliases.dll
 LIB_REFS = System System.Core System.Reactive.Interfaces System.Reactive.Core System.Reactive.Linq System.Reactive.Providers
 LIB_MCS_FLAGS = \
-               @more_build_args \
-               -r:System.Reactive.Providers.dll
+               @more_build_args
 
 ifeq (true, $(GENERATE_RESOURCES))
 LIB_MCS_FLAGS += /define:GENERATING_RESOURCES
index 1a8675dc69af0736a30654aa87cc48b7952b9cd4..0333c27f2e74bd531e34c5af1666da5275c76ed4 100644 (file)
@@ -5,8 +5,7 @@ include ../../build/rules.make
 LIBRARY = System.Reactive.PlatformServices.dll
 LIB_REFS = System System.Core System.Reactive.Interfaces System.Reactive.Core System.Reactive.Linq
 LIB_MCS_FLAGS = \
-               @more_build_args \
-               -r:System.Reactive.Linq.dll
+               @more_build_args
 
 ifeq (true, $(GENERATE_RESOURCES))
 LIB_MCS_FLAGS += /define:GENERATING_RESOURCES
@@ -35,7 +34,8 @@ ifndef NO_TASK_DELAY
 LIB_MCS_FLAGS += -d:NO_TASK_DELAY
 endif
 
-TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -r:Mono.Reactive.Tests.dll
+TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
+TEST_LIB_REFS = Mono.Reactive.Tests
 
 EXTRA_DISTFILES = more_build_args $(RESX_RESOURCES:.resources=.resx) $(PREBUILT)
 
index 9aedac157d73c36b33b7a525f8b1c8d656141fc1..ab1f274d1503cf65d124a5069e797bedbc72cc65 100644 (file)
@@ -5,8 +5,7 @@ include ../../build/rules.make
 LIBRARY = System.Reactive.Providers.dll
 LIB_REFS = System System.Core System.Reactive.Interfaces System.Reactive.Core System.Reactive.Linq
 LIB_MCS_FLAGS = \
-               @more_build_args \
-               -r:System.Reactive.Linq.dll
+               @more_build_args
 
 ifeq (true, $(GENERATE_RESOURCES))
 LIB_MCS_FLAGS += /define:GENERATING_RESOURCES
index 389920631a72cccac89543143e9e7a3f69839fce..1834e7aaa259e9de7bb25255053d6ad27feb0825 100644 (file)
@@ -5,8 +5,7 @@ include ../../build/rules.make
 LIBRARY = System.Reactive.Runtime.Remoting.dll
 LIB_REFS = System System.Core System.Reactive.Interfaces System.Reactive.Core System.Reactive.Linq
 LIB_MCS_FLAGS = \
-               @more_build_args \
-               -r:System.Reactive.Linq.dll
+               @more_build_args
 
 ifeq (2.1, $(FRAMEWORK_VERSION))
 LIB_MCS_FLAGS += -d:NO_TASK_DELAY
index e2f9d24fa92a02a9472f1aee4ecef2a3d479b0fa..ef3327d3e3e3dd39af41698bb97d9b7ef7d9d372 100644 (file)
@@ -5,8 +5,7 @@ include ../../build/rules.make
 LIBRARY = System.Reactive.Windows.Forms.dll
 LIB_REFS = System System.Core System.Reactive.Interfaces System.Reactive.Core System.Reactive.Linq System.Windows.Forms
 LIB_MCS_FLAGS = \
-               @more_build_args \
-               -r:System.Windows.Forms.dll
+               @more_build_args
 
 ifeq (2.1, $(FRAMEWORK_VERSION))
 LIB_MCS_FLAGS += -d:NO_TASK_DELAY -d:HAS_AWAIT
index 3c0654cfac387f4690791f0dd8a3b55a7de1e269..66a3ff14f6c6518b55254691c13c1d65fd52e02e 100644 (file)
@@ -5,8 +5,7 @@ include ../../build/rules.make
 LIBRARY = System.Reactive.Windows.Threading.dll
 LIB_REFS = System System.Core System.Reactive.Interfaces System.Reactive.Core System.Reactive.Linq WindowsBase
 LIB_MCS_FLAGS = \
-               @more_build_args \
-               -r:WindowsBase.dll
+               @more_build_args
 
 ifeq (true, $(GENERATE_RESOURCES))
 LIB_MCS_FLAGS += /define:GENERATING_RESOURCES
index eeb73d0894eefe4d3fa471d20c063fb544c3abad..323d4241eb5ce80ee8106733b36fce329cd1cdc6 100644 (file)
@@ -5,13 +5,14 @@ include ../../build/rules.make
 LIBRARY = System.Runtime.Remoting.dll
 
 LIB_REFS = System System.Xml System.Runtime.Serialization.Formatters.Soap
-LIB_MCS_FLAGS = /r:$(corlib)
+LIB_MCS_FLAGS =
 
 ifndef NO_SYSTEM_WEB_DEPENDENCY
 LIB_REFS += System.Web
 endif
 
-TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -nowarn:618 /r:System.Runtime.Remoting.dll
+TEST_MCS_FLAGS = -nowarn:618
+TEST_LIB_REFS = System System.Xml
 
 TEST_MONO_PATH = .
 
index 76d3270616d3b94427d798d02bc23435b0124bfe..7a673f01fa3b3245627fb9114f3f97446c6ca515 100644 (file)
@@ -6,8 +6,10 @@ include ../../build/rules.make
 
 LIBRARY = System.Runtime.Serialization.Formatters.Soap.dll
 LIB_REFS = System.Xml
-LIB_MCS_FLAGS = /r:$(corlib)
-TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -r:System.dll -nowarn:0618 -nowarn:219 -nowarn:169
+LIB_MCS_FLAGS =
+
+TEST_LIB_REFS = System
+TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -nowarn:0618 -nowarn:219 -nowarn:169
 
 EXTRA_DISTFILES = \
        README          \
index 21d8e716a39187f157f2511d834a5d5f4bf9add5..19894c49fd901c0240648f0a428c0fefeb6e6bcc 100644 (file)
@@ -27,8 +27,8 @@ TEST_RESOURCE_FILES = \
        Test/Resources/WSDL/collections.wsdl    \
        Test/Resources/WSDL/custom-collections.wsdl
 
-TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) /r:System.ServiceModel.dll /r:System.Web.Services.dll \
-       $(TEST_RESOURCE_FILES:%=/resource:%)
+TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) $(TEST_RESOURCE_FILES:%=/resource:%)
+TEST_LIB_REFS = System.ServiceModel System.Web.Services
 
 EXTRA_DISTFILES = $(RESOURCE_FILES) $(TEST_RESOURCE_FILES) \
        Test/Resources/FrameworkTypes/* \
index 03e2493cc2606e41cabdaa5cabc0fbfb26db05f0..451a06e2f4c2e91d8827c10f0103166bebf7aaa0 100644 (file)
@@ -3,10 +3,9 @@ SUBDIRS =
 include ../../build/rules.make
 
 LIBRARY = System.Security.dll
-LIB_REFS = System System.Xml Mono.Security
+LIB_REFS = secxml/System bare/System.Xml Mono.Security
 LIB_MCS_FLAGS = -nowarn:618 \
        -d:SECURITY_DEP \
-       -r:$(corlib) \
        -nowarn:414
 
 LOCAL_MCS_FLAGS = -lib:$(secxml_libdir) -lib:$(bare_libdir)
index ad7f73f1b92be950c3c6236ff50567dab61271f9..2be1563c1d7fe3fcd25604e4bbcefd2b6a3489fc 100644 (file)
@@ -4,14 +4,13 @@ include ../../build/rules.make
 
 LIBRARY = System.ServiceModel.Activation.dll
 
-LIB_REFS = System.Core System System.ServiceModel
+LIB_REFS = System.Core System plainservice/System.ServiceModel
 LIB_MCS_FLAGS =
 
-TEST_MCS_FLAGS = -r:System.dll -r:System.Core.dll
+TEST_MCS_FLAGS =
+TEST_LIB_REFS = System System.Core
 
-plainservicemodel_dir = $(the_libdir_base)plainservice
-servicemodel = $(plainservicemodel_dir)/System.ServiceModel.dll
-LOCAL_MCS_FLAGS = -lib:$(plainservicemodel_dir)
+servicemodel = $(the_libdir_base)plainservice/System.ServiceModel.dll
 
 include ../../build/library.make
 
index 75422d19e74fbd15a21aa447024b116fd0fdb180..d46df268454428326dff800cee795250cb365896 100644 (file)
@@ -8,8 +8,7 @@ LIB_MCS_FLAGS =
 
 ifneq (2.1, $(FRAMEWORK_VERSION))
 LIB_REFS += System.Configuration
-LIB_MCS_FLAGS += -d:NET_3_5 -d:NET_3_0         \
-                       -r:System.Configuration.dll
+LIB_MCS_FLAGS += -d:NET_3_5 -d:NET_3_0 
 endif
 
 TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
index ad9a78e6a60c6f2c9a67566f26c10a6c286d2152..f8d30f60025f57b042f907851c4feef3c5be7019 100644 (file)
@@ -8,8 +8,7 @@ LIB_MCS_FLAGS =
 
 ifneq (2.1, $(FRAMEWORK_VERSION))
 LIB_REFS += System.Configuration
-LIB_MCS_FLAGS += -d:NET_3_5 -d:NET_3_0         \
-                       -r:System.Configuration.dll
+LIB_MCS_FLAGS += -d:NET_3_5 -d:NET_3_0
 endif
 
 TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
index 03dbd5fd9e59d7fd8b5b225e7ed63040f22fc059..5f09e6a23292aadd8f61059dbe303d53c118bc57 100644 (file)
@@ -34,7 +34,8 @@ activation = $(the_libdir_base)System.ServiceModel.Activation.dll
 servicemodel_deps = $(activation)
 
 ifneq (plainservice/,$(intermediate))
-LIB_MCS_FLAGS += -define:HAS_ACTIVATION -r:System.ServiceModel.Activation.dll
+LIB_REFS += System.ServiceModel.Activation
+LIB_MCS_FLAGS += -define:HAS_ACTIVATION
 endif 
 endif # NO_SYSTEM_SERVICEMODEL_ACTIVATION_DEPENDENCY
 
index 349e5c75754d6e3996c58e5041b9253198c7b489..017f1a880c8a371ee9a228c80fe6c8aaebf9991d 100644 (file)
@@ -7,8 +7,9 @@ LIBRARY = System.Threading.Tasks.Dataflow.dll
 include ../../build/library.make
 
 LIB_REFS += System.Core System
-LIB_MCS_FLAGS += -r:$(corlib) -d:CONCURRENT_COLLECTIONS
+LIB_MCS_FLAGS += -d:CONCURRENT_COLLECTIONS
 
-TEST_MCS_FLAGS = -r:System.Core.dll -r:System.dll
+TEST_MCS_FLAGS =
+TEST_LIB_REFS = System.Core System
 
 EXTRA_DISTFILES=README.md
index 08e9bd68021ad136a721544c9f3a7366b8dd10cc..07672c10b06da81802b6a3ac7188edce5129ee90 100644 (file)
@@ -5,10 +5,10 @@ include ../../build/rules.make
 LIBRARY = System.Transactions.dll
 ifdef MOBILE_PROFILE
 LIB_REFS = System
-LIB_MCS_FLAGS = /r:$(corlib) /define:MOBILE
+LIB_MCS_FLAGS = /define:MOBILE
 else
 LIB_REFS = System System.Configuration
-LIB_MCS_FLAGS = /r:$(corlib)
+LIB_MCS_FLAGS =
 endif
 
 TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
index 08cb7d04c2b6c0d14512c03a8f744431da3b33b6..df81a3719ca47c816f3937a33d1e1886bae5831d 100644 (file)
@@ -160,11 +160,11 @@ TEST_RESOURCE_FILES = \
 
 NUNIT_RESOURCE_FILES = $(TEST_RESOURCE_FILES)
 
-TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -r:System.ComponentModel.DataAnnotations.dll -r:System.Configuration.dll \
-       $(NUNIT_RESOURCE_FILES:%=/resource:%) -r:SystemWebTestShim.dll -r:System.Xml.dll
+TEST_LIB_REFS = System.ComponentModel.DataAnnotations System.Configuration SystemWebTestShim System.Xml
+TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) $(NUNIT_RESOURCE_FILES:%=/resource:%)
 
 ifeq (4, $(FRAMEWORK_VERSION_MAJOR))
-TEST_MCS_FLAGS += -r:System.Web.ApplicationServices.dll
+TEST_LIB_REFS += System.Web.ApplicationServices
 endif
 
 EXTRA_DISTFILES = $(foreach resource,$(TEST_RESOURCE_FILES), $(shell echo $(subst \`,\\\`,$(resource)) | cut -d ',' -f 1))
index bf15f32944f8a2e700ca4acc1066ddedf799497e..4a3f8a48970acbdeb930cc1d3928e8e329f9698f 100644 (file)
@@ -39,7 +39,7 @@ NUNIT_RESOURCE_FILES= \
 CLASSLIB_DIR = $(topdir)/class/lib/$(PROFILE)
 
 STANDALONE_RUNNER_SUPPORT_ASSEMBLY = $(CLASSLIB_DIR)/standalone-runner-support.dll
-STANDALONE_TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) $(PROFILE_MCS_FLAGS) -debug:full -r:$(STANDALONE_RUNNER_SUPPORT_ASSEMBLY) -r:System.Web.dll -r:System.Web.Extensions.dll -r:nunit.framework.dll
+STANDALONE_TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) $(PROFILE_MCS_FLAGS) -r:$(STANDALONE_RUNNER_SUPPORT_ASSEMBLY) -r:$(topdir)/class/lib/$(PROFILE)/System.Web.dll -r:$(topdir)/class/lib/$(PROFILE)/System.Web.Extensions.dll -r:$(topdir)/class/lib/$(PROFILE)/nunit.framework.dll
 STANDALONE_TEST_ASSEMBLY = System.Web.Extensions_standalone_test_$(PROFILE).dll
 STANDALONE_TEST_MAKEFRAG = $(depsdir)/$(STANDALONE_TEST_ASSEMBLY).makefrag
 
@@ -49,20 +49,20 @@ ifdef TESTNAME
 RUN_STANDALONE += --test=$(TESTNAME)
 endif
 
-ifeq (4, $(FRAMEWORK_VERSION_MAJOR))
-OTHER_LIB_MCS_FLAGS += -r:System.Web.ApplicationServices.dll
-endif
-
 LIB_REFS = System System.Core System.Drawing System.Data System.Data.Linq System.Xml System.Web System.Web.Services System.Configuration System.EnterpriseServices System.ServiceModel
 LIB_MCS_FLAGS = \
        -unsafe \
        -define:NET_3_5                 \
        -define:SYSTEM_WEB_EXTENSIONS   \
-       -r:$(corlib)                    \
        $(OTHER_LIB_MCS_FLAGS)          \
        $(RESOURCE_FILES:%=/resource:%)
 
-TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -doc:$(test_lib:.dll=.xml) -nowarn:219,169,1591 $(NUNIT_RESOURCE_FILES:%=/resource:%) -r:SystemWebTestShim.dll -define:SYSTEM_WEB_EXTENSIONS
+ifeq (4, $(FRAMEWORK_VERSION_MAJOR))
+LIB_REFS += System.Web.ApplicationServices
+endif
+
+TEST_LIB_REFS = SystemWebTestShim
+TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -doc:$(test_lib:.dll=.xml) -nowarn:219,169,1591 $(NUNIT_RESOURCE_FILES:%=/resource:%) -define:SYSTEM_WEB_EXTENSIONS
 
 EXTRA_DISTFILES = $(RESOURCE_FILES_DIST) $(NUNIT_RESOURCE_FILES) \
        System.Web.Extensions_standalone_test.dll.sources \
index c189f7963eb63425694f478679cdad6841ffab3d..0e8dd48092a02ed4dec8aa97c7c34f192ae50502 100644 (file)
@@ -7,9 +7,6 @@ ifdef MOBILE_PROFILE
 LIB_REFS = System System.Xml
 LIB_MCS_FLAGS = \
        -nowarn:649 -nowarn:169                 \
-       -r:$(corlib)                            \
-       -r:System.dll                           \
-       -r:System.Xml.dll                       \
        -resource:System.Web.Services.Description/wsdl-1.1.xsd,wsdl-1.1.xsd \
        -resource:System.Web.Services.Description/wsdl-1.1-soap.xsd,wsdl-1.1-soap.xsd \
        -resource:System.Web.Services.Description/web-reference.xsd,web-reference.xsd
@@ -18,19 +15,15 @@ LIB_REFS = System System.EnterpriseServices System.Xml System.Data
 LIB_MCS_FLAGS = -nowarn:168,169,219,414,612,649 -d:MONO_BROKEN_CONFIGURATION_DLL
 
 ifndef NO_SYSTEM_WEB_DEPENDENCY
-LIB_REFS += System.Web
-plainweb_dir = $(the_libdir_base)plainweb
-plainweb = $(plainweb_dir)/System.Web.dll
-system_web_services_deps = $(plainweb)
-LOCAL_MCS_FLAGS += -lib:$(plainweb_dir)
+plainweb = $(the_libdir_base)plainweb/System.Web.dll
+system_web_deps = $(plainweb)
+LIB_REFS += plainweb/System.Web
 endif
 
 ifndef NO_SYSTEM_DESIGN_DEPENDENCY
-LIB_REFS += System.Design
-plaindesign_dir = $(the_libdir_base)plaindesign
-plaindesign = $(plaindesign_dir)/System.Design.dll
+plaindesign = $(the_libdir_base)plaindesign/System.Design.dll
 system_design_deps = $(plaindesign)
-LOCAL_MCS_FLAGS += -lib:$(plaindesign_dir)
+LIB_REFS += plaindesign/System.Design
 endif
 
 ifndef NO_SYSTEM_DIRECTORY_SERVICES_DEPENDENCY
@@ -63,7 +56,7 @@ EXTRA_DISTFILES = \
 
 include ../../build/library.make
 
-$(the_libdir_base)$(LIBRARY): $(system_web_services_deps) $(system_design_deps)
+$(the_libdir_base)$(LIBRARY): $(system_web_deps) $(system_design_deps)
 
 $(plainweb):
        (cd ../System.Web; $(MAKE) $@)
index 72f14d105779d04a3118b84c4d456bc0fce77c8c..9656cafa25b83a982e5f191d59a1db6bbd8c8100 100644 (file)
@@ -233,33 +233,33 @@ NUNIT_APP_CODE_FILES = $(TEST_APP_CODE_FILES)
 NUNIT_APP_GLOBALRESOURCES_FILES = $(TEST_APP_GLOBALRESOURCES_FILES)
 
 OTHER_RES += $(RESOURCE_FILES_2)
-OTHER_LIB_MCS_FLAGS = -d:INSIDE_SYSTEM_WEB -nowarn:618 -r:System.Configuration.dll -r:Mono.Data.Sqlite.dll
+OTHER_LIB_MCS_FLAGS = -d:INSIDE_SYSTEM_WEB -nowarn:618
 
 ifeq (4, $(FRAMEWORK_VERSION_MAJOR))
-OTHER_LIB_MCS_FLAGS += -r:System.Web.ApplicationServices.dll
 OTHER_RES += $(RESOURCE_FILES_4)
 endif
 
 TXT_RESOURCE_STRINGS = ../../../external/referencesource/System.Web/System.Web.txt
 
-LIB_REFS = System System.Core System.Drawing System.Data System.Xml System.EnterpriseServices System.Runtime.Serialization.Formatters.Soap System.ComponentModel.DataAnnotations
+LIB_REFS = System System.Core System.Drawing System.Data System.Xml System.EnterpriseServices System.Runtime.Serialization.Formatters.Soap \
+       System.ComponentModel.DataAnnotations System.Web.ApplicationServices System.Configuration Mono.Data.Sqlite
 LIB_MCS_FLAGS = \
        -unsafe \
        -nowarn:612,618 \
-       -r:$(corlib)                    \
        $(OTHER_LIB_MCS_FLAGS) \
        $(RESX_RES:%=/resource:%) \
        $(OTHER_RES:%=/resource:%)
 
 ifneq (plainweb/,$(intermediate))
-LIB_REFS += System.Web.Services System.Design
+LIB_REFS += System.Web.Services plaindesign/System.Design
 LIB_MCS_FLAGS += -define:WEBSERVICES_DEP -lib:$(the_libdir_base)plaindesign
 
 all-local: System.Web/UplevelHelper.cs resources/TranslationResources.resources 
 
 endif
 
-TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -doc:$(test_lib:.dll=.xml) -nowarn:219,169,1591 -r:SystemWebTestShim.dll \
+TEST_LIB_REFS = SystemWebTestShim
+TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -doc:$(test_lib:.dll=.xml) -nowarn:219,169,1591 \
        $(NUNIT_RESOURCE_FILES:%=/resource:%) \
        $(foreach file,$(NUNIT_APP_CODE_FILES),$(shell echo $(file) | sed -e 's;\(.*\)/\(.*\);/resource:\1/\2,App_Code/\2 ;g')) \
        $(foreach file,$(NUNIT_APP_GLOBALRESOURCES_FILES),$(shell echo $(file) | sed -e 's;\(.*\)/\(.*\);/resource:\1/\2,App_GlobalResources/\2 ;g'))
@@ -322,11 +322,11 @@ endif
 
 CLASSLIB_DIR = $(topdir)/class/lib/$(PROFILE)
 
-STANDALONE_RUNNER_SUPPORT_MCS_FLAGS = $(LIB_MCS_FLAGS) $(PROFILE_MCS_FLAGS) -d:STANDALONE_TEST -debug:full -r:System.Web.dll -r:nunit.framework.dll
+STANDALONE_RUNNER_SUPPORT_MCS_FLAGS = $(LIB_MCS_FLAGS) $(PROFILE_MCS_FLAGS) -d:STANDALONE_TEST -r:$(topdir)/class/lib/$(PROFILE)/System.Web.dll -r:$(topdir)/class/lib/$(PROFILE)/nunit.framework.dll
 STANDALONE_RUNNER_SUPPORT_ASSEMBLY = $(CLASSLIB_DIR)/standalone-runner-support.dll
 STANDALONE_RUNNER_SUPPORT_MAKEFRAG = $(depsdir)/$(PROFILE)_standalone-runner-support.dll.makefrag
 
-STANDALONE_TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) $(PROFILE_MCS_FLAGS) -debug:full -r:$(STANDALONE_RUNNER_SUPPORT_ASSEMBLY) -r:System.Web.dll -r:nunit.framework.dll
+STANDALONE_TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) $(PROFILE_MCS_FLAGS) -r:$(STANDALONE_RUNNER_SUPPORT_ASSEMBLY) -r:$(topdir)/class/lib/$(PROFILE)/System.Web.dll -r:$(topdir)/class/lib/$(PROFILE)/nunit.framework.dll
 STANDALONE_TEST_ASSEMBLY = System.Web_standalone_test_$(PROFILE).dll
 STANDALONE_TEST_MAKEFRAG = $(depsdir)/$(STANDALONE_TEST_ASSEMBLY).makefrag
 
index bfe9f95caa27775f0c959b4c0ca17c8ae708845a..9cbb4159d004d5bf1c20d5f539f159e050336666 100644 (file)
@@ -10,9 +10,9 @@ STANDALONE_RUNNER_SOURCES = \
        ../../../Mono.Options/Mono.Options/Options.cs \
 
 STANDALONE_RUNNER_REFERENCES = \
-       -lib:$(CLASSLIB_DIR) \
        -r:$(STANDALONE_RUNNER_SUPPORT_ASSEMBLY) \
-       -r:System.Web.dll
+       -r:$(CLASSLIB_DIR)/System.Web.dll \
+       -r:$(CLASSLIB_DIR)/System.dll
 
 CACHE_PQ_TEST_GENERATOR_SOURCES = \
        CachePQTestGenerator/CacheItemComparer.cs \
@@ -27,7 +27,6 @@ CACHE_PQ_TEST_GENERATOR_SOURCES = \
        ../System.Web.Caching/CacheItemPriorityQueueTestSupport.cs
 
 CACHE_PQ_TEST_GENERATOR_REFERENCES = \
-       -lib:$(CLASSLIB_DIR) \
        -pkg:dotnet
 
 CACHE_PQ_TEST_SEQUENCES = $(wildcard ./CachePQTestGenerator/Sequences/*.seq)
@@ -36,13 +35,13 @@ CACHE_PQ_TEST_PACKED_SEQUENCES = $(wildcard ./CachePQTestGenerator/Sequences/*.s
 all-local: HtmlWriter.dll standalone-runner.exe cache-pq-test-generator.exe
 
 HtmlWriter.dll: HtmlWriter.cs
-       $(MCS) -t:library -r:System.Web.dll $<
+       $(CSCOMPILE) -t:library -r:System.Web.dll $<
 
 standalone-runner.exe: deps $(STANDALONE_RUNNER_SOURCES)
-       $(MCS) -debug:full $(STANDALONE_RUNNER_REFERENCES) -out:$@ $(STANDALONE_RUNNER_SOURCES)
+       $(CSCOMPILE) $(STANDALONE_RUNNER_REFERENCES) -out:$@ $(STANDALONE_RUNNER_SOURCES)
 
 cache-pq-test-generator.exe: $(CACHE_PQ_TEST_GENERATOR_SOURCES)
-       $(MCS) -debug:full -d:DEBUG $(CACHE_PQ_TEST_GENERATOR_REFERENCES) -out:$@ $(CACHE_PQ_TEST_GENERATOR_SOURCES)
+       $(CSCOMPILE) -d:DEBUG $(CACHE_PQ_TEST_GENERATOR_REFERENCES) -out:$@ $(CACHE_PQ_TEST_GENERATOR_SOURCES)
 
 generate-cache-pq-tests: cache-pq-test-generator.exe 
        for f in $(patsubst %.seq.gz,%.seq,$(CACHE_PQ_TEST_PACKED_SEQUENCES)); do \
index 3d8113656cf5f9dd2acce3436c67bd6a1e9c3e27..06eacbcbcf7cd073d64de672105b60d866fa266a 100644 (file)
@@ -5,7 +5,6 @@ LIBRARY = System.Windows.Forms.dll
 
 LIB_REFS = System System.Xml System.Drawing Accessibility System.Data Mono.Posix Mono.WebBrowser System.Configuration System.Runtime.Serialization.Formatters.Soap
 LIB_MCS_FLAGS = /unsafe \
-       /r:$(corlib) \
        @System.Windows.Forms.dll.resources \
        -nowarn:618,612,809
 
@@ -100,13 +99,15 @@ EXTRA_DISTFILES = \
        $(IMAGES_RESOURCES) \
        $(TEST_DISTFILES)
 
-TEST_MCS_FLAGS = /r:System.Data.dll /r:System.Drawing.dll /r:Accessibility.dll -r:System.dll -r:System.Xml.dll -r:System.Runtime.Serialization.Formatters.Soap\
+TEST_LIB_REFS = System.Data System.Drawing Accessibility System System.Xml System.Runtime.Serialization.Formatters.Soap
+TEST_MCS_FLAGS = \
        -resource:Test/resources/a.cur,a.cur \
        -resource:Test/resources/32x32.ico,32x32.ico \
        -nowarn:618,612
 
 DummyAssembly.dll:
-       $(CSCOMPILE) /target:library /out:$@ Test/DummyAssembly/AnotherSerializable.cs Test/DummyAssembly/Convertable.cs Test/DummyAssembly/Properties/AssemblyInfo.cs
+       $(CSCOMPILE) /target:library /out:$@ Test/DummyAssembly/AnotherSerializable.cs Test/DummyAssembly/Convertable.cs Test/DummyAssembly/Properties/AssemblyInfo.cs \
+       -r:$(topdir)/class/lib/$(PROFILE)/System.dll
 
 test-local: DummyAssembly.dll
 
index 183612a105348969632ad26a81b0835b28379a36..e66bd2e4635074301139ad12b82b242026bc4fda 100644 (file)
@@ -17,23 +17,24 @@ TXT_RESOURCE_STRINGS = \
        ../../../external/referencesource/System.Xml/System.Xml.txt \
        ../../../external/referencesource/System.Data.SqlXml/System.Xml.Utils.txt
 
-LIB_REFS = System
-LIB_MCS_FLAGS = -r:$(corlib)  -nowarn:219,414,649,1717 -unsafe -d:ASYNC
+LIB_MCS_FLAGS = -nowarn:219,414,649,1717 -unsafe -d:ASYNC
 
 ifeq (2.1, $(FRAMEWORK_VERSION))
 LIB_MCS_FLAGS += -d:AGCLR -d:NET_2_1_HACK -d:DISABLE_XSLT_COMPILER -d:DISABLE_XSLT_SCRIPT,MONO_HYBRID_SYSTEM_XML -d:DISABLE_CAS_USE
 endif
-TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -nowarn:0618 -nowarn:219 -nowarn:169 -r:System.Data.dll -r:System.Core.dll
 
-ifndef MOBILE_PROFILE
-FINAL_MCS_FLAGS = -r:System.Configuration.dll -d:CONFIGURATION_DEP
-endif
+TEST_LIB_REFS = System.Data System.Core
+TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -nowarn:0618 -nowarn:219 -nowarn:169
 
 ifneq (bare/,$(intermediate))
-LIB_MCS_FLAGS += $(FINAL_MCS_FLAGS)
+LIB_REFS += secxml/System 
+ifndef MOBILE_PROFILE
+LIB_REFS += System.Configuration
+LIB_MCS_FLAGS += -d:CONFIGURATION_DEP
+endif
+else
+LIB_REFS += $(intermediate)System
 endif
-
-LOCAL_MCS_FLAGS += -lib:$(bare_libdir)
 
 nist_dom_files = \
        ITest.cs readme.txt util.cs \
index 25031265acc6825dabdb97cc1350dabdce1a4215..1e19b0dd5bc02a9678e3d765cbe66b224864fa06 100644 (file)
@@ -19,7 +19,9 @@ TEST_RESOURCES = \
        Test/System/test-uri-props-manual.txt \
        Test/System/test-uri-relative-props.txt
 
-TEST_MCS_FLAGS = -r:System.Drawing.dll -r:Mono.Security.dll -r:System.Data.dll -r:System.Xml.dll -r:System.Core.dll -nowarn:618,672,219,67,169,612 \
+TEST_LIB_REFS = System.Drawing Mono.Security System.Data System.Xml System.Core System.Configuration
+
+TEST_MCS_FLAGS = -nowarn:618,672,219,67,169,612 \
        $(foreach f, $(TEST_RESOURCES), -resource:$(f),$(notdir $(f)))
 
 REFERENCE_SOURCES_FLAGS = -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX
@@ -29,7 +31,6 @@ TEST_MCS_FLAGS += -d:MONO_FEATURE_PROCESS_START
 endif
 
 LIB_MCS_FLAGS = -nowarn:618 -d:CONFIGURATION_2_0 $(REFERENCE_SOURCES_FLAGS) -unsafe $(RESOURCE_FILES:%=-resource:%)
-TEST_MCS_FLAGS += -r:System.Configuration.dll
 
 ifndef NO_THREAD_ABORT
 REFERENCE_SOURCES_FLAGS += -d:MONO_FEATURE_THREAD_ABORT
@@ -50,7 +51,6 @@ ifdef MOBILE_PROFILE
 LIB_MCS_FLAGS += -d:INSIDE_SYSTEM -d:SECURITY_DEP
 else
 EXTERN_ALIAS_FLAGS = -d:MONO_SECURITY_ALIAS -d:MONO_X509_ALIAS
-FINAL_MCS_FLAGS = -r:System.Configuration.dll -d:CONFIGURATION_DEP
 endif
 
 #
@@ -58,7 +58,7 @@ endif
 #
 ifeq (secxml/, $(intermediate))
 LOCAL_MCS_FLAGS = -lib:$(bare_libdir) 
-LIB_REFS += System.Xml MonoSecurity=Mono.Security
+LIB_REFS += bare/System.Xml MonoSecurity=Mono.Security
 LIB_MCS_FLAGS += -d:SECURITY_DEP -d:XML_DEP -r:PrebuiltSystem=$(bare_libdir)/System.dll $(EXTERN_ALIAS_FLAGS)
 endif
 
@@ -67,7 +67,13 @@ endif
 #
 ifndef intermediate
 LIB_REFS += System.Xml MonoSecurity=Mono.Security
-LIB_MCS_FLAGS += -d:SECURITY_DEP -d:XML_DEP -r:PrebuiltSystem=$(secxml_libdir)/System.dll $(EXTERN_ALIAS_FLAGS) $(FINAL_MCS_FLAGS)
+LIB_MCS_FLAGS += -d:SECURITY_DEP -d:XML_DEP -r:PrebuiltSystem=$(secxml_libdir)/System.dll $(EXTERN_ALIAS_FLAGS)
+
+ifndef MOBILE_PROFILE
+LIB_REFS += System.Configuration
+LIB_MCS_FLAGS += -d:CONFIGURATION_DEP
+endif
+
 endif
 
 EXTRA_DISTFILES = \
index 476d3be7c22a21f834b329fd99a54215c312f005..2ee3b170c48f98baddbe1cbbb1e54337f9332648 100644 (file)
@@ -5,7 +5,8 @@ include ../../build/rules.make
 LIBRARY = WebMatrix.Data.dll
 
 LIB_REFS = System System.Data System.Core System.Configuration
-LIB_MCS_FLAGS = -r:$(corlib)
-TEST_MCS_FLAGS = -r:System.dll -r:System.Core.dll -r:System.Data.dll -r:Mono.Data.Sqlite.dll -r:Microsoft.CSharp.dll
+LIB_MCS_FLAGS =
+TEST_MCS_FLAGS =
+TEST_LIB_REFS = System System.Core System.Data Mono.Data.Sqlite Microsoft.CSharp
 
 include ../../build/library.make
index 172a501446ed8ef2cdff39eaa58e4ce4ab20906d..842c1ed0ebe00b59e48bc1392671abaa8d8fb563 100644 (file)
@@ -5,14 +5,15 @@ LIBRARY = WindowsBase.dll
 
 LIB_REFS = System System.Xml
 LIB_MCS_FLAGS = -unsafe
-TEST_MCS_FLAGS = -unsafe -r:WindowsBase.dll -r:System.dll -r:System.Xml.dll -r:System.Core.dll
+TEST_MCS_FLAGS = -unsafe
+TEST_LIB_REFS = WindowsBase System System.Xml System.Core
 
 ifeq (2.0, $(FRAMEWORK_VERSION))
 LIB_MCS_FLAGS += -d:NET_3_0
 endif
 ifeq (4, $(FRAMEWORK_VERSION_MAJOR))
 LIB_REFS += System.Xaml
-TEST_MCS_FLAGS += -r:System.Xaml.dll
+TEST_LIB_REFS += System.Xaml
 endif
 
 include ../../build/library.make
index aff30966f5a5a3555c898dfa1bf8223a3202559f..b633c23c6e85af4377e8f6f73ec561bc0600ff3f 100644 (file)
@@ -61,14 +61,14 @@ WARNING_ABOUT_DISABLED_WARNING=1635
 LOCAL_MCS_FLAGS = -unsafe -nostdlib -nowarn:612,618,$(WARNING_ABOUT_DISABLED_WARNING) -d:INSIDE_CORLIB,MONO_CULTURE_DATA -d:LIBC $(REFERENCE_SOURCES_FLAGS)
 DEFAULT_REFERENCES =
 
-ifdef MOBILE_STATIC
-CORLIB_MONO_POSIX_REF =
-else
-CORLIB_MONO_POSIX_REF = -r:Mono.Posix.dll
+TEST_LIB_REFS = System.Core System
+
+ifndef MOBILE_STATIC
+TEST_LIB_REFS += Mono.Posix
 endif
 
 # System.IO/DirectoryInfoTest.cs needs Mono.Posix
-TEST_MCS_FLAGS += -debug -nowarn:168,219,618,672 -unsafe $(CORLIB_MONO_POSIX_REF) -r:System.Core.dll -r:System.dll \
+TEST_MCS_FLAGS += -debug -nowarn:168,219,618,672 -unsafe \
                                 -define:MONO_DATACONVERTER_STATIC_METHODS $(TEST_RESX_RESOURCES:%=-resource:%)
 
 EXTRA_DISTFILES = \
@@ -108,11 +108,11 @@ $(test_lib): $(TEST_RESOURCES) $(satellite_assembly1) $(satellite_assembly2)
 
 $(satellite_assembly1): Test/resources/culture-es-ES.cs Test/resources/Resources.es-ES.resources
        @mkdir -p es-ES
-       $(CSCOMPILE) -target:library -r:$(corlib) Test/resources/culture-es-ES.cs -resource:Test/resources/Resources.es-ES.resources -out:$@
+       $(CSCOMPILE) -target:library -r:$(topdir)/class/lib/$(PROFILE)/mscorlib.dll Test/resources/culture-es-ES.cs -resource:Test/resources/Resources.es-ES.resources -out:$@
 
 $(satellite_assembly2): Test/resources/culture-nn-NO.cs Test/resources/Resources.nn-NO.resources
        @mkdir -p nn-NO
-       $(CSCOMPILE) -target:library -r:$(corlib) Test/resources/culture-nn-NO.cs -resource:Test/resources/Resources.nn-NO.resources -out:$@
+       $(CSCOMPILE) -target:library -r:$(topdir)/class/lib/$(PROFILE)/mscorlib.dll Test/resources/culture-nn-NO.cs -resource:Test/resources/Resources.nn-NO.resources -out:$@
 
 vtsdir = Test/System.Runtime.Serialization.Formatters.Binary/VersionTolerantSerialization
 vtslibs = \
@@ -127,11 +127,13 @@ test-vts: $(vtslibs) $(vtsdir)/$(PROFILE)_TestLib/BinarySerializationOverVersion
 
 $(vtsdir)/$(PROFILE)_TestLib/%/Address.dll: $(vtsdir)/VersionTolerantSerializationTestLib/%/Address.cs
        @mkdir -p $(dir $@)
-       $(CSCOMPILE) -target:library -r:$(corlib) -warn:0 -out:$@ $^
+       $(CSCOMPILE) -target:library -warn:0 -r:$(topdir)/class/lib/$(PROFILE)/mscorlib.dll -out:$@ $^
 
 $(vtsdir)/$(PROFILE)_TestLib/BinarySerializationOverVersions.exe: $(vtsdir)/BinarySerializationOverVersions.cs $(vtsdir)/$(PROFILE)_TestLib/1.0/Address.dll $(test_nunit_dep)
-       $(CSCOMPILE) $(test_nunit_ref) -warn:0 -r:$(corlib) \
+       $(CSCOMPILE) $(test_nunit_ref) -warn:0 \
                -r:$(vtsdir)/$(PROFILE)_TestLib/1.0/Address.dll \
+               -r:$(topdir)/class/lib/$(PROFILE)/mscorlib.dll \
+               -r:$(topdir)/class/lib/$(PROFILE)/System.dll \
                $(vtsdir)/BinarySerializationOverVersions.cs -out:$@
        @cp $(vtsdir)/$(PROFILE)_TestLib/1.0/Address.dll $(vtsdir)/$(PROFILE)_TestLib
 
index 1c85d9abac643e6f5038fa7815a51c2eac5d7da7..50f84cfd617c820f399f74f922a2aec939654b99 100644 (file)
@@ -111,11 +111,12 @@ LIB_MCS_FLAGS = \
        /resource:Resources/mono-ecma.xsl,mono-ecma.xsl                   \
        /resource:Resources/toc-html.xsl,toc-html.xsl                     \
        $(IMAGE_RESOURCE_COMMAND)                                                             \
-       /r:$(corlib)
+       /publicsign
 
 CLEAN_FILES += $(the_lib).config
 
-TEST_MCS_FLAGS = /r:System.dll /r:System.Core.dll /r:System.Xml.dll
+TEST_MCS_FLAGS =
+TEST_LIB_REFS = System System.Core System.Xml
 
 DOC_SOURCE_DIRS = \
        ../../docs \
index fe0910186fe43ff3478be0db86d691b9c471a492..7a291b287a7c04caaf70e006548829969cec067b 100644 (file)
@@ -5,11 +5,8 @@ include ../../../build/rules.make
 LIBRARY = nunit.util.dll
 LIBRARY_SNK = $(topdir)/nunit24/nunit.snk
 
-LOCAL_MCS_FLAGS= \
-       /resource:Transform.resources,NUnit.Util.Transform.resources \
-       -r:nunit.core.dll -r:nunit.core.interfaces.dll -r:System.dll \
-       -r:System.Xml.dll -r:System.Runtime.Remoting.dll \
-       /d:MONO /d:StronglyNamedAssembly -warn:1
+LOCAL_MCS_FLAGS= /resource:Transform.resources,NUnit.Util.Transform.resources /d:MONO /d:StronglyNamedAssembly /publicsign -warn:1
+LIB_REFS = nunit.core nunit.core.interfaces System System.Xml System.Runtime.Remoting
 NO_TEST = yo
 
 RESX_RES = Transform.resources
index b09931ffef6cec8e1811c8954abed8a4f3817796..72ce02dc4295faebb9c8a9d525c059e9493dc9dc 100644 (file)
@@ -3,9 +3,9 @@ SUBDIRS =
 include ../../../build/rules.make
 
 PROGRAM = nunit-console.exe
-LOCAL_MCS_FLAGS = \
-       /r:nunit.framework.dll /r:nunit.util.dll /r:nunit.core.dll \
-       /r:nunit-console-runner.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = nunit.framework nunit.util nunit.core nunit-console-runner
+
 EXTRA_DISTFILES = App.ico \
        nunit-console.exe.csproj \
        nunit-console.exe_VS2005.csproj \
index 52fe21bf61bd20ba7b9146cb190bff2faef5d5d3..b72165aba26d29183205711c97bd0578739e191b 100644 (file)
@@ -5,10 +5,8 @@ include ../../../build/rules.make
 LIBRARY = nunit-console-runner.dll
 LIBRARY_SNK = $(topdir)/nunit24/nunit.snk
 
-LOCAL_MCS_FLAGS= \
-       -r:nunit.core.dll -r:nunit.core.interfaces.dll -r:nunit.util.dll \
-       -r:System.dll -r:System.Xml.dll \
-       /d:MONO /d:StronglyNamedAssembly
+LOCAL_MCS_FLAGS= /d:MONO /d:StronglyNamedAssembly /publicsign
+LIB_REFS = nunit.core nunit.core.interfaces nunit.util System System.Xml
 NO_TEST = yo
 
 EXTRA_DISTFILES = nunit-console.csproj nunit-console_VS2005.csproj
index ac3b0146fbfb99fc9f9ecb04302b6c3fed65fd3d..83a2e01bd0e038c550791c58e54b57bdbe203305 100644 (file)
@@ -5,7 +5,8 @@ include ../../../build/rules.make
 LIBRARY = nunit.core.dll
 LIBRARY_SNK = $(topdir)/nunit24/nunit.snk
 
-LOCAL_MCS_FLAGS= -r:nunit.framework.dll -r:nunit.core.interfaces.dll -r:System.dll /d:StronglyNamedAssembly -warn:1
+LOCAL_MCS_FLAGS = /d:StronglyNamedAssembly -warn:1 /publicsign
+LIB_REFS = nunit.framework nunit.core.interfaces System
 NO_TEST = yo
 
 EXTRA_DISTFILES = nunit.core.dll.csproj nunit.core.dll_VS2005.csproj
index e9ddcc79faffa2990629eb1ecd221fb850e39243..592ce5bc160609434cccbf45e3a41e9473fbefe8 100644 (file)
@@ -5,7 +5,8 @@ include ../../../build/rules.make
 LIBRARY = nunit.core.interfaces.dll
 LIBRARY_SNK = $(topdir)/nunit24/nunit.snk
 
-LOCAL_MCS_FLAGS= -debug -r:nunit.framework.dll -r:System.dll /d:StronglyNamedAssembly
+LOCAL_MCS_FLAGS= /d:StronglyNamedAssembly /publicsign
+LIB_REFS = nunit.framework System
 NO_TEST = yo
 
 EXTRA_DISTFILES = nunit.core.interfaces.dll.csproj nunit.core.interfaces.dll_VS2005.csproj
index 48f8ccf8f6fddb1a8a87d0838ab0c888fb9cefad..9e3ba945a67a7904b0ea369ab0a7509b581c9471 100644 (file)
@@ -5,10 +5,8 @@ include ../../../build/rules.make
 LIBRARY = nunit.core.extensions.dll
 LIBRARY_SNK = $(topdir)/nunit24/nunit.snk
 
-LIB_MCS_FLAGS = \
-       -debug \
-       /r:nunit.core.dll /r:nunit.core.interfaces.dll \
-       /r:System.Xml.dll /r:System.dll /d:StronglyNamedAssembly
+LIB_MCS_FLAGS =  /d:StronglyNamedAssembly /publicsign
+LIB_REFS = nunit.core nunit.core.interfaces System.Xml System
 NO_TEST = yo
 
 EXTRA_DISTFILES = \
index 81d6b15439d091dc1e5fd4e99e4d3d3e2bd97b1d..7cd03514e37831f9193f83dbffccd4de19cf5434 100644 (file)
@@ -5,7 +5,8 @@ include ../../../build/rules.make
 LIBRARY = nunit.framework.extensions.dll
 LIBRARY_SNK = $(topdir)/nunit24/nunit.snk
 
-LIB_MCS_FLAGS = -debug /r:System.Xml.dll /r:System.dll /d:StronglyNamedAssembly
+LIB_MCS_FLAGS = /d:StronglyNamedAssembly /publicsign
+LIB_REFS = System.Xml System
 NO_TEST = yo
 
 EXTRA_DISTFILES = \
index 157b0b4d5783cf517eb9e8d38508d7df8bc08e95..43076d8c8553ae0954ad041a6b77b9286e9ae6b1 100644 (file)
@@ -6,7 +6,8 @@ LIBRARY = NUnit.Framework.dll
 LIBRARY_NAME = nunit.framework.dll
 LIBRARY_SNK = $(topdir)/nunit24/nunit.snk
 
-LIB_MCS_FLAGS = /r:System.Xml.dll /r:System.dll /d:StronglyNamedAssembly -warn:1
+LIB_MCS_FLAGS = /d:StronglyNamedAssembly -warn:1 /publicsign
+LIB_REFS = System.Xml System
 NO_TEST = yo
 
 EXTRA_DISTFILES = \
index b9769c4777d6576f992949c24bf4e893ec3df3bd..0c6ab3ca272cd9f41a757fe80c2b2a22149c51da 100644 (file)
@@ -5,7 +5,8 @@ include ../../../build/rules.make
 LIBRARY = nunit.mocks.dll
 LIBRARY_SNK = $(topdir)/nunit24/nunit.snk
 
-LOCAL_MCS_FLAGS= -debug -r:nunit.framework.dll -r:System.dll /d:StronglyNamedAssembly
+LOCAL_MCS_FLAGS= /d:StronglyNamedAssembly /publicsign
+LIB_REFS = nunit.framework System
 NO_TEST = yo
 
 EXTRA_DISTFILES = \
index 418bcdd85f5cfaa1b52bb9af6ade6a8739bbe0b2..d95558b30831328d0943d51f4ca56f88f894aad7 100644 (file)
@@ -16,6 +16,7 @@ net_4_5_dirs := \
        xbuild          \
        csharp          \
        corcompare      \
+       mono-api-html \
        compiler-tester \
        mono-xmltool    \
        mono-shlib-cop  \
index a4505c123f5ab7a5fbfc8cbafa8b04c0ada6ca66..280ddc005548f8f161e73a3ac3d2438cb1ff8bb9 100644 (file)
@@ -2,7 +2,8 @@ thisdir = tools/al
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:Mono.Security.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = Mono.Security
 PROGRAM = al.exe
 
 CLEAN_FILES = al.exe al.exe.mdb
index a39c748e5e6c5c9d0b017ff1980db73c1c0935b8..6d2df98702dc1a8030bf2d02651524743aa5caca 100644 (file)
@@ -2,7 +2,8 @@ thisdir = tools/browsercaps-updater
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = System
 
 PROGRAM = browsercaps-updater.exe
 
index 71935aebb6c5735e4dda47ec573e79eca95cc532..52d624ffed493aae6de62feccda36aec2f1f089f 100644 (file)
@@ -4,6 +4,7 @@ include ../../build/rules.make
 
 PROGRAM = cccheck.exe
 
-LOCAL_MCS_FLAGS = -r:Mono.CodeContracts.dll -r:System.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = Mono.CodeContracts System
 
 include ../../build/executable.make
index bac67d3de8ae52278bef66d29f67091d394c902c..00e711b27953e86b2fcab9f4ae4ef2d55bbc067e 100644 (file)
@@ -4,6 +4,7 @@ include ../../build/rules.make
 
 PROGRAM = ccrewrite.exe
 
-LOCAL_MCS_FLAGS = -r:Mono.CodeContracts.dll -r:System.dll -r:System.Core.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = Mono.CodeContracts System System.Core
 
 include ../../build/executable.make
index 9b07560ab3997c9f56a23edbc71e127d02ca7a34..a6708e2d371e1245bcce89b70772e3ff57ebf7ae 100644 (file)
@@ -5,6 +5,6 @@ include ../../build/rules.make
 PROGRAM = cil-stringreplacer.exe
 NO_INSTALL = yes
 
-LOCAL_MCS_FLAGS = -r:System.dll -r:Mono.Cecil.dll
+LIB_REFS = System Mono.Cecil
 
 include ../../build/executable.make
index 6c3154589a67f21cc0866e0ad37de1cc393e7ef0..e84d78325e6b1cb4efd81b13174b37445881aa51 100644 (file)
@@ -2,7 +2,8 @@ thisdir = tools/cil-strip
 SUBDIRS =
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = System
 
 PROGRAM = mono-cil-strip.exe
 
index 2e0ec2bc8dfc4da1721c9a7697a0eebc2be24c50..b3c2a5a450a7ee009eca10d6f239be79fa13af8b 100644 (file)
@@ -5,6 +5,7 @@ include ../../build/rules.make
 PROGRAM = compiler-tester.exe
 NO_INSTALL = yes
 
-LOCAL_MCS_FLAGS = -r:System.dll -r:System.Core.dll -r:System.Xml.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = System System.Core System.Xml
 
 include $(topdir)/build/executable.make
index 760f9cf5045c92e217bbb7edcdb66d7e8aa86b20..2f4a664387a5e0a0cba898163b21250e876f4b04 100644 (file)
@@ -2,63 +2,9 @@ thisdir = tools/corcompare
 SUBDIRS =
 include ../../build/rules.make
 
-ALL_PROGRAMS = mono-api-info.exe mono-api-html.exe
+LIB_REFS = Mono.Cecil System.Xml System.Core System
+LOCAL_MCS_FLAGS =
 
-PROGRAM_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)
+PROGRAM = mono-api-info.exe
 
-APIINFO_SOURCES = \
-       mono-api-info.cs \
-       AssemblyResolver.cs     \
-       Util.cs \
-       WellFormedXmlWriter.cs \
-       ../../class/Mono.Options/Mono.Options/Options.cs
-
-APIHTML_SOURCES = \
-       mono-api-html/ApiChange.cs \
-       mono-api-html/ApiDiff.cs \
-       mono-api-html/AssemblyComparer.cs \
-       mono-api-html/ClassComparer.cs \
-       mono-api-html/Comparer.cs \
-       mono-api-html/ConstructorComparer.cs \
-       mono-api-html/EventComparer.cs \
-       mono-api-html/FieldComparer.cs \
-       mono-api-html/Helpers.cs \
-       mono-api-html/InterfaceComparer.cs \
-       mono-api-html/MemberComparer.cs \
-       mono-api-html/MethodComparer.cs \
-       mono-api-html/NamespaceComparer.cs \
-       mono-api-html/PropertyComparer.cs \
-       ../../class/Mono.Options/Mono.Options/Options.cs
-
-
-DISTFILES= $(APIINFO_SOURCES) $(APIHTML_SOURCES)
-
-all-local: $(ALL_PROGRAMS)
-
-csproj-local doc-update-local:
-
-install-local: $(ALL_PROGRAMS)
-       $(MKINSTALLDIRS) $(DESTDIR)$(PROGRAM_INSTALL_DIR)
-       for i in $(ALL_PROGRAMS) ; do \
-               $(INSTALL_BIN) $$i $(DESTDIR)$(PROGRAM_INSTALL_DIR) ; \
-       done
-
-uninstall-local:
-       for i in $(ALL_PROGRAMS) ; do \
-           rm -f $(DESTDIR)$(PROGRAM_INSTALL_DIR)/`basename $$i` ; \
-       done
-
-test-local:
-
-run-test-local run-test-ondotnet-local:
-
-clean-local:
-       rm -f *.exe *.pdb
-
-dist-local: dist-default
-
-mono-api-info.exe: $(APIINFO_SOURCES)
-       $(CSCOMPILE) -r:Mono.Cecil.dll -r:System.Xml.dll -r:System.Core.dll -r:System.dll -out:$@ $^
-
-mono-api-html.exe: $(APIHTML_SOURCES)
-       $(CSCOMPILE) -r:Mono.Cecil.dll -r:System.Xml.dll -r:System.Core.dll -r:System.dll -r:System.Xml.Linq.dll -out:$@ $^
+include ../../build/executable.make
diff --git a/mcs/tools/corcompare/mono-api-html/ApiChange.cs b/mcs/tools/corcompare/mono-api-html/ApiChange.cs
deleted file mode 100644 (file)
index 1d902ca..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Xml.Linq;
-
-namespace Xamarin.ApiDiff
-{
-       public class ApiChange
-       {
-               public string Header;
-               public StringBuilder Member = new StringBuilder ();
-               public bool Breaking;
-               public bool AnyChange;
-               public bool HasIgnoredChanges;
-
-               public ApiChange Append (string text)
-               {
-                       Member.Append (text);
-                       return this;
-               }
-
-               public ApiChange AppendAdded (string text, bool breaking = false)
-               {
-                       Member.Append ("<span class='added ").Append (breaking ? "added-breaking-inline" : string.Empty).Append ("'>");
-                       Member.Append (text);
-                       Member.Append ("</span>");
-                       Breaking |= breaking;
-                       AnyChange = true;
-                       return this;
-               }
-
-               public ApiChange AppendRemoved (string text, bool breaking = true)
-               {
-                       Member.Append ("<span class='removed removed-inline ").Append (breaking ? "removed-breaking-inline" : string.Empty).Append ("'>");
-                       Member.Append (text);
-                       Member.Append ("</span>");
-                       Breaking |= breaking;
-                       AnyChange = true;
-                       return this;
-               }
-
-               public ApiChange AppendModified (string old, string @new, bool breaking = true)
-               {
-                       if (old.Length > 0)
-                               AppendRemoved (old, breaking);
-                       if (old.Length > 0 && @new.Length > 0)
-                               Append (" ");
-                       if (@new.Length > 0)
-                               AppendAdded (@new);
-                       Breaking |= breaking;
-                       AnyChange = true;
-                       return this;
-               }
-       }
-
-       public class ApiChanges : Dictionary<string, List<ApiChange>> {
-               public void Add (XElement source, XElement target, ApiChange change)
-               {
-                       if (!change.AnyChange) {
-                               // This is most likely because the rendering doesn't take into account something that's different (solution: fix rendering).
-                               if (!change.HasIgnoredChanges) {
-                                       var isField = source.Name.LocalName == "field";
-                                       if (isField) {
-                                               Console.WriteLine ("Comparison resulting in no changes (src: {2} dst: {3}) :\n{0}\n{1}\n\n", source.ToString (), target.ToString (), source.GetFieldAttributes (), target.GetFieldAttributes ());
-                                       } else {
-                                               Console.WriteLine ("Comparison resulting in no changes (src: {2} dst: {3}) :\n{0}\n{1}\n\n", source.ToString (), target.ToString (), source.GetMethodAttributes (), target.GetMethodAttributes ());
-                                       }
-                               }
-                               return;
-                       }
-
-                       List<ApiChange> list;
-                       if (!TryGetValue (change.Header, out list)) {
-                               list = new List<ApiChange> ();
-                               base.Add (change.Header, list);
-                       }
-                       list.Add (change);
-               }
-       }
-}
-
diff --git a/mcs/tools/corcompare/mono-api-html/ApiDiff.cs b/mcs/tools/corcompare/mono-api-html/ApiDiff.cs
deleted file mode 100644 (file)
index 8fe2784..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-//
-// The main differences with mono-api-diff are:
-// * this tool directly produce HTML similar to gdiff.sh used for Xamarin.iOS
-// * this tool reports changes in an "evolutionary" way, not in a breaking way,
-//   i.e. it does not assume the source assembly is right (but simply older)
-// * the diff .xml output was not easy to convert back into the HTML format
-//   that gdiff.sh produced
-// 
-// Authors
-//    Sebastien Pouliot  <sebastien@xamarin.com>
-//
-// Copyright 2013-2014 Xamarin Inc. http://www.xamarin.com
-// 
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.IO;
-using System.Collections.Generic;
-using System.Text.RegularExpressions;
-
-using Mono.Options;
-
-namespace Xamarin.ApiDiff {
-
-       public static class State {
-               static TextWriter output;
-
-               public static TextWriter Output { 
-                       get {
-                               if (output == null)
-                                       output = Console.Out;
-                               return output;
-                       }
-                       set { output = value; } 
-               }
-
-               public static string Assembly { get; set; }
-               public static string Namespace { get; set; }
-               public static string Type { get; set; }
-               public static string BaseType { get; set; }
-
-               public static int Indent { get; set; }
-
-               static List<Regex> ignoreAdded = new List<Regex> ();
-               public static List<Regex> IgnoreAdded {
-                       get { return ignoreAdded; }
-               }
-
-               static List<Regex> ignoreNew = new List<Regex> ();
-               public static List<Regex> IgnoreNew {
-                       get { return ignoreNew; }
-               }
-
-               static List<Regex> ignoreRemoved = new List<Regex> ();
-               public static List<Regex> IgnoreRemoved {
-                       get { return ignoreRemoved; }
-               }
-
-               public  static  bool    IgnoreParameterNameChanges  { get; set; }
-               public  static  bool    IgnoreVirtualChanges        { get; set; }
-               public  static  bool    IgnoreAddedPropertySetters  { get; set; }
-
-               public static bool Lax;
-               public static bool Colorize = true;
-       }
-
-       class Program {
-
-               public static int Main (string[] args)
-               {
-                       var showHelp = false;
-                       string diff = null;
-                       List<string> extra = null;
-
-                       var options = new OptionSet {
-                               { "h|help", "Show this help", v => showHelp = true },
-                               { "d|diff=", "HTML diff file out output (omit for stdout)", v => diff = v },
-                               { "i|ignore=", "Ignore new, added, and removed members whose description matches a given C# regular expression (see below).",
-                                       v => {
-                                               var r = new Regex (v);
-                                               State.IgnoreAdded.Add (r);
-                                               State.IgnoreRemoved.Add (r);
-                                               State.IgnoreNew.Add (r);
-                                       }
-                               },
-                               { "a|ignore-added=", "Ignore added members whose description matches a given C# regular expression (see below).",
-                                       v => State.IgnoreAdded.Add (new Regex (v))
-                               },
-                               { "r|ignore-removed=", "Ignore removed members whose description matches a given C# regular expression (see below).",
-                                       v => State.IgnoreRemoved.Add (new Regex (v))
-                               },
-                               { "n|ignore-new=", "Ignore new namespaces and types whose description matches a given C# regular expression (see below).",
-                                       v => State.IgnoreNew.Add (new Regex (v))
-                               },
-                               { "ignore-changes-parameter-names", "Ignore changes to parameter names for identically prototyped methods.",
-                                       v => State.IgnoreParameterNameChanges   = v != null
-                               },
-                               { "ignore-changes-property-setters", "Ignore adding setters to properties.",
-                                       v => State.IgnoreAddedPropertySetters = v != null
-                               },
-                               { "ignore-changes-virtual", "Ignore changing non-`virtual` to `virtual` or adding `override`.",
-                                       v => State.IgnoreVirtualChanges = v != null
-                               },
-                               { "c|colorize:", "Colorize HTML output", v => State.Colorize = string.IsNullOrEmpty (v) ? true : bool.Parse (v) },
-                               { "x|lax", "Ignore duplicate XML entries", v => State.Lax = true }
-                       };
-
-                       try {
-                               extra = options.Parse (args);
-                       } catch (OptionException e) {
-                               Console.WriteLine ("Option error: {0}", e.Message);
-                               showHelp = true;
-                       }
-
-                       if (showHelp || extra == null || extra.Count < 2 || extra.Count > 3) {
-                               Console.WriteLine (@"Usage: mono-api-html [options] <reference.xml> <assembly.xml> [diff.html]");
-                               Console.WriteLine ();
-                               Console.WriteLine ("Available options:");
-                               options.WriteOptionDescriptions (Console.Out);
-                               Console.WriteLine ();
-                               Console.WriteLine ("Ignoring Members:");
-                               Console.WriteLine ();
-                               Console.WriteLine ("  Members that were added can be filtered out of the diff by using the");
-                               Console.WriteLine ("  -i, --ignore-added option. The option takes a C# regular expression");
-                               Console.WriteLine ("  to match against member descriptions. For example, to ignore the");
-                               Console.WriteLine ("  introduction of the interfaces 'INSCopying' and 'INSCoding' on types");
-                               Console.WriteLine ("  pass the following to mono-api-html:");
-                               Console.WriteLine ();
-                               Console.WriteLine ("    mono-api-html ... -i 'INSCopying$' -i 'INSCoding$'");
-                               Console.WriteLine ();
-                               Console.WriteLine ("  The regular expressions will match any member description ending with");
-                               Console.WriteLine ("  'INSCopying' or 'INSCoding'.");
-                               Console.WriteLine ();
-                               return 1;
-                       }
-
-                       var input = extra [0];
-                       var output = extra [1];
-                       if (extra.Count == 3 && diff == null)
-                               diff = extra [2];
-
-                       try {
-                               var ac = new AssemblyComparer (input, output);
-                               if (diff != null) {
-                                       string diffHtml = String.Empty;
-                                       using (var writer = new StringWriter ()) {
-                                               State.Output = writer;
-                                               ac.Compare ();
-                                               diffHtml = State.Output.ToString ();
-                                       }
-                                       if (diffHtml.Length > 0) {
-                                               using (var file = new StreamWriter (diff)) {
-                                                       file.WriteLine ("<div>");
-                                                       if (State.Colorize) {
-                                                               file.WriteLine ("<style scoped>");
-                                                               file.WriteLine ("\t.obsolete { color: gray; }");
-                                                               file.WriteLine ("\t.added { color: green; }");
-                                                               file.WriteLine ("\t.removed-inline { text-decoration: line-through; }");
-                                                               file.WriteLine ("\t.removed-breaking-inline { color: red;}");
-                                                               file.WriteLine ("\t.added-breaking-inline { text-decoration: underline; }");
-                                                               file.WriteLine ("\t.nonbreaking { color: black; }");
-                                                               file.WriteLine ("\t.breaking { color: red; }");
-                                                               file.WriteLine ("</style>");
-                                                       }
-                                                       file.WriteLine (
-@"<script type=""text/javascript"">
-       // Only some elements have 'data-is-[non-]breaking' attributes. Here we
-       // iterate over all descendents elements, and set 'data-is-[non-]breaking'
-       // depending on whether there are any descendents with that attribute.
-       function propagateDataAttribute (element)
-       {
-               if (element.hasAttribute ('data-is-propagated'))
-                       return;
-
-               var i;
-               var any_breaking = element.hasAttribute ('data-is-breaking');
-               var any_non_breaking = element.hasAttribute ('data-is-non-breaking');
-               for (i = 0; i < element.children.length; i++) {
-                       var el = element.children [i];
-                       propagateDataAttribute (el);
-                       any_breaking |= el.hasAttribute ('data-is-breaking');
-                       any_non_breaking |= el.hasAttribute ('data-is-non-breaking');
-               }
-               
-               if (any_breaking)
-                       element.setAttribute ('data-is-breaking', null);
-               else if (any_non_breaking)
-                       element.setAttribute ('data-is-non-breaking', null);
-               element.setAttribute ('data-is-propagated', null);
-       }
-
-       function hideNonBreakingChanges ()
-       {
-               var topNodes = document.querySelectorAll ('[data-is-topmost]');
-               var n;
-               var i;
-               for (n = 0; n < topNodes.length; n++) {
-                       propagateDataAttribute (topNodes [n]);
-                       var elements = topNodes [n].querySelectorAll ('[data-is-non-breaking]');
-                       for (i = 0; i < elements.length; i++) {
-                               var el = elements [i];
-                               if (!el.hasAttribute ('data-original-display'))
-                                       el.setAttribute ('data-original-display', el.style.display);
-                               el.style.display = 'none';
-                       }
-               }
-               
-               var links = document.getElementsByClassName ('hide-nonbreaking');
-               for (i = 0; i < links.length; i++)
-                       links [i].style.display = 'none';
-               links = document.getElementsByClassName ('restore-nonbreaking');
-               for (i = 0; i < links.length; i++)
-                       links [i].style.display = '';
-       }
-
-       function showNonBreakingChanges ()
-       {
-               var elements = document.querySelectorAll ('[data-original-display]');
-               var i;
-               for (i = 0; i < elements.length; i++) {
-                       var el = elements [i];
-                       el.style.display = el.getAttribute ('data-original-display');
-               }
-
-               var links = document.getElementsByClassName ('hide-nonbreaking');
-               for (i = 0; i < links.length; i++)
-                       links [i].style.display = '';
-               links = document.getElementsByClassName ('restore-nonbreaking');
-               for (i = 0; i < links.length; i++)
-                       links [i].style.display = 'none';
-       }
-</script>");
-                                                       if (ac.SourceAssembly == ac.TargetAssembly) {
-                                                               file.WriteLine ("<h1>{0}.dll</h1>", ac.SourceAssembly);
-                                                       } else {
-                                                               file.WriteLine ("<h1>{0}.dll vs {1}.dll</h1>", ac.SourceAssembly, ac.TargetAssembly);
-                                                       }
-                                                       file.WriteLine ("<a href='javascript: hideNonBreakingChanges (); ' class='hide-nonbreaking'>Hide non-breaking changes</a>");
-                                                       file.WriteLine ("<a href='javascript: showNonBreakingChanges (); ' class='restore-nonbreaking' style='display: none;'>Show non-breaking changes</a>");
-                                                       file.WriteLine ("<br/>");
-                                                       file.WriteLine ("<div data-is-topmost>");
-                                                       file.Write (diffHtml);
-                                                       file.WriteLine ("</div> <!-- end topmost div -->");
-                                                       file.WriteLine ("</div>");
-                                               }
-                                       }
-                               } else {
-                                       State.Output = Console.Out;
-                                       ac.Compare ();
-                               }
-                       }
-                       catch (Exception e) {
-                               Console.WriteLine (e);
-                               return 1;
-                       }
-                       return 0;
-               }
-       }
-}
diff --git a/mcs/tools/corcompare/mono-api-html/AssemblyComparer.cs b/mcs/tools/corcompare/mono-api-html/AssemblyComparer.cs
deleted file mode 100644 (file)
index adbd862..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-// 
-// Authors
-//    Sebastien Pouliot  <sebastien@xamarin.com>
-//
-// Copyright 2013 Xamarin Inc. http://www.xamarin.com
-// 
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections.Generic;
-using System.Xml.Linq;
-
-namespace Xamarin.ApiDiff {
-
-       public class AssemblyComparer : Comparer {
-
-               XDocument source;
-               XDocument target;
-               NamespaceComparer comparer;
-
-               public AssemblyComparer (string sourceFile, string targetFile)
-               {
-                       source = XDocument.Load (sourceFile);
-                       target = XDocument.Load (targetFile);
-                       comparer =  new NamespaceComparer ();
-               }
-
-               public string SourceAssembly { get; private set; }
-               public string TargetAssembly { get; private set; }
-
-               public void Compare ()
-               {
-                       Compare (source.Element ("assemblies").Elements ("assembly"), 
-                                target.Element ("assemblies").Elements ("assembly"));
-               }
-
-               public override void SetContext (XElement current)
-               {
-                       State.Assembly = current.GetAttribute ("name");
-               }
-
-               public override void Added (XElement target, bool wasParentAdded)
-               {
-                       // one assembly per xml file
-               }
-
-               public override void Modified (XElement source, XElement target, ApiChanges diff)
-               {
-                       SourceAssembly = source.GetAttribute ("name");
-                       TargetAssembly = target.GetAttribute ("name");
-                       // TODO: version
-                       // ? custom attributes ?
-                       comparer.Compare (source, target);
-               }
-
-               public override void Removed (XElement source)
-               {
-                       // one assembly per xml file
-               }
-       }
-}
\ No newline at end of file
diff --git a/mcs/tools/corcompare/mono-api-html/ClassComparer.cs b/mcs/tools/corcompare/mono-api-html/ClassComparer.cs
deleted file mode 100644 (file)
index a3399fb..0000000
+++ /dev/null
@@ -1,261 +0,0 @@
-// 
-// Authors
-//    Sebastien Pouliot  <sebastien@xamarin.com>
-//
-// Copyright 2013 Xamarin Inc. http://www.xamarin.com
-// 
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Xml.Linq;
-
-namespace Xamarin.ApiDiff {
-
-       public class ClassComparer : Comparer {
-
-               InterfaceComparer icomparer;
-               ConstructorComparer ccomparer;
-               FieldComparer fcomparer;
-               PropertyComparer pcomparer;
-               EventComparer ecomparer;
-               MethodComparer mcomparer;
-               ClassComparer kcomparer;
-
-               public ClassComparer ()
-               {
-                       icomparer = new InterfaceComparer ();
-                       ccomparer = new ConstructorComparer ();
-                       fcomparer = new FieldComparer ();
-                       pcomparer = new PropertyComparer ();
-                       ecomparer = new EventComparer ();
-                       mcomparer = new MethodComparer ();
-               }
-
-               public override void SetContext (XElement current)
-               {
-                       State.Type = current.GetAttribute ("name");
-                       State.BaseType = current.GetAttribute ("base");
-               }
-
-               public void Compare (XElement source, XElement target)
-               {
-                       var s = source.Element ("classes");
-                       var t = target.Element ("classes");
-                       if (XNode.DeepEquals (s, t))
-                               return;
-                       Compare (s.Elements ("class"), t.Elements ("class"));
-               }
-
-               public override void Added (XElement target, bool wasParentAdded)
-               {
-                       string name = target.Attribute ("name").Value;
-                       if (State.IgnoreNew.Any (re => re.IsMatch (name)))
-                               return;
-                       Output.WriteLine ("<div> <!-- start type {0} -->", name);
-                       Output.WriteLine ("<h3>New Type {0}.{1}</h3>", State.Namespace, name);
-                       Output.WriteLine ("<pre class='added' data-is-non-breaking>");
-                       State.Indent = 0;
-                       AddedInner (target);
-                       Output.WriteLine ("</pre>");
-                       Output.WriteLine ("</div> <!-- end type {0} -->", name);
-               }
-
-               public void AddedInner (XElement target)
-               {
-                       SetContext (target);
-                       if (target.IsTrue ("serializable"))
-                               Indent ().WriteLine ("[Serializable]");
-
-                       var type = target.Attribute ("type").Value;
-
-                       if (type == "enum") {
-                               // check if [Flags] is present
-                               var cattrs = target.Element ("attributes");
-                               if (cattrs != null) {
-                                       foreach (var ca in cattrs.Elements ("attribute")) {
-                                               if (ca.GetAttribute ("name") == "System.FlagsAttribute") {
-                                                       Indent ().WriteLine ("[Flags]");
-                                                       break;
-                                               }
-                                       }
-                               }
-                       }
-
-                       Indent ().Write ("public");
-
-                       if (type != "enum") {
-                               bool seal = target.IsTrue ("sealed");
-                               bool abst = target.IsTrue ("abstract");
-                               if (seal && abst)
-                                       Output.Write (" static");
-                               else if (seal && type != "struct")
-                                       Output.Write (" sealed");
-                               else if (abst && type != "interface")
-                                       Output.Write (" abstract");
-                       }
-
-                       Output.Write (' ');
-                       Output.Write (type);
-                       Output.Write (' ');
-                       Output.Write (target.GetAttribute ("name"));
-
-                       var baseclass = target.GetAttribute ("base");
-                       if ((type != "enum") && (type != "struct")) {
-                               if (baseclass != null) {
-                                       if (baseclass == "System.Object") {
-                                               // while true we do not need to be reminded every time...
-                                               baseclass = null;
-                                       } else {
-                                               Output.Write (" : ");
-                                               Output.Write (baseclass);
-                                       }
-                               }
-                       }
-
-                       // interfaces on enums are "standard" not user provided - so we do not want to show them
-                       if (type != "enum") {
-                               var i = target.Element ("interfaces");
-                               if (i != null) {
-                                       var interfaces = new List<string> ();
-                                       foreach (var iface in i.Elements ("interface"))
-                                               interfaces.Add (icomparer.GetDescription (iface));
-                                       Output.Write ((baseclass == null) ? " : " : ", ");
-                                       Output.Write (String.Join (", ", interfaces));
-                               }
-                       }
-
-                       Output.WriteLine (" {");
-
-                       var t = target.Element ("constructors");
-                       if (t != null) {
-                               Indent ().WriteLine ("\t// constructors");
-                               foreach (var ctor in t.Elements ("constructor"))
-                                       ccomparer.Added (ctor, true);
-                       }
-
-                       t = target.Element ("fields");
-                       if (t != null) {
-                               if (type != "enum")
-                                       Indent ().WriteLine ("\t// fields");
-                               else
-                                       SetContext (target);
-                               foreach (var field in t.Elements ("field"))
-                                       fcomparer.Added (field, true);
-                       }
-
-                       t = target.Element ("properties");
-                       if (t != null) {
-                               Indent ().WriteLine ("\t// properties");
-                               foreach (var property in t.Elements ("property"))
-                                       pcomparer.Added (property, true);
-                       }
-
-                       t = target.Element ("events");
-                       if (t != null) {
-                               Indent ().WriteLine ("\t// events");
-                               foreach (var evnt in t.Elements ("event"))
-                                       ecomparer.Added (evnt, true);
-                       }
-
-                       t = target.Element ("methods");
-                       if (t != null) {
-                               Indent ().WriteLine ("\t// methods");
-                               foreach (var method in t.Elements ("method"))
-                                       mcomparer.Added (method, true);
-                       }
-
-                       t = target.Element ("classes");
-                       if (t != null) {
-                               Output.WriteLine ();
-                               Indent ().WriteLine ("\t// inner types");
-                               kcomparer = new NestedClassComparer ();
-                               State.Indent++;
-                               foreach (var inner in t.Elements ("class"))
-                                       kcomparer.AddedInner (inner);
-                               State.Indent--;
-                       }
-                       Indent ().WriteLine ("}");
-               }
-
-               public override void Modified (XElement source, XElement target, ApiChanges diff)
-               {
-                       // hack - there could be changes that we're not monitoring (e.g. attributes properties)
-                       var output = Output;
-                       State.Output = new StringWriter ();
-
-                       var sb = source.GetAttribute ("base");
-                       var tb = target.GetAttribute ("base");
-                       if (sb != tb) {
-                               Output.Write ("Modified base type: ");
-                               Output.WriteLine (new ApiChange ().AppendModified (sb, tb, true).Member.ToString ());
-                       }
-
-                       ccomparer.Compare (source, target);
-                       icomparer.Compare (source, target);
-                       fcomparer.Compare (source, target);
-                       pcomparer.Compare (source, target);
-                       ecomparer.Compare (source, target);
-                       mcomparer.Compare (source, target);
-
-                       var si = source.Element ("classes");
-                       if (si != null) {
-                               var ti = target.Element ("classes");
-                               kcomparer = new NestedClassComparer ();
-                               kcomparer.Compare (si.Elements ("class"), ti == null ? null : ti.Elements ("class"));
-                       }
-
-                       var s = (Output as StringWriter).ToString ();
-                       State.Output = output;
-                       if (s.Length > 0) {
-                               var tn = GetTypeName (target);
-                               Output.WriteLine ("<!-- start type {0} --> <div>", tn);
-                               Output.WriteLine ("<h3>Type Changed: {0}.{1}</h3>", State.Namespace, GetTypeName (target));
-                               Output.WriteLine (s);
-                               Output.WriteLine ("</div> <!-- end type {0} -->", tn);
-                       }
-               }
-
-               public override void Removed (XElement source)
-               {
-                       Output.Write ("<h3>Removed Type <span class='breaking' data-is-breaking>{0}.{1}</span></h3>", State.Namespace, GetTypeName (source));
-               }
-
-               public virtual string GetTypeName (XElement type)
-               {
-                       return type.GetAttribute ("name");
-               }
-       }
-
-       public class NestedClassComparer : ClassComparer {
-
-               public override void SetContext (XElement current)
-               {
-               }
-
-               public override string GetTypeName (XElement type)
-               {
-                       return State.Type + "." + base.GetTypeName (type);
-               }
-       }
-}
\ No newline at end of file
diff --git a/mcs/tools/corcompare/mono-api-html/Comparer.cs b/mcs/tools/corcompare/mono-api-html/Comparer.cs
deleted file mode 100644 (file)
index 4210b9b..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-// 
-// Authors
-//    Sebastien Pouliot  <sebastien@xamarin.com>
-//
-// Copyright 2013 Xamarin Inc. http://www.xamarin.com
-// 
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Xml.Linq;
-
-namespace Xamarin.ApiDiff {
-
-       public abstract class Comparer {
-
-               protected List<XElement> removed = new List<XElement> ();
-               protected ApiChanges modified = new ApiChanges ();
-
-               public TextWriter Output {
-                       get { return State.Output; }
-               }
-
-               protected TextWriter Indent ()
-               {
-                       for (int i = 0; i < State.Indent; i++)
-                               State.Output.Write ("\t");
-                       return State.Output;
-               }
-
-               public abstract void Added (XElement target, bool wasParentAdded);
-               public abstract void Modified (XElement source, XElement target, ApiChanges changes);
-               public abstract void Removed (XElement source);
-
-               public virtual bool Equals (XElement source, XElement target, ApiChanges changes)
-               {
-                       return XNode.DeepEquals (source, target);
-               }
-
-               public abstract void SetContext (XElement current);
-
-               public virtual void Compare (IEnumerable<XElement> source, IEnumerable<XElement> target)
-               {
-                       removed.Clear ();
-                       modified.Clear ();
-
-                       foreach (var s in source) {
-                               SetContext (s);
-                               string sn = s.GetAttribute ("name");
-                               var t = target == null ? null : target.SingleOrDefault (x => x.GetAttribute ("name") == sn);
-                               if (t == null) {
-                                       // not in target, it was removed
-                                       removed.Add (s);
-                               } else {
-                                       t.Remove ();
-                                       // possibly modified
-                                       if (Equals (s, t, modified))
-                                               continue;
-
-                                       // still in target so will be part of Added
-                                       Modified (s, t, modified);
-                               }
-                       }
-                       // delayed, that way we show "Modified", "Added" and then "Removed"
-                       foreach (var item in removed) {
-                               SetContext (item);
-                               Removed (item);
-                       }
-                       // remaining == newly added in target
-                       if (target != null) {
-                               foreach (var item in target) {
-                                       SetContext (item);
-                                       Added (item, false);
-                               }
-                       }
-               }
-       }
-}
\ No newline at end of file
diff --git a/mcs/tools/corcompare/mono-api-html/ConstructorComparer.cs b/mcs/tools/corcompare/mono-api-html/ConstructorComparer.cs
deleted file mode 100644 (file)
index 9bd837e..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-// 
-// Authors
-//    Sebastien Pouliot  <sebastien@xamarin.com>
-//
-// Copyright 2013 Xamarin Inc. http://www.xamarin.com
-// 
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections.Generic;
-using System.Reflection;
-using System.Text;
-using System.Xml.Linq;
-
-namespace Xamarin.ApiDiff {
-
-       // MethodComparer inherits from this one
-       public class ConstructorComparer : MemberComparer {
-
-               public override string GroupName {
-                       get { return "constructors"; }
-               }
-
-               public override string ElementName {
-                       get { return "constructor"; }
-               }
-
-               public override bool Find (XElement e)
-               {
-                       return (e.Attribute ("name").Value == Source.Attribute ("name").Value);
-               }
-
-               void RenderReturnType (XElement source, XElement target, ApiChange change)
-               {
-                       var srcType = source.GetTypeName ("returntype");
-                       var tgtType = target.GetTypeName ("returntype");
-
-                       if (srcType != tgtType) {
-                               change.AppendModified (srcType, tgtType, true);
-                               change.Append (" ");
-                       } else if (srcType != null) {
-                               // ctor don't have a return type
-                               change.Append (srcType);
-                               change.Append (" ");
-                       }
-               }
-
-               public override bool Equals (XElement source, XElement target, ApiChanges changes)
-               {
-                       if (base.Equals (source, target, changes))
-                               return true;
-                               
-                       var change = new ApiChange ();
-                       change.Header = "Modified " + GroupName;
-                       RenderMethodAttributes (source, target, change);
-                       RenderReturnType (source, target, change);
-                       RenderName (source, target, change);
-                       RenderGenericParameters (source, target, change);
-                       RenderParameters (source, target, change);
-
-                       changes.Add (source, target, change);
-
-                       return false;
-               }
-
-               public override string GetDescription (XElement e)
-               {
-                       var sb = new StringBuilder ();
-
-                       var attribs = e.Attribute ("attrib");
-                       if (attribs != null) {
-                               var attr = (MethodAttributes) Int32.Parse (attribs.Value);
-                               if ((attr & MethodAttributes.Public) != MethodAttributes.Public) {
-                                       sb.Append ("protected ");
-                               } else {
-                                       sb.Append ("public ");
-                               }
-
-                               if ((attr & MethodAttributes.Static) != 0) {
-                                       sb.Append ("static ");
-                               } else if ((attr & MethodAttributes.Virtual) != 0) {
-                                       if ((attr & MethodAttributes.VtableLayoutMask) == 0)
-                                               sb.Append ("override ");
-                                       else
-                                               sb.Append ("virtual ");
-                               }
-                       }
-
-                       string name = e.GetAttribute ("name");
-
-                       var r = e.GetTypeName ("returntype");
-                       if (r != null) {
-                               // ctor dont' have a return type
-                               sb.Append (r).Append (' ');
-                       } else {
-                               // show the constructor as it would be defined in C#
-                               name = name.Replace (".ctor", State.Type);
-                       }
-
-                       // the XML file `name` does not contain parameter names, so we must process them ourselves
-                       // which gives us the opportunity to simplify type names
-                       sb.Append (name.Substring (0, name.IndexOf ('(')));
-
-                       var genericp = e.Element ("generic-parameters");
-                       if (genericp != null) {
-                               var list = new List<string> ();
-                               foreach (var p in genericp.Elements ("generic-parameter")) {
-                                       list.Add (p.GetTypeName ("name"));
-                               }
-                               sb.Append ("&lt;").Append (String.Join (", ", list)).Append ("&gt;");
-                       }
-
-                       sb.Append (" (");
-                       var parameters = e.Element ("parameters");
-                       if (parameters != null) {
-                               var list = new List<string> ();
-                               foreach (var p in parameters.Elements ("parameter")) {
-                                       var pTypeName   = p.GetTypeName ("type");
-                                       list.Add (State.IgnoreParameterNameChanges
-                                               ? pTypeName
-                                               : pTypeName + " " + p.GetAttribute ("name"));
-                               }
-                               sb.Append (String.Join (", ", list));
-                       }
-                       sb.Append (");");
-
-                       return sb.ToString ();
-               }
-       }
-}
\ No newline at end of file
diff --git a/mcs/tools/corcompare/mono-api-html/EventComparer.cs b/mcs/tools/corcompare/mono-api-html/EventComparer.cs
deleted file mode 100644 (file)
index 693f16f..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-// 
-// Authors
-//    Sebastien Pouliot  <sebastien@xamarin.com>
-//
-// Copyright 2013 Xamarin Inc. http://www.xamarin.com
-// 
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Text;
-using System.Xml.Linq;
-
-namespace Xamarin.ApiDiff {
-
-       public class EventComparer : MemberComparer {
-
-               public override string GroupName {
-                       get { return "events"; }
-               }
-
-               public override string ElementName {
-                       get { return "event"; }
-               }
-
-               public override bool Equals (XElement source, XElement target, ApiChanges changes)
-               {
-                       if (base.Equals (source, target, changes))
-                               return true;
-
-                       var change = new ApiChange ();
-                       change.Header = "Modified " + GroupName;
-                       change.Append ("public event ");
-
-                       var srcEventType = source.GetTypeName ("eventtype");
-                       var tgtEventType = target.GetTypeName ("eventtype");
-
-                       if (srcEventType != tgtEventType) {
-                               change.AppendModified (srcEventType, tgtEventType, true);
-                       } else {
-                               change.Append (srcEventType);
-                       }
-                       change.Append (" ");
-                       change.Append (source.GetAttribute ("name")).Append (";");
-                       return false;
-               }
-
-               public override string GetDescription (XElement e)
-               {
-                       StringBuilder sb = new StringBuilder ();
-                       // TODO: attribs
-                       sb.Append ("public event ");
-                       sb.Append (e.GetTypeName ("eventtype")).Append (' ');
-                       sb.Append (e.GetAttribute ("name")).Append (';');
-                       return sb.ToString ();
-               }
-       }
-}
\ No newline at end of file
diff --git a/mcs/tools/corcompare/mono-api-html/FieldComparer.cs b/mcs/tools/corcompare/mono-api-html/FieldComparer.cs
deleted file mode 100644 (file)
index a2b0225..0000000
+++ /dev/null
@@ -1,211 +0,0 @@
-// 
-// Authors
-//    Sebastien Pouliot  <sebastien@xamarin.com>
-//
-// Copyright 2013-2014 Xamarin Inc. http://www.xamarin.com
-// 
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-using System.Xml.Linq;
-
-namespace Xamarin.ApiDiff {
-
-       public class FieldComparer : MemberComparer {
-
-               public override string GroupName {
-                       get { return "fields"; }
-               }
-
-               public override string ElementName {
-                       get { return "field"; }
-               }
-
-               void RenderFieldAttributes (FieldAttributes source, FieldAttributes target, ApiChange change)
-               {
-                       var srcNotSerialized = (source & FieldAttributes.NotSerialized) == FieldAttributes.NotSerialized;
-                       var tgtNotSerialized = (target & FieldAttributes.NotSerialized) == FieldAttributes.NotSerialized;
-                       if (srcNotSerialized != tgtNotSerialized) {
-                               // this is not a breaking change, so only render it if it changed.
-                               if (srcNotSerialized) {
-                                       change.AppendRemoved ("[NonSerialized]\n");
-                               } else {
-                                       change.AppendAdded ("[NonSerialized]\n");
-                               }
-                       }
-
-                       // the visibility values are the same for MethodAttributes and FieldAttributes, so just use the same method.
-                       RenderVisibility ((MethodAttributes) source, (MethodAttributes) target, change);
-                       // same for the static flag
-                       RenderStatic ((MethodAttributes) source, (MethodAttributes) target, change);
-
-                       var srcLiteral = (source & FieldAttributes.Literal) != 0;
-                       var tgtLiteral = (target & FieldAttributes.Literal) != 0;
-
-                       if (srcLiteral) {
-                               if (tgtLiteral) {
-                                       change.Append ("const ");
-                               } else {
-                                       change.AppendRemoved ("const", true).Append (" ");
-                               }
-                       } else if (tgtLiteral) {
-                               change.AppendAdded ("const", true).Append (" ");
-                       }
-
-                       var srcInitOnly = (source & FieldAttributes.InitOnly) != 0;
-                       var tgtInitOnly = (target & FieldAttributes.InitOnly) != 0;
-                       if (srcInitOnly) {
-                               if (tgtInitOnly) {
-                                       change.Append ("readonly ");
-                               } else {
-                                       change.AppendRemoved ("readonly", false).Append (" ");
-                               }
-                       } else if (tgtInitOnly) {
-                               change.AppendAdded ("readonly", true).Append (" ");
-                       }
-               }
-
-               public override bool Equals (XElement source, XElement target, ApiChanges changes)
-               {
-                       if (base.Equals (source, target, changes))
-                               return true;
-
-                       var name = source.GetAttribute ("name");
-                       var srcValue = source.GetAttribute ("value");
-                       var tgtValue = target.GetAttribute ("value");
-                       var change = new ApiChange ();
-                       change.Header = "Modified " + GroupName;
-
-                       if (State.BaseType == "System.Enum") {
-                               change.Append (name).Append (" = ");
-                               if (srcValue != tgtValue) {
-                                       change.AppendModified (srcValue, tgtValue, true);
-                               } else {
-                                       change.Append (srcValue);
-                               }
-                       } else {
-                               RenderFieldAttributes (source.GetFieldAttributes (), target.GetFieldAttributes (), change);
-
-                               var srcType = source.GetTypeName ("fieldtype");
-                               var tgtType = target.GetTypeName ("fieldtype");
-
-                               if (srcType != tgtType) {
-                                       change.AppendModified (srcType, tgtType, true);
-                               } else {
-                                       change.Append (srcType);
-                               }
-                               change.Append (" ");
-                               change.Append (name);
-
-                               if (srcType == "string" && srcValue != null)
-                                       srcValue = "\"" + srcValue + "\"";
-
-                               if (tgtType == "string" && tgtValue != null)
-                                       tgtValue = "\"" + tgtValue + "\"";
-
-                               if (srcValue != tgtValue) {
-                                       change.Append (" = ");
-                                       if (srcValue == null)
-                                               srcValue = "null";
-                                       if (tgtValue == null)
-                                               tgtValue = "null";
-                                       change.AppendModified (srcValue, tgtValue, true);
-                               } else if (srcValue != null) {
-                                       change.Append (" = ");
-                                       change.Append (srcValue);
-                               }
-                               change.Append (";");
-                       }
-
-                       changes.Add (source, target, change);
-
-                       return false;
-               }
-
-               public override string GetDescription (XElement e)
-               {
-                       var sb = new StringBuilder ();
-
-                       string name = e.GetAttribute ("name");
-                       string value = e.GetAttribute ("value");
-
-                       if (State.BaseType == "System.Enum") {
-                               sb.Append (name).Append (" = ").Append (value).Append (',');
-                       } else {
-                               var attribs = e.Attribute ("attrib");
-                               if (attribs != null) {
-                                       var attr = (FieldAttributes)Int32.Parse (attribs.Value);
-                                       if ((attr & FieldAttributes.Public) != FieldAttributes.Public) {
-                                               sb.Append ("protected ");
-                                       } else {
-                                               sb.Append ("public ");
-                                       }
-
-                                       if ((attr & FieldAttributes.Static) != 0)
-                                               sb.Append ("static ");
-
-                                       if ((attr & FieldAttributes.Literal) != 0)
-                                               sb.Append ("const ");
-                               }
-
-                               string ftype = e.GetTypeName ("fieldtype");
-                               sb.Append (ftype).Append (' ');
-                               sb.Append (name);
-                               if (ftype == "string" && e.Attribute ("value") != null) {
-                                       if (value == null)
-                                               sb.Append (" = null");
-                                       else
-                                               sb.Append (" = \"").Append (value).Append ('"');
-                               }
-                               sb.Append (';');
-                       }
-
-                       return sb.ToString ();
-               }
-
-               public override void BeforeAdding (IEnumerable<XElement> list)
-               {
-                       first = true;
-                       if (State.BaseType == "System.Enum") {
-                               Output.WriteLine ("<div>");
-                               Output.WriteLine ("<p>Added value{0}:</p>", list.Count () > 1 ? "s" : String.Empty);
-                               Output.WriteLine ("<pre class='added' data-is-non-breaking>");
-                       } else {
-                               base.BeforeAdding (list);
-                       }
-               }
-
-               public override void BeforeRemoving (IEnumerable<XElement> list)
-               {
-                       first = true;
-                       if (State.BaseType == "System.Enum") {
-                               Output.WriteLine ("<p>Removed value{0}:</p>", list.Count () > 1 ? "s" : String.Empty);
-                               Output.WriteLine ("<pre class='removed' data-is-breaking>");
-                       } else {
-                               base.BeforeRemoving (list);
-                       }
-               }
-       }
-}
\ No newline at end of file
diff --git a/mcs/tools/corcompare/mono-api-html/Helpers.cs b/mcs/tools/corcompare/mono-api-html/Helpers.cs
deleted file mode 100644 (file)
index 8769785..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-// 
-// Authors
-//    Sebastien Pouliot  <sebastien@xamarin.com>
-//
-// Copyright 2013-2014 Xamarin Inc. http://www.xamarin.com
-// 
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-using System.Xml.Linq;
-
-namespace Xamarin.ApiDiff {
-
-       public static class Helper {
-               public static bool IsTrue (this XElement self, string name)
-               {
-                       return (self.GetAttribute (name) == "true");
-               }
-
-               public static string GetAttribute (this XElement self, string name)
-               {
-                       var n = self.Attribute (name);
-                       if (n == null)
-                               return null;
-                       return n.Value;
-               }
-
-               // null == no obsolete, String.Empty == no description
-               public static string GetObsoleteMessage (this XElement self)
-               {
-                       var cattrs = self.Element ("attributes");
-                       if (cattrs == null)
-                               return null;
-
-                       foreach (var ca in cattrs.Elements ("attribute")) {
-                               if (ca.GetAttribute ("name") != "System.ObsoleteAttribute")
-                                       continue;
-                               var props = ca.Element ("properties");
-                               if (props == null)
-                                       return String.Empty; // no description
-                               foreach (var p in props.Elements ("property")) {
-                                       if (p.GetAttribute ("name") != "Message")
-                                               continue;
-                                       return p.GetAttribute ("value");
-                               }
-                       }
-                       return null;
-               }
-
-               public static IEnumerable<XElement> Descendants (this XElement self, params string[] names)
-               {
-                       XElement el = self;
-                       if (el == null)
-                               return null;
-
-                       for (int i = 0; i < names.Length - 1; i++) {
-                               el = el.Element (names [i]);
-                               if (el == null)
-                                       return null;
-                       }
-                       return el.Elements (names [names.Length - 1]);
-               }
-
-               public static List<XElement> DescendantList (this XElement self, params string[] names)
-               {
-                       var descendants = self.Descendants (names);
-                       if (descendants == null)
-                               return null;
-                       return descendants.ToList ();
-               }
-
-               // make it beautiful (.NET -> C#)
-               public static string GetTypeName (this XElement self, string name)
-               {
-                       string type = self.GetAttribute (name);
-                       if (type == null)
-                               return null;
-
-                       StringBuilder sb = null;
-                       bool is_nullable = false;
-                       if (type.StartsWith ("System.Nullable`1[", StringComparison.Ordinal)) {
-                               is_nullable = true;
-                               sb = new StringBuilder (type, 18, type.Length - 19, 1024);
-                       } else {
-                               sb = new StringBuilder (type);
-                       }
-
-                       bool is_ref = (sb [sb.Length - 1] == '&');
-                       if (is_ref)
-                               sb.Remove (sb.Length - 1, 1);
-
-                       int array = 0;
-                       while ((sb [sb.Length - 1] == ']') && (sb [sb.Length - 2] == '[')) {
-                               sb.Remove (sb.Length - 2, 2);
-                               array++;
-                       }
-
-                       bool is_pointer = (sb [sb.Length - 1] == '*');
-                       if (is_pointer)
-                               sb.Remove (sb.Length - 1, 1);
-
-                       type = GetTypeName (sb.Replace ('+', '.').ToString ());
-                       sb.Length = 0;
-                       if (is_ref)
-                               sb.Append (self.GetAttribute ("direction")).Append (' ');
-
-                       sb.Append (type);
-
-                       while (array-- > 0)
-                               sb.Append ("[]");
-                       if (is_nullable)
-                               sb.Append ('?');
-                       if (is_pointer)
-                               sb.Append ('*');
-                       return sb.ToString ();
-               }
-
-               static string GetTypeName (string type)
-               {
-                       int pos = type.IndexOf ('`');
-                       if (pos >= 0) {
-                               int end = type.LastIndexOf (']');
-                               string subtype = type.Substring (pos + 3, end - pos - 3);
-                               return type.Substring (0, pos) + "&lt;" + GetTypeName (subtype) + "&gt;";
-                       }
-
-                       switch (type) {
-                       case "System.String":
-                               return "string";
-                       case "System.Int32":
-                               return "int";
-                       case "System.UInt32":
-                               return "uint";
-                       case "System.Int64":
-                               return "long";
-                       case "System.UInt64":
-                               return "ulong";
-                       case "System.Void":
-                               return "void";
-                       case "System.Boolean":
-                               return "bool";
-                       case "System.Object":
-                               return "object";
-                       case "System.Single":
-                               return "float";
-                       case "System.Double":
-                               return "double";
-                       case "System.Byte":
-                               return "byte";
-                       case "System.SByte":
-                               return "sbyte";
-                       case "System.Int16":
-                               return "short";
-                       case "System.UInt16":
-                               return "ushort";
-                       case "System.Char":
-                               return "char";
-                       case "System.nint":
-                               return "nint";
-                       case "System.nuint":
-                               return "uint";
-                       case "System.nfloat":
-                               return "nfloat";
-                       case "System.IntPtr":
-                               return "IntPtr";
-                       default:
-                               if (type.StartsWith (State.Namespace, StringComparison.Ordinal))
-                                       type = type.Substring (State.Namespace.Length + 1);
-                               return type;
-                       }
-               }
-
-               public static MethodAttributes GetMethodAttributes (this XElement element)
-               {
-                       var srcAttribs = element.Attribute ("attrib");
-                       return (MethodAttributes) (srcAttribs != null ? Int32.Parse (srcAttribs.Value) : 0);
-               }
-
-               public static FieldAttributes GetFieldAttributes (this XElement element)
-               {
-                       var srcAttribs = element.Attribute ("attrib");
-                       return (FieldAttributes) (srcAttribs != null ? Int32.Parse (srcAttribs.Value) : 0);
-               }
-       }
-}
\ No newline at end of file
diff --git a/mcs/tools/corcompare/mono-api-html/InterfaceComparer.cs b/mcs/tools/corcompare/mono-api-html/InterfaceComparer.cs
deleted file mode 100644 (file)
index df52f16..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-// 
-// Authors
-//    Sebastien Pouliot  <sebastien@xamarin.com>
-//
-// Copyright 2013 Xamarin Inc. http://www.xamarin.com
-// 
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Xml.Linq;
-
-namespace Xamarin.ApiDiff {
-
-       public class InterfaceComparer : MemberComparer {
-
-               public override string GroupName {
-                       get { return "interfaces"; }
-               }
-
-               public override string ElementName {
-                       get { return "interface"; }
-               }
-
-               public override string GetDescription (XElement e)
-               {
-                       return e.GetTypeName ("name");
-               }
-       }
-}
\ No newline at end of file
diff --git a/mcs/tools/corcompare/mono-api-html/MemberComparer.cs b/mcs/tools/corcompare/mono-api-html/MemberComparer.cs
deleted file mode 100644 (file)
index d12d866..0000000
+++ /dev/null
@@ -1,608 +0,0 @@
-// 
-// Authors
-//    Sebastien Pouliot  <sebastien@xamarin.com>
-//
-// Copyright 2013-2014 Xamarin Inc. http://www.xamarin.com
-// 
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-using System.Xml.Linq;
-
-namespace Xamarin.ApiDiff {
-
-       public abstract class MemberComparer : Comparer {
-
-               // true if this is the first element being added or removed in the group being rendered
-               protected bool first;
-
-               public abstract string GroupName { get; }
-               public abstract string ElementName { get; }
-
-               protected virtual bool IsBreakingRemoval (XElement e)
-               {
-                       return true;
-               }
-
-               public void Compare (XElement source, XElement target)
-               {
-                       var s = source.Element (GroupName);
-                       var t = target.Element (GroupName);
-                       if (XNode.DeepEquals (s, t))
-                               return;
-
-                       if (s == null) {
-                               Add (t.Elements (ElementName));
-                       } else if (t == null) {
-                               Remove (s.Elements (ElementName));
-                       } else {
-                               Compare (s.Elements (ElementName), t.Elements (ElementName));
-                       }
-               }
-
-               public override void SetContext (XElement current)
-               {
-               }
-
-               string GetContainingType (XElement el)
-               {
-                       return el.Ancestors ("class").First ().Attribute ("type").Value;
-               }
-
-               bool IsInInterface (XElement el)
-               {
-                       return GetContainingType (el) == "interface";
-               }
-
-               public XElement Source { get; set; }
-
-               public virtual bool Find (XElement e)
-               {
-                       return e.GetAttribute ("name") == Source.GetAttribute ("name");
-               }
-
-               XElement Find (IEnumerable<XElement> target)
-               {
-                       return State.Lax ? target.FirstOrDefault (Find) : target.SingleOrDefault (Find);
-               }
-
-               public override void Compare (IEnumerable<XElement> source, IEnumerable<XElement> target)
-               {
-                       removed.Clear ();
-                       modified.Clear ();
-
-                       foreach (var s in source) {
-                               SetContext (s);
-                               Source = s;
-                               var t = Find (target);
-                               if (t == null) {
-                                       // not in target, it was removed
-                                       removed.Add (s);
-                               } else {
-                                       t.Remove ();
-                                       // possibly modified
-                                       if (Equals (s, t, modified))
-                                               continue;
-
-                                       Modified (s, t, modified);
-                               }
-                       }
-                       // delayed, that way we show "Modified", "Added" and then "Removed"
-                       Remove (removed);
-
-                       Modify (modified);
-
-                       // remaining == newly added in target
-                       Add (target);
-               }
-
-               void Add (IEnumerable<XElement> elements)
-               {
-                       bool a = false;
-                       foreach (var item in elements) {
-                               SetContext (item);
-                               if (State.IgnoreAdded.Any (re => re.IsMatch (GetDescription (item))))
-                                       continue;
-                               if (!a) {
-                                       BeforeAdding (elements);
-                                       a = true;
-                               }
-                               Added (item, false);
-                       }
-                       if (a)
-                               AfterAdding ();
-               }
-
-               void Modify (ApiChanges modified)
-               {
-                       foreach (var changes in modified) {
-                               Output.WriteLine ("<p>{0}:</p>", changes.Key);
-                               Output.WriteLine ("<pre>");
-                               foreach (var element in changes.Value) {
-                                       Output.Write ("<div {0}>", element.Breaking ? "data-is-breaking" : "data-is-non-breaking");
-                                       foreach (var line in element.Member.ToString ().Split ('\n'))
-                                               Output.WriteLine ("\t{0}", line);
-                                       Output.Write ("</div>");
-
-                               }
-                               Output.WriteLine ("</pre>");
-                       }
-               }
-
-               void Remove (IEnumerable<XElement> elements)
-               {
-                       bool r = false;
-                       foreach (var item in elements) {
-                               if (State.IgnoreRemoved.Any (re => re.IsMatch (GetDescription (item))))
-                                       continue;
-                               SetContext (item);
-                               if (!r) {
-                                       BeforeRemoving (elements);
-                                       r = true;
-                               }
-                               Removed (item);
-                       }
-                       if (r)
-                               AfterRemoving ();
-               }
-                       
-               public abstract string GetDescription (XElement e);
-
-               protected StringBuilder GetObsoleteMessage (XElement e)
-               {
-                       var sb = new StringBuilder ();
-                       string o = e.GetObsoleteMessage ();
-                       if (o != null) {
-                               sb.Append ("[Obsolete");
-                               if (o.Length > 0)
-                                       sb.Append (" (\"").Append (o).Append ("\")");
-                               sb.AppendLine ("]");
-                               for (int i = 0; i < State.Indent + 1; i++)
-                                       sb.Append ('\t');
-                       }
-                       return sb;
-               }
-
-               public override bool Equals (XElement source, XElement target, ApiChanges changes)
-               {
-                       RenderAttributes (source, target, changes);
-
-                       // We don't want to compare attributes.
-                       RemoveAttributes (source);
-                       RemoveAttributes (target);
-
-                       return base.Equals (source, target, changes);
-               }
-
-               public virtual void BeforeAdding (IEnumerable<XElement> list)
-               {
-                       first = true;
-                       Output.WriteLine ("<div>");
-                       Output.WriteLine ("<p>Added {0}:</p>", list.Count () > 1 ? GroupName : ElementName);
-                       Output.WriteLine ("<pre>");
-               }
-
-               public override void Added (XElement target, bool wasParentAdded)
-               {
-                       var o = GetObsoleteMessage (target);
-                       if (!first && (o.Length > 0))
-                               Output.WriteLine ();
-                       Indent ();
-                       bool isInterfaceBreakingChange = !wasParentAdded && IsInInterface (target);
-                       Output.Write ("\t<span class='added added-{0} {1}' {2}>", ElementName, isInterfaceBreakingChange ? "breaking" : string.Empty, isInterfaceBreakingChange ? "data-is-breaking" : "data-is-non-breaking");
-                       Output.Write ("{0}{1}", o, GetDescription (target));
-                       Output.WriteLine ("</span>");
-                       first = false;
-               }
-
-               public virtual void AfterAdding ()
-               {
-                       Output.WriteLine ("</pre>");
-                       Output.WriteLine ("</div>");
-               }
-
-               public override void Modified (XElement source, XElement target, ApiChanges change)
-               {
-               }
-
-               public virtual void BeforeRemoving (IEnumerable<XElement> list)
-               {
-                       first = true;
-                       Output.WriteLine ("<p>Removed {0}:</p>\n", list.Count () > 1 ? GroupName : ElementName);
-                       Output.WriteLine ("<pre>");
-               }
-
-               public override void Removed (XElement source)
-               {
-                       var o = GetObsoleteMessage (source);
-                       if (!first && (o.Length > 0))
-                               Output.WriteLine ();
-
-                       bool is_breaking = IsBreakingRemoval (source);
-
-                       Indent ();
-                       Output.Write ("\t<span class='removed removed-{0} {2}' {1}>", ElementName, is_breaking ? "data-is-breaking" : "data-is-non-breaking", is_breaking ? "breaking" : string.Empty);
-                       Output.Write ("{0}{1}", o, GetDescription (source));
-                       Output.WriteLine ("</span>");
-                       first = false;
-               }
-
-               public virtual void AfterRemoving ()
-               {
-                       Output.WriteLine ("</pre>");;
-               }
-
-               string RenderGenericParameter (XElement gp)
-               {
-                       var sb = new StringBuilder ();
-                       sb.Append (gp.GetTypeName ("name"));
-
-                       var constraints = gp.DescendantList ("generic-parameter-constraints", "generic-parameter-constraint");
-                       if (constraints != null && constraints.Count > 0) {
-                               sb.Append (" : ");
-                               for (int i = 0; i < constraints.Count; i++) {
-                                       if (i > 0)
-                                               sb.Append (", ");
-                                       sb.Append (constraints [i].GetTypeName ("name"));
-                               }
-                       }
-                       return sb.ToString ();
-               }
-
-               protected void RenderGenericParameters (XElement source, XElement target, ApiChange change)
-               {
-                       var src = source.DescendantList ("generic-parameters", "generic-parameter");
-                       var tgt = target.DescendantList ("generic-parameters", "generic-parameter");
-                       var srcCount = src == null ? 0 : src.Count;
-                       var tgtCount = tgt == null ? 0 : tgt.Count;
-
-                       if (srcCount == 0 && tgtCount == 0)
-                               return;
-
-                       change.Append ("&lt;");
-                       for (int i = 0; i < Math.Max (srcCount, tgtCount); i++) {
-                               if (i > 0)
-                                       change.Append (", ");
-                               if (i >= srcCount) {
-                                       change.AppendAdded (RenderGenericParameter (tgt [i]), true);
-                               } else if (i >= tgtCount) {
-                                       change.AppendRemoved (RenderGenericParameter (src [i]), true);
-                               } else {
-                                       var srcName = RenderGenericParameter (src [i]);
-                                       var tgtName = RenderGenericParameter (tgt [i]);
-
-                                       if (srcName != tgtName) {
-                                               change.AppendModified (srcName, tgtName, true);
-                                       } else {
-                                               change.Append (srcName);
-                                       }
-                                       }
-                               }
-                       change.Append ("&gt;");
-               }
-
-               protected string FormatValue (string type, string value)
-               {
-                       if (value == null)
-                               return "null";
-
-                       if (type == "string")
-                               return "\"" + value + "\"";
-                       else if (type == "bool") {
-                               switch (value) {
-                               case "True":
-                                       return "true";
-                               case "False":
-                                       return "false";
-                               default:
-                                       return value;
-                               }
-                       }
-
-                       return value;
-               }
-
-               protected void RenderParameters (XElement source, XElement target, ApiChange change)
-               {
-                       var src = source.DescendantList ("parameters", "parameter");
-                       var tgt = target.DescendantList ("parameters", "parameter");
-                       var srcCount = src == null ? 0 : src.Count;
-                       var tgtCount = tgt == null ? 0 : tgt.Count;
-
-                       change.Append (" (");
-                       for (int i = 0; i < Math.Max (srcCount, tgtCount); i++) {
-                               if (i > 0)
-                                       change.Append (", ");
-
-                               if (i >= srcCount) {
-                                       change.AppendAdded (tgt [i].GetTypeName ("type") + " " + tgt [i].GetAttribute ("name"), true);
-                               } else if (i >= tgtCount) {
-                                       change.AppendRemoved (src [i].GetTypeName ("type") + " " + src [i].GetAttribute ("name"), true);
-                               } else {
-                                       var paramSourceType = src [i].GetTypeName ("type");
-                                       var paramTargetType = tgt [i].GetTypeName ("type");
-
-                                       var paramSourceName = src [i].GetAttribute ("name");
-                                       var paramTargetName = tgt [i].GetAttribute ("name");
-
-                                       if (paramSourceType != paramTargetType) {
-                                               change.AppendModified (paramSourceType, paramTargetType, true);
-                                       } else {
-                                               change.Append (paramSourceType);
-                                       }
-                                       change.Append (" ");
-                                       if (paramSourceName != paramTargetName) {
-                                               change.AppendModified (paramSourceName, paramTargetName, false);
-                                       } else {
-                                               change.Append (paramSourceName);
-                                       }
-
-                                       var optSource = src [i].Attribute ("optional");
-                                       var optTarget = tgt [i].Attribute ("optional");
-                                       var srcValue = FormatValue (paramSourceType, src [i].GetAttribute ("defaultValue"));
-                                       var tgtValue = FormatValue (paramTargetType, tgt [i].GetAttribute ("defaultValue"));
-
-                                       if (optSource != null) {
-                                               if (optTarget != null) {
-                                                       change.Append (" = ");
-                                                       if (srcValue != tgtValue) {
-                                                               change.AppendModified (srcValue, tgtValue, false);
-                                                       } else {
-                                                               change.Append (tgtValue);
-                                                       }
-                                               } else {
-                                                       change.AppendRemoved (" = " + srcValue);
-                                               }
-                                       } else {
-                                               if (optTarget != null)
-                                                       change.AppendAdded (" = " + tgtValue);
-                                       }
-                               }
-                       }
-
-                       change.Append (")");
-
-                       // Ignore any parameter name changes if requested.
-                       if (State.IgnoreParameterNameChanges && !change.Breaking) {
-                               change.AnyChange = false;
-                               change.HasIgnoredChanges = true;
-                       }
-               }
-
-               void RenderVTable (MethodAttributes source, MethodAttributes target, ApiChange change)
-               {
-                       var srcAbstract = (source & MethodAttributes.Abstract) == MethodAttributes.Abstract;
-                       var tgtAbstract = (target & MethodAttributes.Abstract) == MethodAttributes.Abstract;
-                       var srcFinal = (source & MethodAttributes.Final) == MethodAttributes.Final;
-                       var tgtFinal = (target & MethodAttributes.Final) == MethodAttributes.Final;
-                       var srcVirtual = (source & MethodAttributes.Virtual) == MethodAttributes.Virtual;
-                       var tgtVirtual = (target & MethodAttributes.Virtual) == MethodAttributes.Virtual;
-                       var srcOverride = (source & MethodAttributes.VtableLayoutMask) != MethodAttributes.NewSlot;
-                       var tgtOverride = (target & MethodAttributes.VtableLayoutMask) != MethodAttributes.NewSlot;
-
-                       var srcWord = srcVirtual ? (srcOverride ? "override" : "virtual") : string.Empty;
-                       var tgtWord = tgtVirtual ? (tgtOverride ? "override" : "virtual") : string.Empty;
-                       var breaking = srcWord.Length > 0 && tgtWord.Length == 0;
-
-                       if (srcAbstract) {
-                               if (tgtAbstract) {
-                                       change.Append ("abstract ");
-                               } else if (tgtVirtual) {
-                                       change.AppendModified ("abstract", tgtWord, false).Append (" ");
-                               } else {
-                                       change.AppendRemoved ("abstract").Append (" ");
-                               }
-                       } else {
-                               if (tgtAbstract) {
-                                       change.AppendAdded ("abstract", true).Append (" ");
-                               } else if (srcWord != tgtWord) {
-                                       if (!tgtFinal)
-                                               change.AppendModified (srcWord, tgtWord, breaking).Append (" ");
-                               } else if (tgtWord.Length > 0) {
-                                       change.Append (tgtWord).Append (" ");
-                               } else if (srcWord.Length > 0) {
-                                       change.AppendRemoved (srcWord, breaking).Append (" ");
-                               }
-                       }
-
-                       if (srcFinal) {
-                               if (tgtFinal) {
-                                       change.Append ("final ");
-                               } else {
-                                       change.AppendRemoved ("final", false).Append (" "); // removing 'final' is not a breaking change.
-                               }
-                       } else {
-                               if (tgtFinal && srcVirtual) {
-                                       change.AppendModified ("virtual", "final", true).Append (" "); // adding 'final' is a breaking change if the member was virtual
-                               }
-                       }
-
-                       if (!srcVirtual && !srcFinal && tgtVirtual && tgtFinal) {
-                               // existing member implements a member from a new interface
-                               // this would show up as 'virtual final', which is redundant, so show nothing at all.
-                               change.HasIgnoredChanges = true;
-                       }
-
-                       // Ignore non-breaking virtual changes.
-                       if (State.IgnoreVirtualChanges && !change.Breaking) {
-                               change.AnyChange = false;
-                               change.HasIgnoredChanges = true;
-                       }
-
-                       var tgtSecurity = (source & MethodAttributes.HasSecurity) == MethodAttributes.HasSecurity;
-                       var srcSecurity = (target & MethodAttributes.HasSecurity) == MethodAttributes.HasSecurity;
-
-                       if (tgtSecurity != srcSecurity)
-                               change.HasIgnoredChanges = true;
-
-                       var srcPInvoke = (source & MethodAttributes.PinvokeImpl) == MethodAttributes.PinvokeImpl;
-                       var tgtPInvoke = (target & MethodAttributes.PinvokeImpl) == MethodAttributes.PinvokeImpl;
-                       if (srcPInvoke != tgtPInvoke)
-                               change.HasIgnoredChanges = true;
-               }
-
-               protected string GetVisibility (MethodAttributes attr)
-               {
-                       switch (attr) {
-                       case MethodAttributes.Private:
-                       case MethodAttributes.PrivateScope:
-                               return "private";
-                       case MethodAttributes.Assembly:
-                               return "internal";
-                       case MethodAttributes.FamANDAssem:
-                               return "private internal";
-                       case MethodAttributes.FamORAssem:
-                               return "protected"; // customers don't care about 'internal';
-                       case MethodAttributes.Family:
-                               return "protected";
-                       case MethodAttributes.Public:
-                               return "public";
-                       default:
-                               throw new NotImplementedException ();
-                       }
-               }
-
-               protected void RenderVisibility (MethodAttributes source, MethodAttributes target, ApiChange diff)
-               {
-                       source = source & MethodAttributes.MemberAccessMask;
-                       target = target & MethodAttributes.MemberAccessMask;
-
-                       if (source == target) {
-                               diff.Append (GetVisibility (target));
-                       } else {
-                               var breaking = false;
-                               switch (source) {
-                               case MethodAttributes.Private:
-                               case MethodAttributes.Assembly:
-                               case MethodAttributes.FamANDAssem:
-                                       break; // these are not publicly visible, thus not breaking
-                               case MethodAttributes.FamORAssem:
-                               case MethodAttributes.Family:
-                                       switch (target) {
-                                       case MethodAttributes.Public:
-                                               // to public is not a breaking change
-                                               break;
-                                       case MethodAttributes.Family:
-                                       case MethodAttributes.FamORAssem:
-                                               // not a breaking change, but should still show up in diff
-                                               break;
-                                       default:
-                                               // anything else is a breaking change
-                                               breaking = true;
-                                               break;
-                                       }
-                                       break;
-                               case MethodAttributes.Public:
-                               default:
-                                       // any change from public is breaking.
-                                       breaking = true;
-                                       break;
-                               }
-
-                               diff.AppendModified (GetVisibility (source), GetVisibility (target), breaking);
-                       }
-                       diff.Append (" ");
-               }
-
-               protected void RenderStatic (MethodAttributes src, MethodAttributes tgt, ApiChange diff)
-               {
-                       var srcStatic = (src & MethodAttributes.Static) == MethodAttributes.Static;
-                       var tgtStatic = (tgt & MethodAttributes.Static) == MethodAttributes.Static;
-
-                       if (srcStatic != tgtStatic) {
-                               if (srcStatic) {
-                                       diff.AppendRemoved ("static", true).Append (" ");
-                               } else {
-                                       diff.AppendAdded ("static", true).Append (" ");
-                               }
-                       }
-               }
-
-               protected void RenderMethodAttributes (MethodAttributes src, MethodAttributes tgt, ApiChange diff)
-               {
-                       RenderStatic (src, tgt, diff);
-                       RenderVisibility (src & MethodAttributes.MemberAccessMask, tgt & MethodAttributes.MemberAccessMask, diff);
-                       RenderVTable (src, tgt, diff);
-               }
-
-               protected void RenderMethodAttributes (XElement source, XElement target, ApiChange diff)
-               {
-                       RenderMethodAttributes (source.GetMethodAttributes (), target.GetMethodAttributes (), diff);
-               }
-
-               protected void RemoveAttributes (XElement element)
-               {
-                       var srcAttributes = element.Element ("attributes");
-                       if (srcAttributes != null)
-                               srcAttributes.Remove ();
-
-                       foreach (var el in element.Elements ())
-                               RemoveAttributes (el);
-               }
-
-               protected void RenderAttributes (XElement source, XElement target, ApiChanges changes)
-               {
-                       var srcObsolete = source.GetObsoleteMessage ();
-                       var tgtObsolete = target.GetObsoleteMessage ();
-
-                       if (srcObsolete == tgtObsolete)
-                               return; // nothing changed
-
-                       if (srcObsolete == null) {
-                               if (tgtObsolete == null)
-                                       return; // neither is obsolete
-                               var change = new ApiChange ();
-                               change.Header = "Obsoleted " + GroupName;
-                               change.Append (string.Format ("<span class='obsolete obsolete-{0}' data-is-non-breaking>", ElementName));
-                               change.Append ("[Obsolete (");
-                               if (tgtObsolete != string.Empty)
-                                       change.Append ("\"").Append (tgtObsolete).Append ("\"");
-                               change.Append (")]\n");
-                               change.Append (GetDescription (target));
-                               change.Append ("</span>");
-                               change.AnyChange = true;
-                               changes.Add (source, target, change);
-                       } else if (tgtObsolete == null) {
-                               // Made non-obsolete. Do we care to report this?
-                       } else {
-                               // Obsolete message changed. Do we care to report this?
-                       }
-               }
-
-               protected void RenderName (XElement source, XElement target, ApiChange change)
-               {
-                       var name = target.GetAttribute ("name");
-                       // show the constructor as it would be defined in C#
-                       name = name.Replace (".ctor", State.Type);
-
-                       var p = name.IndexOf ('(');
-                       if (p >= 0)
-                               name = name.Substring (0, p);
-
-                       change.Append (name);
-               }
-
-       }
-}
diff --git a/mcs/tools/corcompare/mono-api-html/MethodComparer.cs b/mcs/tools/corcompare/mono-api-html/MethodComparer.cs
deleted file mode 100644 (file)
index 4c893e7..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-// 
-// Authors
-//    Sebastien Pouliot  <sebastien@xamarin.com>
-//
-// Copyright 2013 Xamarin Inc. http://www.xamarin.com
-// 
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Linq;
-using System.Reflection;
-using System.Xml.Linq;
-
-namespace Xamarin.ApiDiff {
-
-       public class MethodComparer : ConstructorComparer {
-
-               public override string GroupName {
-                       get { return "methods"; }
-               }
-
-               public override string ElementName {
-                       get { return "method"; }
-               }
-
-               // operators have identical names but vary by return types
-               public override bool Find (XElement e)
-               {
-                       if (e.GetAttribute ("name") != Source.GetAttribute ("name"))
-                               return false;
-
-                       if (e.GetAttribute ("returntype") != Source.GetAttribute ("returntype"))
-                               return false;
-
-                       var eGP = e.Element ("generic-parameters");
-                       var sGP = Source.Element ("generic-parameters");
-
-                       if (eGP == null && sGP == null)
-                               return true;
-                       else if (eGP == null ^ sGP == null)
-                               return false;
-                       else {
-                               var eGPs = eGP.Elements ("generic-parameter");
-                               var sGPs = sGP.Elements ("generic-parameter");
-                               return eGPs.Count () == sGPs.Count ();
-                       }
-               }
-
-               protected override bool IsBreakingRemoval (XElement e)
-               {
-                       // Removing virtual methods that override another method is not a breaking change.
-                       var is_override = e.Attribute ("is-override");
-                       if (is_override != null)
-                               return is_override.Value != "true";
-                       
-                       return true; // all other removals are breaking changes
-               }
-       }
-}
\ No newline at end of file
diff --git a/mcs/tools/corcompare/mono-api-html/NamespaceComparer.cs b/mcs/tools/corcompare/mono-api-html/NamespaceComparer.cs
deleted file mode 100644 (file)
index 063e34e..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-// 
-// Authors
-//    Sebastien Pouliot  <sebastien@xamarin.com>
-//
-// Copyright 2013 Xamarin Inc. http://www.xamarin.com
-// 
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Xml.Linq;
-
-namespace Xamarin.ApiDiff {
-
-       public class NamespaceComparer : Comparer {
-
-               ClassComparer comparer;
-
-               public NamespaceComparer ()
-               {
-                       comparer =  new ClassComparer ();
-               }
-
-               public void Compare (XElement source, XElement target)
-               {
-                       var s = source.Element ("namespaces");
-                       var t = target.Element ("namespaces");
-                       if (XNode.DeepEquals (s, t))
-                               return;
-                       Compare (s.Elements ("namespace"), t.Elements ("namespace"));
-               }
-
-               public override void SetContext (XElement current)
-               {
-                       State.Namespace = current.Attribute ("name").Value;
-               }
-
-               public override void Added (XElement target, bool wasParentAdded)
-               {
-                       string name = target.Attribute ("name").Value;
-                       if (State.IgnoreNew.Any (re => re.IsMatch (name)))
-                               return;
-
-                       Output.WriteLine ("<!-- start namespace {0} --> <div> ", name);
-                       Output.WriteLine ("<h2>New Namespace {0}</h2>", name);
-                       Output.WriteLine ();
-                       // list all new types
-                       foreach (var addedType in target.Element ("classes").Elements ("class"))
-                               comparer.Added (addedType, true);
-                       Output.WriteLine ("</div> <!-- end namespace {0} -->", name);
-                       Output.WriteLine ();
-               }
-
-               public override void Modified (XElement source, XElement target, ApiChanges differences)
-               {
-                       var output = Output;
-                       State.Output = new StringWriter ();
-                       comparer.Compare (source, target);
-
-                       var s = Output.ToString ();
-                       State.Output = output;
-                       if (s.Length > 0) {
-                               var name = target.Attribute ("name").Value;
-                               Output.WriteLine ("<!-- start namespace {0} --> <div> ", name);
-                               Output.WriteLine ("<h2>Namespace {0}</h2>", name);
-                               Output.WriteLine (s);
-                               Output.WriteLine ("</div> <!-- end namespace {0} -->", name);
-                       }
-               }
-
-               public override void Removed (XElement source)
-               {
-                       var name = source.Attribute ("name").Value;
-                       Output.WriteLine ("<!-- start namespace {0} --> <div>", name);
-                       Output.WriteLine ("<h2>Removed Namespace {0}</h2>", name);
-                       Output.WriteLine ();
-                       // list all removed types
-                       foreach (var removedType in source.Element ("classes").Elements ("class"))
-                               comparer.Removed (removedType);
-                       Output.WriteLine ("</div> <!-- end namespace {0} -->", name);
-                       Output.WriteLine ();
-               }
-       }
-}
\ No newline at end of file
diff --git a/mcs/tools/corcompare/mono-api-html/PropertyComparer.cs b/mcs/tools/corcompare/mono-api-html/PropertyComparer.cs
deleted file mode 100644 (file)
index f51dd23..0000000
+++ /dev/null
@@ -1,254 +0,0 @@
-// 
-// Authors
-//    Sebastien Pouliot  <sebastien@xamarin.com>
-//
-// Copyright 2013 Xamarin Inc. http://www.xamarin.com
-// 
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections.Generic;
-using System.Reflection;
-using System.Text;
-using System.Xml.Linq;
-
-namespace Xamarin.ApiDiff {
-
-       public class PropertyComparer : MemberComparer {
-
-               public override string GroupName {
-                       get { return "properties"; }
-               }
-
-               public override string ElementName {
-                       get { return "property"; }
-               }
-
-               public override bool Find (XElement e)
-               {
-                       if (!base.Find (e))
-                               return false;
-                       // the same Item (indexer) property can have different parameters
-                       return e.GetAttribute ("params") == Source.GetAttribute ("params");
-               }
-
-               void GetAccessors (XElement element, out XElement getter, out XElement setter)
-               {
-                       var methods = element.Element ("methods");
-
-                       getter = null;
-                       setter = null;
-
-                       if (methods == null)
-                               return;
-                               
-                       foreach (var m in methods.Elements ("method")) {
-                               var n = m.GetAttribute ("name");
-                               if (n.StartsWith ("get_", StringComparison.Ordinal)) {
-                                       getter = m;
-                               } else if (n.StartsWith ("set_", StringComparison.Ordinal)) {
-                                       setter = m;
-                               }
-                       }
-               }
-
-               MethodAttributes GetMethodAttributes (XElement getter, XElement setter)
-               {
-                       if (getter == null)
-                               return setter.GetMethodAttributes ();
-                       else if (setter == null)
-                               return getter.GetMethodAttributes ();
-
-                       var gAttr = getter.GetMethodAttributes ();
-                       var sAttr = setter.GetMethodAttributes ();
-                       var g = gAttr & MethodAttributes.MemberAccessMask;
-                       var s = sAttr & MethodAttributes.MemberAccessMask;
-                       // Visibility is ordered numerically (higher value = more visible).
-                       // We want the most visible.
-                       var visibility = (MethodAttributes) Math.Max ((int) g, (int) s);
-                       // Do a bitwise or with the rest of the flags
-                       var g_no_visibility = gAttr & ~MethodAttributes.MemberAccessMask;
-                       var s_no_visibility = sAttr & ~MethodAttributes.MemberAccessMask;
-                       return g_no_visibility | s_no_visibility | visibility;
-               }
-
-               void RenderPropertyType (XElement source, XElement target, ApiChange change)
-               {
-                       var srcType = source.GetTypeName ("ptype");
-                       var tgtType = target.GetTypeName ("ptype");
-
-                       if (srcType == tgtType) {
-                               change.Append (tgtType);
-                       } else {
-                               change.AppendModified (srcType, tgtType, true);
-                       }
-                       change.Append (" ");
-               }
-
-               void RenderAccessors (XElement srcGetter, XElement tgtGetter, XElement srcSetter, XElement tgtSetter, ApiChange change)
-               {
-                       // FIXME: this doesn't render changes in the accessor visibility (a protected setter can become public for instance).
-                       change.Append (" {");
-                       if (tgtGetter != null) {
-                               if (srcGetter != null) {
-                                       change.Append (" ").Append ("get;");
-                               } else {
-                                       change.Append (" ").AppendAdded ("get;");
-                               }
-                       } else if (srcGetter != null) {
-                               change.Append (" ").AppendRemoved ("get;");
-                       }
-
-                       if (tgtSetter != null) {
-                               if (srcSetter != null) {
-                                       change.Append (" ").Append ("set;");
-                               } else {
-                                       change.Append (" ").AppendAdded ("set;");
-                               }
-                       } else if (srcSetter != null) {
-                               change.Append (" ").AppendRemoved ("set;");
-                       }
-
-                       change.Append (" }");
-
-                       // Ignore added property setters if asked to
-                       if (srcSetter == null && tgtSetter != null && State.IgnoreAddedPropertySetters && !change.Breaking) {
-                               change.AnyChange = false;
-                               change.HasIgnoredChanges = true;
-                       }
-               }
-
-               void RenderIndexers (List<XElement> srcIndexers, List<XElement> tgtIndexers, ApiChange change)
-               {
-                       change.Append ("this [");
-                       for (int i = 0; i < srcIndexers.Count; i++) {
-                               var source = srcIndexers [i];
-                               var target = tgtIndexers [i];
-
-                               if (i > 0)
-                                       change.Append (", ");
-
-                               var srcType = source.GetTypeName ("type");
-                               var tgtType = target.GetTypeName ("type");
-                               if (srcType == tgtType) {
-                                       change.Append (tgtType);
-                               } else {
-                                       change.AppendModified (srcType, tgtType, true);
-                               }
-                               change.Append (" ");
-
-                               var srcName = source.GetAttribute ("name");
-                               var tgtName = target.GetAttribute ("name");
-                               if (srcName == tgtName) {
-                                       change.Append (tgtName);
-                               } else {
-                                       change.AppendModified (srcName, tgtName, true);
-                               }
-                       }
-                       change.Append ("]");
-               }
-
-               public override bool Equals (XElement source, XElement target, ApiChanges changes)
-               {
-                       if (base.Equals (source, target, changes))
-                               return true;
-
-                       XElement srcGetter, srcSetter;
-                       XElement tgtGetter, tgtSetter;
-                       GetAccessors (source, out srcGetter, out srcSetter);
-                       GetAccessors (target, out tgtGetter, out tgtSetter);
-
-                       List<XElement> srcIndexers = null;
-                       List<XElement> tgtIndexers = null;
-                       bool isIndexer = false;
-                       if (srcGetter != null) {
-                               srcIndexers = srcGetter.DescendantList ("parameters", "parameter");
-                               tgtIndexers = tgtGetter.DescendantList ("parameters", "parameter");
-                               isIndexer = srcIndexers != null && srcIndexers.Count > 0;
-                       }
-
-                       var change = new ApiChange ();
-                       change.Header = "Modified " + GroupName;
-                       RenderMethodAttributes (GetMethodAttributes (srcGetter, srcSetter), GetMethodAttributes (tgtGetter, tgtSetter), change);
-                       RenderPropertyType (source, target, change);
-                       if (isIndexer) {
-                               RenderIndexers (srcIndexers, tgtIndexers, change);
-                       } else {
-                               RenderName (source, target, change);
-                       }
-                       RenderGenericParameters (source, target, change);
-                       RenderAccessors (srcGetter, tgtGetter, srcSetter, tgtSetter, change);
-
-                       changes.Add (source, target, change);
-
-                       return false;
-               }
-
-               void GetProperties (XElement e, out bool @virtual, out bool @override, out bool @static, out bool getter, out bool setter, out bool family)
-               {
-                       @virtual = @override = @static = getter = setter = family = false;
-
-                       var methods = e.Element ("methods");
-                       if (methods != null) {
-                               foreach (var m in methods.Elements ("method")) {
-                                       @virtual |= m.IsTrue ("virtual");
-                                       @static |= m.IsTrue ("static");
-                                       var n = m.GetAttribute ("name");
-                                       getter |= n.StartsWith ("get_", StringComparison.Ordinal);
-                                       setter |= n.StartsWith ("set_", StringComparison.Ordinal);
-                                       var attribs = (MethodAttributes) Int32.Parse (m.GetAttribute ("attrib"));
-                                       family = ((attribs & MethodAttributes.Public) != MethodAttributes.Public);
-                                       @override |= (attribs & MethodAttributes.NewSlot) == 0;
-                               }
-                       }
-               }
-
-               public override string GetDescription (XElement e)
-               {
-                       string name = e.Attribute ("name").Value;
-                       string ptype = e.GetTypeName ("ptype");
-
-                       bool virt = false;
-                       bool over = false;
-                       bool stat = false;
-                       bool getter = false;
-                       bool setter = false;
-                       bool family = false;
-                       GetProperties (e, out virt, out over, out stat, out getter, out setter, out family);
-
-                       var sb = new StringBuilder ();
-
-                       sb.Append (family ? "protected " : "public ");
-                       if (virt && !State.IgnoreVirtualChanges)
-                               sb.Append (over ? "override " : "virtual ");
-                       else if (stat)
-                               sb.Append ("static ");
-                       sb.Append (ptype).Append (' ').Append (name).Append (" { ");
-                       if (getter)
-                               sb.Append ("get; ");
-                       if (setter)
-                               sb.Append ("set; ");
-                       sb.Append ("}");
-
-                       return sb.ToString ();
-               }
-       }
-}
\ No newline at end of file
diff --git a/mcs/tools/corcompare/mono-api-html/mono-api-html.csproj b/mcs/tools/corcompare/mono-api-html/mono-api-html.csproj
deleted file mode 100644 (file)
index 6ac0f24..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>8.0.30703</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{D25986E2-7A41-4966-A26D-5614BAC7B8A7}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <RootNamespace>Xamarin.ApiDiff</RootNamespace>
-    <AssemblyName>mono-api-html</AssemblyName>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug</OutputPath>
-    <DefineConstants>DEBUG;</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <ConsolePause>false</ConsolePause>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>full</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release</OutputPath>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <Externalconsole>true</Externalconsole>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Xml" />
-    <Reference Include="System.Core" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Helpers.cs" />
-    <Compile Include="InterfaceComparer.cs" />
-    <Compile Include="NamespaceComparer.cs" />
-    <Compile Include="MemberComparer.cs" />
-    <Compile Include="FieldComparer.cs" />
-    <Compile Include="PropertyComparer.cs" />
-    <Compile Include="EventComparer.cs" />
-    <Compile Include="MethodComparer.cs" />
-    <Compile Include="ConstructorComparer.cs" />
-    <Compile Include="Comparer.cs" />
-    <Compile Include="AssemblyComparer.cs" />
-    <Compile Include="ClassComparer.cs" />
-    <Compile Include="ApiDiff.cs" />
-    <Compile Include="..\..\..\class\Mono.Options\Mono.Options\Options.cs">
-      <Link>Options.cs</Link>
-    </Compile>
-    <Compile Include="ApiChange.cs" />
-  </ItemGroup>
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
-</Project>
diff --git a/mcs/tools/corcompare/mono-api-info.exe.sources b/mcs/tools/corcompare/mono-api-info.exe.sources
new file mode 100644 (file)
index 0000000..9ae6cd0
--- /dev/null
@@ -0,0 +1,5 @@
+AssemblyResolver.cs
+Util.cs
+WellFormedXmlWriter.cs
+mono-api-info.cs
+../../class/Mono.Options/Mono.Options/Options.cs
index 7a03be5761c6aadb0b99e9f4e2711e2d8bc4d919..1c3a80355eeddb2acf1b3c69ad375dc43d830219 100644 (file)
@@ -6,7 +6,8 @@ include ../../build/rules.make
 
 // 3021: CLS attribute not needed since assembly is not CLS compliant
 NOWARNS = -nowarn:3021
-LOCAL_MCS_FLAGS = -r:$(topdir)/class/lib/$(PROFILE)/Mono.CSharp.dll -r:$(topdir)/class/lib/$(PROFILE)/Mono.Posix.dll -r:Mono.Management.dll -r:System.dll -unsafe $(NOWARNS)
+LOCAL_MCS_FLAGS = -unsafe $(NOWARNS)
+LIB_REFS = Mono.CSharp Mono.Posix Mono.Management System 
 
 PROGRAM = csharp.exe
 
index cfc68da231092773d7d28b5b1f70db7f1d977266..c186b8e74a2a58b5d3fa99ad212257135ea682b2 100644 (file)
@@ -2,7 +2,7 @@ thisdir = tools/culevel
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.dll -r:System.Xml.dll
+LIB_REFS = System System.Xml
 PROGRAM = culevel.exe
 
 CLEAN_FILES = culevel.exe culevel.exe.mdb
index 12869f51ecffda24935dcdf5f4e3b5c3864e982a..77721fa1df1151e137011b04e547c2d3c056e696 100644 (file)
@@ -2,7 +2,8 @@ thisdir = tools/disco
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.Xml.dll -r:System.Web.Services.dll -r:System.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = System.Xml System.Web.Services System
 PROGRAM = disco.exe
 
 include ../../build/executable.make
index 48e0059409c292f10f66beaf1f49b043c599b799..14f8c2906b980e0defecd1b062d16fd2c74ec58b 100644 (file)
@@ -2,7 +2,8 @@ thisdir = tools/dtd2rng
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.Xml.dll -r:Commons.Xml.Relaxng.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = System.Xml Commons.Xml.Relaxng
 PROGRAM = dtd2rng.exe
 
 include ../../build/executable.make
index 80431266b27582058736a48796b23a9f4332305d..fa500c8c679cd0e18ec0a47f30d322e1079e415b 100755 (executable)
@@ -2,7 +2,8 @@ thisdir = tools/dtd2xsd
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.Xml.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = System.Xml
 PROGRAM = dtd2xsd.exe
 
 include ../../build/executable.make
index 878830f124886cd0723c47115b443a2f065003ac..f98314ecec7afb9db0957bb70edde80431c647b9 100644 (file)
@@ -2,7 +2,8 @@ thisdir = tools/gacutil
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:Mono.Security.dll -unsafe
+LIB_REFS = Mono.Security
+LOCAL_MCS_FLAGS = -unsafe
 
 PROGRAM = gacutil.exe
 
index 21b38e8fd3c77839f1e7c09c22d5c1d03757b527..71819a2eb5248b1cdff27957f75b0c2ef0d346f8 100644 (file)
@@ -2,7 +2,8 @@ thisdir = tools/genxs
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.Xml.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = System.Xml
 PROGRAM = genxs.exe
 
 include ../../build/executable.make
index 13ffb114c20ae90ec83b3f38f68a7ca1c182916f..f34409878c3704c9ca6d76d1d195ce409847362b 100644 (file)
@@ -2,7 +2,8 @@ thisdir = tools/ictool
 SUBDIRS =
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.Xml.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = System.Xml
 
 PROGRAM = ictool.exe
 EXTRA_DISTFILES = ictool-config.xml
index 6a6cb6fb544db6637da27823b0190bfdd1174d7e..1d0a78c83e06d3a62586fed60fa271de9adf34d0 100644 (file)
@@ -3,9 +3,9 @@ SUBDIRS =
 include ../../build/rules.make
 
 PROGRAM = ikdasm.exe
-
+LIB_REFS = System System.Core System.Security
 LOCAL_MCS_FLAGS = \
-       -d:NO_SYMBOL_WRITER /r:System.Security.dll /r:System.Core.dll /r:System.dll
+       -d:NO_SYMBOL_WRITER
 
 #EXTRA_DISTFILES = LICENSE
 
index c545a4630eb709aff273ca3c64311e0385af1189..e7f4401169feaa1252c91b4660b67879989fb673 100644 (file)
@@ -2,7 +2,8 @@ thisdir = tools/installutil
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.Configuration.Install.dll -r:System.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = System.Configuration.Install System
 
 PROGRAM = installutil.exe
 
index a5479c948ddc4bf6dc16582d74cdcf551970de08..3ba67fe0d8fd4f202d654b2efc5cd6c114e2a268 100644 (file)
@@ -2,7 +2,8 @@ thisdir = tools/installvst
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.Xml.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = System.Xml
 PROGRAM = installvst.exe
 
 include ../../build/executable.make
index d77c8ab6f73644033b12e156f2e7b0e1beadcf8c..905a75a488aa6ea5827e7a3cbb7d8892170ad8e3 100644 (file)
@@ -2,7 +2,8 @@ thisdir = tools/lc
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.dll -r:System.Core.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = System System.Core
 PROGRAM = lc.exe
 
 CLEAN_FILES = lc.exe lc.exe.mdb
index e68e7f6c39bd676345c56b3c8145120648aaf3ae..08a3fdc093a7dbcd9725f02eb1ace282edf12dfe 100644 (file)
@@ -4,6 +4,7 @@ include ../../build/rules.make
 
 PROGRAM = linkeranalyzer.exe
 
-LOCAL_MCS_FLAGS = /r:System.dll /r:System.Xml.dll
+LIB_REFS = System System.Xml
+LOCAL_MCS_FLAGS =
 
 include ../../build/executable.make
index 63c5eb6adce769bff8c1b9107149ad02576bd708..3dd8398d2bcfad2456c4cf303d6cc2cd34666bf0 100644 (file)
@@ -2,10 +2,6 @@ thisdir = tools/linker
 SUBDIRS =
 include ../../build/rules.make
 
-PROGRAM_SNK = ../../class/mono.snk
-
-CECIL = $(topdir)/class/lib/$(PROFILE)/Mono.Cecil.dll
-
 RESOURCES = \
        Descriptors/mscorlib.xml        \
        Descriptors/System.xml          \
@@ -18,7 +14,8 @@ PROGRAM = monolinker.exe
 
 $(PROGRAM): $(RESOURCES)
 
-LOCAL_MCS_FLAGS = /r:$(CECIL) /r:System.Xml.dll /r:System.Core.dll /r:System.dll $(RESOURCES:%=-resource:%)
+LIB_REFS = System System.Core System.Xml Mono.Cecil
+LOCAL_MCS_FLAGS = $(RESOURCES:%=-resource:%)
 
 EXTRA_DISTFILES = $(RESOURCES)
 
index f7f8721adc130c0e0e46f926ff74fe2bb3cabe26..92fc95c91f12e5a9cb6264dbda65c233aba2ab30 100644 (file)
@@ -2,7 +2,8 @@ thisdir = tools/mconfig
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.Xml.dll -r:System.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = System.Xml System
 PROGRAM = mconfig.exe
 
 BUILT_SOURCES=Mono.MonoConfig/consts.cs
index 9647a44d52fdf3bc1b86f45a9b1feeba9cdf0d36..55d4012a13a2e633cd475f6e91b7e340d55b83bb 100644 (file)
@@ -4,9 +4,7 @@ include ../../build/rules.make
 
 PROGRAM = mdbdump.exe
 
-LOCAL_MCS_FLAGS = \
-       /r:System.Xml.dll \
-       /r:Mono.Cecil.dll       \
-       /r:Mono.CompilerServices.SymbolWriter.dll
+LIB_REFS = Mono.Cecil System.Xml Mono.CompilerServices.SymbolWriter
+LOCAL_MCS_FLAGS =
 
 include ../../build/executable.make
index e0432ef90a798ad6d610903a14bba6d56bc06958..e0f6fe81956c8d31dcc2fda6fd1dabbec4db5658 100644 (file)
@@ -4,7 +4,7 @@ include ../../build/rules.make
 
 PROGRAM = mdbrebase.exe
 
-LOCAL_MCS_FLAGS = /r:Mono.CompilerServices.SymbolWriter.dll /r:System.dll
-
+LIB_REFS = System Mono.CompilerServices.SymbolWriter
+LOCAL_MCS_FLAGS =
 
 include ../../build/executable.make
index 3fb309b227320e5b6d26830d56d7e35143adf14c..efb76cbf9e0dea90c21deeae424c932d5d57c504 100644 (file)
@@ -12,16 +12,10 @@ MDOC_COMMON_FLAGS = \
        /resource:Resources/msitomsx.xsl,msitomsx.xsl                               \
        /resource:Resources/overview.xsl,overview.xsl                               \
        /resource:Resources/stylesheet.xsl,stylesheet.xsl                           \
-       /r:System.Web.dll                                                           \
-       /r:System.Xml.Linq.dll                                                      \
-       /r:ICSharpCode.SharpZipLib.dll                                              \
-       /r:Mono.Cecil.dll \
-       /r:System.dll \
-       /r:System.Xml.dll \
-       /r:System.Core.dll
-
-LOCAL_MCS_FLAGS = $(MDOC_COMMON_FLAGS) \
-       /r:monodoc.dll
+
+LIB_REFS = monodoc System System.Xml System.Core Mono.Cecil ICSharpCode.SharpZipLib System.Xml.Linq System.Web
+       
+LOCAL_MCS_FLAGS = $(MDOC_COMMON_FLAGS)
 PROGRAM = mdoc.exe
 PROGRAM_DEPS = $(topdir)/class/lib/$(PROFILE)/monodoc.dll
 
@@ -98,51 +92,51 @@ cleanup:
        -rm -f monodocer1.exe*
 
 Test/DocTest-addNonGeneric.dll:
-       $(CSCOMPILE) $(TEST_CSCFLAGS) -debug -unsafe -target:library -out:$@ Test/DocTest-addNonGeneric.cs
+       $(CSCOMPILE) $(TEST_CSCFLAGS) -unsafe -target:library -out:$@ Test/DocTest-addNonGeneric.cs
 
 Test/DocTest-addNonGeneric-v2.dll:
-       $(CSCOMPILE) $(TEST_CSCFLAGS) -debug -unsafe -target:library -out:$@ Test/DocTest-addNonGeneric.cs /define:V2
+       $(CSCOMPILE) $(TEST_CSCFLAGS) -unsafe -target:library -out:$@ Test/DocTest-addNonGeneric.cs /define:V2
 
 Test/DocTest-DropNS-classic-secondary.dll:
        @echo $(value @)
-       $(CSCOMPILE) $(TEST_CSCFLAGS) -debug -unsafe -target:library -out:$@ Test/DocTest-DropNS-classic-secondary.cs
+       $(CSCOMPILE) $(TEST_CSCFLAGS) -unsafe -target:library -out:$@ Test/DocTest-DropNS-classic-secondary.cs
 
 Test/DocTest-DropNS-classic.dll:
        @echo $(value @)
-       $(CSCOMPILE) $(TEST_CSCFLAGS) -debug -unsafe -target:library -out:$@ Test/DocTest-DropNS-classic.cs
+       $(CSCOMPILE) $(TEST_CSCFLAGS) -unsafe -target:library -out:$@ Test/DocTest-DropNS-classic.cs
 
 Test/DocTest-DropNS-unified.dll:
-       $(CSCOMPILE) $(TEST_CSCFLAGS) -debug -unsafe -target:library -out:$@ Test/DocTest-DropNS-unified.cs
+       $(CSCOMPILE) $(TEST_CSCFLAGS) -unsafe -target:library -out:$@ Test/DocTest-DropNS-unified.cs
 
 Test/DocTest-DropNS-unified-multitest.dll:
        rm -f $@
-       $(CSCOMPILE) $(TEST_CSCFLAGS) -debug -unsafe -target:library -out:$@ Test/DocTest-DropNS-unified.cs /define:MULTITEST
+       $(CSCOMPILE) $(TEST_CSCFLAGS) -unsafe -target:library -out:$@ Test/DocTest-DropNS-unified.cs /define:MULTITEST
 
 Test/DocTest-DropNS-classic-multitest.dll:
        rm -f $@
-       $(CSCOMPILE) $(TEST_CSCFLAGS) -debug -unsafe -target:library -out:$@ Test/DocTest-DropNS-classic.cs /define:MULTITEST
+       $(CSCOMPILE) $(TEST_CSCFLAGS) -unsafe -target:library -out:$@ Test/DocTest-DropNS-classic.cs /define:MULTITEST
 
 Test/DocTest-DropNS-unified-deletetest.dll:
        rm -f Test/DocTest-DropNS-unified-deletetest.dll
-       $(CSCOMPILE) $(TEST_CSCFLAGS) -debug -unsafe -target:library -out:$@ Test/DocTest-DropNS-unified.cs /define:DELETETEST
+       $(CSCOMPILE) $(TEST_CSCFLAGS) -unsafe -target:library -out:$@ Test/DocTest-DropNS-unified.cs /define:DELETETEST
 
 Test/DocTest-DropNS-unified-deletetest-V2.dll:
        rm -f Test/DocTest-DropNS-unified-deletetest.dll
-       $(CSCOMPILE) $(TEST_CSCFLAGS) -debug -unsafe -target:library -out:Test/DocTest-DropNS-unified-deletetest.dll Test/DocTest-DropNS-unified.cs /define:DELETETEST,V2
+       $(CSCOMPILE) $(TEST_CSCFLAGS) -unsafe -target:library -out:Test/DocTest-DropNS-unified-deletetest.dll Test/DocTest-DropNS-unified.cs /define:DELETETEST,V2
 
 Test/DocTest-DropNS-classic-deletetest.dll:
        rm -f Test/DocTest-DropNS-classic-deletetest.dll
-       $(CSCOMPILE) $(TEST_CSCFLAGS) -debug -unsafe -target:library -out:$@ Test/DocTest-DropNS-classic.cs /define:DELETETEST
+       $(CSCOMPILE) $(TEST_CSCFLAGS) -unsafe -target:library -out:$@ Test/DocTest-DropNS-classic.cs /define:DELETETEST
 
 Test/DocTest-DropNS-classic-deletetest-V2.dll:
        rm -f Test/DocTest-DropNS-classic-deletetest.dll
-       $(CSCOMPILE) $(TEST_CSCFLAGS) -debug -unsafe -target:library -out:Test/DocTest-DropNS-classic-deletetest.dll Test/DocTest-DropNS-classic.cs /define:DELETETEST,V2
+       $(CSCOMPILE) $(TEST_CSCFLAGS) -unsafe -target:library -out:Test/DocTest-DropNS-classic-deletetest.dll Test/DocTest-DropNS-classic.cs /define:DELETETEST,V2
 
 Test/DocTest.dll: 
-       $(CSCOMPILE) $(TEST_CSCFLAGS) -debug -unsafe -target:library -out:$@ Test/DocTest.cs
+       $(CSCOMPILE) $(TEST_CSCFLAGS) -unsafe -target:library -out:$@ Test/DocTest.cs -r:$(topdir)/class/lib/$(PROFILE)/System.Core.dll -r:$(topdir)/class/lib/$(PROFILE)/Microsoft.CSharp.dll
 
 Test/DocTest-InternalInterface.dll: 
-       $(CSCOMPILE) $(TEST_CSCFLAGS) -debug -unsafe -target:library -out:$@ Test/DocTest-InternalInterface.cs
+       $(CSCOMPILE) $(TEST_CSCFLAGS) -unsafe -target:library -out:$@ Test/DocTest-InternalInterface.cs
 
 Test/DocTest.dll-v1: 
        -rm -f Test/DocTest.cs
@@ -158,7 +152,7 @@ Test/DocTest.dll-v2:
        $(MAKE) TEST_CSCFLAGS=$(TEST_CSCFLAGS) Test/DocTest.dll
 
 Test/DocTest-enumerations.dll: 
-       $(CSCOMPILE) $(TEST_CSCFLAGS) -debug -unsafe -target:library -out:$@ Test/DocTest-enumerations.cs
+       $(CSCOMPILE) $(TEST_CSCFLAGS) -unsafe -target:library -out:$@ Test/DocTest-enumerations.cs
 
 check-monodocer-addNonGeneric: $(PROGRAM)
        -rm -Rf Test/en.actual
index 44620aacd1fef6eedb2d430e917e391cbb334099..867c1d3e2df0fd3c833b427f1927b62103831449 100644 (file)
@@ -10,7 +10,8 @@ RESOURCE_FILES = $(OTHER_RES)
 
 LOCAL_MCS_FLAGS= $(OTHER_RES:%=-resource:%)
 
-LOCAL_MCS_FLAGS += -d:STATIC,NO_SYMBOL_WRITER,NO_AUTHENTICODE -r:System.Xml.dll -r:System.dll
+LOCAL_MCS_FLAGS += -d:STATIC,NO_SYMBOL_WRITER,NO_AUTHENTICODE
+LIB_REFS = System.Xml System
 
 EXTRA_DISTFILES = $(RESOURCE_FILES)
 
index 90c9afcb026b42f8208b7e4bc4ea6ce7bf61fff9..35133d61dbe817bc079816a88ef6337606ef4385 100644 (file)
@@ -2,7 +2,8 @@ thisdir = tools/mod
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = /r:monodoc.dll
+LIB_REFS = monodoc
+LOCAL_MCS_FLAGS =
 
 PROGRAM = mod.exe
 
diff --git a/mcs/tools/mono-api-html/ApiChange.cs b/mcs/tools/mono-api-html/ApiChange.cs
new file mode 100644 (file)
index 0000000..1d902ca
--- /dev/null
@@ -0,0 +1,81 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Xml.Linq;
+
+namespace Xamarin.ApiDiff
+{
+       public class ApiChange
+       {
+               public string Header;
+               public StringBuilder Member = new StringBuilder ();
+               public bool Breaking;
+               public bool AnyChange;
+               public bool HasIgnoredChanges;
+
+               public ApiChange Append (string text)
+               {
+                       Member.Append (text);
+                       return this;
+               }
+
+               public ApiChange AppendAdded (string text, bool breaking = false)
+               {
+                       Member.Append ("<span class='added ").Append (breaking ? "added-breaking-inline" : string.Empty).Append ("'>");
+                       Member.Append (text);
+                       Member.Append ("</span>");
+                       Breaking |= breaking;
+                       AnyChange = true;
+                       return this;
+               }
+
+               public ApiChange AppendRemoved (string text, bool breaking = true)
+               {
+                       Member.Append ("<span class='removed removed-inline ").Append (breaking ? "removed-breaking-inline" : string.Empty).Append ("'>");
+                       Member.Append (text);
+                       Member.Append ("</span>");
+                       Breaking |= breaking;
+                       AnyChange = true;
+                       return this;
+               }
+
+               public ApiChange AppendModified (string old, string @new, bool breaking = true)
+               {
+                       if (old.Length > 0)
+                               AppendRemoved (old, breaking);
+                       if (old.Length > 0 && @new.Length > 0)
+                               Append (" ");
+                       if (@new.Length > 0)
+                               AppendAdded (@new);
+                       Breaking |= breaking;
+                       AnyChange = true;
+                       return this;
+               }
+       }
+
+       public class ApiChanges : Dictionary<string, List<ApiChange>> {
+               public void Add (XElement source, XElement target, ApiChange change)
+               {
+                       if (!change.AnyChange) {
+                               // This is most likely because the rendering doesn't take into account something that's different (solution: fix rendering).
+                               if (!change.HasIgnoredChanges) {
+                                       var isField = source.Name.LocalName == "field";
+                                       if (isField) {
+                                               Console.WriteLine ("Comparison resulting in no changes (src: {2} dst: {3}) :\n{0}\n{1}\n\n", source.ToString (), target.ToString (), source.GetFieldAttributes (), target.GetFieldAttributes ());
+                                       } else {
+                                               Console.WriteLine ("Comparison resulting in no changes (src: {2} dst: {3}) :\n{0}\n{1}\n\n", source.ToString (), target.ToString (), source.GetMethodAttributes (), target.GetMethodAttributes ());
+                                       }
+                               }
+                               return;
+                       }
+
+                       List<ApiChange> list;
+                       if (!TryGetValue (change.Header, out list)) {
+                               list = new List<ApiChange> ();
+                               base.Add (change.Header, list);
+                       }
+                       list.Add (change);
+               }
+       }
+}
+
diff --git a/mcs/tools/mono-api-html/ApiDiff.cs b/mcs/tools/mono-api-html/ApiDiff.cs
new file mode 100644 (file)
index 0000000..8fe2784
--- /dev/null
@@ -0,0 +1,277 @@
+//
+// The main differences with mono-api-diff are:
+// * this tool directly produce HTML similar to gdiff.sh used for Xamarin.iOS
+// * this tool reports changes in an "evolutionary" way, not in a breaking way,
+//   i.e. it does not assume the source assembly is right (but simply older)
+// * the diff .xml output was not easy to convert back into the HTML format
+//   that gdiff.sh produced
+// 
+// Authors
+//    Sebastien Pouliot  <sebastien@xamarin.com>
+//
+// Copyright 2013-2014 Xamarin Inc. http://www.xamarin.com
+// 
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.IO;
+using System.Collections.Generic;
+using System.Text.RegularExpressions;
+
+using Mono.Options;
+
+namespace Xamarin.ApiDiff {
+
+       public static class State {
+               static TextWriter output;
+
+               public static TextWriter Output { 
+                       get {
+                               if (output == null)
+                                       output = Console.Out;
+                               return output;
+                       }
+                       set { output = value; } 
+               }
+
+               public static string Assembly { get; set; }
+               public static string Namespace { get; set; }
+               public static string Type { get; set; }
+               public static string BaseType { get; set; }
+
+               public static int Indent { get; set; }
+
+               static List<Regex> ignoreAdded = new List<Regex> ();
+               public static List<Regex> IgnoreAdded {
+                       get { return ignoreAdded; }
+               }
+
+               static List<Regex> ignoreNew = new List<Regex> ();
+               public static List<Regex> IgnoreNew {
+                       get { return ignoreNew; }
+               }
+
+               static List<Regex> ignoreRemoved = new List<Regex> ();
+               public static List<Regex> IgnoreRemoved {
+                       get { return ignoreRemoved; }
+               }
+
+               public  static  bool    IgnoreParameterNameChanges  { get; set; }
+               public  static  bool    IgnoreVirtualChanges        { get; set; }
+               public  static  bool    IgnoreAddedPropertySetters  { get; set; }
+
+               public static bool Lax;
+               public static bool Colorize = true;
+       }
+
+       class Program {
+
+               public static int Main (string[] args)
+               {
+                       var showHelp = false;
+                       string diff = null;
+                       List<string> extra = null;
+
+                       var options = new OptionSet {
+                               { "h|help", "Show this help", v => showHelp = true },
+                               { "d|diff=", "HTML diff file out output (omit for stdout)", v => diff = v },
+                               { "i|ignore=", "Ignore new, added, and removed members whose description matches a given C# regular expression (see below).",
+                                       v => {
+                                               var r = new Regex (v);
+                                               State.IgnoreAdded.Add (r);
+                                               State.IgnoreRemoved.Add (r);
+                                               State.IgnoreNew.Add (r);
+                                       }
+                               },
+                               { "a|ignore-added=", "Ignore added members whose description matches a given C# regular expression (see below).",
+                                       v => State.IgnoreAdded.Add (new Regex (v))
+                               },
+                               { "r|ignore-removed=", "Ignore removed members whose description matches a given C# regular expression (see below).",
+                                       v => State.IgnoreRemoved.Add (new Regex (v))
+                               },
+                               { "n|ignore-new=", "Ignore new namespaces and types whose description matches a given C# regular expression (see below).",
+                                       v => State.IgnoreNew.Add (new Regex (v))
+                               },
+                               { "ignore-changes-parameter-names", "Ignore changes to parameter names for identically prototyped methods.",
+                                       v => State.IgnoreParameterNameChanges   = v != null
+                               },
+                               { "ignore-changes-property-setters", "Ignore adding setters to properties.",
+                                       v => State.IgnoreAddedPropertySetters = v != null
+                               },
+                               { "ignore-changes-virtual", "Ignore changing non-`virtual` to `virtual` or adding `override`.",
+                                       v => State.IgnoreVirtualChanges = v != null
+                               },
+                               { "c|colorize:", "Colorize HTML output", v => State.Colorize = string.IsNullOrEmpty (v) ? true : bool.Parse (v) },
+                               { "x|lax", "Ignore duplicate XML entries", v => State.Lax = true }
+                       };
+
+                       try {
+                               extra = options.Parse (args);
+                       } catch (OptionException e) {
+                               Console.WriteLine ("Option error: {0}", e.Message);
+                               showHelp = true;
+                       }
+
+                       if (showHelp || extra == null || extra.Count < 2 || extra.Count > 3) {
+                               Console.WriteLine (@"Usage: mono-api-html [options] <reference.xml> <assembly.xml> [diff.html]");
+                               Console.WriteLine ();
+                               Console.WriteLine ("Available options:");
+                               options.WriteOptionDescriptions (Console.Out);
+                               Console.WriteLine ();
+                               Console.WriteLine ("Ignoring Members:");
+                               Console.WriteLine ();
+                               Console.WriteLine ("  Members that were added can be filtered out of the diff by using the");
+                               Console.WriteLine ("  -i, --ignore-added option. The option takes a C# regular expression");
+                               Console.WriteLine ("  to match against member descriptions. For example, to ignore the");
+                               Console.WriteLine ("  introduction of the interfaces 'INSCopying' and 'INSCoding' on types");
+                               Console.WriteLine ("  pass the following to mono-api-html:");
+                               Console.WriteLine ();
+                               Console.WriteLine ("    mono-api-html ... -i 'INSCopying$' -i 'INSCoding$'");
+                               Console.WriteLine ();
+                               Console.WriteLine ("  The regular expressions will match any member description ending with");
+                               Console.WriteLine ("  'INSCopying' or 'INSCoding'.");
+                               Console.WriteLine ();
+                               return 1;
+                       }
+
+                       var input = extra [0];
+                       var output = extra [1];
+                       if (extra.Count == 3 && diff == null)
+                               diff = extra [2];
+
+                       try {
+                               var ac = new AssemblyComparer (input, output);
+                               if (diff != null) {
+                                       string diffHtml = String.Empty;
+                                       using (var writer = new StringWriter ()) {
+                                               State.Output = writer;
+                                               ac.Compare ();
+                                               diffHtml = State.Output.ToString ();
+                                       }
+                                       if (diffHtml.Length > 0) {
+                                               using (var file = new StreamWriter (diff)) {
+                                                       file.WriteLine ("<div>");
+                                                       if (State.Colorize) {
+                                                               file.WriteLine ("<style scoped>");
+                                                               file.WriteLine ("\t.obsolete { color: gray; }");
+                                                               file.WriteLine ("\t.added { color: green; }");
+                                                               file.WriteLine ("\t.removed-inline { text-decoration: line-through; }");
+                                                               file.WriteLine ("\t.removed-breaking-inline { color: red;}");
+                                                               file.WriteLine ("\t.added-breaking-inline { text-decoration: underline; }");
+                                                               file.WriteLine ("\t.nonbreaking { color: black; }");
+                                                               file.WriteLine ("\t.breaking { color: red; }");
+                                                               file.WriteLine ("</style>");
+                                                       }
+                                                       file.WriteLine (
+@"<script type=""text/javascript"">
+       // Only some elements have 'data-is-[non-]breaking' attributes. Here we
+       // iterate over all descendents elements, and set 'data-is-[non-]breaking'
+       // depending on whether there are any descendents with that attribute.
+       function propagateDataAttribute (element)
+       {
+               if (element.hasAttribute ('data-is-propagated'))
+                       return;
+
+               var i;
+               var any_breaking = element.hasAttribute ('data-is-breaking');
+               var any_non_breaking = element.hasAttribute ('data-is-non-breaking');
+               for (i = 0; i < element.children.length; i++) {
+                       var el = element.children [i];
+                       propagateDataAttribute (el);
+                       any_breaking |= el.hasAttribute ('data-is-breaking');
+                       any_non_breaking |= el.hasAttribute ('data-is-non-breaking');
+               }
+               
+               if (any_breaking)
+                       element.setAttribute ('data-is-breaking', null);
+               else if (any_non_breaking)
+                       element.setAttribute ('data-is-non-breaking', null);
+               element.setAttribute ('data-is-propagated', null);
+       }
+
+       function hideNonBreakingChanges ()
+       {
+               var topNodes = document.querySelectorAll ('[data-is-topmost]');
+               var n;
+               var i;
+               for (n = 0; n < topNodes.length; n++) {
+                       propagateDataAttribute (topNodes [n]);
+                       var elements = topNodes [n].querySelectorAll ('[data-is-non-breaking]');
+                       for (i = 0; i < elements.length; i++) {
+                               var el = elements [i];
+                               if (!el.hasAttribute ('data-original-display'))
+                                       el.setAttribute ('data-original-display', el.style.display);
+                               el.style.display = 'none';
+                       }
+               }
+               
+               var links = document.getElementsByClassName ('hide-nonbreaking');
+               for (i = 0; i < links.length; i++)
+                       links [i].style.display = 'none';
+               links = document.getElementsByClassName ('restore-nonbreaking');
+               for (i = 0; i < links.length; i++)
+                       links [i].style.display = '';
+       }
+
+       function showNonBreakingChanges ()
+       {
+               var elements = document.querySelectorAll ('[data-original-display]');
+               var i;
+               for (i = 0; i < elements.length; i++) {
+                       var el = elements [i];
+                       el.style.display = el.getAttribute ('data-original-display');
+               }
+
+               var links = document.getElementsByClassName ('hide-nonbreaking');
+               for (i = 0; i < links.length; i++)
+                       links [i].style.display = '';
+               links = document.getElementsByClassName ('restore-nonbreaking');
+               for (i = 0; i < links.length; i++)
+                       links [i].style.display = 'none';
+       }
+</script>");
+                                                       if (ac.SourceAssembly == ac.TargetAssembly) {
+                                                               file.WriteLine ("<h1>{0}.dll</h1>", ac.SourceAssembly);
+                                                       } else {
+                                                               file.WriteLine ("<h1>{0}.dll vs {1}.dll</h1>", ac.SourceAssembly, ac.TargetAssembly);
+                                                       }
+                                                       file.WriteLine ("<a href='javascript: hideNonBreakingChanges (); ' class='hide-nonbreaking'>Hide non-breaking changes</a>");
+                                                       file.WriteLine ("<a href='javascript: showNonBreakingChanges (); ' class='restore-nonbreaking' style='display: none;'>Show non-breaking changes</a>");
+                                                       file.WriteLine ("<br/>");
+                                                       file.WriteLine ("<div data-is-topmost>");
+                                                       file.Write (diffHtml);
+                                                       file.WriteLine ("</div> <!-- end topmost div -->");
+                                                       file.WriteLine ("</div>");
+                                               }
+                                       }
+                               } else {
+                                       State.Output = Console.Out;
+                                       ac.Compare ();
+                               }
+                       }
+                       catch (Exception e) {
+                               Console.WriteLine (e);
+                               return 1;
+                       }
+                       return 0;
+               }
+       }
+}
diff --git a/mcs/tools/mono-api-html/AssemblyComparer.cs b/mcs/tools/mono-api-html/AssemblyComparer.cs
new file mode 100644 (file)
index 0000000..adbd862
--- /dev/null
@@ -0,0 +1,79 @@
+// 
+// Authors
+//    Sebastien Pouliot  <sebastien@xamarin.com>
+//
+// Copyright 2013 Xamarin Inc. http://www.xamarin.com
+// 
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections.Generic;
+using System.Xml.Linq;
+
+namespace Xamarin.ApiDiff {
+
+       public class AssemblyComparer : Comparer {
+
+               XDocument source;
+               XDocument target;
+               NamespaceComparer comparer;
+
+               public AssemblyComparer (string sourceFile, string targetFile)
+               {
+                       source = XDocument.Load (sourceFile);
+                       target = XDocument.Load (targetFile);
+                       comparer =  new NamespaceComparer ();
+               }
+
+               public string SourceAssembly { get; private set; }
+               public string TargetAssembly { get; private set; }
+
+               public void Compare ()
+               {
+                       Compare (source.Element ("assemblies").Elements ("assembly"), 
+                                target.Element ("assemblies").Elements ("assembly"));
+               }
+
+               public override void SetContext (XElement current)
+               {
+                       State.Assembly = current.GetAttribute ("name");
+               }
+
+               public override void Added (XElement target, bool wasParentAdded)
+               {
+                       // one assembly per xml file
+               }
+
+               public override void Modified (XElement source, XElement target, ApiChanges diff)
+               {
+                       SourceAssembly = source.GetAttribute ("name");
+                       TargetAssembly = target.GetAttribute ("name");
+                       // TODO: version
+                       // ? custom attributes ?
+                       comparer.Compare (source, target);
+               }
+
+               public override void Removed (XElement source)
+               {
+                       // one assembly per xml file
+               }
+       }
+}
\ No newline at end of file
diff --git a/mcs/tools/mono-api-html/ClassComparer.cs b/mcs/tools/mono-api-html/ClassComparer.cs
new file mode 100644 (file)
index 0000000..a3399fb
--- /dev/null
@@ -0,0 +1,261 @@
+// 
+// Authors
+//    Sebastien Pouliot  <sebastien@xamarin.com>
+//
+// Copyright 2013 Xamarin Inc. http://www.xamarin.com
+// 
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Xml.Linq;
+
+namespace Xamarin.ApiDiff {
+
+       public class ClassComparer : Comparer {
+
+               InterfaceComparer icomparer;
+               ConstructorComparer ccomparer;
+               FieldComparer fcomparer;
+               PropertyComparer pcomparer;
+               EventComparer ecomparer;
+               MethodComparer mcomparer;
+               ClassComparer kcomparer;
+
+               public ClassComparer ()
+               {
+                       icomparer = new InterfaceComparer ();
+                       ccomparer = new ConstructorComparer ();
+                       fcomparer = new FieldComparer ();
+                       pcomparer = new PropertyComparer ();
+                       ecomparer = new EventComparer ();
+                       mcomparer = new MethodComparer ();
+               }
+
+               public override void SetContext (XElement current)
+               {
+                       State.Type = current.GetAttribute ("name");
+                       State.BaseType = current.GetAttribute ("base");
+               }
+
+               public void Compare (XElement source, XElement target)
+               {
+                       var s = source.Element ("classes");
+                       var t = target.Element ("classes");
+                       if (XNode.DeepEquals (s, t))
+                               return;
+                       Compare (s.Elements ("class"), t.Elements ("class"));
+               }
+
+               public override void Added (XElement target, bool wasParentAdded)
+               {
+                       string name = target.Attribute ("name").Value;
+                       if (State.IgnoreNew.Any (re => re.IsMatch (name)))
+                               return;
+                       Output.WriteLine ("<div> <!-- start type {0} -->", name);
+                       Output.WriteLine ("<h3>New Type {0}.{1}</h3>", State.Namespace, name);
+                       Output.WriteLine ("<pre class='added' data-is-non-breaking>");
+                       State.Indent = 0;
+                       AddedInner (target);
+                       Output.WriteLine ("</pre>");
+                       Output.WriteLine ("</div> <!-- end type {0} -->", name);
+               }
+
+               public void AddedInner (XElement target)
+               {
+                       SetContext (target);
+                       if (target.IsTrue ("serializable"))
+                               Indent ().WriteLine ("[Serializable]");
+
+                       var type = target.Attribute ("type").Value;
+
+                       if (type == "enum") {
+                               // check if [Flags] is present
+                               var cattrs = target.Element ("attributes");
+                               if (cattrs != null) {
+                                       foreach (var ca in cattrs.Elements ("attribute")) {
+                                               if (ca.GetAttribute ("name") == "System.FlagsAttribute") {
+                                                       Indent ().WriteLine ("[Flags]");
+                                                       break;
+                                               }
+                                       }
+                               }
+                       }
+
+                       Indent ().Write ("public");
+
+                       if (type != "enum") {
+                               bool seal = target.IsTrue ("sealed");
+                               bool abst = target.IsTrue ("abstract");
+                               if (seal && abst)
+                                       Output.Write (" static");
+                               else if (seal && type != "struct")
+                                       Output.Write (" sealed");
+                               else if (abst && type != "interface")
+                                       Output.Write (" abstract");
+                       }
+
+                       Output.Write (' ');
+                       Output.Write (type);
+                       Output.Write (' ');
+                       Output.Write (target.GetAttribute ("name"));
+
+                       var baseclass = target.GetAttribute ("base");
+                       if ((type != "enum") && (type != "struct")) {
+                               if (baseclass != null) {
+                                       if (baseclass == "System.Object") {
+                                               // while true we do not need to be reminded every time...
+                                               baseclass = null;
+                                       } else {
+                                               Output.Write (" : ");
+                                               Output.Write (baseclass);
+                                       }
+                               }
+                       }
+
+                       // interfaces on enums are "standard" not user provided - so we do not want to show them
+                       if (type != "enum") {
+                               var i = target.Element ("interfaces");
+                               if (i != null) {
+                                       var interfaces = new List<string> ();
+                                       foreach (var iface in i.Elements ("interface"))
+                                               interfaces.Add (icomparer.GetDescription (iface));
+                                       Output.Write ((baseclass == null) ? " : " : ", ");
+                                       Output.Write (String.Join (", ", interfaces));
+                               }
+                       }
+
+                       Output.WriteLine (" {");
+
+                       var t = target.Element ("constructors");
+                       if (t != null) {
+                               Indent ().WriteLine ("\t// constructors");
+                               foreach (var ctor in t.Elements ("constructor"))
+                                       ccomparer.Added (ctor, true);
+                       }
+
+                       t = target.Element ("fields");
+                       if (t != null) {
+                               if (type != "enum")
+                                       Indent ().WriteLine ("\t// fields");
+                               else
+                                       SetContext (target);
+                               foreach (var field in t.Elements ("field"))
+                                       fcomparer.Added (field, true);
+                       }
+
+                       t = target.Element ("properties");
+                       if (t != null) {
+                               Indent ().WriteLine ("\t// properties");
+                               foreach (var property in t.Elements ("property"))
+                                       pcomparer.Added (property, true);
+                       }
+
+                       t = target.Element ("events");
+                       if (t != null) {
+                               Indent ().WriteLine ("\t// events");
+                               foreach (var evnt in t.Elements ("event"))
+                                       ecomparer.Added (evnt, true);
+                       }
+
+                       t = target.Element ("methods");
+                       if (t != null) {
+                               Indent ().WriteLine ("\t// methods");
+                               foreach (var method in t.Elements ("method"))
+                                       mcomparer.Added (method, true);
+                       }
+
+                       t = target.Element ("classes");
+                       if (t != null) {
+                               Output.WriteLine ();
+                               Indent ().WriteLine ("\t// inner types");
+                               kcomparer = new NestedClassComparer ();
+                               State.Indent++;
+                               foreach (var inner in t.Elements ("class"))
+                                       kcomparer.AddedInner (inner);
+                               State.Indent--;
+                       }
+                       Indent ().WriteLine ("}");
+               }
+
+               public override void Modified (XElement source, XElement target, ApiChanges diff)
+               {
+                       // hack - there could be changes that we're not monitoring (e.g. attributes properties)
+                       var output = Output;
+                       State.Output = new StringWriter ();
+
+                       var sb = source.GetAttribute ("base");
+                       var tb = target.GetAttribute ("base");
+                       if (sb != tb) {
+                               Output.Write ("Modified base type: ");
+                               Output.WriteLine (new ApiChange ().AppendModified (sb, tb, true).Member.ToString ());
+                       }
+
+                       ccomparer.Compare (source, target);
+                       icomparer.Compare (source, target);
+                       fcomparer.Compare (source, target);
+                       pcomparer.Compare (source, target);
+                       ecomparer.Compare (source, target);
+                       mcomparer.Compare (source, target);
+
+                       var si = source.Element ("classes");
+                       if (si != null) {
+                               var ti = target.Element ("classes");
+                               kcomparer = new NestedClassComparer ();
+                               kcomparer.Compare (si.Elements ("class"), ti == null ? null : ti.Elements ("class"));
+                       }
+
+                       var s = (Output as StringWriter).ToString ();
+                       State.Output = output;
+                       if (s.Length > 0) {
+                               var tn = GetTypeName (target);
+                               Output.WriteLine ("<!-- start type {0} --> <div>", tn);
+                               Output.WriteLine ("<h3>Type Changed: {0}.{1}</h3>", State.Namespace, GetTypeName (target));
+                               Output.WriteLine (s);
+                               Output.WriteLine ("</div> <!-- end type {0} -->", tn);
+                       }
+               }
+
+               public override void Removed (XElement source)
+               {
+                       Output.Write ("<h3>Removed Type <span class='breaking' data-is-breaking>{0}.{1}</span></h3>", State.Namespace, GetTypeName (source));
+               }
+
+               public virtual string GetTypeName (XElement type)
+               {
+                       return type.GetAttribute ("name");
+               }
+       }
+
+       public class NestedClassComparer : ClassComparer {
+
+               public override void SetContext (XElement current)
+               {
+               }
+
+               public override string GetTypeName (XElement type)
+               {
+                       return State.Type + "." + base.GetTypeName (type);
+               }
+       }
+}
\ No newline at end of file
diff --git a/mcs/tools/mono-api-html/Comparer.cs b/mcs/tools/mono-api-html/Comparer.cs
new file mode 100644 (file)
index 0000000..4210b9b
--- /dev/null
@@ -0,0 +1,98 @@
+// 
+// Authors
+//    Sebastien Pouliot  <sebastien@xamarin.com>
+//
+// Copyright 2013 Xamarin Inc. http://www.xamarin.com
+// 
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Xml.Linq;
+
+namespace Xamarin.ApiDiff {
+
+       public abstract class Comparer {
+
+               protected List<XElement> removed = new List<XElement> ();
+               protected ApiChanges modified = new ApiChanges ();
+
+               public TextWriter Output {
+                       get { return State.Output; }
+               }
+
+               protected TextWriter Indent ()
+               {
+                       for (int i = 0; i < State.Indent; i++)
+                               State.Output.Write ("\t");
+                       return State.Output;
+               }
+
+               public abstract void Added (XElement target, bool wasParentAdded);
+               public abstract void Modified (XElement source, XElement target, ApiChanges changes);
+               public abstract void Removed (XElement source);
+
+               public virtual bool Equals (XElement source, XElement target, ApiChanges changes)
+               {
+                       return XNode.DeepEquals (source, target);
+               }
+
+               public abstract void SetContext (XElement current);
+
+               public virtual void Compare (IEnumerable<XElement> source, IEnumerable<XElement> target)
+               {
+                       removed.Clear ();
+                       modified.Clear ();
+
+                       foreach (var s in source) {
+                               SetContext (s);
+                               string sn = s.GetAttribute ("name");
+                               var t = target == null ? null : target.SingleOrDefault (x => x.GetAttribute ("name") == sn);
+                               if (t == null) {
+                                       // not in target, it was removed
+                                       removed.Add (s);
+                               } else {
+                                       t.Remove ();
+                                       // possibly modified
+                                       if (Equals (s, t, modified))
+                                               continue;
+
+                                       // still in target so will be part of Added
+                                       Modified (s, t, modified);
+                               }
+                       }
+                       // delayed, that way we show "Modified", "Added" and then "Removed"
+                       foreach (var item in removed) {
+                               SetContext (item);
+                               Removed (item);
+                       }
+                       // remaining == newly added in target
+                       if (target != null) {
+                               foreach (var item in target) {
+                                       SetContext (item);
+                                       Added (item, false);
+                               }
+                       }
+               }
+       }
+}
\ No newline at end of file
diff --git a/mcs/tools/mono-api-html/ConstructorComparer.cs b/mcs/tools/mono-api-html/ConstructorComparer.cs
new file mode 100644 (file)
index 0000000..9bd837e
--- /dev/null
@@ -0,0 +1,148 @@
+// 
+// Authors
+//    Sebastien Pouliot  <sebastien@xamarin.com>
+//
+// Copyright 2013 Xamarin Inc. http://www.xamarin.com
+// 
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections.Generic;
+using System.Reflection;
+using System.Text;
+using System.Xml.Linq;
+
+namespace Xamarin.ApiDiff {
+
+       // MethodComparer inherits from this one
+       public class ConstructorComparer : MemberComparer {
+
+               public override string GroupName {
+                       get { return "constructors"; }
+               }
+
+               public override string ElementName {
+                       get { return "constructor"; }
+               }
+
+               public override bool Find (XElement e)
+               {
+                       return (e.Attribute ("name").Value == Source.Attribute ("name").Value);
+               }
+
+               void RenderReturnType (XElement source, XElement target, ApiChange change)
+               {
+                       var srcType = source.GetTypeName ("returntype");
+                       var tgtType = target.GetTypeName ("returntype");
+
+                       if (srcType != tgtType) {
+                               change.AppendModified (srcType, tgtType, true);
+                               change.Append (" ");
+                       } else if (srcType != null) {
+                               // ctor don't have a return type
+                               change.Append (srcType);
+                               change.Append (" ");
+                       }
+               }
+
+               public override bool Equals (XElement source, XElement target, ApiChanges changes)
+               {
+                       if (base.Equals (source, target, changes))
+                               return true;
+                               
+                       var change = new ApiChange ();
+                       change.Header = "Modified " + GroupName;
+                       RenderMethodAttributes (source, target, change);
+                       RenderReturnType (source, target, change);
+                       RenderName (source, target, change);
+                       RenderGenericParameters (source, target, change);
+                       RenderParameters (source, target, change);
+
+                       changes.Add (source, target, change);
+
+                       return false;
+               }
+
+               public override string GetDescription (XElement e)
+               {
+                       var sb = new StringBuilder ();
+
+                       var attribs = e.Attribute ("attrib");
+                       if (attribs != null) {
+                               var attr = (MethodAttributes) Int32.Parse (attribs.Value);
+                               if ((attr & MethodAttributes.Public) != MethodAttributes.Public) {
+                                       sb.Append ("protected ");
+                               } else {
+                                       sb.Append ("public ");
+                               }
+
+                               if ((attr & MethodAttributes.Static) != 0) {
+                                       sb.Append ("static ");
+                               } else if ((attr & MethodAttributes.Virtual) != 0) {
+                                       if ((attr & MethodAttributes.VtableLayoutMask) == 0)
+                                               sb.Append ("override ");
+                                       else
+                                               sb.Append ("virtual ");
+                               }
+                       }
+
+                       string name = e.GetAttribute ("name");
+
+                       var r = e.GetTypeName ("returntype");
+                       if (r != null) {
+                               // ctor dont' have a return type
+                               sb.Append (r).Append (' ');
+                       } else {
+                               // show the constructor as it would be defined in C#
+                               name = name.Replace (".ctor", State.Type);
+                       }
+
+                       // the XML file `name` does not contain parameter names, so we must process them ourselves
+                       // which gives us the opportunity to simplify type names
+                       sb.Append (name.Substring (0, name.IndexOf ('(')));
+
+                       var genericp = e.Element ("generic-parameters");
+                       if (genericp != null) {
+                               var list = new List<string> ();
+                               foreach (var p in genericp.Elements ("generic-parameter")) {
+                                       list.Add (p.GetTypeName ("name"));
+                               }
+                               sb.Append ("&lt;").Append (String.Join (", ", list)).Append ("&gt;");
+                       }
+
+                       sb.Append (" (");
+                       var parameters = e.Element ("parameters");
+                       if (parameters != null) {
+                               var list = new List<string> ();
+                               foreach (var p in parameters.Elements ("parameter")) {
+                                       var pTypeName   = p.GetTypeName ("type");
+                                       list.Add (State.IgnoreParameterNameChanges
+                                               ? pTypeName
+                                               : pTypeName + " " + p.GetAttribute ("name"));
+                               }
+                               sb.Append (String.Join (", ", list));
+                       }
+                       sb.Append (");");
+
+                       return sb.ToString ();
+               }
+       }
+}
\ No newline at end of file
diff --git a/mcs/tools/mono-api-html/EventComparer.cs b/mcs/tools/mono-api-html/EventComparer.cs
new file mode 100644 (file)
index 0000000..693f16f
--- /dev/null
@@ -0,0 +1,75 @@
+// 
+// Authors
+//    Sebastien Pouliot  <sebastien@xamarin.com>
+//
+// Copyright 2013 Xamarin Inc. http://www.xamarin.com
+// 
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Text;
+using System.Xml.Linq;
+
+namespace Xamarin.ApiDiff {
+
+       public class EventComparer : MemberComparer {
+
+               public override string GroupName {
+                       get { return "events"; }
+               }
+
+               public override string ElementName {
+                       get { return "event"; }
+               }
+
+               public override bool Equals (XElement source, XElement target, ApiChanges changes)
+               {
+                       if (base.Equals (source, target, changes))
+                               return true;
+
+                       var change = new ApiChange ();
+                       change.Header = "Modified " + GroupName;
+                       change.Append ("public event ");
+
+                       var srcEventType = source.GetTypeName ("eventtype");
+                       var tgtEventType = target.GetTypeName ("eventtype");
+
+                       if (srcEventType != tgtEventType) {
+                               change.AppendModified (srcEventType, tgtEventType, true);
+                       } else {
+                               change.Append (srcEventType);
+                       }
+                       change.Append (" ");
+                       change.Append (source.GetAttribute ("name")).Append (";");
+                       return false;
+               }
+
+               public override string GetDescription (XElement e)
+               {
+                       StringBuilder sb = new StringBuilder ();
+                       // TODO: attribs
+                       sb.Append ("public event ");
+                       sb.Append (e.GetTypeName ("eventtype")).Append (' ');
+                       sb.Append (e.GetAttribute ("name")).Append (';');
+                       return sb.ToString ();
+               }
+       }
+}
\ No newline at end of file
diff --git a/mcs/tools/mono-api-html/FieldComparer.cs b/mcs/tools/mono-api-html/FieldComparer.cs
new file mode 100644 (file)
index 0000000..a2b0225
--- /dev/null
@@ -0,0 +1,211 @@
+// 
+// Authors
+//    Sebastien Pouliot  <sebastien@xamarin.com>
+//
+// Copyright 2013-2014 Xamarin Inc. http://www.xamarin.com
+// 
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Xml.Linq;
+
+namespace Xamarin.ApiDiff {
+
+       public class FieldComparer : MemberComparer {
+
+               public override string GroupName {
+                       get { return "fields"; }
+               }
+
+               public override string ElementName {
+                       get { return "field"; }
+               }
+
+               void RenderFieldAttributes (FieldAttributes source, FieldAttributes target, ApiChange change)
+               {
+                       var srcNotSerialized = (source & FieldAttributes.NotSerialized) == FieldAttributes.NotSerialized;
+                       var tgtNotSerialized = (target & FieldAttributes.NotSerialized) == FieldAttributes.NotSerialized;
+                       if (srcNotSerialized != tgtNotSerialized) {
+                               // this is not a breaking change, so only render it if it changed.
+                               if (srcNotSerialized) {
+                                       change.AppendRemoved ("[NonSerialized]\n");
+                               } else {
+                                       change.AppendAdded ("[NonSerialized]\n");
+                               }
+                       }
+
+                       // the visibility values are the same for MethodAttributes and FieldAttributes, so just use the same method.
+                       RenderVisibility ((MethodAttributes) source, (MethodAttributes) target, change);
+                       // same for the static flag
+                       RenderStatic ((MethodAttributes) source, (MethodAttributes) target, change);
+
+                       var srcLiteral = (source & FieldAttributes.Literal) != 0;
+                       var tgtLiteral = (target & FieldAttributes.Literal) != 0;
+
+                       if (srcLiteral) {
+                               if (tgtLiteral) {
+                                       change.Append ("const ");
+                               } else {
+                                       change.AppendRemoved ("const", true).Append (" ");
+                               }
+                       } else if (tgtLiteral) {
+                               change.AppendAdded ("const", true).Append (" ");
+                       }
+
+                       var srcInitOnly = (source & FieldAttributes.InitOnly) != 0;
+                       var tgtInitOnly = (target & FieldAttributes.InitOnly) != 0;
+                       if (srcInitOnly) {
+                               if (tgtInitOnly) {
+                                       change.Append ("readonly ");
+                               } else {
+                                       change.AppendRemoved ("readonly", false).Append (" ");
+                               }
+                       } else if (tgtInitOnly) {
+                               change.AppendAdded ("readonly", true).Append (" ");
+                       }
+               }
+
+               public override bool Equals (XElement source, XElement target, ApiChanges changes)
+               {
+                       if (base.Equals (source, target, changes))
+                               return true;
+
+                       var name = source.GetAttribute ("name");
+                       var srcValue = source.GetAttribute ("value");
+                       var tgtValue = target.GetAttribute ("value");
+                       var change = new ApiChange ();
+                       change.Header = "Modified " + GroupName;
+
+                       if (State.BaseType == "System.Enum") {
+                               change.Append (name).Append (" = ");
+                               if (srcValue != tgtValue) {
+                                       change.AppendModified (srcValue, tgtValue, true);
+                               } else {
+                                       change.Append (srcValue);
+                               }
+                       } else {
+                               RenderFieldAttributes (source.GetFieldAttributes (), target.GetFieldAttributes (), change);
+
+                               var srcType = source.GetTypeName ("fieldtype");
+                               var tgtType = target.GetTypeName ("fieldtype");
+
+                               if (srcType != tgtType) {
+                                       change.AppendModified (srcType, tgtType, true);
+                               } else {
+                                       change.Append (srcType);
+                               }
+                               change.Append (" ");
+                               change.Append (name);
+
+                               if (srcType == "string" && srcValue != null)
+                                       srcValue = "\"" + srcValue + "\"";
+
+                               if (tgtType == "string" && tgtValue != null)
+                                       tgtValue = "\"" + tgtValue + "\"";
+
+                               if (srcValue != tgtValue) {
+                                       change.Append (" = ");
+                                       if (srcValue == null)
+                                               srcValue = "null";
+                                       if (tgtValue == null)
+                                               tgtValue = "null";
+                                       change.AppendModified (srcValue, tgtValue, true);
+                               } else if (srcValue != null) {
+                                       change.Append (" = ");
+                                       change.Append (srcValue);
+                               }
+                               change.Append (";");
+                       }
+
+                       changes.Add (source, target, change);
+
+                       return false;
+               }
+
+               public override string GetDescription (XElement e)
+               {
+                       var sb = new StringBuilder ();
+
+                       string name = e.GetAttribute ("name");
+                       string value = e.GetAttribute ("value");
+
+                       if (State.BaseType == "System.Enum") {
+                               sb.Append (name).Append (" = ").Append (value).Append (',');
+                       } else {
+                               var attribs = e.Attribute ("attrib");
+                               if (attribs != null) {
+                                       var attr = (FieldAttributes)Int32.Parse (attribs.Value);
+                                       if ((attr & FieldAttributes.Public) != FieldAttributes.Public) {
+                                               sb.Append ("protected ");
+                                       } else {
+                                               sb.Append ("public ");
+                                       }
+
+                                       if ((attr & FieldAttributes.Static) != 0)
+                                               sb.Append ("static ");
+
+                                       if ((attr & FieldAttributes.Literal) != 0)
+                                               sb.Append ("const ");
+                               }
+
+                               string ftype = e.GetTypeName ("fieldtype");
+                               sb.Append (ftype).Append (' ');
+                               sb.Append (name);
+                               if (ftype == "string" && e.Attribute ("value") != null) {
+                                       if (value == null)
+                                               sb.Append (" = null");
+                                       else
+                                               sb.Append (" = \"").Append (value).Append ('"');
+                               }
+                               sb.Append (';');
+                       }
+
+                       return sb.ToString ();
+               }
+
+               public override void BeforeAdding (IEnumerable<XElement> list)
+               {
+                       first = true;
+                       if (State.BaseType == "System.Enum") {
+                               Output.WriteLine ("<div>");
+                               Output.WriteLine ("<p>Added value{0}:</p>", list.Count () > 1 ? "s" : String.Empty);
+                               Output.WriteLine ("<pre class='added' data-is-non-breaking>");
+                       } else {
+                               base.BeforeAdding (list);
+                       }
+               }
+
+               public override void BeforeRemoving (IEnumerable<XElement> list)
+               {
+                       first = true;
+                       if (State.BaseType == "System.Enum") {
+                               Output.WriteLine ("<p>Removed value{0}:</p>", list.Count () > 1 ? "s" : String.Empty);
+                               Output.WriteLine ("<pre class='removed' data-is-breaking>");
+                       } else {
+                               base.BeforeRemoving (list);
+                       }
+               }
+       }
+}
\ No newline at end of file
diff --git a/mcs/tools/mono-api-html/Helpers.cs b/mcs/tools/mono-api-html/Helpers.cs
new file mode 100644 (file)
index 0000000..8769785
--- /dev/null
@@ -0,0 +1,207 @@
+// 
+// Authors
+//    Sebastien Pouliot  <sebastien@xamarin.com>
+//
+// Copyright 2013-2014 Xamarin Inc. http://www.xamarin.com
+// 
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Xml.Linq;
+
+namespace Xamarin.ApiDiff {
+
+       public static class Helper {
+               public static bool IsTrue (this XElement self, string name)
+               {
+                       return (self.GetAttribute (name) == "true");
+               }
+
+               public static string GetAttribute (this XElement self, string name)
+               {
+                       var n = self.Attribute (name);
+                       if (n == null)
+                               return null;
+                       return n.Value;
+               }
+
+               // null == no obsolete, String.Empty == no description
+               public static string GetObsoleteMessage (this XElement self)
+               {
+                       var cattrs = self.Element ("attributes");
+                       if (cattrs == null)
+                               return null;
+
+                       foreach (var ca in cattrs.Elements ("attribute")) {
+                               if (ca.GetAttribute ("name") != "System.ObsoleteAttribute")
+                                       continue;
+                               var props = ca.Element ("properties");
+                               if (props == null)
+                                       return String.Empty; // no description
+                               foreach (var p in props.Elements ("property")) {
+                                       if (p.GetAttribute ("name") != "Message")
+                                               continue;
+                                       return p.GetAttribute ("value");
+                               }
+                       }
+                       return null;
+               }
+
+               public static IEnumerable<XElement> Descendants (this XElement self, params string[] names)
+               {
+                       XElement el = self;
+                       if (el == null)
+                               return null;
+
+                       for (int i = 0; i < names.Length - 1; i++) {
+                               el = el.Element (names [i]);
+                               if (el == null)
+                                       return null;
+                       }
+                       return el.Elements (names [names.Length - 1]);
+               }
+
+               public static List<XElement> DescendantList (this XElement self, params string[] names)
+               {
+                       var descendants = self.Descendants (names);
+                       if (descendants == null)
+                               return null;
+                       return descendants.ToList ();
+               }
+
+               // make it beautiful (.NET -> C#)
+               public static string GetTypeName (this XElement self, string name)
+               {
+                       string type = self.GetAttribute (name);
+                       if (type == null)
+                               return null;
+
+                       StringBuilder sb = null;
+                       bool is_nullable = false;
+                       if (type.StartsWith ("System.Nullable`1[", StringComparison.Ordinal)) {
+                               is_nullable = true;
+                               sb = new StringBuilder (type, 18, type.Length - 19, 1024);
+                       } else {
+                               sb = new StringBuilder (type);
+                       }
+
+                       bool is_ref = (sb [sb.Length - 1] == '&');
+                       if (is_ref)
+                               sb.Remove (sb.Length - 1, 1);
+
+                       int array = 0;
+                       while ((sb [sb.Length - 1] == ']') && (sb [sb.Length - 2] == '[')) {
+                               sb.Remove (sb.Length - 2, 2);
+                               array++;
+                       }
+
+                       bool is_pointer = (sb [sb.Length - 1] == '*');
+                       if (is_pointer)
+                               sb.Remove (sb.Length - 1, 1);
+
+                       type = GetTypeName (sb.Replace ('+', '.').ToString ());
+                       sb.Length = 0;
+                       if (is_ref)
+                               sb.Append (self.GetAttribute ("direction")).Append (' ');
+
+                       sb.Append (type);
+
+                       while (array-- > 0)
+                               sb.Append ("[]");
+                       if (is_nullable)
+                               sb.Append ('?');
+                       if (is_pointer)
+                               sb.Append ('*');
+                       return sb.ToString ();
+               }
+
+               static string GetTypeName (string type)
+               {
+                       int pos = type.IndexOf ('`');
+                       if (pos >= 0) {
+                               int end = type.LastIndexOf (']');
+                               string subtype = type.Substring (pos + 3, end - pos - 3);
+                               return type.Substring (0, pos) + "&lt;" + GetTypeName (subtype) + "&gt;";
+                       }
+
+                       switch (type) {
+                       case "System.String":
+                               return "string";
+                       case "System.Int32":
+                               return "int";
+                       case "System.UInt32":
+                               return "uint";
+                       case "System.Int64":
+                               return "long";
+                       case "System.UInt64":
+                               return "ulong";
+                       case "System.Void":
+                               return "void";
+                       case "System.Boolean":
+                               return "bool";
+                       case "System.Object":
+                               return "object";
+                       case "System.Single":
+                               return "float";
+                       case "System.Double":
+                               return "double";
+                       case "System.Byte":
+                               return "byte";
+                       case "System.SByte":
+                               return "sbyte";
+                       case "System.Int16":
+                               return "short";
+                       case "System.UInt16":
+                               return "ushort";
+                       case "System.Char":
+                               return "char";
+                       case "System.nint":
+                               return "nint";
+                       case "System.nuint":
+                               return "uint";
+                       case "System.nfloat":
+                               return "nfloat";
+                       case "System.IntPtr":
+                               return "IntPtr";
+                       default:
+                               if (type.StartsWith (State.Namespace, StringComparison.Ordinal))
+                                       type = type.Substring (State.Namespace.Length + 1);
+                               return type;
+                       }
+               }
+
+               public static MethodAttributes GetMethodAttributes (this XElement element)
+               {
+                       var srcAttribs = element.Attribute ("attrib");
+                       return (MethodAttributes) (srcAttribs != null ? Int32.Parse (srcAttribs.Value) : 0);
+               }
+
+               public static FieldAttributes GetFieldAttributes (this XElement element)
+               {
+                       var srcAttribs = element.Attribute ("attrib");
+                       return (FieldAttributes) (srcAttribs != null ? Int32.Parse (srcAttribs.Value) : 0);
+               }
+       }
+}
\ No newline at end of file
diff --git a/mcs/tools/mono-api-html/InterfaceComparer.cs b/mcs/tools/mono-api-html/InterfaceComparer.cs
new file mode 100644 (file)
index 0000000..df52f16
--- /dev/null
@@ -0,0 +1,47 @@
+// 
+// Authors
+//    Sebastien Pouliot  <sebastien@xamarin.com>
+//
+// Copyright 2013 Xamarin Inc. http://www.xamarin.com
+// 
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Xml.Linq;
+
+namespace Xamarin.ApiDiff {
+
+       public class InterfaceComparer : MemberComparer {
+
+               public override string GroupName {
+                       get { return "interfaces"; }
+               }
+
+               public override string ElementName {
+                       get { return "interface"; }
+               }
+
+               public override string GetDescription (XElement e)
+               {
+                       return e.GetTypeName ("name");
+               }
+       }
+}
\ No newline at end of file
diff --git a/mcs/tools/mono-api-html/Makefile b/mcs/tools/mono-api-html/Makefile
new file mode 100644 (file)
index 0000000..e1c55c1
--- /dev/null
@@ -0,0 +1,10 @@
+thisdir = tools/mono-api-html
+SUBDIRS =
+include ../../build/rules.make
+
+LIB_REFS = Mono.Cecil System.Xml System.Core System System.Xml.Linq
+LOCAL_MCS_FLAGS =
+
+PROGRAM = mono-api-html.exe
+
+include ../../build/executable.make
diff --git a/mcs/tools/mono-api-html/MemberComparer.cs b/mcs/tools/mono-api-html/MemberComparer.cs
new file mode 100644 (file)
index 0000000..d12d866
--- /dev/null
@@ -0,0 +1,608 @@
+// 
+// Authors
+//    Sebastien Pouliot  <sebastien@xamarin.com>
+//
+// Copyright 2013-2014 Xamarin Inc. http://www.xamarin.com
+// 
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Xml.Linq;
+
+namespace Xamarin.ApiDiff {
+
+       public abstract class MemberComparer : Comparer {
+
+               // true if this is the first element being added or removed in the group being rendered
+               protected bool first;
+
+               public abstract string GroupName { get; }
+               public abstract string ElementName { get; }
+
+               protected virtual bool IsBreakingRemoval (XElement e)
+               {
+                       return true;
+               }
+
+               public void Compare (XElement source, XElement target)
+               {
+                       var s = source.Element (GroupName);
+                       var t = target.Element (GroupName);
+                       if (XNode.DeepEquals (s, t))
+                               return;
+
+                       if (s == null) {
+                               Add (t.Elements (ElementName));
+                       } else if (t == null) {
+                               Remove (s.Elements (ElementName));
+                       } else {
+                               Compare (s.Elements (ElementName), t.Elements (ElementName));
+                       }
+               }
+
+               public override void SetContext (XElement current)
+               {
+               }
+
+               string GetContainingType (XElement el)
+               {
+                       return el.Ancestors ("class").First ().Attribute ("type").Value;
+               }
+
+               bool IsInInterface (XElement el)
+               {
+                       return GetContainingType (el) == "interface";
+               }
+
+               public XElement Source { get; set; }
+
+               public virtual bool Find (XElement e)
+               {
+                       return e.GetAttribute ("name") == Source.GetAttribute ("name");
+               }
+
+               XElement Find (IEnumerable<XElement> target)
+               {
+                       return State.Lax ? target.FirstOrDefault (Find) : target.SingleOrDefault (Find);
+               }
+
+               public override void Compare (IEnumerable<XElement> source, IEnumerable<XElement> target)
+               {
+                       removed.Clear ();
+                       modified.Clear ();
+
+                       foreach (var s in source) {
+                               SetContext (s);
+                               Source = s;
+                               var t = Find (target);
+                               if (t == null) {
+                                       // not in target, it was removed
+                                       removed.Add (s);
+                               } else {
+                                       t.Remove ();
+                                       // possibly modified
+                                       if (Equals (s, t, modified))
+                                               continue;
+
+                                       Modified (s, t, modified);
+                               }
+                       }
+                       // delayed, that way we show "Modified", "Added" and then "Removed"
+                       Remove (removed);
+
+                       Modify (modified);
+
+                       // remaining == newly added in target
+                       Add (target);
+               }
+
+               void Add (IEnumerable<XElement> elements)
+               {
+                       bool a = false;
+                       foreach (var item in elements) {
+                               SetContext (item);
+                               if (State.IgnoreAdded.Any (re => re.IsMatch (GetDescription (item))))
+                                       continue;
+                               if (!a) {
+                                       BeforeAdding (elements);
+                                       a = true;
+                               }
+                               Added (item, false);
+                       }
+                       if (a)
+                               AfterAdding ();
+               }
+
+               void Modify (ApiChanges modified)
+               {
+                       foreach (var changes in modified) {
+                               Output.WriteLine ("<p>{0}:</p>", changes.Key);
+                               Output.WriteLine ("<pre>");
+                               foreach (var element in changes.Value) {
+                                       Output.Write ("<div {0}>", element.Breaking ? "data-is-breaking" : "data-is-non-breaking");
+                                       foreach (var line in element.Member.ToString ().Split ('\n'))
+                                               Output.WriteLine ("\t{0}", line);
+                                       Output.Write ("</div>");
+
+                               }
+                               Output.WriteLine ("</pre>");
+                       }
+               }
+
+               void Remove (IEnumerable<XElement> elements)
+               {
+                       bool r = false;
+                       foreach (var item in elements) {
+                               if (State.IgnoreRemoved.Any (re => re.IsMatch (GetDescription (item))))
+                                       continue;
+                               SetContext (item);
+                               if (!r) {
+                                       BeforeRemoving (elements);
+                                       r = true;
+                               }
+                               Removed (item);
+                       }
+                       if (r)
+                               AfterRemoving ();
+               }
+                       
+               public abstract string GetDescription (XElement e);
+
+               protected StringBuilder GetObsoleteMessage (XElement e)
+               {
+                       var sb = new StringBuilder ();
+                       string o = e.GetObsoleteMessage ();
+                       if (o != null) {
+                               sb.Append ("[Obsolete");
+                               if (o.Length > 0)
+                                       sb.Append (" (\"").Append (o).Append ("\")");
+                               sb.AppendLine ("]");
+                               for (int i = 0; i < State.Indent + 1; i++)
+                                       sb.Append ('\t');
+                       }
+                       return sb;
+               }
+
+               public override bool Equals (XElement source, XElement target, ApiChanges changes)
+               {
+                       RenderAttributes (source, target, changes);
+
+                       // We don't want to compare attributes.
+                       RemoveAttributes (source);
+                       RemoveAttributes (target);
+
+                       return base.Equals (source, target, changes);
+               }
+
+               public virtual void BeforeAdding (IEnumerable<XElement> list)
+               {
+                       first = true;
+                       Output.WriteLine ("<div>");
+                       Output.WriteLine ("<p>Added {0}:</p>", list.Count () > 1 ? GroupName : ElementName);
+                       Output.WriteLine ("<pre>");
+               }
+
+               public override void Added (XElement target, bool wasParentAdded)
+               {
+                       var o = GetObsoleteMessage (target);
+                       if (!first && (o.Length > 0))
+                               Output.WriteLine ();
+                       Indent ();
+                       bool isInterfaceBreakingChange = !wasParentAdded && IsInInterface (target);
+                       Output.Write ("\t<span class='added added-{0} {1}' {2}>", ElementName, isInterfaceBreakingChange ? "breaking" : string.Empty, isInterfaceBreakingChange ? "data-is-breaking" : "data-is-non-breaking");
+                       Output.Write ("{0}{1}", o, GetDescription (target));
+                       Output.WriteLine ("</span>");
+                       first = false;
+               }
+
+               public virtual void AfterAdding ()
+               {
+                       Output.WriteLine ("</pre>");
+                       Output.WriteLine ("</div>");
+               }
+
+               public override void Modified (XElement source, XElement target, ApiChanges change)
+               {
+               }
+
+               public virtual void BeforeRemoving (IEnumerable<XElement> list)
+               {
+                       first = true;
+                       Output.WriteLine ("<p>Removed {0}:</p>\n", list.Count () > 1 ? GroupName : ElementName);
+                       Output.WriteLine ("<pre>");
+               }
+
+               public override void Removed (XElement source)
+               {
+                       var o = GetObsoleteMessage (source);
+                       if (!first && (o.Length > 0))
+                               Output.WriteLine ();
+
+                       bool is_breaking = IsBreakingRemoval (source);
+
+                       Indent ();
+                       Output.Write ("\t<span class='removed removed-{0} {2}' {1}>", ElementName, is_breaking ? "data-is-breaking" : "data-is-non-breaking", is_breaking ? "breaking" : string.Empty);
+                       Output.Write ("{0}{1}", o, GetDescription (source));
+                       Output.WriteLine ("</span>");
+                       first = false;
+               }
+
+               public virtual void AfterRemoving ()
+               {
+                       Output.WriteLine ("</pre>");;
+               }
+
+               string RenderGenericParameter (XElement gp)
+               {
+                       var sb = new StringBuilder ();
+                       sb.Append (gp.GetTypeName ("name"));
+
+                       var constraints = gp.DescendantList ("generic-parameter-constraints", "generic-parameter-constraint");
+                       if (constraints != null && constraints.Count > 0) {
+                               sb.Append (" : ");
+                               for (int i = 0; i < constraints.Count; i++) {
+                                       if (i > 0)
+                                               sb.Append (", ");
+                                       sb.Append (constraints [i].GetTypeName ("name"));
+                               }
+                       }
+                       return sb.ToString ();
+               }
+
+               protected void RenderGenericParameters (XElement source, XElement target, ApiChange change)
+               {
+                       var src = source.DescendantList ("generic-parameters", "generic-parameter");
+                       var tgt = target.DescendantList ("generic-parameters", "generic-parameter");
+                       var srcCount = src == null ? 0 : src.Count;
+                       var tgtCount = tgt == null ? 0 : tgt.Count;
+
+                       if (srcCount == 0 && tgtCount == 0)
+                               return;
+
+                       change.Append ("&lt;");
+                       for (int i = 0; i < Math.Max (srcCount, tgtCount); i++) {
+                               if (i > 0)
+                                       change.Append (", ");
+                               if (i >= srcCount) {
+                                       change.AppendAdded (RenderGenericParameter (tgt [i]), true);
+                               } else if (i >= tgtCount) {
+                                       change.AppendRemoved (RenderGenericParameter (src [i]), true);
+                               } else {
+                                       var srcName = RenderGenericParameter (src [i]);
+                                       var tgtName = RenderGenericParameter (tgt [i]);
+
+                                       if (srcName != tgtName) {
+                                               change.AppendModified (srcName, tgtName, true);
+                                       } else {
+                                               change.Append (srcName);
+                                       }
+                                       }
+                               }
+                       change.Append ("&gt;");
+               }
+
+               protected string FormatValue (string type, string value)
+               {
+                       if (value == null)
+                               return "null";
+
+                       if (type == "string")
+                               return "\"" + value + "\"";
+                       else if (type == "bool") {
+                               switch (value) {
+                               case "True":
+                                       return "true";
+                               case "False":
+                                       return "false";
+                               default:
+                                       return value;
+                               }
+                       }
+
+                       return value;
+               }
+
+               protected void RenderParameters (XElement source, XElement target, ApiChange change)
+               {
+                       var src = source.DescendantList ("parameters", "parameter");
+                       var tgt = target.DescendantList ("parameters", "parameter");
+                       var srcCount = src == null ? 0 : src.Count;
+                       var tgtCount = tgt == null ? 0 : tgt.Count;
+
+                       change.Append (" (");
+                       for (int i = 0; i < Math.Max (srcCount, tgtCount); i++) {
+                               if (i > 0)
+                                       change.Append (", ");
+
+                               if (i >= srcCount) {
+                                       change.AppendAdded (tgt [i].GetTypeName ("type") + " " + tgt [i].GetAttribute ("name"), true);
+                               } else if (i >= tgtCount) {
+                                       change.AppendRemoved (src [i].GetTypeName ("type") + " " + src [i].GetAttribute ("name"), true);
+                               } else {
+                                       var paramSourceType = src [i].GetTypeName ("type");
+                                       var paramTargetType = tgt [i].GetTypeName ("type");
+
+                                       var paramSourceName = src [i].GetAttribute ("name");
+                                       var paramTargetName = tgt [i].GetAttribute ("name");
+
+                                       if (paramSourceType != paramTargetType) {
+                                               change.AppendModified (paramSourceType, paramTargetType, true);
+                                       } else {
+                                               change.Append (paramSourceType);
+                                       }
+                                       change.Append (" ");
+                                       if (paramSourceName != paramTargetName) {
+                                               change.AppendModified (paramSourceName, paramTargetName, false);
+                                       } else {
+                                               change.Append (paramSourceName);
+                                       }
+
+                                       var optSource = src [i].Attribute ("optional");
+                                       var optTarget = tgt [i].Attribute ("optional");
+                                       var srcValue = FormatValue (paramSourceType, src [i].GetAttribute ("defaultValue"));
+                                       var tgtValue = FormatValue (paramTargetType, tgt [i].GetAttribute ("defaultValue"));
+
+                                       if (optSource != null) {
+                                               if (optTarget != null) {
+                                                       change.Append (" = ");
+                                                       if (srcValue != tgtValue) {
+                                                               change.AppendModified (srcValue, tgtValue, false);
+                                                       } else {
+                                                               change.Append (tgtValue);
+                                                       }
+                                               } else {
+                                                       change.AppendRemoved (" = " + srcValue);
+                                               }
+                                       } else {
+                                               if (optTarget != null)
+                                                       change.AppendAdded (" = " + tgtValue);
+                                       }
+                               }
+                       }
+
+                       change.Append (")");
+
+                       // Ignore any parameter name changes if requested.
+                       if (State.IgnoreParameterNameChanges && !change.Breaking) {
+                               change.AnyChange = false;
+                               change.HasIgnoredChanges = true;
+                       }
+               }
+
+               void RenderVTable (MethodAttributes source, MethodAttributes target, ApiChange change)
+               {
+                       var srcAbstract = (source & MethodAttributes.Abstract) == MethodAttributes.Abstract;
+                       var tgtAbstract = (target & MethodAttributes.Abstract) == MethodAttributes.Abstract;
+                       var srcFinal = (source & MethodAttributes.Final) == MethodAttributes.Final;
+                       var tgtFinal = (target & MethodAttributes.Final) == MethodAttributes.Final;
+                       var srcVirtual = (source & MethodAttributes.Virtual) == MethodAttributes.Virtual;
+                       var tgtVirtual = (target & MethodAttributes.Virtual) == MethodAttributes.Virtual;
+                       var srcOverride = (source & MethodAttributes.VtableLayoutMask) != MethodAttributes.NewSlot;
+                       var tgtOverride = (target & MethodAttributes.VtableLayoutMask) != MethodAttributes.NewSlot;
+
+                       var srcWord = srcVirtual ? (srcOverride ? "override" : "virtual") : string.Empty;
+                       var tgtWord = tgtVirtual ? (tgtOverride ? "override" : "virtual") : string.Empty;
+                       var breaking = srcWord.Length > 0 && tgtWord.Length == 0;
+
+                       if (srcAbstract) {
+                               if (tgtAbstract) {
+                                       change.Append ("abstract ");
+                               } else if (tgtVirtual) {
+                                       change.AppendModified ("abstract", tgtWord, false).Append (" ");
+                               } else {
+                                       change.AppendRemoved ("abstract").Append (" ");
+                               }
+                       } else {
+                               if (tgtAbstract) {
+                                       change.AppendAdded ("abstract", true).Append (" ");
+                               } else if (srcWord != tgtWord) {
+                                       if (!tgtFinal)
+                                               change.AppendModified (srcWord, tgtWord, breaking).Append (" ");
+                               } else if (tgtWord.Length > 0) {
+                                       change.Append (tgtWord).Append (" ");
+                               } else if (srcWord.Length > 0) {
+                                       change.AppendRemoved (srcWord, breaking).Append (" ");
+                               }
+                       }
+
+                       if (srcFinal) {
+                               if (tgtFinal) {
+                                       change.Append ("final ");
+                               } else {
+                                       change.AppendRemoved ("final", false).Append (" "); // removing 'final' is not a breaking change.
+                               }
+                       } else {
+                               if (tgtFinal && srcVirtual) {
+                                       change.AppendModified ("virtual", "final", true).Append (" "); // adding 'final' is a breaking change if the member was virtual
+                               }
+                       }
+
+                       if (!srcVirtual && !srcFinal && tgtVirtual && tgtFinal) {
+                               // existing member implements a member from a new interface
+                               // this would show up as 'virtual final', which is redundant, so show nothing at all.
+                               change.HasIgnoredChanges = true;
+                       }
+
+                       // Ignore non-breaking virtual changes.
+                       if (State.IgnoreVirtualChanges && !change.Breaking) {
+                               change.AnyChange = false;
+                               change.HasIgnoredChanges = true;
+                       }
+
+                       var tgtSecurity = (source & MethodAttributes.HasSecurity) == MethodAttributes.HasSecurity;
+                       var srcSecurity = (target & MethodAttributes.HasSecurity) == MethodAttributes.HasSecurity;
+
+                       if (tgtSecurity != srcSecurity)
+                               change.HasIgnoredChanges = true;
+
+                       var srcPInvoke = (source & MethodAttributes.PinvokeImpl) == MethodAttributes.PinvokeImpl;
+                       var tgtPInvoke = (target & MethodAttributes.PinvokeImpl) == MethodAttributes.PinvokeImpl;
+                       if (srcPInvoke != tgtPInvoke)
+                               change.HasIgnoredChanges = true;
+               }
+
+               protected string GetVisibility (MethodAttributes attr)
+               {
+                       switch (attr) {
+                       case MethodAttributes.Private:
+                       case MethodAttributes.PrivateScope:
+                               return "private";
+                       case MethodAttributes.Assembly:
+                               return "internal";
+                       case MethodAttributes.FamANDAssem:
+                               return "private internal";
+                       case MethodAttributes.FamORAssem:
+                               return "protected"; // customers don't care about 'internal';
+                       case MethodAttributes.Family:
+                               return "protected";
+                       case MethodAttributes.Public:
+                               return "public";
+                       default:
+                               throw new NotImplementedException ();
+                       }
+               }
+
+               protected void RenderVisibility (MethodAttributes source, MethodAttributes target, ApiChange diff)
+               {
+                       source = source & MethodAttributes.MemberAccessMask;
+                       target = target & MethodAttributes.MemberAccessMask;
+
+                       if (source == target) {
+                               diff.Append (GetVisibility (target));
+                       } else {
+                               var breaking = false;
+                               switch (source) {
+                               case MethodAttributes.Private:
+                               case MethodAttributes.Assembly:
+                               case MethodAttributes.FamANDAssem:
+                                       break; // these are not publicly visible, thus not breaking
+                               case MethodAttributes.FamORAssem:
+                               case MethodAttributes.Family:
+                                       switch (target) {
+                                       case MethodAttributes.Public:
+                                               // to public is not a breaking change
+                                               break;
+                                       case MethodAttributes.Family:
+                                       case MethodAttributes.FamORAssem:
+                                               // not a breaking change, but should still show up in diff
+                                               break;
+                                       default:
+                                               // anything else is a breaking change
+                                               breaking = true;
+                                               break;
+                                       }
+                                       break;
+                               case MethodAttributes.Public:
+                               default:
+                                       // any change from public is breaking.
+                                       breaking = true;
+                                       break;
+                               }
+
+                               diff.AppendModified (GetVisibility (source), GetVisibility (target), breaking);
+                       }
+                       diff.Append (" ");
+               }
+
+               protected void RenderStatic (MethodAttributes src, MethodAttributes tgt, ApiChange diff)
+               {
+                       var srcStatic = (src & MethodAttributes.Static) == MethodAttributes.Static;
+                       var tgtStatic = (tgt & MethodAttributes.Static) == MethodAttributes.Static;
+
+                       if (srcStatic != tgtStatic) {
+                               if (srcStatic) {
+                                       diff.AppendRemoved ("static", true).Append (" ");
+                               } else {
+                                       diff.AppendAdded ("static", true).Append (" ");
+                               }
+                       }
+               }
+
+               protected void RenderMethodAttributes (MethodAttributes src, MethodAttributes tgt, ApiChange diff)
+               {
+                       RenderStatic (src, tgt, diff);
+                       RenderVisibility (src & MethodAttributes.MemberAccessMask, tgt & MethodAttributes.MemberAccessMask, diff);
+                       RenderVTable (src, tgt, diff);
+               }
+
+               protected void RenderMethodAttributes (XElement source, XElement target, ApiChange diff)
+               {
+                       RenderMethodAttributes (source.GetMethodAttributes (), target.GetMethodAttributes (), diff);
+               }
+
+               protected void RemoveAttributes (XElement element)
+               {
+                       var srcAttributes = element.Element ("attributes");
+                       if (srcAttributes != null)
+                               srcAttributes.Remove ();
+
+                       foreach (var el in element.Elements ())
+                               RemoveAttributes (el);
+               }
+
+               protected void RenderAttributes (XElement source, XElement target, ApiChanges changes)
+               {
+                       var srcObsolete = source.GetObsoleteMessage ();
+                       var tgtObsolete = target.GetObsoleteMessage ();
+
+                       if (srcObsolete == tgtObsolete)
+                               return; // nothing changed
+
+                       if (srcObsolete == null) {
+                               if (tgtObsolete == null)
+                                       return; // neither is obsolete
+                               var change = new ApiChange ();
+                               change.Header = "Obsoleted " + GroupName;
+                               change.Append (string.Format ("<span class='obsolete obsolete-{0}' data-is-non-breaking>", ElementName));
+                               change.Append ("[Obsolete (");
+                               if (tgtObsolete != string.Empty)
+                                       change.Append ("\"").Append (tgtObsolete).Append ("\"");
+                               change.Append (")]\n");
+                               change.Append (GetDescription (target));
+                               change.Append ("</span>");
+                               change.AnyChange = true;
+                               changes.Add (source, target, change);
+                       } else if (tgtObsolete == null) {
+                               // Made non-obsolete. Do we care to report this?
+                       } else {
+                               // Obsolete message changed. Do we care to report this?
+                       }
+               }
+
+               protected void RenderName (XElement source, XElement target, ApiChange change)
+               {
+                       var name = target.GetAttribute ("name");
+                       // show the constructor as it would be defined in C#
+                       name = name.Replace (".ctor", State.Type);
+
+                       var p = name.IndexOf ('(');
+                       if (p >= 0)
+                               name = name.Substring (0, p);
+
+                       change.Append (name);
+               }
+
+       }
+}
diff --git a/mcs/tools/mono-api-html/MethodComparer.cs b/mcs/tools/mono-api-html/MethodComparer.cs
new file mode 100644 (file)
index 0000000..4c893e7
--- /dev/null
@@ -0,0 +1,77 @@
+// 
+// Authors
+//    Sebastien Pouliot  <sebastien@xamarin.com>
+//
+// Copyright 2013 Xamarin Inc. http://www.xamarin.com
+// 
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Linq;
+using System.Reflection;
+using System.Xml.Linq;
+
+namespace Xamarin.ApiDiff {
+
+       public class MethodComparer : ConstructorComparer {
+
+               public override string GroupName {
+                       get { return "methods"; }
+               }
+
+               public override string ElementName {
+                       get { return "method"; }
+               }
+
+               // operators have identical names but vary by return types
+               public override bool Find (XElement e)
+               {
+                       if (e.GetAttribute ("name") != Source.GetAttribute ("name"))
+                               return false;
+
+                       if (e.GetAttribute ("returntype") != Source.GetAttribute ("returntype"))
+                               return false;
+
+                       var eGP = e.Element ("generic-parameters");
+                       var sGP = Source.Element ("generic-parameters");
+
+                       if (eGP == null && sGP == null)
+                               return true;
+                       else if (eGP == null ^ sGP == null)
+                               return false;
+                       else {
+                               var eGPs = eGP.Elements ("generic-parameter");
+                               var sGPs = sGP.Elements ("generic-parameter");
+                               return eGPs.Count () == sGPs.Count ();
+                       }
+               }
+
+               protected override bool IsBreakingRemoval (XElement e)
+               {
+                       // Removing virtual methods that override another method is not a breaking change.
+                       var is_override = e.Attribute ("is-override");
+                       if (is_override != null)
+                               return is_override.Value != "true";
+                       
+                       return true; // all other removals are breaking changes
+               }
+       }
+}
\ No newline at end of file
diff --git a/mcs/tools/mono-api-html/NamespaceComparer.cs b/mcs/tools/mono-api-html/NamespaceComparer.cs
new file mode 100644 (file)
index 0000000..063e34e
--- /dev/null
@@ -0,0 +1,104 @@
+// 
+// Authors
+//    Sebastien Pouliot  <sebastien@xamarin.com>
+//
+// Copyright 2013 Xamarin Inc. http://www.xamarin.com
+// 
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Xml.Linq;
+
+namespace Xamarin.ApiDiff {
+
+       public class NamespaceComparer : Comparer {
+
+               ClassComparer comparer;
+
+               public NamespaceComparer ()
+               {
+                       comparer =  new ClassComparer ();
+               }
+
+               public void Compare (XElement source, XElement target)
+               {
+                       var s = source.Element ("namespaces");
+                       var t = target.Element ("namespaces");
+                       if (XNode.DeepEquals (s, t))
+                               return;
+                       Compare (s.Elements ("namespace"), t.Elements ("namespace"));
+               }
+
+               public override void SetContext (XElement current)
+               {
+                       State.Namespace = current.Attribute ("name").Value;
+               }
+
+               public override void Added (XElement target, bool wasParentAdded)
+               {
+                       string name = target.Attribute ("name").Value;
+                       if (State.IgnoreNew.Any (re => re.IsMatch (name)))
+                               return;
+
+                       Output.WriteLine ("<!-- start namespace {0} --> <div> ", name);
+                       Output.WriteLine ("<h2>New Namespace {0}</h2>", name);
+                       Output.WriteLine ();
+                       // list all new types
+                       foreach (var addedType in target.Element ("classes").Elements ("class"))
+                               comparer.Added (addedType, true);
+                       Output.WriteLine ("</div> <!-- end namespace {0} -->", name);
+                       Output.WriteLine ();
+               }
+
+               public override void Modified (XElement source, XElement target, ApiChanges differences)
+               {
+                       var output = Output;
+                       State.Output = new StringWriter ();
+                       comparer.Compare (source, target);
+
+                       var s = Output.ToString ();
+                       State.Output = output;
+                       if (s.Length > 0) {
+                               var name = target.Attribute ("name").Value;
+                               Output.WriteLine ("<!-- start namespace {0} --> <div> ", name);
+                               Output.WriteLine ("<h2>Namespace {0}</h2>", name);
+                               Output.WriteLine (s);
+                               Output.WriteLine ("</div> <!-- end namespace {0} -->", name);
+                       }
+               }
+
+               public override void Removed (XElement source)
+               {
+                       var name = source.Attribute ("name").Value;
+                       Output.WriteLine ("<!-- start namespace {0} --> <div>", name);
+                       Output.WriteLine ("<h2>Removed Namespace {0}</h2>", name);
+                       Output.WriteLine ();
+                       // list all removed types
+                       foreach (var removedType in source.Element ("classes").Elements ("class"))
+                               comparer.Removed (removedType);
+                       Output.WriteLine ("</div> <!-- end namespace {0} -->", name);
+                       Output.WriteLine ();
+               }
+       }
+}
\ No newline at end of file
diff --git a/mcs/tools/mono-api-html/PropertyComparer.cs b/mcs/tools/mono-api-html/PropertyComparer.cs
new file mode 100644 (file)
index 0000000..f51dd23
--- /dev/null
@@ -0,0 +1,254 @@
+// 
+// Authors
+//    Sebastien Pouliot  <sebastien@xamarin.com>
+//
+// Copyright 2013 Xamarin Inc. http://www.xamarin.com
+// 
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections.Generic;
+using System.Reflection;
+using System.Text;
+using System.Xml.Linq;
+
+namespace Xamarin.ApiDiff {
+
+       public class PropertyComparer : MemberComparer {
+
+               public override string GroupName {
+                       get { return "properties"; }
+               }
+
+               public override string ElementName {
+                       get { return "property"; }
+               }
+
+               public override bool Find (XElement e)
+               {
+                       if (!base.Find (e))
+                               return false;
+                       // the same Item (indexer) property can have different parameters
+                       return e.GetAttribute ("params") == Source.GetAttribute ("params");
+               }
+
+               void GetAccessors (XElement element, out XElement getter, out XElement setter)
+               {
+                       var methods = element.Element ("methods");
+
+                       getter = null;
+                       setter = null;
+
+                       if (methods == null)
+                               return;
+                               
+                       foreach (var m in methods.Elements ("method")) {
+                               var n = m.GetAttribute ("name");
+                               if (n.StartsWith ("get_", StringComparison.Ordinal)) {
+                                       getter = m;
+                               } else if (n.StartsWith ("set_", StringComparison.Ordinal)) {
+                                       setter = m;
+                               }
+                       }
+               }
+
+               MethodAttributes GetMethodAttributes (XElement getter, XElement setter)
+               {
+                       if (getter == null)
+                               return setter.GetMethodAttributes ();
+                       else if (setter == null)
+                               return getter.GetMethodAttributes ();
+
+                       var gAttr = getter.GetMethodAttributes ();
+                       var sAttr = setter.GetMethodAttributes ();
+                       var g = gAttr & MethodAttributes.MemberAccessMask;
+                       var s = sAttr & MethodAttributes.MemberAccessMask;
+                       // Visibility is ordered numerically (higher value = more visible).
+                       // We want the most visible.
+                       var visibility = (MethodAttributes) Math.Max ((int) g, (int) s);
+                       // Do a bitwise or with the rest of the flags
+                       var g_no_visibility = gAttr & ~MethodAttributes.MemberAccessMask;
+                       var s_no_visibility = sAttr & ~MethodAttributes.MemberAccessMask;
+                       return g_no_visibility | s_no_visibility | visibility;
+               }
+
+               void RenderPropertyType (XElement source, XElement target, ApiChange change)
+               {
+                       var srcType = source.GetTypeName ("ptype");
+                       var tgtType = target.GetTypeName ("ptype");
+
+                       if (srcType == tgtType) {
+                               change.Append (tgtType);
+                       } else {
+                               change.AppendModified (srcType, tgtType, true);
+                       }
+                       change.Append (" ");
+               }
+
+               void RenderAccessors (XElement srcGetter, XElement tgtGetter, XElement srcSetter, XElement tgtSetter, ApiChange change)
+               {
+                       // FIXME: this doesn't render changes in the accessor visibility (a protected setter can become public for instance).
+                       change.Append (" {");
+                       if (tgtGetter != null) {
+                               if (srcGetter != null) {
+                                       change.Append (" ").Append ("get;");
+                               } else {
+                                       change.Append (" ").AppendAdded ("get;");
+                               }
+                       } else if (srcGetter != null) {
+                               change.Append (" ").AppendRemoved ("get;");
+                       }
+
+                       if (tgtSetter != null) {
+                               if (srcSetter != null) {
+                                       change.Append (" ").Append ("set;");
+                               } else {
+                                       change.Append (" ").AppendAdded ("set;");
+                               }
+                       } else if (srcSetter != null) {
+                               change.Append (" ").AppendRemoved ("set;");
+                       }
+
+                       change.Append (" }");
+
+                       // Ignore added property setters if asked to
+                       if (srcSetter == null && tgtSetter != null && State.IgnoreAddedPropertySetters && !change.Breaking) {
+                               change.AnyChange = false;
+                               change.HasIgnoredChanges = true;
+                       }
+               }
+
+               void RenderIndexers (List<XElement> srcIndexers, List<XElement> tgtIndexers, ApiChange change)
+               {
+                       change.Append ("this [");
+                       for (int i = 0; i < srcIndexers.Count; i++) {
+                               var source = srcIndexers [i];
+                               var target = tgtIndexers [i];
+
+                               if (i > 0)
+                                       change.Append (", ");
+
+                               var srcType = source.GetTypeName ("type");
+                               var tgtType = target.GetTypeName ("type");
+                               if (srcType == tgtType) {
+                                       change.Append (tgtType);
+                               } else {
+                                       change.AppendModified (srcType, tgtType, true);
+                               }
+                               change.Append (" ");
+
+                               var srcName = source.GetAttribute ("name");
+                               var tgtName = target.GetAttribute ("name");
+                               if (srcName == tgtName) {
+                                       change.Append (tgtName);
+                               } else {
+                                       change.AppendModified (srcName, tgtName, true);
+                               }
+                       }
+                       change.Append ("]");
+               }
+
+               public override bool Equals (XElement source, XElement target, ApiChanges changes)
+               {
+                       if (base.Equals (source, target, changes))
+                               return true;
+
+                       XElement srcGetter, srcSetter;
+                       XElement tgtGetter, tgtSetter;
+                       GetAccessors (source, out srcGetter, out srcSetter);
+                       GetAccessors (target, out tgtGetter, out tgtSetter);
+
+                       List<XElement> srcIndexers = null;
+                       List<XElement> tgtIndexers = null;
+                       bool isIndexer = false;
+                       if (srcGetter != null) {
+                               srcIndexers = srcGetter.DescendantList ("parameters", "parameter");
+                               tgtIndexers = tgtGetter.DescendantList ("parameters", "parameter");
+                               isIndexer = srcIndexers != null && srcIndexers.Count > 0;
+                       }
+
+                       var change = new ApiChange ();
+                       change.Header = "Modified " + GroupName;
+                       RenderMethodAttributes (GetMethodAttributes (srcGetter, srcSetter), GetMethodAttributes (tgtGetter, tgtSetter), change);
+                       RenderPropertyType (source, target, change);
+                       if (isIndexer) {
+                               RenderIndexers (srcIndexers, tgtIndexers, change);
+                       } else {
+                               RenderName (source, target, change);
+                       }
+                       RenderGenericParameters (source, target, change);
+                       RenderAccessors (srcGetter, tgtGetter, srcSetter, tgtSetter, change);
+
+                       changes.Add (source, target, change);
+
+                       return false;
+               }
+
+               void GetProperties (XElement e, out bool @virtual, out bool @override, out bool @static, out bool getter, out bool setter, out bool family)
+               {
+                       @virtual = @override = @static = getter = setter = family = false;
+
+                       var methods = e.Element ("methods");
+                       if (methods != null) {
+                               foreach (var m in methods.Elements ("method")) {
+                                       @virtual |= m.IsTrue ("virtual");
+                                       @static |= m.IsTrue ("static");
+                                       var n = m.GetAttribute ("name");
+                                       getter |= n.StartsWith ("get_", StringComparison.Ordinal);
+                                       setter |= n.StartsWith ("set_", StringComparison.Ordinal);
+                                       var attribs = (MethodAttributes) Int32.Parse (m.GetAttribute ("attrib"));
+                                       family = ((attribs & MethodAttributes.Public) != MethodAttributes.Public);
+                                       @override |= (attribs & MethodAttributes.NewSlot) == 0;
+                               }
+                       }
+               }
+
+               public override string GetDescription (XElement e)
+               {
+                       string name = e.Attribute ("name").Value;
+                       string ptype = e.GetTypeName ("ptype");
+
+                       bool virt = false;
+                       bool over = false;
+                       bool stat = false;
+                       bool getter = false;
+                       bool setter = false;
+                       bool family = false;
+                       GetProperties (e, out virt, out over, out stat, out getter, out setter, out family);
+
+                       var sb = new StringBuilder ();
+
+                       sb.Append (family ? "protected " : "public ");
+                       if (virt && !State.IgnoreVirtualChanges)
+                               sb.Append (over ? "override " : "virtual ");
+                       else if (stat)
+                               sb.Append ("static ");
+                       sb.Append (ptype).Append (' ').Append (name).Append (" { ");
+                       if (getter)
+                               sb.Append ("get; ");
+                       if (setter)
+                               sb.Append ("set; ");
+                       sb.Append ("}");
+
+                       return sb.ToString ();
+               }
+       }
+}
\ No newline at end of file
diff --git a/mcs/tools/mono-api-html/mono-api-html.csproj b/mcs/tools/mono-api-html/mono-api-html.csproj
new file mode 100644 (file)
index 0000000..6ac0f24
--- /dev/null
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{D25986E2-7A41-4966-A26D-5614BAC7B8A7}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <RootNamespace>Xamarin.ApiDiff</RootNamespace>
+    <AssemblyName>mono-api-html</AssemblyName>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug</OutputPath>
+    <DefineConstants>DEBUG;</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>false</ConsolePause>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>full</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <Externalconsole>true</Externalconsole>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Xml" />
+    <Reference Include="System.Core" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Helpers.cs" />
+    <Compile Include="InterfaceComparer.cs" />
+    <Compile Include="NamespaceComparer.cs" />
+    <Compile Include="MemberComparer.cs" />
+    <Compile Include="FieldComparer.cs" />
+    <Compile Include="PropertyComparer.cs" />
+    <Compile Include="EventComparer.cs" />
+    <Compile Include="MethodComparer.cs" />
+    <Compile Include="ConstructorComparer.cs" />
+    <Compile Include="Comparer.cs" />
+    <Compile Include="AssemblyComparer.cs" />
+    <Compile Include="ClassComparer.cs" />
+    <Compile Include="ApiDiff.cs" />
+    <Compile Include="..\..\..\class\Mono.Options\Mono.Options\Options.cs">
+      <Link>Options.cs</Link>
+    </Compile>
+    <Compile Include="ApiChange.cs" />
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+</Project>
diff --git a/mcs/tools/mono-api-html/mono-api-html.exe.sources b/mcs/tools/mono-api-html/mono-api-html.exe.sources
new file mode 100644 (file)
index 0000000..69a2679
--- /dev/null
@@ -0,0 +1,15 @@
+ApiChange.cs
+ApiDiff.cs
+AssemblyComparer.cs
+ClassComparer.cs
+Comparer.cs
+ConstructorComparer.cs
+EventComparer.cs
+FieldComparer.cs
+Helpers.cs
+InterfaceComparer.cs
+MemberComparer.cs
+MethodComparer.cs
+NamespaceComparer.cs
+PropertyComparer.cs
+../../class/Mono.Options/Mono.Options/Options.cs
index 36d7feb5946ff49b8c0053ea68c68ac987b0b1aa..fe3b52f8d213ba8d713445c79878e7347473d6aa 100644 (file)
@@ -2,11 +2,8 @@ thisdir = tools/mono-configuration-crypto/cli
 SUBDIRS = 
 include ../../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:Mono.Security.dll \
-                 -r:System.Security.dll \
-                 -r:System.Configuration.dll \
-                 -r:System.dll \
-                 -r:$(topdir)/class/lib/$(PROFILE)/Mono.Configuration.Crypto.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = Mono.Security System.Security System.Configuration System Mono.Configuration.Crypto
 
 PROGRAM = mono-configuration-crypto.exe
 PROGRAM_INSTALL_DIR = $(mono_libdir)/mono/mono-configuration-crypto/$(FRAMEWORK_VERSION)
index 06351749f74360d7b70e454012f6367ba069a49f..d06b52ae235c72d16a707948b4af176374ccfb57 100644 (file)
@@ -2,7 +2,8 @@ thisdir = tools/mono-configuration-crypto/lib
 SUBDIRS =
 include ../../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.dll -r:Mono.Security.dll -r:System.Security.dll -r:System.Configuration.dll -r:System.Xml.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = System Mono.Security System.Security System.Configuration System.Xml
 LIBRARY = Mono.Configuration.Crypto.dll
 LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/mono-configuration-crypto/$(FRAMEWORK_VERSION)
 
index 7e8331eb46acbb1864fa0614bd835a1b7656c49b..84286e7f95fffbf75b4559235ea776e10005d7c5 100644 (file)
@@ -4,9 +4,12 @@ include ../../build/rules.make
 
 PROGRAM = mono-service.exe
 
+PROGRAM_SNK = ../../class/mono.snk
+
 include ../../build/executable.make
 
-LOCAL_MCS_FLAGS = -r:System.ServiceProcess.dll -r:Mono.Posix.dll -r:System.dll -unsafe
+LOCAL_MCS_FLAGS = -unsafe -publicsign
+LIB_REFS = System.ServiceProcess Mono.Posix System
 
 # Copied from library.make
 
index e4e4b557eb431584db275f77fa28bba95f6f1a34..2bfc65599d9abfef1c2b5cf6509dd0b420b0ca71 100644 (file)
@@ -2,7 +2,8 @@ thisdir = tools/mono-shlib-cop
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:Mono.Posix.dll -r:System.dll -r:System.Xml.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = Mono.Posix System System.Xml
 
 PROGRAM = mono-shlib-cop.exe
 
index 35cdfd88a39e21ee4d503c0316bbc2c31577d1a7..1a621f6f825d481048b2f70abf119b4d4a9c925b 100644 (file)
@@ -4,12 +4,9 @@ include ../../build/rules.make
 
 PROGRAM = mono-symbolicate.exe
 
-LOCAL_MCS_FLAGS = \
-       /r:Mono.Cecil.dll       \
-       /r:Mono.CompilerServices.SymbolWriter.dll \
-       /r:System.Xml.dll \
-       /r:System.Core.dll \
-       /r:System.dll
+LOCAL_MCS_FLAGS =
+
+LIB_REFS = Mono.Cecil Mono.CompilerServices.SymbolWriter System.Xml System.Core System
 
 include ../../build/executable.make
 
@@ -36,10 +33,10 @@ CHECK_DIFF = @\
                exit 1; \
        fi
 
-BUILD_TEST_EXE = @\
+BUILD_TEST_EXE = \
        rm -rf $(OUT_DIR); \
        mkdir -p $(OUT_DIR); \
-       $(MCS) -debug $(TEST_CS) -out:$(TEST_EXE)
+       $(CSCOMPILE) $(TEST_CS) -out:$(TEST_EXE)
 
 check: test-local
 
index fc39f8298abdbf07eab940cdece113ab7c772e1e..7439a2eb9dd8ee3ce2314e11386db963ed15ee44 100644 (file)
@@ -2,7 +2,8 @@ thisdir = tools/mono-xmltool
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.Xml.dll -r:Commons.Xml.Relaxng.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = System.Xml Commons.Xml.Relaxng
 PROGRAM = mono-xmltool.exe
 
 include ../../build/executable.make
index 85a08599fa7d107700ba39bbac25c04e7b8baa75..d9e77ac82512e62478431fa12d1092bb544bf101 100644 (file)
@@ -2,7 +2,8 @@ thisdir = tools/mono-xsd
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.Xml.dll -r:System.Data.dll -r:System.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = System.Xml System.Data System
 PROGRAM = xsd.exe
 
 include ../../build/executable.make
index 280122793695abea4a0cd10aafaa9e5633736d35..4e84d9916fa15b756445b5148fe51d1faa292c17 100644 (file)
@@ -3,7 +3,8 @@ SUBDIRS =
 include ../../build/rules.make
 
 PROGRAM = monop.exe
-LOCAL_MCS_FLAGS += -d:NO_AUTHENTICODE,STATIC,NO_SYMBOL_WRITER -r:System.dll
+LOCAL_MCS_FLAGS += -d:NO_AUTHENTICODE,STATIC,NO_SYMBOL_WRITER
+LIB_REFS = System
 
 CLEAN_FILES = monop.exe monop2.exe *.mdb
 
index 61339b1a5cc54c0208bfdce507a971cbec418648..6e78792b5868ab5d47e7e593029a76e477b4c81a 100644 (file)
@@ -3,8 +3,8 @@ SUBDIRS =
 include ../../build/rules.make
 NO_TESTS = yes
 
-BUILD_FRAMEWORK = Microsoft.Build.Framework.dll
-BUILD_NEW_ENGINE = Microsoft.Build.dll
+BUILD_FRAMEWORK = Microsoft.Build.Framework
+BUILD_NEW_ENGINE = Microsoft.Build
 INSTALL_FRAMEWORK_VERSION = $(FRAMEWORK_VERSION)
 
 include ../xbuild/xbuild.make
@@ -16,13 +16,12 @@ else
 ifeq (4, $(FRAMEWORK_VERSION_MAJOR))
 NAME_SUFFIX = .v4.0
 ASSEMBLY_VERSION = 4.0.0.0
-BUILD_FRAMEWORK := $(topdir)/class/lib/$(PROFILE)/$(BUILD_FRAMEWORK)
-BUILD_NEW_ENGINE := $(topdir)/class/lib/$(PROFILE)/$(BUILD_NEW_ENGINE)
 INSTALL_FRAMEWORK_VERSION = 4.0
 endif
 endif
 
-LOCAL_MCS_FLAGS = -r:$(BUILD_FRAMEWORK) -r:$(BUILD_NEW_ENGINE)
+LOCAL_MCS_FLAGS =
+LIB_REFS = $(BUILD_FRAMEWORK) $(BUILD_NEW_ENGINE)
 PROGRAM = msbuild.exe
 
 include ../../build/executable.make
index 9dd062fe9c17d64b740cf05c7292407ce4e865c1..1d448c2915a429c91b9c5e1ee0fff76424ec6f93 100644 (file)
@@ -5,7 +5,8 @@ include ../../../build/rules.make
 LIBRARY = nunitlite.dll
 LIBRARY_SNK = ../../../../external/nunit-lite/NUnitLite-1.0.0/src/framework/nunit.snk
 
-LOCAL_MCS_FLAGS= /target:library /define:"__MOBILE__;TRACE;DEBUG;NET_4_0;CLR_4_0,NUNITLITE" /nostdlib -r:System.dll -r:System.Xml.dll -r:System.Core.dll -r:mscorlib.dll /warn:4 /noconfig /debug:full /debug+ /keyfile:$(LIBRARY_SNK) /optimize
+LOCAL_MCS_FLAGS= /target:library /define:"__MOBILE__;TRACE;DEBUG;NET_4_0;CLR_4_0,NUNITLITE" /warn:4 /keyfile:$(LIBRARY_SNK)
+LIB_REFS = System System.Xml System.Core
 
 NO_TEST = yes
 
index 920f74d29a5941b0702fda299a7ef8fa81c6f63c..c3697e420fce5135bb9f1e0e66f3dde69ec50913 100644 (file)
@@ -3,7 +3,8 @@ SUBDIRS =
 include ../../../build/rules.make
 
 PROGRAM = nunit-lite-console.exe
-LOCAL_MCS_FLAGS = /r:nunitlite.dll 
+LIB_REFS = nunitlite
+LOCAL_MCS_FLAGS =
 
 include ../../../build/executable.make
 
index 057ddabea6985815875497e7634b628b921ead29..3d3f647bc3c54b77ac49c284fef7d49601300748 100644 (file)
@@ -3,7 +3,8 @@ SUBDIRS =
 NO_INSTALL = 1
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.Xml.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = System.Xml
 
 EXTRA_DISTFILES = \
        Media/*.png             \
index 8de09cc43e9be603deef79feefa7a3821c0aefc3..0d2f377310c452dd2762799fa4a11315c6295f79 100644 (file)
@@ -4,10 +4,8 @@ include ../../build/rules.make
 
 PROGRAM = pdb2mdb.exe
 
-LOCAL_MCS_FLAGS = \
-       /r:Mono.Cecil.dll       \
-       /r:Mono.CompilerServices.SymbolWriter.dll \
-       /r:System.Core.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = Mono.Cecil Mono.CompilerServices.SymbolWriter System.Core
 
 
 EXTRA_DISTFILES = LICENSE
index 117f99231d7289d325329229c49bf7e458fe0ed6..2ccbf5869c73ee3b6fe5b67a5d0c46bca88d76bb 100644 (file)
@@ -6,7 +6,7 @@ PROGRAM = resgen.exe
 
 CLEAN_FILES = resgen.exe
 
-LOCAL_MCS_FLAGS = -r:System.dll -r:System.Xml.dll -r:System.Core.dll
+LIB_REFS = System System.Xml System.Core
 
 INSTALL_PROFILE := $(filter $(DEFAULT_PROFILE), $(PROFILE))
 ifndef INSTALL_PROFILE
index d75599dcee58228921d6ceb6e2e66d4f2a90114c..e4bfbb4d315122fddfa2005af3bfcc6458b5a0d5 100644 (file)
@@ -3,7 +3,8 @@ SUBDIRS =
 DIST_ONLY_SUBDIRS = certview
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = /lib:$(topdir)/class/lib/$(PROFILE) -r:Mono.Security.dll -r:System.dll
+LOCAL_MCS_FLAGS = 
+LIB_REFS = Mono.Security System
 
 SECURITY_PROGRAMS = secutil.exe cert2spc.exe sn.exe makecert.exe chktrust.exe crlupdate.exe \
        signcode.exe setreg.exe certmgr.exe caspol.exe permview.exe mozroots.exe cert-sync.exe
@@ -58,10 +59,10 @@ clean-local:
 dist-local: dist-default
 
 sn.exe $(topdir)/class/lib/$(PROFILE)/sn.exe: $(SN_SOURCES)
-       $(CSCOMPILE) /out:$@ $(SN_SOURCES)
+       $(CSCOMPILE) -r:$(topdir)/class/lib/$(PROFILE)/Mono.Security.dll /out:$@ $(SN_SOURCES)
 
 permview.exe: permview.cs
-       $(CSCOMPILE) $^ $(HELPER_SOURCES) -r:Mono.Cecil.dll
+       $(CSCOMPILE) $^ $(HELPER_SOURCES) -r:$(topdir)/class/lib/$(PROFILE)/Mono.Cecil.dll
 
 %.exe: %.cs $(HELPER_SOURCES)
-       $(CSCOMPILE) $^
+       $(CSCOMPILE) -r:$(topdir)/class/lib/$(PROFILE)/Mono.Security.dll -r:$(topdir)/class/lib/$(PROFILE)/System.dll $^
index 377d396f01544b966efe696ca173a29e879d9f05..aaa92049f4ba4c34224be91fa86eb12b9d0ced1d 100644 (file)
@@ -3,7 +3,8 @@ SUBDIRS =
 include ../../../build/rules.make
 
 RESGEN = resgen
-LOCAL_MCS_FLAGS = /lib:$(topdir)/class/lib /r:Mono.Security.dll /r:System.Xml.dll /win32icon:mono.ico
+LIB_REFS = Mono.Security System.Xml
+LOCAL_MCS_FLAGS = /win32icon:mono.ico
 
 # SWF isn't quite good enough to build this yet.
 
index bf5bd1c904e560af111c0b9f312dc980f7965fa9..e7750a2c11b4b525bc791204b3f18a5404e99621 100644 (file)
@@ -2,7 +2,8 @@ thisdir = tools/sgen
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.Xml.dll -r:System.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = System.Xml System
 PROGRAM = sgen.exe
 
 include ../../build/executable.make
index 2fccb32ad59c2b328baf0f9c6580dd532e29a446..1fc6cb2763e6cd3e6b52d59ee4b07bd7d3b92cde 100644 (file)
@@ -2,7 +2,8 @@ thisdir = tools/soapsuds
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.Runtime.Remoting.dll -r:System.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = System.Runtime.Remoting System
 PROGRAM = soapsuds.exe
 
 include ../../build/executable.make
index 7bd68482312e9491925aa0ebcd7e03e933e5e54e..ee0b649479692bd2849a54652c65baa9ea3dbc5e 100644 (file)
@@ -11,13 +11,10 @@ LOCAL_MCS_FLAGS = \
        -resource:$(dbmetal_src)/Language/EnglishWords.txt,$(ns).EnglishWords.txt \
        -resource:$(dbmetal_src)/Language/FrenchWords.txt,$(ns).FrenchWords.txt   \
        -resource:$(dbmetal_src)/Language/GermanWords.txt,$(ns).GermanWords.txt   \
-       -r:System.Configuration.dll                                             \
-       -r:System.Core.dll                                                      \
-       -r:System.Data.dll                                                      \
-       -r:System.Data.Linq.dll                                                 \
-       -r:System.Xml.dll \
-       -r:System.dll
+       -publicsign
 
+LIB_REFS = System.Configuration System.Core System.Data System.Data.Linq System.Xml System
+       
 SQLMETAL_RESOURCES = \
        $(dbmetal_src)/Language/EnglishWords.txt \
        $(dbmetal_src)/Language/FrenchWords.txt  \
index 042e97b92a31ca95e2b8554eccc8ed8146943ea5..88ad1f8d9b5cca744ae8ae233bec051b2a7d20fa 100644 (file)
@@ -2,7 +2,8 @@ thisdir = tools/SqlSharp
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.dll -r:System.Xml.dll -r:System.Data.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = System System.Xml System.Data
 PROGRAM = sqlsharp.exe
 
 EXTRA_DISTFILES = README
index cf174fe39794ccb28d2282f4c16f50d258cea44d..b194a5b144d5fbda9d79c1408da449490ca2134f 100644 (file)
@@ -2,14 +2,8 @@ thisdir = tools/svcutil
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = \
-       -r:System.Core.dll \
-       -r:System.Runtime.Serialization.dll \
-       -r:System.ServiceModel.dll \
-       -r:System.Web.Services.dll \
-       -r:System.Configuration.dll \
-       -r:System.dll \
-       -r:System.Xml.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = System.Core System.Runtime.Serialization System.ServiceModel System.Web.Services System.Configuration System System.Xml
        
 PROGRAM = svcutil.exe
 
index bfc24a16c459ce42a05b821a4e7ef530b6024f46..c364223deb0419d3df72bd4ed047101a2d167dd7 100644 (file)
@@ -3,10 +3,8 @@ SUBDIRS =
 DEP_DIRS = linker
 include ../../build/rules.make
 
-CECIL = $(topdir)/class/lib/$(PROFILE)/Mono.Cecil.dll
-LINKER = $(topdir)/class/lib/$(PROFILE)/monolinker.exe
-
-LOCAL_MCS_FLAGS = -r:System.dll -r:System.Core.dll -r:System.Xml.dll -r:$(LINKER) -r:$(CECIL)
+LOCAL_MCS_FLAGS = -r:$(topdir)/class/lib/$(PROFILE)/monolinker.exe
+LIB_REFS = System System.Core System.Xml Mono.Cecil
 
 LIBRARY = Mono.Tuner.dll
 
index 786c81885f058917cf44cce45d1416c33a07b8ea..293cf9d2811497344bac95184a292e9936e12289 100644 (file)
@@ -2,7 +2,8 @@ thisdir = tools/wsdl
 SUBDIRS = 
 include ../../build/rules.make
 
-LOCAL_MCS_FLAGS = -r:System.Xml.dll -r:System.Web.Services.dll -r:System.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = System.Xml System.Web.Services System
 
 PROGRAM = wsdl.exe
 
index 0ca5126a6d42fd4da33a7267f4956c5f57f14441..70457756436001b8c749fe9c846bd6e0a218c05c 100644 (file)
@@ -5,7 +5,8 @@ NO_TESTS = yes
 
 include xbuild.make
 
-LOCAL_MCS_FLAGS = -r:$(XBUILD_FRAMEWORK) -r:$(XBUILD_UTILITIES) -r:$(XBUILD_ENGINE) -r:$(XBUILD_MSTASKS) -r:System.dll -r:System.Core.dll
+LOCAL_MCS_FLAGS =
+LIB_REFS = $(XBUILD_FRAMEWORK) $(XBUILD_UTILITIES) $(XBUILD_ENGINE) $(XBUILD_MSTASKS) $(PARENT_PROFILE)System $(PARENT_PROFILE)System.Core
 PROGRAM = xbuild.exe
 
 include ../../build/executable.make
index 7247c7f8b0d1b04d7f52adefd0962d68fff07bc1..cda9d9b0e61b012485cc2b2ac2a17379bda9d1c9 100644 (file)
@@ -6,13 +6,13 @@ ifeq (14.0, $(XBUILD_VERSION))
 NAME_SUFFIX = .Core
 endif
 
-XBUILD_FRAMEWORK := $(topdir)/class/lib/$(PROFILE)/Microsoft.Build.Framework.dll
-XBUILD_ENGINE := $(topdir)/class/lib/$(PROFILE)/Microsoft.Build.Engine.dll
-XBUILD_UTILITIES := $(topdir)/class/lib/$(PROFILE)/Microsoft.Build.Utilities$(NAME_SUFFIX).dll
-XBUILD_TASKS := $(topdir)/class/lib/$(PROFILE)/Mono.XBuild.Tasks.dll
-XBUILD_MSTASKS := $(topdir)/class/lib/$(PROFILE)/Microsoft.Build.Tasks$(NAME_SUFFIX).dll
+XBUILD_FRAMEWORK := Microsoft.Build.Framework
+XBUILD_ENGINE := Microsoft.Build.Engine
+XBUILD_UTILITIES := Microsoft.Build.Utilities$(NAME_SUFFIX)
+XBUILD_TASKS := Mono.XBuild.Tasks
+XBUILD_MSTASKS := Microsoft.Build.Tasks$(NAME_SUFFIX)
 ifeq (14.0, $(XBUILD_VERSION))
-XBUILD_MSTASKS := $(topdir)/class/lib/$(PROFILE)/Microsoft.Build.Tasks.Core.dll
+XBUILD_MSTASKS := Microsoft.Build.Tasks.Core
 endif
 
 XBUILD_ASSEMBLY_VERSION = $(XBUILD_VERSION).0.0
index 8fc453350cd2eb87f7cabfeefe778b0a69265c65..c40dc485016b43220e237e340662011bb5e6cd5f 100755 (executable)
@@ -48,7 +48,7 @@ RUNTIME_EXECUTABLE = $(if $(BOEHM),$(top_builddir)/mono/mini/mono-boehm,$(top_bu
 MINI_RUNTIME = MONO_PATH=$(CLASS) $(RUNTIME_EXECUTABLE)
 RUNTIME_AOTCHECK = MONO_PATH="$(CLASS)$(PLATFORM_PATH_SEPARATOR)." $(RUNTIME_EXECUTABLE)
 
-MCS = $(MINI_RUNTIME) $(mcs_topdir)/class/lib/build/mcs.exe -unsafe -nowarn:0162
+MCS = CSC_SDK_PATH_DISABLED= $(MINI_RUNTIME) $(CSC) -unsafe -nowarn:0162 -nologo -noconfig -r:$(CLASS)/mscorlib.dll -r:$(CLASS)/System.dll
 ILASM = $(MINI_RUNTIME) $(CLASS)/ilasm.exe
 
 AM_CFLAGS = \
@@ -602,13 +602,13 @@ libmonoinclude_HEADERS = jit.h
 CSFLAGS = -unsafe -nowarn:0219,0169,0414,0649
 
 basic-simd.exe: basic-simd.cs TestDriver.dll
-       $(MCS) -out:$@ $(CSFLAGS) $< -r:TestDriver.dll -r:Mono.Simd.dll
+       $(MCS) -out:$@ $(CSFLAGS) $< -r:TestDriver.dll -r:$(CLASS)/Mono.Simd.dll
 
 nacl.exe: nacl.cs TestDriver.dll
-       $(MCS) -out:$@ $(CSFLAGS) $< -r:TestDriver.dll -r:Mono.Simd.dll
+       $(MCS) -out:$@ $(CSFLAGS) $< -r:TestDriver.dll -r:$(CLASS)/Mono.Simd.dll
 
 generics.exe: generics.cs TestDriver.dll generics-variant-types.dll
-       $(MCS) -out:$@ $(CSFLAGS) $< -r:TestDriver.dll -r:generics-variant-types.dll
+       $(MCS) -out:$@ $(CSFLAGS) $< -r:TestDriver.dll -r:generics-variant-types.dll -r:$(CLASS)/System.Core.dll
 
 %.exe: %.cs TestDriver.dll
        $(MCS) -out:$@ $(CSFLAGS) $< -r:TestDriver.dll