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