Subject: Re: sanitising make(1) variable overrides
To: Luke Mewburn <>
From: Todd Vierling <>
List: tech-userlevel
Date: 01/26/1999 08:08:25
On Tue, 26 Jan 1999, Luke Mewburn wrote:

: * we have stuff like NOMAN, NOPIC, NOPROFILE, NOSHARE, etc.  the problem
:   with these is that if you you have NOMAN=yes in /etc/mk.conf you can't
:   override it from the command line.

Because they use defined().  The logic could be changed, I suppose, and use
?= in the appropriate places ...

: * i find LDSTATIC annoying because to link static programs i have to
:   do `make LDSTATIC=-static', rather than `make STATIC=' or whatever.
:   having the ability to define the flag to like statically is fine,
:   but requiring that to be explicitly defined is painful.

The reason for this is that you can set LDSTATIC= (nothing), which makes
everything, including /bin and /sbin, _dynamic_ (by turning off the
conditional LDSTATIC?=-static in the appropriate places).  So that probably
means it should have a different name from either LDSTATIC or STATIC.  :)

(Yeah, I've actually built an all-dynamic system to fit on a Really Small
disk.  It was a 20MB or so solid-state thingy.)

: * a method in which to disable CATPAGES (NOCATPAGES? :) would be useful
:   (my cpu is fast enough to nroff on the fly for the times i read man
:   pages, and make build would be must faster without catpages).

MANINSTALL=maninstall will do it for install time; however, it would still
nroff them in the tree.  sigh.


: * add MKMAN, MKPIC, MKPROFILE, MKSHARE which can be either `yes' or `no'.
:   this is so make can do
: 	.if ($MKMAN != "yes")
:   or whatever, and know it always works. the *.mk files can check these
:   settings for sanity as well.

Or `0' or `1'?

These can, I suppose, be set with ?= in the appropriate .mk files so that
they have a value for the various checks.

There are some other variables which would need this handling:
  NOPICINSTALL (don't install _pic.a files)
  NOLINKLIB (don't build .a files unless that's all that you can do, and
    never install them)

-- Todd Vierling (Personal; Bus.