Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 08 Mar 2001 20:49:16 -0700
From:      Warner Losh <imp@village.org>
To:        "Rodney W. Grimes" <freebsd@gndrsh.dnsmgr.net>
Cc:        fullermd@futuresouth.com (Matthew D. Fuller), kris@obsecurity.org (Kris Kennaway), arch@FreeBSD.ORG
Subject:   Re: Breaking up make.conf 
Message-ID:  <200103090349.f293nGs04577@billy-club.village.org>
In-Reply-To: Your message of "Thu, 08 Mar 2001 18:41:52 PST." <200103090241.SAA27525@gndrsh.dnsmgr.net> 
References:  <200103090241.SAA27525@gndrsh.dnsmgr.net>  

next in thread | previous in thread | raw e-mail | index | archive | help
: > Putting something like that in src/ seems a bit dangerous.

I don't think it would be any more dangerous than having the things we
have in src.

In message <200103090241.SAA27525@gndrsh.dnsmgr.net> "Rodney W. Grimes" writes:
: There would never be a src/make.conf in the repository, perhaps a
: src/make.conf.defaults, but never src/make.conf.  My pet peeve is that
: /etc/make.conf is global and affects all src trees on systems, but src
: trees may have quite different needs.  IIRC bde shares this view.

I share this view strongly.  It would solve a whole class of
problems.  That class is variaions on the "my /etc/make.conf isn't the
same as on the machine I builtworld on, so installworld fails."

Of course including bsd.cpu.mk and bsd.own.mk from sys.mk is likely
the wrong thing to do in the first place.  It might be better to
search ${.CURDIR}, ${.CURDIR}/.., etc for etc/defaults/make.conf (note
no leading shash so it is relative to the dirs listed) and pull that
in.  You'll eventually hit / in which case you pull in
/etc/defaults/make.conf.  FreeBSD's etc/default/make.conf should be
modified to do the same search except looking for etc/make.conf.  We
should have no etc/make.conf in the tree.  People can edit that, or
put it in /etc/make.conf as they see fit.

Something like the following patch, included after my sig.  Note, I'd
also go for nuking bsd.own.mk and bsd.cpu.mk and moving them into
etc/defaults/make.conf so we stop polluting the global make space with
them.  .for loops are hard to terminate in make, so I didn't try.
Maybe setting __d equal to -- would be enough to effectively terminate
the loop.  Maybe hacking make to grok .for loop termination would be
better.  The efficiency freaks would likely want to write this as a
series of if .exists .elif exists....  You likely could not do that
with the for loop, however :-(.

Warner

Index: share/mk/sys.mk
===================================================================
RCS file: /home/imp/FreeBSD/CVS/src/share/mk/sys.mk,v
retrieving revision 1.50
diff -u -r1.50 sys.mk
--- share/mk/sys.mk	2001/02/22 11:14:25	1.50
+++ share/mk/sys.mk	2001/03/09 03:43:58
@@ -236,20 +236,15 @@
 
 .endif
 
-.if exists(/etc/defaults/make.conf)
-.include </etc/defaults/make.conf>
+__d := ${.CURDIR}
+.for __i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
+.if exists(${__d}/etc/defaults/make.conf)
+.include "${__d}/etc/defaults/make.conf"
 .endif
+__d:=${__d}/..
+.endfor
+.undef __d
 
-.if exists(/etc/make.conf)
-.include </etc/make.conf>
-.endif
-
 .include <bsd.cpu.mk>
-
-.if exists(/etc/make.conf.local)
-.error Error, original /etc/make.conf should be moved to the /etc/defaults/ directory and /etc/make.conf.local should be renamed to /etc/make.conf.
-.include </etc/make.conf.local>
-.endif
-
 
 .include <bsd.own.mk>
Index: etc/defaults/make.conf
===================================================================
RCS file: /home/imp/FreeBSD/CVS/src/etc/defaults/make.conf,v
retrieving revision 1.147
diff -u -r1.147 make.conf
--- etc/defaults/make.conf	2001/02/27 11:21:47	1.147
+++ etc/defaults/make.conf	2001/03/09 03:44:11
@@ -366,3 +366,11 @@
 #SENDMAIL_LDFLAGS=
 #SENDMAIL_LDADD=
 #SENDMAIL_DPADD=
+__d := ${.CURDIR}
+.for __i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+.if exists(${__d}/etc/make.conf)
+.include "${__d}/etc/make.conf"
+.endif
+__d:=${__d}/..
+.endfor
+.undef __d

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200103090349.f293nGs04577>