Quick hack to make fast kernel builds easier [really cross-build
sam at freebsd.org
Sun Jan 11 13:45:02 PST 2009
M. Warner Losh wrote:
> In message: <20090111191251.GA74450 at zim.MIT.EDU>
> David Schultz <das at FreeBSD.ORG> writes:
> : On Sun, Jan 11, 2009, Ed Schouten wrote:
> : > I often just run `make' in /usr/obj/...,
> : > which also saves some typing, but unfortunately that doesn't work when
> : > cross compiling.
> : Also, as far as I know, there's no convenient way to rebuild a
> : single module for another architecture. I use the following script
> : called 'arch' to set the appropriate environment variables, so if
> : I've already run 'make universe' and I want to rebuild libc for
> : sparc64, I say:
> : cd /usr/src/lib/libc && arch sparc64 make
> : It would be nice if there were a better mechanism for this that's
> : integrated into the build system.
> I do one of the following:
> (1) env TARGET=arm make buildworld -DNO_CLEAN
> (2) env TARGET=arm make buildenv
> $ cd lib/libc && make
> These both work out well enough in practice for me. I've wanted a
> target that was 'reworld' that just did an 'all' and maybe a few other
> things, but I've never had the time to polish this up (had it in a
> couple of trees that I lost due to disk failure).
> I do agree it would be nice if there was some way to do 'all' for a
> subdirectory with a 'trust me, I know what I'm doing, so don't do all
> that other stuff' flag.
I told das privately but will note publicly that:
uses make buildenv to cross-build various bits. At some point I want to
promote some of the shell code to be part of nanobsd but until we've got
something to deal with ports I'm in no hurry.
More information about the freebsd-arch