Re: buildworld: specifying an alternate make.conf

From: Ede Wolf <listac_at_nebelschwaden.de>
Date: Tue, 03 Oct 2023 14:45:44 UTC
Am 03.10.23 um 16:08 schrieb Paul Procacci:
> 
> 
> On Tue, Oct 3, 2023 at 10:05 AM Ede Wolf <listac@nebelschwaden.de 
> <mailto:listac@nebelschwaden.de>> wrote:
> 
>     Hello,
> 
>     to my understanding of man make and make.conf, which admittedly is very
>     limited, I should be able to specify an alternate make.conf with this
>     syntax:
> 
>     # make -D __MAKE_CONF=<PATH>/make.conf buildworld
> 
>     Now, since this looks somewhat strage - nowhere else I have found make
>     variables with double underscores - and before wasting hours of
>     compiling, I am wondering, is above correct? Or did I miss[understand]
>     anything?
> 
>     Thanks
> 
>     Ede
> 
> 
> That syntax is the correct syntax.
> Here's a partial shell script I use for compiling stripped FBSD images 
> which uses other variables besides __MAKE_CONF should you need examples 
> of them too:
> 
> SRC=/usr/src
> POOL=tank
> DESTDIR=/jails/templates/13.1-RELEASE
> THRDS=`sysctl -n hw.ncpu`
> SRCCONF=`pwd`/src.conf
> SRC_ENV_CONF=`pwd`/src-env.conf
> __MAKE_CONF=`pwd`/make.conf
> 
> zfs create -o compression=gzip-9 -o dedup=on -o mountpoint=${DESTDIR} 
> ${POOL}${DESTDIR}
> env SRCCONF=$SRCCONF SRC_ENV_CONF=$SRC_ENV_CONF __MAKE_CONF=$__MAKE_CONF 
> make -C $SRC -j$THRDS world DESTDIR=$DESTDIR
> env SRCCONF=$SRCCONF SRC_ENV_CONF=$SRC_ENV_CONF __MAKE_CONF=$__MAKE_CONF 
> make -C $SRC distribution DESTDIR=$DESTDIR
> cp /etc/resolv.conf $DESTDIR/etc/
> zfs snapshot ${POOL}${DESTDIR}@initial
> 
> ~Paul
> 

Hello Paul,

thanks very much again, but that seems not to be working for me. My 
approach is slightly simpler than yours. My make conf:

$ cat /data/admin/build/vbox/make.conf
#

MAKE_SHELL?=sh

SRCCONF=/data/admin/build/vbox/src.conf
SRC_ENV_CONF=/data/admin/build/vbox/src-env.conf

KERNCONF=VBOX

WITHOUT_MODULES=linux

PORTSDIR=/clutter/ports
WRKDIRPREFIX=/clutter/work
DISTDIR=/clutter/binpkg
-----

So here I am obviously referencing to another src-env.conf:

$ cat /data/admin/build/vbox/src-env.conf
MAKEOBJDIRPREFIX=/clutter/obj/vbox

-----

Still, when calling my above command:

$ make -D __MAKE_CONF=/data/admin/build/vbox/make.conf -j 4 buildworld

the obj dir is being created below /usr and not, where it should go, below:
/clutter/obj/vbox.
So it appears at least, my make.conf is not being used.

I've also tried to export __MAKE_CONF in the shell I am calling make 
buildworld. Should be equivalent to your env command. Using /bin/sh, not 
csh.
No change here, however. On 14 Beta-4, but that should not matter.

Thanks

Ede