Make variables to force non default libraries and includes?

Ian Lepore ian at FreeBSD.org
Mon Apr 28 12:19:47 UTC 2014


On Mon, 2014-04-28 at 15:50 +0800, Julian Elischer wrote:
> I need to do the equivalent of  "cd /usr/src/cddl/usr.sbin/dtrace; 
> make DESTDIR=/mumble all install"
> 
> but it pulls in libraries from the base system, which differ slightly 
> from those in the source tree.
> 
> How can I force it to use /mumble2/include and /mumble2/lib instead of / ?
> 
> I can pre-populate /mumble2 using "make buildworld", "make libraries", 
> and "make includes" but
> I need to be able to do selective builds of just subdirectories after 
> that..  I haven't spotted the right way of forcing the use of the 
> "--system_root /mumble2" option in the compiles.
> 
> I know we do it in 'buildworld' is there a more generic way?
> 
> I have been looking in the .mk files but I haven't spotted it so far.
> 
> An option woudl be a way to 'enter' a buildworld and just rebuild or 
> reinstall small specified parts of it.
> Unfortunately at the moment I see no option other than a lot of 
> WITHOUT_XXX and 'build everything'.
> 
> 
> Julian

The 'buildenv' target does the "enter a buildworld" thing.  Just "make
buildenv" and you get a shell with all the environment variables set up
for doing builds (or cross-builds if you set TARGET_ARCH) within that
source tree.  If csh isn't your favorite shell, set BUILDENV_SHELL in
your environment.  There's also a "buildenvvars" target that will let
you capture the environment you need so that you can use it within your
own build scripts without needing an interactive shell.

-- Ian




More information about the freebsd-current mailing list