Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Jul 1995 20:20:14 -0700 (PDT)
From:      "Rodney W. Grimes" <rgrimes@gndrsh.aac.dev.com>
To:        bde@zeta.org.au (Bruce Evans)
Cc:        CVS-commiters@freefall.cdrom.com, cvs-usrbin@freefall.cdrom.com, rgrimes@freefall.cdrom.com
Subject:   Re: cvs commit: src/usr.bin/chflags Makefile
Message-ID:  <199507240320.UAA17693@gndrsh.aac.dev.com>
In-Reply-To: <199507240245.MAA31145@godzilla.zeta.org.au> from "Bruce Evans" at Jul 24, 95 12:45:57 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> 
> >  Modified:    usr.bin/chflags  Makefile
> >  Log:
> >  Set NOSHARED=true, having this binary static makes it much easier to
> >  fix /usr/lib/*.so problems.
> 
> This should be `NOSHARED?= BELT_AND_SUSPENDERS_NOSHARED' where
> BELT_AND_SUSPENDERS_NOSHARED defaults to true but I set it to empty in
> /etc/make.conf.  Similarly for tar and gzip.  Slightly differently for
> /bin and /sbin.  Better, use defaults for

This will not work due to:
.if defined(NOSHARED)
LDFLAGS+= -static
.endif

NOSHARED?= with any arg value will infact cause it to be defined, even
a null value.

> 
> 	ALL_STATICALLY_LINKED,
> 	BIN_STATICALLY_LINKED
> 	SBIN_STATICALLY_LINKED
> 	USR_BIN_STATICALLY_LINKED
> 	USR_SBIN_STATICALLY_LINKED
> 	SH_STATICALLY_LINKED
> 	...

Knobs are nice, but too many knobs and it gets to be a mess in a 
hurry.  I'll keep this ``concept'' in the back of my mind for next
time I go a hacking on .mk files (which may be pretty soon....).

> BTW, I haven't had any responses to my proposal to change `install' to
> ${INSTALL} in >= 81 Makefiles.

I didn't see the proposal.  Yes, please go do this, but it is a very
small step in the cleanup of Makefiles.  I stopped work on .mk stuff
at the point I would have had to go modify 40% of the current Makefile
files as they had internal knowledge (that they should not have) of the
.mk stuff that my work seriously broke, and I did not want to add any
more compatibility glue than I already had.

We have tons of Makefile stuff that uses undocumented (via mk/bsd.README
any way) internal features of the .mk files.  This is seriously bad
and needs a cleanup.

sys.mk has stuff that should not be there, but is due to the design
of bsd.*.mk.  It should _not_ include bsd.own.mk, that is plain name
space polution for anyone using make to build things other than BSD
sources.  It is there to make the current mess work, but needs to
die.

ECHO and ECHODIR are a hack at best and do no belong there in there
current form.  ECHO should be simply echo, the specialized cases
for -s and -s -s belong else where.  (Current design does not have
the else where, my new design does).

X11BASE does not belong there, name space pollution.  Does someone
have the Posix specs on just what the default sys.mk should define?

A cleaned up sys.mk would probably greatly reduce our need for gmake,
as many of the problems caused are due to missing or wrong functionality
in our sys.mk file.


-- 
Rod Grimes                                      rgrimes@gndrsh.aac.dev.com
Accurate Automation Company                 Reliable computers for FreeBSD



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