diff options
Diffstat (limited to 'contrib/bmake/mk/autoconf.mk')
-rw-r--r-- | contrib/bmake/mk/autoconf.mk | 40 |
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 |