bin/178819: bmake w/ WRKDIRPEFIX=/tmp breaks Ports Collection
Simon J. Gerraty
sjg at juniper.net
Fri Sep 6 00:42:00 UTC 2013
On Thu, 5 Sep 2013 21:39:42 +0200, Tijl Coosemans writes:
>fmake does set it. It goes something like this:
>
>1) the port makefiles are all named Makefile so fmake sets
> MAKEFILE=Makefile. With bmake this is sometimes an absolute path.
IIRC it will be an absolute path anytime .OBJDIR!=.CURDIR
>2) bsd.port.mk has MAKEFILE?=Makefile which doesn't do anything under
> both fmake and bmake because it's already defined.
True, but there a good number of places in ports where it is set to
something else - eg
irc/inspircd12/Makefile:51:MAKEFILE= BSDmakefile
irc/trickyirc/Makefile:15:MAKEFILE= GNUmakefile
these should work with the new bmake, but
MAKEFILE?= Makefile
won't.
>3) bsd.port.mk runs something like "cd ${WRKSRC} && make -f ${MAKEFILE}"
> This fails with bmake if MAKEFILE happens to be an absolute path
> pointing to the port makefile (instead of the source code makefile).
> With fmake this only works by accident.
I suppose ${MAKEFILE:T} above wouldn't help...
>bsd.port.mk should not try to reuse MAKEFILE like this. I once looked
>into renaming this variable to MAKE_FILE but that affects many ports.
Yes, I counted 925 places where MAKEFILE is set or referenced.
More information about the freebsd-bugs
mailing list