thisdir := . SUBDIRS := build jay mcs monoresgen class mbas nunit20 ilasm tools tests errors docs # 'gmcs' is specially built by rules inside class/corlib. DIST_ONLY_SUBDIRS := gmcs ifdef TEST_SUBDIRS SUBDIRS := $(TEST_SUBDIRS) endif ifndef NO_SIGN_ASSEMBLIES OVERRIDE_TARGET_ALL = yes 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) $(PROFILES:%=profile-do--%--$(@:-profiles=)) # The % below looks like profile-name--target-name profile-do--%: $(MAKE) PROFILE=$(subst --, ,$*) # Ensure these don't run in parallel, for now. profile-do--net_2_0--all: profile-do--default--all profile-do--net_2_0--run-test: profile-do--default--run-test testcorlib: @cd class/corlib && $(MAKE) test run-test 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 # Disting. We need to override $(distdir) here. package := mcs-$(VERSION) top_distdir = $(dots)/$(package) distdir = $(top_distdir) export package DISTFILES = \ AUTHORS \ ChangeLog \ COPYING \ COPYING.LIB \ INSTALL.txt \ LICENSE \ LICENSE.GPL \ LICENSE.LGPL \ Makefile \ mkinstalldirs \ MIT.X11 \ MonoIcon.png \ README \ ScalableMonoIcon.svg \ winexe.in dist-local: dist-default dist-recursive: dist-pre dist-pre: rm -rf $(package) mkdir $(package) dist-tarball: dist-recursive tar cvzf $(package).tar.gz $(package) dist: dist-tarball rm -rf $(package) # the egrep -v is kind of a hack (to get rid of the makefrags) # but otherwise we have to make dist then make clean which # is sort of not kosher. And it breaks with DIST_ONLY_SUBDIRS. # # We need to set prefix on make so class/System/Makefile can find # the installed System.Xml to build properly distcheck: dist-tarball rm -rf InstallTest Distcheck-MCS ; \ mkdir InstallTest ; \ destdir=`cd InstallTest && pwd` ; \ mv $(package) Distcheck-MCS ; \ (cd Distcheck-MCS && \ $(MAKE) prefix=$(prefix) && $(MAKE) test && $(MAKE) install DESTDIR="$$destdir" && \ $(MAKE) clean && $(MAKE) dist || exit 1) || exit 1 ; \ mv Distcheck-MCS $(package) ; \ tar tzf $(package)/$(package).tar.gz |sed -e 's,/$$,,' |sort >distdist.list ; \ rm $(package)/$(package).tar.gz ; \ tar tzf $(package).tar.gz |sed -e 's,/$$,,' |sort >before.list ; \ find $(package) |egrep -v '(makefrag|response)' |sed -e 's,/$$,,' |sort >after.list ; \ cmp before.list after.list || exit 1 ; \ cmp before.list distdist.list || exit 1 ; \ rm -f before.list after.list distdist.list ; \ rm -rf $(package) InstallTest monocharge: chargedir=monocharge-`date -u +%Y%m%d` ; \ mkdir "$$chargedir" ; \ DESTDIR=`cd "$$chargedir" && pwd` ; \ $(MAKE) install DESTDIR="$$DESTDIR" || exit 1 ; \ tar cvzf "$$chargedir".tgz "$$chargedir" ; \ rm -rf "$$chargedir" # A bare-bones monocharge. monocharge-lite: chargedir=monocharge-lite-`date -u +%Y%m%d` ; \ mkdir "$$chargedir" ; \ DESTDIR=`cd "$$chargedir" && pwd` ; \ $(MAKE) -C mcs install DESTDIR="$$DESTDIR" || exit 1; \ $(MAKE) -C class/corlib install DESTDIR="$$DESTDIR" || exit 1; \ $(MAKE) -C class/System install DESTDIR="$$DESTDIR" || exit 1; \ $(MAKE) -C class/System.XML install DESTDIR="$$DESTDIR" || exit 1; \ $(MAKE) -C class/Mono.CSharp.Debugger install DESTDIR="$$DESTDIR" || exit 1; \ tar cvzf "$$chargedir".tgz "$$chargedir" ; \ rm -rf "$$chargedir"