Here's a draft for CONFIGURE_STYLE=autoreconf.  No man page parts
yet.

Basically it works like "autoconf" but calls autoreconf instead.
There are also example changes to two simple ports in the diff below.

ajacoutot@ has been approaching this from a slightly different angle:
He wants to call autogen.sh, so basically AUTORECONF=autogen.sh.
I'm not sure which name to pick and which tool to default to.

He has also raised two questions:
* Which autotools dependencies do we want to enable by default?
  I put autoconf and automake there, but libtoolize (from libtool)
  is often needed, too.  Sometimes autopoint (from gettext-tools)
  is required.
* Should we set NOCONFIGURE=1 in the environment by default, as
  many autogen.sh scripts use this in order not to run configure?

Comments?

Index: infrastructure/mk/bsd.port.mk
===================================================================
RCS file: /cvs/ports/infrastructure/mk/bsd.port.mk,v
retrieving revision 1.1462
diff -u -p -r1.1462 bsd.port.mk
--- infrastructure/mk/bsd.port.mk       4 Apr 2019 02:28:06 -0000       1.1462
+++ infrastructure/mk/bsd.port.mk       10 May 2019 18:51:46 -0000
@@ -280,7 +280,7 @@ _ARCH_DEFINES_INCLUDED = Done
 .  include "${PORTSDIR}/infrastructure/mk/arch-defines.mk"
 .endif
 
-.if ${CONFIGURE_STYLE:L:Mautoconf}
+.if ${CONFIGURE_STYLE:L:Mautoconf} || ${CONFIGURE_STYLE:L:Mautoreconf}
 .  if !${CONFIGURE_STYLE:L:Mgnu}
 CONFIGURE_STYLE += gnu
 .  endif
Index: infrastructure/mk/gnu.port.mk
===================================================================
RCS file: /cvs/ports/infrastructure/mk/gnu.port.mk,v
retrieving revision 1.60
diff -u -p -r1.60 gnu.port.mk
--- infrastructure/mk/gnu.port.mk       4 Apr 2019 02:28:06 -0000       1.60
+++ infrastructure/mk/gnu.port.mk       10 May 2019 22:22:55 -0000
@@ -15,7 +15,15 @@ AUTOCONF_VERSION ?= 2.13
 AUTOCONF_ENV = PATH=${PORTPATH} AUTOCONF_VERSION=${AUTOCONF_VERSION} 
AUTOMAKE_VERSION=${AUTOMAKE_VERSION}
 MAKE_ENV += AUTOMAKE_VERSION=${AUTOMAKE_VERSION} 
AUTOCONF_VERSION=${AUTOCONF_VERSION}
 
-.if ${CONFIGURE_STYLE:L:Mautoconf}
+.if ${CONFIGURE_STYLE:L:Mautoreconf} && ${CONFIGURE_STYLE:L:Mautoconf}
+ERRORS += "Fatal: Use either 'autoreconf' or 'autoconf'."
+.endif
+
+.if ${CONFIGURE_STYLE:L:Mautoreconf}
+BUILD_DEPENDS += ${MODGNU_AUTOCONF_DEPENDS} ${MODGNU_AUTOMAKE_DEPENDS}
+AUTORECONF ?= autoreconf --force --install
+AUTOCONF_DIR ?= ${WRKSRC}
+.elif ${CONFIGURE_STYLE:L:Mautoconf}
 BUILD_DEPENDS += ${MODGNU_AUTOCONF_DEPENDS}
 AUTOCONF ?= autoconf
 AUTOHEADER ?= autoheader
@@ -108,7 +116,10 @@ _MODGNU_loop =
 
 PATCH_CHECK_ONLY ?= No
 .if ${PATCH_CHECK_ONLY:L} != "yes"
-.  if ${CONFIGURE_STYLE:L:Mautoconf}
+.  if ${CONFIGURE_STYLE:L:Mautoreconf}
+_MODGNU_loop += echo "Running autoreconf-${AUTOCONF_VERSION} in $$d";
+_MODGNU_loop += ${SETENV} ${AUTOCONF_ENV} ${AUTORECONF};
+.  elif ${CONFIGURE_STYLE:L:Mautoconf}
 _MODGNU_loop += if test -f $$d/configure; then \
        grep -iq 'Generated by.*autoconf.*${AUTOCONF_VERSION}' $$d/configure || 
{ \
        echo ">>> Can't find autoconf ${AUTOCONF_VERSION} signature in 
$$d/configure:"; \
Index: audio/mp3blaster/Makefile
===================================================================
RCS file: /cvs/ports/audio/mp3blaster/Makefile,v
retrieving revision 1.27
diff -u -p -r1.27 Makefile
--- audio/mp3blaster/Makefile   2 Apr 2019 06:49:47 -0000       1.27
+++ audio/mp3blaster/Makefile   10 May 2019 19:04:32 -0000
@@ -25,7 +25,7 @@ LIB_DEPENDS=  audio/libsidplay \
 
 AUTOCONF_VERSION=2.61
 AUTOMAKE_VERSION=1.9
-CONFIGURE_STYLE=gnu
+CONFIGURE_STYLE=autoreconf
 CONFIGURE_ARGS=        --without-esd \
                --without-oss \
                --without-sdl \
@@ -35,8 +35,5 @@ CONFIGURE_ENV+=       ac_cv_lib_ossaudio_main=
 post-extract:
        @cp ${FILESDIR}/sndioplayer.cc ${WRKSRC}/mpegsound
        @cp ${FILESDIR}/sndiomixer.cc ${WRKSRC}/nmixer
-
-do-gen:
-       cd ${WRKSRC}; ${AUTOCONF_ENV} autoreconf -fi
 
 .include <bsd.port.mk>
Index: games/zangband/Makefile
===================================================================
RCS file: /cvs/ports/games/zangband/Makefile,v
retrieving revision 1.25
diff -u -p -r1.25 Makefile
--- games/zangband/Makefile     2 Apr 2019 09:01:55 -0000       1.25
+++ games/zangband/Makefile     10 May 2019 22:24:03 -0000
@@ -23,7 +23,8 @@ MAKE_ENV=             CC="${CC}" CFLAGS="${CFLAGS}"
 
 AUTOCONF_VERSION=      2.54
 AUTOMAKE_VERSION=      1.4
-CONFIGURE_STYLE=       gnu
+AUTORECONF=            autoreconf -i
+CONFIGURE_STYLE=       autoreconf
 CONFIGURE_ENV=         TRUEPREFIX="${TRUEPREFIX}"
 
 WRKDIST=               ${WRKDIR}/zangband
@@ -37,9 +38,6 @@ WANTLIB+=             ICE SM X11 Xaw Xmu Xt xcb
 .else
 CONFIGURE_ARGS+=       --without-x
 .endif
-
-do-gen:
-       @cd ${WRKSRC}; ${AUTOCONF_ENV} autoreconf -i
 
 do-install:
        ${INSTALL_DATA_DIR} ${PREFIX}/share/zangband
-- 
Christian "naddy" Weisgerber                          [email protected]

Reply via email to