aboutsummaryrefslogtreecommitdiff
path: root/contrib/bmake/mk/autoconf.mk
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bmake/mk/autoconf.mk')
-rw-r--r--contrib/bmake/mk/autoconf.mk40
1 files changed, 29 insertions, 11 deletions
diff --git a/contrib/bmake/mk/autoconf.mk b/contrib/bmake/mk/autoconf.mk
index 61e6978043a8..24532c4e9eab 100644
--- a/contrib/bmake/mk/autoconf.mk
+++ b/contrib/bmake/mk/autoconf.mk
@@ -1,6 +1,8 @@
-# $Id: autoconf.mk,v 1.10 2020/08/19 17:51:53 sjg Exp $
+# SPDX-License-Identifier: BSD-2-Clause
#
-# @(#) Copyright (c) 1996-2009, Simon J. Gerraty
+# $Id: autoconf.mk,v 1.20 2024/02/17 17:26:57 sjg Exp $
+#
+# @(#) Copyright (c) 1996-2024, Simon J. Gerraty
#
# This file is provided in the hope that it will
# be of use. There is absolutely NO WARRANTY.
@@ -13,39 +15,46 @@
# sjg@crufty.net
#
-.NOPATH: config.h config.status
+.NOPATH: config.h config.gen config.recheck config.status
CONFIGURE_DEPS += ${.CURDIR}/config.h.in ${.CURDIR}/configure
.if !target(config.h)
-config.h: ${CONFIGURE_DEPS} config.status
+config.h: .NOTMAIN ${CONFIGURE_DEPS} config.status
./config.status
+.if !empty(AUTOCONF_GENERATED_MAKEFILE) && ${AUTOCONF_GENERATED_MAKEFILE:T:@m@${"${.MAKE.MAKEFILES:T:M$m}":?yes:no}@:Mno} != ""
+ @echo Generated ${AUTOCONF_GENERATED_MAKEFILE}, you need to restart; exit 1
+.endif
.endif
.if !target(config.status)
# avoid the targets behaving differently
+config.status: .NOTMAIN
.if exists(${.OBJDIR}/config.status)
config.status: config.recheck
.else
config.status: config.gen
.endif
-config.recheck: ${CONFIGURE_DEPS}
+beforebuild: .NOTMAIN config.status .WAIT
+
+config.recheck: .NOTMAIN ${CONFIGURE_DEPS} config.gen
./config.status --recheck
@touch $@
-config.gen: ${CONFIGURE_DEPS}
+config.gen: .NOTMAIN ${CONFIGURE_DEPS}
CC="${CC} ${CCMODE}" ${.CURDIR}/configure --no-create ${CONFIGURE_ARGS}
@touch $@ config.recheck
-CLEANFILES+= config.recheck config.gen config.status *.meta
+CLEANFILES+= config.recheck config.gen config.status *.meta \
+ ${AUTOCONF_GENERATED_MAKEFILE:U}
.endif
# avoid things blowing up if these are not here...
# this is not quite per the autoconf manual,
# and is extremely convoluted - but all utterly necessary!
-.if make(autoconf-in) || make(configure) || make(config.h.in) || ${AUTO_AUTOCONF:Uno:tl} == "yes"
+.if make(autoconf-input) || make(configure) || make(config.h.in) || ${MK_AUTO_AUTOCONF:Uno} == "yes"
AUTOCONF ?= autoconf
AUTOHEADER ?= autoheader
@@ -66,15 +75,24 @@ ACLOCAL += aclocal.m4
.if exists(${.CURDIR}/acconfig.h)
ACCONFIG += acconfig.h
.endif
+.if exists(${.CURDIR}/configure.ac)
+CONFIGURE_SRC = ${.CURDIR}/configure.ac
+.else
+CONFIGURE_SRC ?= ${.CURDIR}/configure.in
+.endif
-config.h.in: ${.CURDIR}/configure.in ${ACCONFIG}
+config.h.in: .NOTMAIN ${CONFIGURE_SRC} ${ACCONFIG}
(cd ${.CURDIR} && ${AUTOHEADER})
-configure: ${.CURDIR}/configure.in ${ACLOCAL}
+configure: .NOTMAIN ${CONFIGURE_SRC} ${ACLOCAL}
(cd ${.CURDIR} && ${AUTOCONF})
AUTOCONF_INPUTS += configure
-autoconf-input: ${AUTOCONF_INPUTS}
+.if exists(${.CURDIR}/config.h.in)
+AUTOCONF_INPUTS += config.h.in
+.endif
+
+autoconf-input: .NOTMAIN ${AUTOCONF_INPUTS}
.endif
.endif