-current broken when MAKEOBJDIRPREFIX is set (was: src is on NFS)
Navdeep Parhar
nparhar at gmail.com
Mon Jul 20 14:00:33 UTC 2015
On Sun, Jul 19, 2015 at 11:05:48PM -0700, Don Lewis wrote:
> On 19 Jul, O'Connor, Daniel wrote:
> >
> >> On 19 Jul 2015, at 02:56, Simon J. Gerraty <sjg at juniper.net> wrote:
> >>
> >> O'Connor, Daniel <darius at dons.net.au> wrote:
> >>> However, Crochet _does_ build on the NFS client _and_ when the
> >>> source tree isn't in /usr/src which makes this issue very strange
> >>> :-/
> >>
> >> I've seen similar errors in rescue... (no NFS) though I cannot
> >> quite recall the cause other than it seems very sensitive
> >> to MAKEOBJDIRPREFIX value.
> >
> > Yeah the subject is wrong (I just updated it).
> >
> > I just did a build like so and it worked..
> > env MAKEOBJDIRPREFIX=/src/obj-amd64 make -j 8 buildworld
> >
> > But this did not..
> > make -j 8 buildworld MAKEOBJDIRPREFIX=/src/obj-amd64
> >
> > So, it seems MAKEOBJDIRPREFIX only works as an environmental variable
> > - I wonder if there is a way the make system can be changed to warn
> > about that?
>
> At least it is documented in /usr/share/mk/bsd.obj.mk:
>
> # MAKEOBJDIRPREFIX Specifies somewhere other than /usr/obj to root the object
> # tree. Note: MAKEOBJDIRPREFIX is an *environment* variable
> # and works properly only if set as an environment variable,
> # not as a global or command line variable!
> #
> # E.g. use `env MAKEOBJDIRPREFIX=/somewhere/obj make'
>
> Not the most obvious place to look ...
It is documented in build(7) too:
MAKEOBJDIRPREFIX Defines the prefix for directory names in the tree of
built objects. Defaults to /usr/obj if not defined. This variable
should only be set in the environment and not via /etc/make.conf or the
command line.
Regards,
Navdeep
More information about the freebsd-current
mailing list