configure breaks if PATCH_WRKSRC != WRKSRC (culprit: AUTOTOOLS)

Fernan Aguero fernan at
Wed Feb 7 19:31:52 UTC 2007


I'm working on an update to the biology/emboss port that I
maintain, and I need to include an external patch.

So I modified the port to fetch the patchfile and apply it.
For this I had to set PATCH_WRKSRC. This works fine, but now
the configure target breaks.

I isolated the problem to a single line: the one that
defines PATCH_WRKSRC. 

--- Makefile.orig       Wed Feb  7 14:00:36 2007
+++ Makefile    Wed Feb  7 14:00:50 2007
@@ -16,6 +16,8 @@
 MAINTAINER=    fernan at
 COMMENT=       A collection of open source tools for genetic sequence analysis

This single change makes the configure fail:

===>  Configuring for emboss-3.0.0
cp: configure: No such file or directory
*** Error code 1

Stop in /freebsd/ports/biology/emboss.
*** Error code 1

However this only happens in conjunction with:
USE_AUTOTOOLS=	libtool:15
which is set in the emboss port Makefile.

If I comment out this line, everything runs smoothly again.

Now, reading, it's clear that autotools
is indeed doing something under PATCH_WRKSRC, but it
assumes (wrongly?) that PATCH_WRKSRC == WRKSRC 

# patch-autotools
# Special target to automatically make libtool using ports use the
# libtool port.  See above for default values of LIBTOOLFILES.

.if !target(patch-autotools)
. if defined(AUTOTOOL_libtool)
    @(cd ${PATCH_WRKSRC}; \
    for file in ${LIBTOOLFILES}; do \
        ${CP} $$file $$file.tmp; \
        ${SED} -e "/^ltmain=/!s^\$$ac_aux_dir/^${LIBTOOLFLAGS} ${LTMAIN}^g" \
                 -e '/^LIBTOOL=/s^\$$(top_builddir)/libtool^${LIBTOOL}^g' \
            $$file.tmp > $$file; \
        ${RM} $$file.tmp; \
. else
. endif

The following patch fixes my port (but I haven't checked if
it breaks the rest of the ports tree!):

---       Wed Feb  7 14:39:01 2007
+++    Wed Feb  7 14:39:11 2007
@@ -311,7 +311,7 @@
 .if !target(patch-autotools)
 . if defined(AUTOTOOL_libtool)
-       @(cd ${PATCH_WRKSRC}; \
+       @(cd ${WRKSRC}; \
        for file in ${LIBTOOLFILES}; do \
                ${CP} $$file $$file.tmp; \
                ${SED} -e "/^ltmain=/!s^\$$ac_aux_dir/^${LIBTOOLFLAGS} ${LTMAIN}^g" \

Is this a bug in autotools?

Perhaps there is a reason for using PATCH_WRKSRC and not
WRKSRC here ...



More information about the freebsd-ports mailing list