Quick hack to make fast kernel builds easier

David Schultz das at FreeBSD.ORG
Sun Jan 11 11:22:32 PST 2009


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.

#!/bin/sh

arch=$1
basepath=/usr/src

export __MAKE_CONF=/dev/null
export MAKEOBJDIRPREFIX=/usr/obj/${arch}
export MACHINE_ARCH=${arch}
export MACHINE=${arch}
export CPUTYPE=
export GROFF_BIN_PATH=/usr/obj/${arch}${basepath}/tmp/legacy/usr/bin
export GROFF_FONT_PATH=/usr/obj/${arch}${basepath}/tmp/legacy/usr/share/groff_font
export GROFF_TMAC_PATH=/usr/obj/${arch}${basepath}/tmp/legacy/usr/share/tmac
export _SHLIBDIRPREFIX=/usr/obj/${arch}${basepath}/tmp
export INSTALL="sh /usr/src/tools/install.sh"
export PATH=/usr/obj/${arch}${basepath}/tmp/legacy/usr/sbin:/usr/obj/${arch}${basepath}/tmp/legacy/usr/bin:/usr/obj/${arch}${basepath}/legacy/usr/games:/usr/obj/${arch}${basepath}/tmp/usr/sbin:/usr/obj/${arch}${basepath}/tmp/usr/bin:/usr/obj/${arch}${basepath}/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin
DESTDIR=/usr/obj/${arch}${basepath}/tmp

shift
$*


More information about the freebsd-arch mailing list