X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2FMakefile;h=99ce95ef399438ee6d0c55992a554c3c50c2edc3;hb=280844f99d7bb323bd92d277aed6edf1363cb714;hp=df020793fc9cdf9e53c0c2ebd82398dfa33492d0;hpb=47d275abbbaa975341c6a16cf5ad0a37db354202;p=mono.git diff --git a/mcs/Makefile b/mcs/Makefile index df020793fc9..99ce95ef399 100644 --- a/mcs/Makefile +++ b/mcs/Makefile @@ -1,37 +1,79 @@ thisdir := . -SUBDIRS := build jay mcs monoresgen class mbas nunit20 ilasm tools tests errors docs - -# 'gmcs' is specially built by rules inside class/corlib. +SUBDIRS := build jay mcs tools/resgen class mbas nunit20 ilasm tools tests errors docs DIST_ONLY_SUBDIRS := gmcs -ifdef TEST_SUBDIRS -SUBDIRS := $(TEST_SUBDIRS) +basic_SUBDIRS := build jay mcs class +net_1_1_bootstrap_SUBDIRS := build jay mcs class ilasm tools +net_2_0_bootstrap_SUBDIRS := build class ilasm +net_2_0_SUBDIRS := build jay gmcs class nunit20 ilasm tests errors tools + +# List of test subdirs that should pass 100% +centum_tests := \ + class/corlib \ + class/System \ + class/Commons.Xml.Relaxng \ + class/Cscompmgd \ + class/Microsoft.JScript \ + class/Mono.Posix \ + class/Mono.Security \ + class/System.Messaging \ + class/System.Runtime.Remoting \ + class/System.Runtime.Serialization.Formatters.Soap \ + class/System.Security \ + class/System.ServiceProcess \ + class/System.Web.Services \ + tests \ + errors + +default_centum_tests := \ + $(centum_tests) \ + class/System.XML \ + class/System.Data + +net_2_0_centum_tests := $(centum_tests) #class/Mono.C5 + +ifdef ONLY_CENTUM_TESTS +TEST_SUBDIRS := $($(PROFILE)_centum_tests) endif -ifndef NO_SIGN_ASSEMBLIES -OVERRIDE_TARGET_ALL = yes +ifdef TEST_SUBDIRS +$(PROFILE)_SUBDIRS := $(TEST_SUBDIRS) endif include build/rules.make all-recursive $(STD_TARGETS:=-recursive): platform-check profile-check -# Used only if OVERRIDE_TARGET_ALL is defined -all.override: - $(MAKE) NO_SIGN_ASSEMBLY=yes all.real - $(MAKE) all.real - .PHONY: all-local $(STD_TARGETS:=-local) all-local $(STD_TARGETS:=-local): @: # fun specialty targets +PROFILES = default net_2_0 + .PHONY: all-profiles $(STD_TARGETS:=-profiles) -all-profiles $(STD_TARGETS:=-profiles): - $(MAKE) PROFILE=default $(@:-profiles=) - $(MAKE) PROFILE=net_2_0 $(@:-profiles=) +all-profiles $(STD_TARGETS:=-profiles): %-profiles: profiles-do--% + @: + +profiles-do--%: + $(MAKE) $(PROFILES:%=profile-do--%--$*) + +# The % below looks like profile-name--target-name +profile-do--%: + $(MAKE) PROFILE=$(subst --, ,$*) + +# We don't want to run the tests in parallel. We want behaviour like -k. +profiles-do--run-test: + ret=:; $(foreach p,$(PROFILES), { $(MAKE) PROFILE=$(p) run-test || ret=false; }; ) $$ret + +# Orchestrate the bootstrap here. +_boot_ = all clean install +$(_boot_:%=profile-do--net_2_0--%): profile-do--net_2_0--%: profile-do--net_2_0_bootstrap--% +$(_boot_:%=profile-do--net_2_0_bootstrap--%): profile-do--net_2_0_bootstrap--%: profile-do--default--% +$(_boot_:%=profile-do--default--%): profile-do--default--%: profile-do--net_1_1_bootstrap--% +$(_boot_:%=profile-do--net_1_1_bootstrap--%): profile-do--net_1_1_bootstrap--%: profile-do--basic--% testcorlib: @cd class/corlib && $(MAKE) test run-test @@ -43,12 +85,7 @@ test-installed-compiler: $(MAKE) TEST_SUBDIRS="tests errors" PROFILE=default TEST_RUNTIME=mono MCS=mcs run-test $(MAKE) TEST_SUBDIRS="tests errors" PROFILE=net_2_0 TEST_RUNTIME=mono MCS=gmcs run-test -# Disting. We need to override $(distdir) here. - package := mcs-$(VERSION) -top_distdir = $(dots)/$(package) -distdir = $(top_distdir) -export package DISTFILES = \ AUTHORS \ @@ -65,17 +102,17 @@ DISTFILES = \ MonoIcon.png \ README \ ScalableMonoIcon.svg \ - winexe.in - + winexe.in \ + nunit.key dist-local: dist-default -dist-recursive: dist-pre dist-pre: rm -rf $(package) mkdir $(package) -dist-tarball: dist-recursive +dist-tarball: dist-pre + $(MAKE) distdir='$(package)' dist-recursive tar cvzf $(package).tar.gz $(package) dist: dist-tarball