[CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

Ian Lepore freebsd at damnhippie.dyndns.org
Fri Oct 26 15:41:47 UTC 2012


On Fri, 2012-10-26 at 08:27 -0600, Warner Losh wrote:
> On Oct 26, 2012, at 12:23 AM, Simon J. Gerraty wrote:
> 
> >> In particular, why cannot the ':L' and ':U' support be added ?
> > 
> > Because they already exist - with different meanings.
> > They were added to NetBSD make over 10 years ago, from the OSF version
> > of pmake.
> 
> And we've had the :U and :L for a similar period of time as well.  Arguing age here is an interesting historical footnote, but not a compelling argument to justify the pain to our users.
> 
> > In several areas the behavior of bmake has been changed to make it a
> > drop in replacement for FreeBSD, but the above (not used at all in the
> > FreeBSD base) are easier dealt with the other way.  The :tl and :tu
> > equivalents were added to FreeBSD make a while back to ease the
> > transition.
> 
> Why can't there be a make target that turns them on in FreeBSD compat mode.  You could then just drop those into bsd.port.mk and be done with it?  We already do this with the posix target, so there's precedent for it.
> 
> I know you've objected to this as ugly, but as I pointed out when I mentioned it before, I think this is less ugly and less work and would offer a smoother transition than forcing all the scripts to change.
> 
> Warner

I second this concept.  At work, we create dozens of products using
literally hundreds of makefiles scattered throughout a huge source base.
We have to be able to build the same source for multiple versions of
freebsd, so even finding all the old :U and :L and any other
incompatibilities and fixing them isn't an option because we'd just
trade "works in freebsd 10" for "broken in every other environment".

If there were some way to turn on a compatibility mode, we'd have a way
to slowly transition to the newer stuff over the course of a couple OS
versions.  Eventually we'd reach the point where we no longer need to
build products using an older version and we could update to the newer
syntax and stop using compatibility mode.

-- Ian




More information about the freebsd-hackers mailing list