Building Less?

Ian Lepore ian at freebsd.org
Mon Sep 28 14:20:22 UTC 2015


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 at 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 at 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 at bsdimp.com> wrote:
> > > src.conf(5) describes it.
> > >
> > > Warner
> > >
> > > On Sat, Sep 26, 2015 at 10:49 PM, Russell Haley <russ.haley at 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 at 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 at 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 at freebsd.org mailing list
> > > https://lists.freebsd.org/mailman/listinfo/freebsd-arm
> > > To unsubscribe, send any mail to "freebsd-arm-unsubscribe at freebsd.org"
> > >
> >
> >
> _______________________________________________
> freebsd-arm at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-arm
> To unsubscribe, send any mail to "freebsd-arm-unsubscribe at freebsd.org"




More information about the freebsd-arm mailing list