Date: Mon, 28 Sep 2015 08:20:10 -0600 From: Ian Lepore <ian@freebsd.org> To: Russell Haley <russ.haley@gmail.com> Cc: Warner Losh <imp@bsdimp.com>, freebsd-arm <freebsd-arm@freebsd.org> Subject: Re: Building Less? Message-ID: <1443450010.1224.404.camel@freebsd.org> In-Reply-To: <CABx9NuR41Ai2aSBPxT19GSpZgx%2BqphGJom9OEbhWiCqrK3w-1A@mail.gmail.com> References: <CABx9NuRb5yOjrfM0i0pDmNzaEefdsTxByiggGm%2B-m0UW%2BK%2BbdA@mail.gmail.com> <1443104974.1224.269.camel@freebsd.org> <CABx9NuQ6pp3irW=7wjvkAEuJzmtrmNLa4fmw0XL5DKmDaC2r2A@mail.gmail.com> <CABx9NuSTZaNAoc1pKZ0Wx7YHyGwaXrr-nm2xFqgqbRyZ_6CDug@mail.gmail.com> <CANCZdfo-8yjWGzcOYXLOr0epguHiu2a9hJ%2BKKoWV8c-8JYR3tQ@mail.gmail.com> <CABx9NuR_mauNkyj9j1e_oHy3HRS6B7gm7Ew-YF9RCj5ENqHi4g@mail.gmail.com> <BA852FF5-26FF-4C86-9F90-42C5C1F8F4B4@bsdimp.com> <CABx9NuR41Ai2aSBPxT19GSpZgx%2BqphGJom9OEbhWiCqrK3w-1A@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
I've got to agree the documentation is poor on this stuff. When I started doing freebsd-arm development full time one of the first things I did was write a wrapper script that invokes make with all the right magic for cross-building. One of the problems that needed solving was how to use custom make.conf and src.conf files instead of the ones in /etc. I couldn't find docs and had to spelunk around in the the makefiles to discover the existance of __MAKE_CONF= and srcconf=, and to this day I've got to say that it doesn't look like either of those was actually intended to be a user-accessible knob and I've never felt good about overriding them on the command line. So if this stuff is documented, it's not really easy enough to find. -- Ian On Sun, 2015-09-27 at 21:21 -0700, Russell Haley wrote: > The option should be included in the man pages for build: > > https://www.freebsd.org/cgi/man.cgi?query=build&sektion=7&apropos=0&manpath=FreeBSD+10.2-RELEASE > > "The default components included in the build are controlled by the file > /etc/src.conf in the source tree. To override the default file, include the > SRCCONF option in the make steps, pointing to a custom src.conf file. For > more information see src.conf." > > Since I'm complaining, the src.conf file doesn't actually describe what > it's purpose is. It says it contains settings, but not what those settings > do. The reader is not informed of it's true purpose until they start > reading the list of variables. There seems to be only one purpose to those > settings: to control the components included in a build. So: > > The *src.conf* file contains settings that will apply to every build > involving the FreeBSD source tree; see build(7) > <https://www.freebsd.org/cgi/man.cgi?query=build&sektion=7&apropos=0&manpath=FreeBSD+10.2-RELEASE>. > > becomes > > The *src.conf* file contains variables that control what components > will apply to all builds > involving the FreeBSD source tree; see build(7) > <https://www.freebsd.org/cgi/man.cgi?query=build&sektion=7&apropos=0&manpath=FreeBSD+10.2-RELEASE>. > > > Thanks! > > Russ > > On Sun, Sep 27, 2015 at 9:06 PM, Warner Losh <imp@bsdimp.com> wrote: > > > src.conf is only used to build /usr/src. src.con(5) documents that. > > build(5) has a pointer. > > > > How would you suggest making this clearer? > > > > Warner > > > > > > > On Sep 27, 2015, at 10:02 PM, Russell Haley <russ.haley@gmail.com> > > wrote: > > > > > > Hi Warner, > > > > > > That's my point. The only place the file is used is during the build > > process. If the srcconf option is not described on man page for the build > > process, then it's existence would not be known to someone reading about > > building (i.e. me). More to the point, if I had come across the file > > myself, I would have wondered if it was even relevant to this version of > > the OS as it is not referenced in the only spot it is used (hence my > > question). I have experienced this confusion in the documentation before. > > > > > > Thanks for confirmation (sort of). I will investigate the route to > > reporting this to the documentation team. > > > > > > > > > Cheers, > > > > > > Russ > > > > > > > > > > > > > > > > > > On Sep 27, 2015 8:20 PM, "Warner Losh" <imp@bsdimp.com> wrote: > > > src.conf(5) describes it. > > > > > > Warner > > > > > > On Sat, Sep 26, 2015 at 10:49 PM, Russell Haley <russ.haley@gmail.com> > > wrote: > > > Interestingly the man pages for build that are linked to the src.conf man > > > pages don't seem to describe the srcconf variable. Or did I miss > > something? > > > > > > > > https://www.freebsd.org/cgi/man.cgi?query=build&sektion=7&apropos=0&manpath=FreeBSD+10.2-RELEASE > > > > > > Russ > > > > > > On Sat, Sep 26, 2015 at 9:07 PM, Russell Haley <russ.haley@gmail.com> > > wrote: > > > > > > > Awesome, thanks for the src.conf files Michael, and thank you Ian for > > the > > > > description. It's kind of like the secret recipe! Together with the > > > > memdisk method that Ganbold has suggested I should be able to bring > > down my > > > > turn-around time. > > > > > > > > Cheers, > > > > Russ > > > > > > > > On Thu, Sep 24, 2015 at 7:29 AM, Ian Lepore <ian@freebsd.org> wrote: > > > > > > > >> On Wed, 2015-09-23 at 22:15 -0700, Russell Haley wrote: > > > >> > Hi there, > > > >> > > > > >> > I've pivoted back to my ARM board again. I noticed that when I build > > > >> world, > > > >> > it builds all the man pages and languages and a whole bunch of other > > > >> stuff. > > > >> > That's not too bad because I have a decent computer, but when I run > > > >> > installworld and install onto an sd card things get really slow. > > > >> > > > > >> > Is there a way to reduce what I am building and installing onto the > > sd > > > >> card? > > > >> > > > > >> > > > > >> > Current process: > > > >> > make -DNO_CLEAN TARGET=arm TARGET_ARCH=armv6 -j10 buildworld > > > >> > > > > >> > make -DNO_CLEAN TARGET=arm TARGET_ARCH=armv6 KERNCONF=IMX6 -j10 > > > >> buildkernel > > > >> > > > > >> > sudo mount /dev/da2s2 /usr/jails/Jailbird/mnt/ufspart > > > >> > make TARGET=arm TARGET_ARCH=armv6 DESTDIR=/mnt/ufspart > > installworld > > > >> > distribution > > > >> > > > > >> > > > > >> > > > > >> > Thanks, > > > >> > > > > >> > Russ > > > >> > > > >> Add to your crossbuild command line "srcconf=/some/path/src.conf" and > > in > > > >> that src.conf file put a bunch of WITHOUT_foo commands to eliminate > > the > > > >> things you don't need in the target system. Iirc, you need a fully- > > > >> qualified pathname in the srcconf=. > > > >> > > > >> "man src.conf" gives you the list of WITH/WITHOUT controls you can > > set. > > > >> > > > >> Be sure to keep your crossbuild src.conf file(s) separate from your > > > >> main /etc/src.conf file that's used when you build the host system. > > > >> > > > >> -- Ian > > > >> > > > >> > > > >> > > > > > > > _______________________________________________ > > > freebsd-arm@freebsd.org mailing list > > > https://lists.freebsd.org/mailman/listinfo/freebsd-arm > > > To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org" > > > > > > > > _______________________________________________ > freebsd-arm@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-arm > To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1443450010.1224.404.camel>