In .:
authorRaja R Harinath <harinath@hurrynot.org>
Fri, 19 Nov 2004 13:48:18 +0000 (13:48 -0000)
committerRaja R Harinath <harinath@hurrynot.org>
Fri, 19 Nov 2004 13:48:18 +0000 (13:48 -0000)
2004-11-19  Raja R Harinath  <rharinath@novell.com>

* Makefile (%-profiles): Go through an intermediate set of rules.
Move body to ...
(profiles-do--%): ... this.
(profiles-do--run-test): Customized rule that usefully runs with
'make -j' and 'make -k'.
(profiles-do--all, profile-do--%--all): Orchestrate the bootstrap
process.

In mcs:
2004-11-19  Raja R Harinath  <rharinath@novell.com>

* Makefile (EXTRA_DISTFILES): Remove mcs.exe.config.  It's
automatically handled by executable.make.
(PROGRAM): Make profile-specific.

In gmcs:
2004-11-19  Raja R Harinath  <rharinath@novell.com>

* Makefile (gmcs.exe): Update to new location of bootstrap mcs.exe.

In build:
2004-11-19  Raja R Harinath  <rharinath@novell.com>

Orchestrate the bootstrap.
* rules.make (INTERNAL_MCS): Look for mcs.exe in profile-specific directory.
* profiles/net_1_1_bootstrap.make (BOOTSTRAP_MCS): Use mcs.exe from
basic profile.
* profiles/default.make (BOOTSTRAP_MCS): Use mcs.exe from the
net_1_1_bootstrap profile.
* profiles/net_2_0_bootstrap.make (BOOTSTRAP_MCS): Use mcs.exe
from default profile.
(all-local, clean-local): New.  Copy mcs.exe from default profile,
but customize it to work with 2.0.x libraries.
* profiles/net_2_0.make (BOOTSTRAP_MCS): Define approprately for
building corlib.

* executable.make (executable_CLEAN_FILES): Clean up more files.
($(PROGRAM)): Move .mdb files too.

In class:
2004-11-19  Raja R Harinath  <rharinath@novell.com>

* Makefile (DIST_PROFILES): New.
(dist-local): Create profile-specific directories in the tarball.

In class/corlib:
2004-11-19  Raja R Harinath  <rharinath@novell.com>

* Makefile (LIBRARY_COMPILE): Simplify.

In class/System:
2004-11-19  Raja R Harinath  <rharinath@novell.com>

* Makefile (USE_BOOT_COMPILE): Re-organize to use BOOT_COMPILE
during the first pass.
(BOOTSTRAP_MCS): Use mscorlib.dll from the net_2_0 profile.

svn path=/trunk/mcs/; revision=36315

19 files changed:
mcs/ChangeLog
mcs/Makefile
mcs/build/ChangeLog
mcs/build/executable.make
mcs/build/profiles/default.make
mcs/build/profiles/net_1_1_bootstrap.make
mcs/build/profiles/net_2_0.make
mcs/build/profiles/net_2_0_bootstrap.make
mcs/build/rules.make
mcs/class/ChangeLog
mcs/class/Makefile
mcs/class/System/ChangeLog
mcs/class/System/Makefile
mcs/class/corlib/ChangeLog
mcs/class/corlib/Makefile
mcs/gmcs/ChangeLog
mcs/gmcs/Makefile
mcs/mcs/ChangeLog
mcs/mcs/Makefile

index 0e41d8c94bf04e8e28765f3fc2657f9b8f7009bb..373b22bcee50f73f94c4525810f72e1952e1b000 100644 (file)
@@ -1,3 +1,13 @@
+2004-11-19  Raja R Harinath  <rharinath@novell.com>
+
+       * Makefile (%-profiles): Go through an intermediate set of rules.
+       Move body to ...
+       (profiles-do--%): ... this.
+       (profiles-do--run-test): Customized rule that usefully runs with
+       'make -j' and 'make -k'.
+       (profiles-do--all, profile-do--%--all): Orchestrate the bootstrap
+       process.
+
 2004-11-09  Raja R Harinath  <rharinath@novell.com>
 
        * Makefile (basic_SUBDIRS): New.
