- wget -O $(srcdir)/../monolite-latest.tar.gz http://www.go-mono.com/daily/monolite-latest.tar.gz
-
-monolite-bootstrap: tmpinst-monolite mono-do-runtime-only
- rm -f $(MCS_FILES)
- $(MAKE) tmpinst-mcs-short-build
- $(MAKE) fasterstrap
-
-# internal targets
-
-tmpinst-mcs-basic-build: mcs-do-basic-build tmpinst-dir
- mv -f $(MCS_BASIC_FILES) $(tmpinst)/lib
-
-tmpinst-mcs-short-build: mcs-do-short-build tmpinst-dir
- mv -f $(MCS_FILES) $(tmpinst)/lib
-
-tmpinst-mcs-full-build: mcs-do-full-build tmpinst-dir
- cp -f $(MCS_FILES) $(tmpinst)/lib
-
-tmpinst-monolite: tmpinst-dir
- -rm -f $(tmpinst)/lib/mcs.exe $(tmpinst)/lib/*.dll
- -rm -fr $(tmpinst)/monolite-*
- srcdir=`cd $(srcdir) && pwd` && cd $(tmpinst) && ( gzip -d -c $$srcdir/../monolite-latest.tar.gz | tar xf - )
- mv -f $(tmpinst)/monolite-*/mcs.exe $(tmpinst)/monolite-*/*.dll $(tmpinst)/lib
- rm -fr $(tmpinst)/monolite-*
-
-# Build enough of 'mono' to run the stage1 mcs.exe
-mono-do-runtime-only: $(CONFIG_HEADER)
- for dir in $(libgc_dir) mono data; do \
- (cd $$dir && $(MAKE)) || exit 1 ; \
- done
-
-mcs-do-basic-build:
- rm -f $(MCS_FILES)
- for dir in $(MCS_BASIC_DIRS); do \
- (cd $(mcs_topdir)/$$dir && $(MAKE) PROFILE=default USE_BOOT_COMPILE=yes BOOTSTRAP_MCS="mcs -d:BOOTSTRAP_WITH_OLDLIB") || exit 1 ; \
- done
-
-mcs-do-short-build:
- tmpinst=`cd $(tmpinst) && pwd` ; \
- PATH=$$tmpinst/bin:$$PATH; export PATH ; \
- for dir in $(MCS_DIRS); do \
- (cd $(mcs_topdir)/$$dir && $(MAKE) PROFILE=default) || exit 1 ; \
- done
-
-mcs-do-full-build:
- tmpinst=`cd $(tmpinst) && pwd` ; \
- PATH=$$tmpinst/bin:$$PATH ; export PATH ; \
- cd $(mcs_topdir) && $(MAKE) all-profiles
-
-mcs-do-clean-profiles:
- cd $(mcs_topdir) && $(MAKE) clean-profiles
-
-mcs-do-run-test: tmpinst-dir
- tmpinst=`cd $(tmpinst) && pwd` ; \
- PATH=$$tmpinst/bin:$$PATH ; export PATH ; \
- cd $(mcs_topdir) && $(MAKE) PROFILE=default run-test
-
-populate-runtime-subdir:
- test -n '$(populate_profiles)'
- @srcdir=`cd $(srcdir) && pwd`; tmpinst=`pwd`/$(tmpinst) ; \
- PATH=$$tmpinst/bin:$$PATH ; export PATH ; \
- for profile in $(populate_profiles); do \
- ( set fnord `echo $$profile | sed 's,:, ,g'` && \
- echo "cd $(mcs_topdir) && $(MAKE) PROGRAM_INSTALL_DIR=$$srcdir/runtime PROFILE=$$2 LIBRARY_INSTALL_DIR=$$srcdir/runtime/$$3 prefix=$$tmpinst/prefix install" && \
- cd $(mcs_topdir) && \
- $(MAKE) PROGRAM_INSTALL_DIR=$$srcdir/runtime PROFILE=$$2 LIBRARY_INSTALL_DIR=$$srcdir/runtime/$$3 prefix=$$tmpinst/prefix install ) || exit 1 ; \
- done
- find $(tmpinst)/prefix -type f -path '*/jay*' -exec rm -f '{}' ';'
- test -z "`find $(tmpinst)/prefix -type f -print`"
- rm -rf $(tmpinst)/prefix
-
-tmpinst-dir:
- mkdir -p $(tmpinst) $(tmpinst)/bin $(tmpinst)/lib $(tmpinst)/etc/mono
- $(MAKE) tmpinst-dir-contents
-
-tmpinst-dir-contents: $(tmpinst)/bin/mono $(tmpinst)/bin/mcs $(tmpinst)/etc/mono/machine.config
-
-if PLATFORM_WIN32
-
-$(tmpinst)/bin/mono: $(srcdir)/Makefile.am
- echo '#! /bin/sh' > $@
- echo 'builddir="'`pwd`'"; win_builddir="'`cygpath -w -a .`'"' >> $@
- echo 'tmpinst="$$win_builddir\\$(tmpinst)"' >> $@
- echo 'if test -z "$$MONO_PATH" ; then MONO_PATH="$$tmpinst\\lib"; else MONO_PATH="$${MONO_PATH};$$tmpinst\\lib" ; fi' >> $@
- echo 'MONO_CFG_DIR="$$tmpinst\\etc"' >> $@
- echo 'export MONO_PATH MONO_CFG_DIR' >> $@
- echo 'exec "$$builddir/libtool" --mode=execute "$$builddir/mono.exe" "$$@"' >> $@
- chmod +x $@
-
-else
+ -rm -fr $(mcslib)/monolite-*
+ -mkdir -p $(mcslib)
+ test ! -d $(monolite) || test ! -d $(monolite).old || rm -fr $(monolite).old
+ test ! -d $(monolite) || mv -f $(monolite) $(monolite).old
+ cd $(mcslib) && { (wget -O- $(monolite_url) || curl $(monolite_url)) | gzip -d | tar xf - ; }
+ cd $(mcslib) && mv -f monolite-* monolite
+
+.PHONY: validate do-build-mono-mcs mcs-do-clean mcs-do-tests
+validate: do-build-mono-mcs
+ $(MAKE) mcs-do-tests
+do-build-mono-mcs: mcs-do-clean
+ $(MAKE) all
+mcs-do-clean:
+ cd runtime && $(MAKE) clean-local
+ cd mono/tests && $(MAKE) clean
+mcs-do-tests:
+ cd runtime && $(MAKE) check-local
+ cd mono/tests && $(MAKE) check
+
+.PHONY: compiler-tests mcs-do-compiler-tests
+compiler-tests:
+ $(MAKE) test_select='TEST_SUBDIRS="tests errors"' validate
+mcs-do-compiler-tests:
+ $(MAKE) test_select='TEST_SUBDIRS="tests errors"' mcs-do-tests
+
+.PHONY: bootstrap-world
+bootstrap-world: compiler-tests
+ $(MAKE) install