From owner-freebsd-commit Mon Jul 24 01:45:19 1995 Return-Path: commit-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.11/8.6.6) id BAA11480 for commit-outgoing; Mon, 24 Jul 1995 01:45:19 -0700 Received: (from majordom@localhost) by freefall.cdrom.com (8.6.11/8.6.6) id BAA11466 for cvs-usrbin-outgoing; Mon, 24 Jul 1995 01:45:10 -0700 Received: from gndrsh.aac.dev.com (gndrsh.aac.dev.com [198.145.92.241]) by freefall.cdrom.com (8.6.11/8.6.6) with ESMTP id BAA11444 ; Mon, 24 Jul 1995 01:44:53 -0700 Received: (from rgrimes@localhost) by gndrsh.aac.dev.com (8.6.11/8.6.9) id BAA18018; Mon, 24 Jul 1995 01:38:28 -0700 From: "Rodney W. Grimes" Message-Id: <199507240838.BAA18018@gndrsh.aac.dev.com> Subject: Re: cvs commit: src/usr.bin/chflags Makefile To: bde@zeta.org.au (Bruce Evans) Date: Mon, 24 Jul 1995 01:38:28 -0700 (PDT) Cc: bde@zeta.org.au, CVS-commiters@freefall.cdrom.com, cvs-usrbin@freefall.cdrom.com, rgrimes@freefall.cdrom.com In-Reply-To: <199507240439.OAA01596@godzilla.zeta.org.au> from "Bruce Evans" at Jul 24, 95 02:39:42 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Length: 3421 Sender: commit-owner@FreeBSD.org Precedence: bulk > > >> This should be `NOSHARED?= BELT_AND_SUSPENDERS_NOSHARED' where > >> ... > > >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. > > The first test would have to be more complicated to fix this. NOSHARED should probably just die and LDFLAGS be used directly since it is at least a documented thing, and a standard bsd .mk thing too. No reason that /usr/src/bin/Makefile.inc can't say LDFLAGS+= -static, after all that is all that the NOSHARED does in bsd.prog.mk anyway. Who needs 2 knobs to do the same thing :-( > >> 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 > > I need to do it to make a new install flag (-C for compare and don't > change the mtime or the atime if the file hasn't changed) the default > for installing everything the system without making it the default > for `install' itself. The only point I'm not sure is right is the > use of `${INSTALL}' instead of `${INSTALL} ${INSTALLFLAGS}' in all > Makefiles. The latter is more verbose and doesn't seem to have > any advantages. You can always use `install' instead of `${INSTALL}' > for special cases like >= 81 non-special cases already do. There INSTALLFLAGS is undocumented :-(. I also think it was something added to the FreeBSD .mk files, a quick grep shows it's main use to be to set -schng. Just use ${INSTALL} for now, I know my .mk stuff did not have a INSTALLFLAGS variable, but then it was done before all the schng stuff was done. > >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. > > By documenting it? :-) No, but there are things that do need documented, but a lot of what I am talking about should never be documented as far as Makefiles are concerned, it is .mk internals and should not be visible or used by Makefiles. > >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. > > /etc/make.conf is worse. Agreed, but at least by default it does nothing since all lines are commented out as it is shipped. > >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). > > ECHO and INSTALL shouldn't be there. ECHODIR and the fancy `===> dir' > printing shouldn't exist. Gnu make supports printing the directory > being worked on (-w flag). Why shouldn't: ECHO?= echo INSTALL?= install be there? I can agree that ECHODIR should die, not so sure what to do with SUBDIRUSE and `===> path', pmake does not have a -w flag. Does gnu make have subdir processing built in? -- Rod Grimes rgrimes@gndrsh.aac.dev.com Accurate Automation Company Reliable computers for FreeBSD