From owner-cvs-all@FreeBSD.ORG  Thu Oct 13 16:15:25 2005
Return-Path: <owner-cvs-all@FreeBSD.ORG>
X-Original-To: cvs-all@freebsd.org
Delivered-To: cvs-all@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id C769516A41F;
	Thu, 13 Oct 2005 16:15:25 +0000 (GMT) (envelope-from imp@bsdimp.com)
Received: from harmony.bsdimp.com (vc4-2-0-87.dsl.netrack.net [199.45.160.85])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 426DF43D46;
	Thu, 13 Oct 2005 16:15:25 +0000 (GMT) (envelope-from imp@bsdimp.com)
Received: from localhost (localhost.village.org [127.0.0.1] (may be forged))
	by harmony.bsdimp.com (8.13.3/8.13.3) with ESMTP id j9DGCCOm074394;
	Thu, 13 Oct 2005 10:12:12 -0600 (MDT) (envelope-from imp@bsdimp.com)
Date: Thu, 13 Oct 2005 10:13:20 -0600 (MDT)
Message-Id: <20051013.101320.59655637.imp@bsdimp.com>
To: ru@freebsd.org
From: "M. Warner Losh" <imp@bsdimp.com>
In-Reply-To: <20051013143010.GC91109@ip.net.ua>
References: <20051012.155313.60482924.imp@bsdimp.com>
	<20051013135453.GC56193@comp.chem.msu.su>
	<20051013143010.GC91109@ip.net.ua>
X-Mailer: Mew version 3.3 on Emacs 21.3 / Mule 5.0 (SAKAKI)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0
	(harmony.bsdimp.com [127.0.0.1]);
	Thu, 13 Oct 2005 10:12:13 -0600 (MDT)
Cc: yar@comp.chem.msu.su, src-committers@freebsd.org, cvs-all@freebsd.org,
	cvs-src@freebsd.org
Subject: Re: cvs commit: src/usr.bin/make make.1
X-BeenThere: cvs-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: CVS commit messages for the entire tree <cvs-all.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/cvs-all>,
	<mailto:cvs-all-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/cvs-all>
List-Post: <mailto:cvs-all@freebsd.org>
List-Help: <mailto:cvs-all-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/cvs-all>,
	<mailto:cvs-all-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 13 Oct 2005 16:15:25 -0000

In message: <20051013143010.GC91109@ip.net.ua>
            Ruslan Ermilov <ru@freebsd.org> writes:
: Having /etc/make.conf included with every make(1) run is a
: design bug.

Definitely.  That's why I'm working on fixing it.  However, we gotta
document what we have today...

: It's a bug because the implementation doesn't
: match the goal.  The goal (as advertised in the make.conf
: manpage) is to "contain settings that control the compilation
: of the FreeBSD sources and ported applications" and "it is
: included by the various makefiles in /usr/src, /usr/ports
: and /usr/doc".  I mean, the visibility of /etc/make.conf
: would better be constrained by src/, ports/, and doc/
: makefiles, not the universe under the control of FreeBSD.
: I think it's too late to change that, so we'll have to
: live with this backward compatibility bug or come up
: with a better replacement.

Agreed.  But including an empty file is no big deal for BC.

: NetBSD, for example, that
: has a very elegant build system, doesn't suffer from this
: bug.  They only include their mk.conf for system builds.

NetBSD's system suffers from other issues...  However, many of the
good ideas in there I have prototyped in my tree.  NetBSD requires an
entire tree to build.  Well, most of one anyway.  That would break
stand-alone builds.  Last time we talked about that, you really didn't
want to see us go further down that path than we already are (just try
to build amdq w/o the rest of amd checked out to see one example).  I
have a scheme in mind, and phk kindly implemented a 'sinclude'[*] which
does the right thing for climbing up the tree.  This is what NetBSD
does, and what we do at work very successfully.  I'll try to
re-establish carrier with you on this subject, since we seem to have
lost it a while ago.

The general idea is two fold.  First, we revamp how we subset FreeBSD.
That's a huge bikeshed, so let's just say it is happening and I'll
talk more baout that piece when I have a workign prototype.  The
second part is working on how we get that data into the build system.
I have a prototype of it working right now in one of my trees (not yet
in p4), but it suffers from the 'can't build it unless you have all
the directories checked out' problem.  Now that phk has implemented
sinclude, I can mostly fix that problem as well.

I'm purposely trying to keep quiet about this rework until I have a
working prototype.  We've had long-ranging discussions in the past,
and I'd rather see the effort spent at having something to evaluate
rather than on theoretical vaporware.

Warner

[*] s == silent.  include this, if you can, but if you can't solder on
and don't bother me with a complaint.