X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2FMakefile;h=732936c04b9537e13055282bfcab4cdaa502d90a;hb=73b71062a7753c95d132372275d7f521e8d82087;hp=9b5ffaafdcd09a450d315a45b5f6dc89a489b3f2;hpb=1138dbc32cf3776c2f46d38c33c7210d7bfbb78b;p=mono.git diff --git a/mcs/Makefile b/mcs/Makefile index 9b5ffaafdcd..732936c04b9 100644 --- a/mcs/Makefile +++ b/mcs/Makefile @@ -1,45 +1,91 @@ thisdir := . -SUBDIRS := build jay mcs monoresgen class mbas nunit20 ilasm tools tests errors docs -OVERRIDE_BARE_TARGETS = hells yeah -include build/rules.make - -# Define these ourselves to that the platform checks come first -#all: platform-check profile-check all-recursive #all-local +SUBDIRS := build jay mcs tools/resgen class mbas nunit20 ilasm tools tests errors docs +DIST_ONLY_SUBDIRS := gmcs + +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 + +ifdef TEST_SUBDIRS +$(PROFILE)_SUBDIRS := $(TEST_SUBDIRS) +endif -.PHONY: all clean all-profiles clean-profiles install uninstall test run-test testcorlib +include build/rules.make -all: platform-check profile-check all-recursive +all-recursive $(STD_TARGETS:=-recursive): platform-check profile-check -install: platform-check profile-check install-recursive #install-local +.PHONY: all-local $(STD_TARGETS:=-local) +all-local $(STD_TARGETS:=-local): + @: -uninstall: platform-check profile-check uninstall-recursive #uninstall-local +# fun specialty targets -test: platform-check profile-check test-recursive #test-local +PROFILES = default net_2_0 -run-test: run-test-recursive #run-test-local +.PHONY: all-profiles $(STD_TARGETS:=-profiles) +all-profiles $(STD_TARGETS:=-profiles): %-profiles: profiles-do--% + @: -clean: clean-recursive #clean-local +profiles-do--%: + $(MAKE) $(PROFILES:%=profile-do--%--$*) -# fun specialty targets +# The % below looks like profile-name--target-name +profile-do--%: + $(MAKE) PROFILE=$(subst --, ,$*) -all-profiles: - $(MAKE) PROFILE=default all || exit 1 ; \ - $(MAKE) PROFILE=net_2_0 all || exit 1 ; +# 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 -clean-profiles: - $(MAKE) PROFILE=default clean || exit 1 ; \ - $(MAKE) PROFILE=net_2_0 clean || exit 1 ; +# 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 -# Disting. We need to override $(distdir) here. +compiler-tests: + $(MAKE) TEST_SUBDIRS="tests errors" run-test-profiles + +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 package := mcs-$(VERSION) -top_distdir = $(dots)/$(package) -distdir = $(top_distdir) -export package DISTFILES = \ AUTHORS \ @@ -56,18 +102,19 @@ DISTFILES = \ MonoIcon.png \ README \ ScalableMonoIcon.svg \ - winexe.in + winexe.in \ + nunit.key + +dist-local: dist-default dist-pre: rm -rf $(package) + mkdir $(package) -dist-post: +dist-tarball: dist-pre + $(MAKE) distdir='$(package)' dist-recursive tar cvzf $(package).tar.gz $(package) -dist-local: dist-default - -dist-tarball: dist-pre dist-recursive dist-post - dist: dist-tarball rm -rf $(package) @@ -78,11 +125,10 @@ dist: dist-tarball # We need to set prefix on make so class/System/Makefile can find # the installed System.Xml to build properly -distcheck: +distcheck: dist-tarball rm -rf InstallTest Distcheck-MCS ; \ mkdir InstallTest ; \ destdir=`cd InstallTest && pwd` ; \ - $(MAKE) dist-tarball || exit 1 ; \ mv $(package) Distcheck-MCS ; \ (cd Distcheck-MCS && \ $(MAKE) prefix=$(prefix) && $(MAKE) test && $(MAKE) install DESTDIR="$$destdir" && \