1PROFILE := v2.0 2SOURCEDIR := ../src/$(PROFILE)/ 3 4CSC ?= csc 5CSC_COMMON_ARGS := -nologo -noconfig -optimize -nostdlib -unsafe -deterministic -publicsign -debug- -target:library -nowarn:612 -nowarn:618 6Q_CSC = $(if $(V),,@echo "CSC [$(PROFILE)] $(1)";) 7 8ASSEMBLIES := Accessibility CustomMarshalers \ 9 Microsoft.Build.Engine Microsoft.Build.Framework Microsoft.Build.Tasks \ 10 Microsoft.Build.Utilities Microsoft.VisualBasic \ 11 Microsoft.VisualC System.ComponentModel.DataAnnotations \ 12 System.Configuration.Install System.Configuration System.Core System.Data.DataSetExtensions \ 13 System.Data.Linq System.Data.OracleClient System.Data.Services.Client System.Data.Services \ 14 System.Data System.Design System.DirectoryServices.Protocols System.DirectoryServices \ 15 System.Drawing.Design System.Drawing System.EnterpriseServices System.IdentityModel.Selectors \ 16 System.IdentityModel System.Management System.Messaging System.Net System.Runtime.Remoting \ 17 System.Runtime.Serialization.Formatters.Soap System.Runtime.Serialization System.Security \ 18 System.ServiceModel.Web System.ServiceModel System.ServiceProcess System.Transactions \ 19 System.Web.Abstractions System.Web.DynamicData System.Web.Extensions.Design System.Web.Extensions \ 20 System.Web.Routing System.Web.Services System.Web System.Windows.Forms \ 21 System.Xml.Linq System.Xml System WindowsBase mscorlib 22 23ASSEMBLIES += bare/System bare/System.Xml bare/System.Configuration bare/System.Web 24 25# generated with (and then slightly tweaked): 26# for i in *.dll; do ikdasm --assemblyref $i | grep Name= | sed 's/.*Name=//g' | sed -e $'s/$/\\\n/g' | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/ /g' -e "s/^/${i%.*}_REFS := /"; done 27Accessibility_REFS := mscorlib 28CustomMarshalers_REFS := mscorlib 29Microsoft.Build.Engine_REFS := mscorlib System System.Xml Microsoft.Build.Framework Microsoft.Build.Utilities System.Core 30Microsoft.Build.Framework_REFS := mscorlib 31Microsoft.Build.Tasks_REFS := mscorlib Microsoft.Build.Utilities Microsoft.Build.Framework System System.Core System.Xml Microsoft.Build.Engine 32Microsoft.Build.Utilities_REFS := Microsoft.Build.Framework mscorlib System 33Microsoft.VisualBasic_REFS := mscorlib System System.Windows.Forms System.Drawing 34Microsoft.VisualC_REFS := mscorlib 35System.ComponentModel.DataAnnotations_REFS := mscorlib System System.Core 36System.Configuration.Install_REFS := mscorlib System 37System.Configuration_REFS := mscorlib System bare/System.Xml 38System.Core_REFS := mscorlib System 39System.Data.DataSetExtensions_REFS := System System.Data mscorlib System.Core 40System.Data.Linq_REFS := mscorlib System.Data System System.Core System.Xml System.Runtime.Serialization 41System.Data.OracleClient_REFS := mscorlib System.Data System.Drawing System System.EnterpriseServices 42System.Data.Services.Client_REFS := mscorlib System.Core System System.Xml WindowsBase System.Xml.Linq 43System.Data.Services_REFS := mscorlib System.Core System System.ServiceModel System.ServiceModel.Web 44System.Data_REFS := mscorlib System System.Xml System.Configuration System.Transactions System.EnterpriseServices 45System.Design_REFS := mscorlib System System.Windows.Forms System.Data System.Drawing System.Xml bare/System.Web System.Configuration 46System.DirectoryServices.Protocols_REFS := mscorlib System System.Xml System.DirectoryServices 47System.DirectoryServices_REFS := mscorlib System 48System.Drawing.Design_REFS := System.Windows.Forms System.Drawing mscorlib System 49System.Drawing_REFS := mscorlib System 50System.EnterpriseServices_REFS := mscorlib System.Transactions 51System.IdentityModel.Selectors_REFS := System.Xml mscorlib System System.IdentityModel 52System.IdentityModel_REFS := mscorlib System System.Web System.Xml System.Runtime.Serialization System.Security 53System.Management_REFS := mscorlib System System.Configuration.Install 54System.Messaging_REFS := mscorlib System System.Configuration.Install System.Xml System.Windows.Forms System.Drawing 55System.Net_REFS := mscorlib System 56System.Runtime.Remoting_REFS := mscorlib System.Runtime.Serialization.Formatters.Soap System System.Xml System.Web 57System.Runtime.Serialization.Formatters.Soap_REFS := System.Xml mscorlib 58System.Runtime.Serialization_REFS := System.Configuration mscorlib System System.Xml System.Core 59System.Security_REFS := mscorlib System.Xml System 60System.ServiceModel.Web_REFS := mscorlib System.Runtime.Serialization System.Xml System System.ServiceModel System.Configuration System.Core System.Web.Extensions 61System.ServiceModel_REFS := mscorlib System System.Xml System.Runtime.Serialization System.Core System.Messaging System.Web System.Transactions System.IdentityModel System.Security System.Configuration System.Web.Services System.IdentityModel.Selectors 62System.ServiceProcess_REFS := System mscorlib System.Configuration.Install System.Windows.Forms 63System.Transactions_REFS := mscorlib System.Configuration 64System.Web.Abstractions_REFS := System.Web mscorlib System 65System.Web.DynamicData_REFS := mscorlib System.Core System.Data.Linq System System.Web System.Web.Extensions System.Web.Routing System.ComponentModel.DataAnnotations System.Drawing System.Web.Abstractions 66System.Web.Extensions.Design_REFS := mscorlib System System.Design System.Drawing 67System.Web.Extensions_REFS := mscorlib System.Core System System.Web System.Configuration System.Web.Services System.Xml System.ServiceModel System.Data.Linq System.Drawing 68System.Web.Routing_REFS := mscorlib System.Web.Abstractions System System.Core System.Web 69System.Web.Services_REFS := System.EnterpriseServices bare/System.Web System.Configuration mscorlib System System.Xml 70System.Web_REFS := mscorlib System.Drawing System System.Xml System.Core System.Configuration System.Data System.Runtime.Serialization.Formatters.Soap System.Web.Services System.EnterpriseServices 71System.Windows.Forms_REFS := mscorlib System System.Xml System.Drawing System.Configuration System.Runtime.Serialization.Formatters.Soap Accessibility System.Data 72System.Xml.Linq_REFS := mscorlib System.Xml System.Runtime.Serialization System.Core 73System.Xml_REFS := mscorlib System System.Configuration 74System_REFS := mscorlib bare/System.Configuration bare/System.Xml 75WindowsBase_REFS := System mscorlib System.Xml 76mscorlib_REFS := 77 78bare/System_REFS := mscorlib 79bare/System.Xml_REFS := mscorlib bare/System 80bare/System.Configuration_REFS := mscorlib bare/System bare/System.Xml 81bare/System.Web_REFS := mscorlib System.Drawing System System.Xml System.Core System.Configuration System.Data System.ComponentModel.DataAnnotations System.EnterpriseServices 82 83mscorlib_CSC_ARGS := -runtimemetadataversion:v2.0.50727 84System_CSC_ARGS := -d:CONFIG_DEP -d:XML_DEP 85System.Configuration_CSC_ARGS := -d:CONFIG_DEP 86System.Xml_CSC_ARGS := -d:CONFIG_DEP 87System.Web_CSC_ARGS := -d:SERVICES_DEP 88 89ECMA_KEY := ../../../mcs/class/ecma.pub 90WINFX_KEY := ../../../mcs/class/winfx.pub 91MSFINAL_KEY := ../../../mcs/class/msfinal.pub 92 93ECMA_KEY_ASSEMBLIES := System.Core System.Data.DataSetExtensions System.Data.Linq System.Data.OracleClient \ 94 System.Data.Services.Client System.Data.Services System.Data System.IdentityModel.Selectors \ 95 System.IdentityModel System.Net System.Runtime.Remoting System.Runtime.Serialization System.ServiceModel \ 96 System.Transactions System.Windows.Forms System.Xml.Linq System.Xml System mscorlib bare/System bare/System.Xml 97 98WINFX_KEY_ASSEMBLIES := System.ComponentModel.DataAnnotations System.ServiceModel.Web \ 99 System.Web.Abstractions System.Web.DynamicData System.Web.Extensions.Design System.Web.Extensions \ 100 System.Web.Routing WindowsBase 101 102MSFINAL_KEY_ASSEMBLIES := Accessibility CustomMarshalers Microsoft.Build.Engine Microsoft.Build.Framework \ 103 Microsoft.Build.Tasks Microsoft.Build.Utilities Microsoft.VisualC Microsoft.VisualBasic \ 104 System.Configuration.Install System.Configuration System.Design System.DirectoryServices.Protocols \ 105 System.DirectoryServices System.Drawing.Design System.Drawing System.EnterpriseServices System.Management \ 106 System.Messaging System.Runtime.Serialization.Formatters.Soap System.Security System.ServiceProcess \ 107 System.Web.Services System.Web bare/System.Configuration bare/System.Web 108 109all: $(addsuffix .dll, $(ASSEMBLIES)) 110 111clean: 112 rm -f *.dll 113 rm -f bare/*.dll 114 115define KEYFILE_TEMPLATE 116$(1)_KEYFILE := $(2) 117endef 118 119define ASSEMBLY_TEMPLATE 120$(1).dll: $(addprefix $(SOURCEDIR),$(subst bare/,,$(1)).cs) $(wildcard $(SOURCEDIR)$(1).extra.cs) $(addsuffix .dll, $($(1)_REFS)) $($(1)_KEYFILE) 121 @mkdir -p bare/ 122 $(Q_CSC) $(CSC) -out:$(1).dll $(CSC_COMMON_ARGS) -keyfile:$($(1)_KEYFILE) $($(1)_CSC_ARGS) $(addprefix -r:, $(addsuffix .dll, $($(1)_REFS))) $(wildcard $(SOURCEDIR)$(1).extra.cs) $$< 123endef 124 125$(foreach asm, $(ECMA_KEY_ASSEMBLIES), $(eval $(call KEYFILE_TEMPLATE,$(asm), $(ECMA_KEY)))) 126$(foreach asm, $(WINFX_KEY_ASSEMBLIES), $(eval $(call KEYFILE_TEMPLATE,$(asm), $(WINFX_KEY)))) 127$(foreach asm, $(MSFINAL_KEY_ASSEMBLIES), $(eval $(call KEYFILE_TEMPLATE,$(asm), $(MSFINAL_KEY)))) 128 129$(foreach asm, $(ASSEMBLIES), $(eval $(call ASSEMBLY_TEMPLATE,$(asm)))) 130