[Mono-devel-list] PATCH: monolite-bootstrap
Raja R Harinath
rharinath at novell.com
Thu May 20 02:26:25 EDT 2004
Hi,
"Jaroslaw Kowalski" <jaak at zd.com.pl> writes:
> Hi guys!
>
> I've developed a patch that provides 2 additional targets for
> bootstrapping mono:
>
> $ make monolite-bootstrap
[snip]
> May I commit it ?
I don't know how you want to do it: I can work on 'make faststrap' and
hopefully check it in tomorrow, or monday. If you want to have a
monolite-bootstrap before that, I guess you can check in something for
the time being.
> -.PHONY: tmpinst-dir tmpinst-runtime bootstrap stage1 stage2 stage3 stage1-mono stage1-mcs bootstrap-clean bootstrap-check
> +.PHONY: tmpinst-dir tmpinst-runtime bootstrap stage1 stage2 stage3 stage1-mono stage1-$(BOOTSTRAP_MODE) bootstrap-clean bootstrap-check
Just add stage1-monolite to this. Don't use BOOTSTRAP_MODE here.
> +stage1-local-monolite:
> + rm -f $(mcs_topdir)/mcs/mcs.exe $(mcs_topdir)/class/lib/default/mscorlib.dll
> + rm -f $(mcs_topdir)/class/lib/default/System.dll $(mcs_topdir)/class/lib/default/System.Xml.dll
> + cd $(mcs_topdir)/jay && $(MAKE)
> + rm -rf monolite_download
> + mkdir monolite_download
> + cd monolite_download && cp ../../monolite-latest.tar.gz . && tar zxvf monolite-latest.tar.gz
> + cp monolite_download/monolite-*/*.dll $(mcs_topdir)/class/lib/default/
> + cp monolite_download/monolite-*/mcs.exe $(mcs_topdir)/mcs/mcs.exe
> + rm -rf monolite_download
OK. Call this stage1-monolite. But, once I put in 'make faststrap',
this'll become 'tmpinst-runtime', and can directly put stuff into
_tmpinst/lib.
> # Use stage1 'mcs', 'mscorlib.dll' and 'System.dll' to build fuller versions
> @@ -77,6 +101,7 @@
> cd $$mcs_topdir/mcs && $(MAKE) PROFILE=default ; \
> cd $$mcs_topdir/class/corlib && $(MAKE) PROFILE=default ; \
> cd $$mcs_topdir/class/System && $(MAKE) PROFILE=default ; \
> + cd $$mcs_topdir/class/System.XML && $(MAKE) PROFILE=default ; \
> cd $$mcs_topdir/class/Mono.CSharp.Debugger && $(MAKE) PROFILE=default
> $(MAKE) tmpinst-runtime
Re-run the build in System after System.XML.
> @@ -106,7 +131,7 @@
> tmpinst-runtime:
> tmpinst=`cd _tmpinst && pwd` && \
> mv -f $(mcs_topdir)/mcs/mcs.exe $$tmpinst/lib && \
> - mv -f $(mcs_topdir)/class/lib/default/mscorlib.dll $(mcs_topdir)/class/lib/default/System.dll $$tmpinst/lib && \
> + mv -f $(mcs_topdir)/class/lib/default/mscorlib.dll $(mcs_topdir)/class/lib/default/System.dll $(mcs_topdir)/class/lib/default/System.Xml.dll $$tmpinst/lib && \
> if test -f $(mcs_topdir)/class/lib/default/Mono.CSharp.Debugger.dll; then \
> mv -f $(mcs_topdir)/class/lib/default/Mono.CSharp.Debugger.dll $$tmpinst/lib ; else : ; fi
I think you need to put in a check for the existance of System.Xml.dll,
before moving it.
In the mcs/ tree:
> Index: Makefile
> ===================================================================
> RCS file: /cvs/public/mcs/Makefile,v
> retrieving revision 1.12
> diff -u -r1.12 Makefile
> --- Makefile 17 May 2004 08:52:42 -0000 1.12
> +++ Makefile 19 May 2004 10:43:06 -0000
> @@ -1,5 +1,5 @@
> thisdir := .
> -SUBDIRS := build jay mcs class mbas nunit20 monoresgen ilasm tools tests errors docs
> +SUBDIRS := build jay mcs monoresgen class mbas nunit20 ilasm tools tests errors docs
> OVERRIDE_BARE_TARGETS = hells yeah
> include build/rules.make
Then, monoresgen has to be compiled with BOOT_COMPILE instead of
CSCOMPILE. This may need some tinkering with build/executable.make.
> Index: build/profiles/default.make
> ===================================================================
> RCS file: /cvs/public/mcs/build/profiles/default.make,v
> retrieving revision 1.10
> diff -u -r1.10 default.make
> --- build/profiles/default.make 27 Apr 2004 06:00:57 -0000 1.10
> +++ build/profiles/default.make 19 May 2004 10:43:07 -0000
> @@ -20,6 +20,7 @@
> else
> MCS = $(PLATFORM_RUNTIME) $(BOOTSTRAP_MCS) /lib:$(topdir)/class/lib/$(PROFILE)
> endif
> +RESGEN = MONO_PATH="$(topdir)/class/lib/$(PROFILE):$$MONO_PATH" $(RUNTIME) --debug $(topdir)/monoresgen/monoresgen.exe
To match the style of the rest, put
INTERNAL_RESGEN = $(RUNTIME) $(topdir)/monoresgen/monoresgen.exe
in rules.make, and just use
MONO_PATH=$(topdir)/class/lib/$(PROFILE):$$MONO_PATH $(INTERNAL_RESGEN) $<
in Npgsql/Makefile.
- Hari
More information about the Mono-devel-list
mailing list