[M3devel] The undefined ROOT problem, rebuilding cm3
Rodney M. Bates
rodney.bates at wichita.edu
Fri Nov 14 03:01:30 CET 2008
Jay wrote:
> I don't know, but something doesn't seem right.
>
> D:\cm3>dir /s/b bund* *ov* *temp* *tmp*
> ...
> D:\cm3\pkg\libm3\src\bundleintf\bundle.tmpl
>
> if defined("M3BUNDLE")
> _M3BUNDLE = M3BUNDLE
> else
> _M3BUNDLE = BIN_USE & SL & "m3bundle"
> end
>
> D:\dev2\cm3.2>dir /s/b /a-d bund*tmp*
> D:\dev2\cm3.2\doc\help\gen_html\libm3\src\bundleintf\bundle.tmpl.html
> D:\dev2\cm3.2\m3-libs\libm3\src\bundleintf\bundle-ov.tmpl
> D:\dev2\cm3.2\m3-libs\libm3\src\bundleintf\bundle.tmpl
>
> :\dev2\cm3.2>dir /s/b /a-d bund*tmp*
> :\dev2\cm3.2\doc\help\gen_html\libm3\src\bundleintf\bundle.tmpl.html
> :\dev2\cm3.2\m3-libs\libm3\src\bundleintf\bundle-ov.tmpl
> :\dev2\cm3.2\m3-libs\libm3\src\bundleintf\bundle.tmpl
>
> bundle-ov.tmp:
>
> if defined("M3BUNDLE")
> _M3BUNDLE = M3BUNDLE
> else
> _M3BUNDLE = format(ROOT & SL & "m3-tools" & SL & "m3bundle" & SL & "%s" &
> SL & "m3bundle", BUILD_DIR)
> M3BUNDLE = _M3BUNDLE
> end
>
> => this file requires ROOT or M3BUNDLE like you say, but this isn't
> normally used.
>
> D:\dev2\cm3.2>dir /s/b m3makefile | findstr /i bundleintf
> D:\dev2\cm3.2\m3-libs\libm3\src\bundleintf\m3makefile
>
> if defined("_M3BUNDLE_OVERRIDE")
> template ("bundle-ov")
> end
> template ("bundle")
>
> You defined _M3BUNDLE_OVERRIDE somewhere along the way?
Maybe I should have given more detail on the chain of events.
You got most of it. The missing piece is:
m3-libs/libm3/src/m3overrides contains:
_M3BUNDLE_OVERRIDE = "T"
So, 'do-cm3-*.sh build' runs 'cm3 -build -override', causing the
above file of quake code to be interpreted, defining _M3BUNDLE_OVERRIDE,
and the rest is as you have noted.
>
> Try replacing the one file with the other..
>
> - Jay
>
>
>
> > Date: Thu, 13 Nov 2008 17:29:17 -0600
> > From: rodney.bates at wichita.edu
> > To: m3devel at elegosoft.com
> > Subject: [M3devel] The undefined ROOT problem, rebuilding cm3
> >
> > Here is how the undefined ROOT problem happens when trying to rebuild
> > cm3 with itself.
> >
> > I had been making the assumption that commands build, ship, clean, when
> > supplied to the do-cm3-*.sh scripts, did the same things as -build,
> > -ship, -clean supplied to the cm3 command. Not so.
> >
> > build actually does cm3 -build -override, as do buildlocal and empty
> > commands to the scripts. clean does cm3 -clean -override, as does
> cleanlocal.
> > There is a buildglobal command that does -build without -override, but
> > it also does a ship as well. There appears to be no way to just build,
> > without either overriding or shipping.
> >
> > So, I have been running do-cm3-*.sh with no argument (and sometimes
> build).
> > This starts a chain of events that eventually leads to an installed libm3
> > that always executes quake script bundle-ov.tmpl, and it requires that
> > either M3BUNDLE or ROOT be defined, neither of which normally is. This
> > will happen trying to compile any program that uses libm3, which is just
> > about everything.
> >
> > We should document this somewhere.
>
More information about the M3devel
mailing list