Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 15 Sep 2001 14:37:44 -0700
From:      Marcel Moolenaar <marcel@xcllnt.net>
To:        Christian Weisgerber <naddy@mips.inka.de>
Cc:        freebsd-ports@FreeBSD.ORG
Subject:   Re: WRKDIRPREFIX is broken
Message-ID:  <20010915143744.A473@athlon.pn.xcllnt.net>
In-Reply-To: <9o0ch9$148a$1@kemoauc.mips.inka.de>
References:  <9nt6hj$rbo$1@kemoauc.mips.inka.de> <9o0ch9$148a$1@kemoauc.mips.inka.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Sep 15, 2001 at 08:09:13PM +0000, Christian Weisgerber wrote:
> Christian Weisgerber <naddy@mips.inka.de> wrote:
> 
> > Building ports is broken if WRKDIRPREFIX is set.
> 
> My mistake.  WRKDIRPREFIX works fine.  Setting it to /usr/obj is a
> bad idea, though.

It is in fact broken, and you can set it to /usr/obj. I have the
following in /etc/make.conf

# Ports specific
PORTSDIR=/nfs/ports
WRKDIRPREFIX=/usr/obj

I also applied the following diff to (partly) work around the brokenness
(WARNING: white-space corrupted):

\begin{verbatim}
cvs diff: Diffing .
Index: bsd.port.mk
===================================================================
RCS file: /home/ncvs/ports/Mk/bsd.port.mk,v
retrieving revision 1.378
diff -u -r1.378 bsd.port.mk
--- bsd.port.mk 31 Aug 2001 02:13:02 -0000      1.378
+++ bsd.port.mk 5 Sep 2001 01:31:29 -0000
@@ -943,7 +943,7 @@
 MD5_FILE?=             ${MASTERDIR}/distinfo
 
 MAKE_FLAGS?=   -f
-MAKEFILE?=             Makefile
+MAKE_FILE?=            Makefile
 MAKE_ENV+=             PREFIX=${PREFIX} LOCALBASE=${LOCALBASE} X11BASE=${X11BASE} MOTIFLIB="${MOTIFLIB}" LIBDIR="${LIBDIR}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}"
 
 .if ${OSVERSION} < 500016
@@ -1831,9 +1831,9 @@
 .if !target(do-build)
 do-build:
 .if defined(USE_GMAKE)
-       @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET})
+       @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKE_FILE} ${MAKE_ARGS} ${ALL_TARGET})
 .else
-       @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET})
+       @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKE_FILE} ${MAKE_ARGS} ${ALL_TARGET})
 .endif
 .endif
 
@@ -1842,14 +1842,14 @@
 .if !target(do-install)
 do-install:
 .if defined(USE_GMAKE)
-       @(cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${INSTALL_TARGET})
+       @(cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKE_FILE} ${MAKE_ARGS} ${INSTALL_TARGET})
 .if defined(USE_IMAKE) && !defined(NO_INSTALL_MANPAGES)
-       @(cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} install.man)
+       @(cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKE_FILE} ${MAKE_ARGS} install.man)
 .endif
 .else defined(USE_GMAKE)
-       @(cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${INSTALL_TARGET})
+       @(cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKE_FILE} ${MAKE_ARGS} ${INSTALL_TARGET})
 .if defined(USE_IMAKE) && !defined(NO_INSTALL_MANPAGES)
-       @(cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} install.man)
+       @(cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKE_FILE} ${MAKE_ARGS} install.man)
 .endif
 .endif
 .endif
\end{verbatim}

To explain the patch: MAKEFILE is set by make(1) when it had to do a
chdir(2). It sets the MAKEFILE variable to the pathname of the makefile
read. We use MAKEFILE in the ports tree to specify the name of the top
level makefile used by the source distribution. This conflicts.

Note that any port that sets MAKEFILE is really broken if you apply the
abovementioned patch without also updating the port's makefile.

There's a PR for this, but I completely fail to remember which :-)

FYI,

-- 
 Marcel Moolenaar	  USPA: A-39004		 marcel@xcllnt.net

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




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