Skip site navigation (1)Skip section navigation (2)
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>