From owner-freebsd-current@FreeBSD.ORG Mon Apr 28 14:27:34 2014 Return-Path: Delivered-To: current@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5FC593F8; Mon, 28 Apr 2014 14:27:34 +0000 (UTC) Received: from mho-01-ewr.mailhop.org (mho-03-ewr.mailhop.org [204.13.248.66]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 334F713B1; Mon, 28 Apr 2014 14:27:34 +0000 (UTC) Received: from c-24-8-230-52.hsd1.co.comcast.net ([24.8.230.52] helo=damnhippie.dyndns.org) by mho-01-ewr.mailhop.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1WemWr-000OBq-8m; Mon, 28 Apr 2014 14:27:33 +0000 Received: from [172.22.42.240] (revolution.hippie.lan [172.22.42.240]) by damnhippie.dyndns.org (8.14.3/8.14.3) with ESMTP id s3SERV1e015059; Mon, 28 Apr 2014 08:27:31 -0600 (MDT) (envelope-from ian@FreeBSD.org) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 24.8.230.52 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX19XI9bufUggewCxwNXZm3/L Subject: Re: Make variables to force non default libraries and includes? From: Ian Lepore To: Julian Elischer In-Reply-To: <535E60AF.6050905@freebsd.org> References: <535E083A.9060906@freebsd.org> <1398687583.61646.207.camel@revolution.hippie.lan> <535E60AF.6050905@freebsd.org> Content-Type: text/plain; charset="us-ascii" Date: Mon, 28 Apr 2014 08:27:31 -0600 Message-ID: <1398695251.61646.214.camel@revolution.hippie.lan> Mime-Version: 1.0 X-Mailer: Evolution 2.32.1 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit Cc: FreeBSD Current X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Apr 2014 14:27:34 -0000 On Mon, 2014-04-28 at 22:07 +0800, Julian Elischer wrote: > On 4/28/14, 8:19 PM, Ian Lepore wrote: > > 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 > > > > > > > > > oh man that is just what I'm looking for > Is there a single command for populating the buildenv resources? > i.e. to compile and install all the tools and libraries (and includes > etc) (into /usr/obj/usr/src/tmp... ) "make toolchain" should do that. There's also kernel-toolchain for building just the kernel; I think the only difference between the two is that kernel-toolchain doesn't build userland includes and libs. -- Ian