[Mono-dev] Building mcs from source without mono

Raja R Harinath harinath at hurrynot.org
Fri May 8 01:50:25 EDT 2009


Hi,

Joachim Ante <joe at unity3d.com> writes:

> I placed this in mcs/build/profiles. (I tried a couple different values for BOOTSTRAP_PROFILE, but can't figure out what it should be)
>
>
> # -*- makefile -*-
>
> BOOTSTRAP_PROFILE = basic
> BOOTSTRAP_MCS = gmcs
> MCS = mcs

Given your values for MCS and BOOTSTRAP_MCS, BOOTSTRAP_PROFILE is
irrelevant.  Also, shouldn't MCS also be 'gmcs'?

> # nuttzing!
>
> profile-check:
> 	@:
>
> PROFILE_MCS_FLAGS = -d:NET_1_1 -d:NET_2_0
> FRAMEWORK_VERSION = 2.0
> Then i do:
>
> cd mcs/class/corlib
> make PROFILE=unity
>
> (This is on a completely clean 2.4 mcs svn checkout)
>
> the output i get is:
>
> make all-local
> cd ./../.. && make PROFILE=net_1_1_bootstrap
> Running make from the mcs directory is not supported. Run make from the parent directory (if using a tarball), or from the directory where the runtime is checked out (if
> using an SVN checkout).
> make[2]: *** [dir-check] Error 1
> make[1]: *** [../../class/lib/net_1_1_bootstrap/sn.exe] Error 2
> make: *** [do-all] Error 2

Hmm, depending on whether you want to sign the assemblies during the
build, there are a couple of options:

* If you don't need to sign the assemblies or can tolerate a custom
  separate signing step, you can use the following in profile/unity.make:

    NO_SIGN_ASSEMBLY = 1

* If you _do_ want to sign the assemblies during the build, and reuse
  the existing facilities: well, unfortunately, library.make isn't too
  helpful.

    ifdef NO_SIGN_ASSEMBLY
    SN = :
    else
    sn = $(topdir)/class/lib/net_1_1_bootstrap/sn.exe
    SN = $(Q) MONO_PATH="$(topdir)/class/lib/net_1_1_bootstrap$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(RUNTIME_FLAGS) $(sn)
    SNFLAGS = -q -R
    endif

  You could surround the 'else' part of a that stanza in a 'ifndef
  SN'/'endif' (that change come pre-approved -- please go ahead and
  commit if it helps, and doesn't break anything else), and just set

    SN = sn

  in your profile/unity.make.

- Hari



More information about the Mono-devel-list mailing list