index 37f665ba64ad16e2637d7b4e9276380c55e546a9..2df7ab91667e99fa35b425957104f917a90c97e6 100644 (file)
@@ -34,19 +34,32 @@ all-local $(STD_TARGETS:=-local):
 PROFILES = default net_2_0
 
 .PHONY: all-profiles $(STD_TARGETS:=-profiles)
-all-profiles $(STD_TARGETS:=-profiles):
-       $(MAKE) $(PROFILES:%=profile-do--%--$(@:-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 --, ,$*)
 
-# Ensure these don't run in parallel, for now.
-profile-do--net_2_0--run-test: profile-do--default--run-test
+profiles-do--run-test:
+       ret=:; \
+       $(MAKE) PROFILE=default run-test || ret=false; \
+       $(MAKE) PROFILE=net_2_0 run-test && $$ret
+
+# Orchestrate the bootstrap here.
+profiles-do--all: profile-do--net_2_0--all
 
 profile-do--net_2_0--all: profile-do--net_2_0_bootstrap--all
 profile-do--net_2_0_bootstrap--all: profile-do--default--all
 
+ifeq (linux, $(PLATFORM))
+profile-do--default--all: profile-do--net_1_1_bootstrap--all
+profile-do--net_1_1_bootstrap--all: profile-do--basic--all
+endif
+
 testcorlib:
        @cd class/corlib && $(MAKE) test run-test
 
index 221040d65642bd72284600737a41208410d78167..be38b4a1df5a2a40e84d653242cb7347af227510 100644 (file)
@@ -1,3 +1,21 @@
+2004-11-19  Raja R Harinath  <rharinath@novell.com>
+
+       Orchestrate the bootstrap.
+       * rules.make (INTERNAL_MCS): Look for mcs.exe in profile-specific directory.
+       * profiles/net_1_1_bootstrap.make (BOOTSTRAP_MCS): Use mcs.exe from
+       basic profile.  
+       * profiles/default.make (BOOTSTRAP_MCS): Use mcs.exe from the
+       net_1_1_bootstrap profile.
+       * profiles/net_2_0_bootstrap.make (BOOTSTRAP_MCS): Use mcs.exe
+       from default profile.
+       (all-local, clean-local): New.  Copy mcs.exe from default profile,
+       but customize it to work with 2.0.x libraries.
+       * profiles/net_2_0.make (BOOTSTRAP_MCS): Define approprately for
+       building corlib.
+
+       * executable.make (executable_CLEAN_FILES): Clean up more files.
+       ($(PROGRAM)): Move .mdb files too.
+
 2004-11-18  Atsushi Enomoto  <atsushi@ximian.com>
 
        * library.make: Reverted the last fix. It broke windows build (that
index 261b5c9415776f155c56e7821e9ea0f20b914557..f985537e75a5e016a46cc2514a112b008f937ac5 100644 (file)
@@ -9,6 +9,8 @@ ifdef base_prog_config
 PROGRAM_config := $(PROGRAM).config
 endif
 
+executable_CLEAN_FILES = *.exe $(PROGRAM) $(PROGRAM).mdb $(BUILT_SOURCES)
+
 ifeq (cat,$(PLATFORM_CHANGE_SEPARATOR_CMD))
 response = $(sourcefile)
 else
@@ -39,7 +41,7 @@ uninstall-local:
        -rm -f $(DESTDIR)$(PROGRAM_INSTALL_DIR)/$(base_prog) $(DESTDIR)$(PROGRAM_INSTALL_DIR)/$(base_prog).mdb
 
 clean-local:
-       -rm -f *.exe $(BUILT_SOURCES) $(executable_CLEAN_FILES) $(CLEAN_FILES)
+       -rm -f $(executable_CLEAN_FILES) $(CLEAN_FILES)
 
 test-local: $(PROGRAM)
        @:
@@ -64,10 +66,12 @@ $(PROGRAM): $(BUILT_SOURCES) $(EXTRA_SOURCES) $(response)
        $(PROGRAM_COMPILE) /target:exe /out:$(base_prog) $(BUILT_SOURCES) $(EXTRA_SOURCES) @$(response)
 ifneq ($(base_prog),$(PROGRAM))
        mv $(base_prog) $(PROGRAM)
+       -mv $(base_prog).mdb $(PROGRAM).mdb
 endif
 
 ifdef PROGRAM_config
 ifneq ($(base_prog_config),$(PROGRAM_config))
+executable_CLEAN_FILES += $(PROGRAM_config)
 $(PROGRAM_config): $(base_prog_config)
        cp $(base_prog_config) $(PROGRAM_config)
 endif
index 8549c6db0f36d4a17c52334628faff2be2cc4938..ae9fd0c0dfbabfb25e805bf3b37451461598be8a 100644 (file)
@@ -15,6 +15,7 @@
 # in the MONO_PATH too).
 
 ifdef PLATFORM_MONO_NATIVE
+BOOTSTRAP_MCS = MONO_PATH="$(topdir)/class/lib/net_1_1_bootstrap:$$MONO_PATH" $(RUNTIME) $(topdir)/class/lib/net_1_1_bootstrap/mcs.exe
 MCS = MONO_PATH="$(topdir)/class/lib/$(PROFILE):$$MONO_PATH" $(INTERNAL_MCS)
 MBAS = MONO_PATH="$(topdir)/class/lib/$(PROFILE):$$MONO_PATH" $(INTERNAL_MBAS)
 else
index 55332aa26d313600a629d9c814f1e0563972dc80..5c0f740bafccee5b4d1829c1a9bf08b21baa0c84 100644 (file)
@@ -1,6 +1,6 @@
 # -*- makefile -*-
 
-#BOOTSTRAP_MCS = MONO_PATH="$(topdir)/class/lib/basic:$$MONO_PATH" $(INTERNAL_MCS)
+BOOTSTRAP_MCS = MONO_PATH="$(topdir)/class/lib/basic:$$MONO_PATH" $(RUNTIME) $(topdir)/class/lib/basic/mcs.exe
 MCS = MONO_PATH="$(topdir)/class/lib/$(PROFILE):$$MONO_PATH" $(INTERNAL_MCS)
 MBAS = MONO_PATH="$(topdir)/class/lib/$(PROFILE):$$MONO_PATH" $(INTERNAL_MBAS)
 
index b1a6ef4985f4836987c6a0a781414db2b22474c0..e0a3b09c2e9ec15313b78cf04ab911518a71206b 100644 (file)
@@ -1,10 +1,12 @@
 # -*- makefile -*-
 
+BOOTSTRAP_MCS = MONO_PATH="$(topdir)/class/lib/net_2_0_bootstrap$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(INTERNAL_GMCS)
 MCS = MONO_PATH="$(topdir)/class/lib/$(PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(INTERNAL_GMCS)
 
 # nuttzing!
 
 profile-check:
+       @:
 
 PROFILE_MCS_FLAGS = -d:NET_1_1 -d:NET_2_0
 FRAMEWORK_VERSION = 2.0
index 74851d933a4eda0913131785db785ef4a79b754a..8bf82748c0535b93c48a576e7c9ce7f2264c4e2e 100644 (file)
@@ -4,12 +4,25 @@
 # Note that we're using the .NET 1.1 MCS but MONO_PATH points to the net_2_0_bootstrap directory.
 # We do it this way to get assembly version references right.
 #
-BOOTSTRAP_MCS = MONO_PATH="$(topdir)/class/lib/default$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(INTERNAL_MCS)
+BOOTSTRAP_MCS = MONO_PATH="$(topdir)/class/lib/default$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(topdir)/class/lib/default/mcs.exe
 MCS = MONO_PATH="$(topdir)/class/lib/$(PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(INTERNAL_MCS)
 
-profile-check:
-       @:
+profile-check: 
+
+all-local: $(topdir)/class/lib/$(PROFILE)/mcs.exe $(topdir)/class/lib/$(PROFILE)/mcs.exe.config
+
+$(topdir)/class/lib/$(PROFILE)/mcs.exe: $(topdir)/class/lib/default/mcs.exe
+       cp $< $@
+
+$(topdir)/class/lib/$(PROFILE)/mcs.exe.config: $(topdir)/gmcs/gmcs.exe.config
+       cp $< $@
 
 PROFILE_MCS_FLAGS = -d:NET_1_1 -d:BOOTSTRAP_NET_2_0
 FRAMEWORK_VERSION = 2.0
 NO_SIGN_ASSEMBLY = yes
+
+clean-local: clean-profile
+
+clean-profile:
+       rm -f $(topdir)/class/lib/$(PROFILE)/mcs.exe
+       rm -f $(topdir)/class/lib/$(PROFILE)/mcs.exe.config
index a76d29220c66b2241458b2c8c462e546068401f8..21b38be0cd03460f0921605dec79e786e612b7bb 100644 (file)
@@ -26,7 +26,7 @@ INSTALL_DATA = $(INSTALL) -m 644
 INSTALL_BIN = $(INSTALL) -m 755
 INSTALL_LIB = $(INSTALL_BIN)
 MKINSTALLDIRS = $(SHELL) $(topdir)/mkinstalldirs
-INTERNAL_MCS = $(RUNTIME) $(topdir)/mcs/mcs.exe
+INTERNAL_MCS = $(RUNTIME) $(topdir)/class/lib/$(PROFILE)/mcs.exe
 INTERNAL_MBAS = $(RUNTIME) $(topdir)/mbas/mbas.exe
 INTERNAL_GMCS = $(RUNTIME) $(topdir)/gmcs/gmcs.exe
 INTERNAL_ILASM = $(RUNTIME) $(topdir)/ilasm/ilasm.exe
index 2fe978ef2c40bea84eeb0adda787f1df6d4c3327..e0f7342a17f14a90fcc014611675fcf4dc83f2a1 100644 (file)
@@ -1,3 +1,8 @@
+2004-11-19  Raja R Harinath  <rharinath@novell.com>
+
+       * Makefile (DIST_PROFILES): New.
+       (dist-local): Create profile-specific directories in the tarball.
+
 2004-11-12  Martin Baulig  <martin@ximian.com>
 
        * Makefile (SUBDIRS): Added Mono.C5.
index a4fa887cd07b840194d298e0a8a22af51f67a1d9..03cfb1be62801dd3ba8e8acb69d99a0a33d47e3f 100644 (file)
@@ -96,5 +96,7 @@ DISTFILES = \
 all-local $(STD_TARGETS:=-local):
        @:
 
+DIST_PROFILES = basic net_1_1_bootstrap default net_2_0_bootstrap net_2_0
+
 dist-local: dist-default
-       -$(MKINSTALLDIRS) $(distdir)/lib
+       -$(MKINSTALLDIRS) $(distdir)/lib $(DIST_PROFILES:%=$(distdir)/lib/%)
index a8e13d6a0b25f0c2d7167a15e04b4fbc4a2e0727..8c65951749125588a77a91a76349a3e58733f42a 100644 (file)
@@ -1,3 +1,9 @@
+2004-11-19  Raja R Harinath  <rharinath@novell.com>
+
+       * Makefile (USE_BOOT_COMPILE): Re-organize to use BOOT_COMPILE
+       during the first pass.
+       (BOOTSTRAP_MCS): Use mscorlib.dll from the net_2_0 profile.
+
 2004-11-18  Lluis Sanchez Gual <lluis@novell.com>
 
        * System.dll.sources: Added new files:
index 0ee3275c8acc441db7f1ebdbf5409b747ed493c1..dbcbd63338cb4ddf84423b371e11d8e01828e526 100644 (file)
@@ -20,17 +20,17 @@ EXTRA_DISTFILES = \
        System.ComponentModel.Design/Changelog          \
        Test/test-config-file
 
-ifdef USE_BOOT_COMPILE
-LIBRARY_COMPILE = $(BOOT_COMPILE)
+lib_file := $(wildcard ../lib/$(PROFILE)/System.dll)
+ifndef lib_file
+USE_BOOT_COMPILE = yes
 endif
 
-ifeq (net_2_0,$(PROFILE))
-
-lib_file := $(wildcard ../lib/net_2_0/System.dll)
-ifndef lib_file
-MCS = MONO_PATH="$(topdir)/class/lib/net_2_0$(PLATFORM_PATH_SEPARATOR)$(topdir)/class/lib/net_2_0_bootstrap$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(INTERNAL_GMCS)
+ifeq (net_2_0, $(PROFILE))
+BOOTSTRAP_MCS = MONO_PATH="$(topdir)/class/lib/net_2_0$(PLATFORM_PATH_SEPARATOR)$(topdir)/class/lib/net_2_0_bootstrap$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(INTERNAL_GMCS)
 endif
 
+ifdef USE_BOOT_COMPILE
+LIBRARY_COMPILE = $(BOOT_COMPILE)
 endif
 
 ifndef CYCLIC_DEP_FILE
index cbcb140c92d4fa18818a5d401dd8f493f49d941c..b4b9d310be743a74f45db2784d4aafcf4d6889ae 100644 (file)
@@ -1,3 +1,7 @@
+2004-11-19  Raja R Harinath  <rharinath@novell.com>
+
+       * Makefile (LIBRARY_COMPILE): Simplify.
+
 2004-10-29  Raja R Harinath  <rharinath@novell.com>
 
        * Makefile: Move support for building net_2_0_bootstrap libraries
index b0a3aca4e7b3e28a22394035e556adcd4e894435..618595b6c4de394043cb5e6c56273ee472e99fe5 100644 (file)
@@ -75,14 +75,7 @@ EXTRA_DISTFILES = \
        $(plattestlib).excludes \
        Test/ms_run_test.sh
 
-ifeq (net_2_0, $(PROFILE))
-# Net 2.0 corlib is built with in-tree 'gmcs'
-gmcs = $(topdir)/gmcs/gmcs.exe
-
-LIBRARY_COMPILE = MONO_PATH="../lib/net_2_0_bootstrap$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(gmcs) $(USE_MCS_FLAGS) /define:NET_1_1 /define:NET_2_0
-else
 LIBRARY_COMPILE = $(BOOT_COMPILE)
-endif
 
 include ../../build/library.make
 
index 1079e9eab6b7f3a45f095062fac215ee90df30a4..51a19632125620518faef60341c1c47f00ca7af1 100755 (executable)
@@ -1,3 +1,7 @@
+2004-11-19  Raja R Harinath  <rharinath@novell.com>
+
+       * Makefile (gmcs.exe): Update to new location of bootstrap mcs.exe.
+
 2004-11-17  Raja R Harinath  <rharinath@novell.com>
 
        * typemanager.cs (TypeHandle.GetTypeHandle): Make private.
index d9c310b5496b8c20e9e986bd411974aedd4f2c54..e214046590c42424a72a369e03adc46540ea5fc5 100644 (file)
@@ -87,7 +87,7 @@ bootstrap-libs:
        cd .. && $(MAKE) PROFILE=net_2_0_bootstrap all
 
 gmcs.exe: $(all_sources) $(bootstrap_libfiles)
-       MONO_PATH="../class/lib/net_2_0_bootstrap$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" mono ../mcs/mcs.exe $(DEBUG_FLAGS) -2 /target:exe /debug /out:$@ $(all_sources)
+       MONO_PATH="../class/lib/net_2_0_bootstrap$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(topdir)/class/lib/net_2_0_bootstrap/mcs.exe $(DEBUG_FLAGS) -2 /target:exe /debug /out:$@ $(all_sources)
 
 gmcs2.exe: $(all_sources)
        MONO_PATH="../class/lib/net_2_0$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" time mcs -2 /target:exe /debug /out:$@ $^ $(DEBUG_FLAGS) 
index e6ddd8a8337b707452788190f132079bc4be1d62..ac5a6bc885585754f20c1638712ae94a3de46dd6 100755 (executable)
@@ -1,3 +1,9 @@
+2004-11-19  Raja R Harinath  <rharinath@novell.com>
+
+       * Makefile (EXTRA_DISTFILES): Remove mcs.exe.config.  It's
+       automatically handled by executable.make.
+       (PROGRAM): Make profile-specific.
+
 2004-11-18  Marek Safar  <marek.safar@seznam.cz>
 
        * expression.cs (DoResolveBase): Fixed wrong warning for out\r
index 45b0668c2b14256cedad77fe059eb156c13d4fc3..ad5a75b7966cf8f77ab3e570347b61b3dd023ff2 100644 (file)
@@ -9,11 +9,10 @@ EXTRA_DISTFILES = \
        compiler.doc            \
        compiler.sln            \
        cs-parser.jay           \
-       mcs.exe.config          \
        NOTES                   \
        TODO
 
-PROGRAM = mcs.exe
+PROGRAM = $(topdir)/class/lib/$(PROFILE)/mcs.exe
 PROGRAM_COMPILE = $(BOOT_COMPILE)
 PROGRAM_INSTALL_DIR = $(prefix)/lib/mono/1.0
 
@@ -34,8 +33,8 @@ TIME = time
 btest: mcs2.exe mcs3.exe
        ls -l mcs2.exe mcs3.exe
 
-mcs2.exe: mcs.exe
-       $(TIME) $(RUNTIME) ./mcs.exe $(USE_MCS_FLAGS) /target:exe /out:$@ $(BUILT_SOURCES) @$(response)
+mcs2.exe: $(PROGRAM)
+       $(TIME) $(RUNTIME) $(PROGRAM) $(USE_MCS_FLAGS) /target:exe /out:$@ $(BUILT_SOURCES) @$(response)
 
 mcs3.exe: mcs2.exe
        $(TIME) $(RUNTIME) ./mcs2.exe $(USE_MCS_FLAGS) /target:exe /out:$@ $(BUILT_SOURCES) @$(response)
@@ -50,7 +49,7 @@ ctest:
 # we need this because bash tries to use its own crappy timer
 FRIENDLY_TIME = $(shell which time) -f'%U seconds'
 
-do-time : mcs.exe
+do-time : $(PROGRAM)
        @ echo -n "Run 1:   "
        @ rm -f mcs2.exe
        @ $(MAKE) TIME="$(FRIENDLY_TIME)" mcs2.exe > /dev/null || (echo FAILED; exit 1)
@@ -62,10 +61,10 @@ do-time : mcs.exe
 do-corlib:
        @ echo -n "corlib:  "
        @ rm -f ../class/lib/mscorlib.dll
-       @ cd ../class/corlib ; $(MAKE) BOOTSTRAP_MCS="$(FRIENDLY_TIME) mono ../../mcs/mcs.exe" > /dev/null || (echo FAILED; exit 1)
+       @ cd ../class/corlib ; $(MAKE) BOOTSTRAP_MCS='$(FRIENDLY_TIME) mono $$(topdir)/class/lib/$(PROFILE)/mcs.exe' > /dev/null || (echo FAILED; exit 1)
 
 PROFILER=default
 
-profile : mcs.exe
-       $(RUNTIME) --profile=$(PROFILER) ./mcs.exe $(USE_MCS_FLAGS) /target:exe /out:mcs2.exe $(BUILT_SOURCES) @$(response)
+profile : $(PROGRAM)
+       $(RUNTIME) --profile=$(PROFILER) $(PROGRAM) $(USE_MCS_FLAGS) /target:exe /out:mcs2.exe $(BUILT_SOURCES) @$(response)