On Mon, Apr 28, 2003 at 09:18:02PM -0600, M. Warner Losh wrote: > In message: <XFMail.20030428164935.jhb_at_FreeBSD.org> > John Baldwin <jhb_at_freebsd.org> writes: > : > : On 26-Apr-2003 Marcel Moolenaar wrote: > : > The best way to cross-build is by starting a cross-world, which you > : > then abort after the headers are installed in the object tree. This > : > should leave a usable set of cross-tools you can use for buildkernel. > : > : It would be nice if there was a 'buildtools' target that did just > : enough to allow one to do a buildkernel. Maybe 'buildkerneltools' > : and 'buildworldtools' targets where the latter let you cross-build > : individual libraries or binaries > > make -f Makefile _obj _build-tools > > is what I've been using. You don't need bootstrap-tools typically... > However, you want the _ version since it uses the right environment. > It does build a little more than is necessary, but not a lot more. > Actually, you need everything up to and including the _cross-tools stage in the list generated by the following command: make -f Makefile.inc1 -V WMAKE_TGTS The right way to run them is by cd /usr/src; make -m `pwd`/share/mk -f Makefile.inc1 <target> It's rather an old issue, and I even recall writing a simple script that does something like this. Yes, I've found it, attached. Cheers, -- Ruslan Ermilov Sysadmin and DBA, ru_at_sunbay.com Sunbay Software AG, ru_at_FreeBSD.org FreeBSD committer, +380.652.512.251 Simferopol, Ukraine http://www.FreeBSD.org The Power To Serve http://www.oracle.com Enabling The Information Age
attached mail follows:
On Thu, Jul 25, 2002 at 07:46:50PM -0700, Mark Peek wrote: > At 6:50 PM +0300 7/25/02, Ruslan Ermilov wrote: > >How about this simple script (tinder.sh)? > > > >: #!/bin/sh > >: cd /usr/src > >: ARCHES="i386 alpha sparc64" > >: if [ "x$1" = "x" ]; then > >: for arch in ${ARCHES}; do > >: make TARGET_ARCH=${arch} -j4 -m/usr/src/share/mk \ > >: -fMakefile.inc1 -DNOCLEAN crossenv > >: done > >: else > >: for arch in ${ARCHES}; do > >: for target in cleandir obj depend all; do > >: make TARGET_ARCH=${arch} ${target} SUBDIR_OVERRIDE=$1 > >: done > >: done > >: fi > > > >You could then run it twice: > > > >sh ./tinder.sh (rebuild cross environment: compiler, binutils, headers, > >libs) > > > >sh ./tinder.sh bin/tcsh (test if bin/tcsh builds ok) > > > > > >... with this small assorted patch for Makefile.inc1, just to avoid doing > >a whole buildworld; we need it for PicoBSD anyway: > > > >%%% > >Index: Makefile.inc1 > >=================================================================== > >RCS file: /home/ncvs/src/Makefile.inc1,v > >retrieving revision 1.297 > >diff -u -p -u -r1.297 Makefile.inc1 > >--- Makefile.inc1 24 Jul 2002 23:08:57 -0000 1.297 > >+++ Makefile.inc1 25 Jul 2002 15:37:51 -0000 > >_at__at_ -329,6 +329,8 _at__at_ WMAKE_TGTS+= _includes _libraries _depen > > buildworld: ${WMAKE_TGTS} > > .ORDER: ${WMAKE_TGTS} > > > >+crossenv: ${WMAKE_TGTS:N_depend:Neverything} > >+ > > # > > # installcheck > > # > >%%% > > > Very cool! I like it in principle! :-) The crossenv build worked fine > but the compilation of bin/tcsh only resulted in building 3 copies of > the i386 tcsh. I think it needs the WMAKE environment exported so it > has the path to the cross compiler and points to the appropriate > OBJDIR. > Here's the new script that should work. Sorry for a late reply. Cheers, -- Ruslan Ermilov Sysadmin and DBA, ru_at_sunbay.com Sunbay Software AG, ru_at_FreeBSD.org FreeBSD committer, +380.652.512.251 Simferopol, Ukraine http://www.FreeBSD.org The Power To Serve http://www.oracle.com Enabling The Information AgeReceived on Mon Apr 28 2003 - 21:29:10 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:05 UTC