xref: /dflybsd-src/contrib/bmake/mk/autoconf.mk (revision 9e7ae5a0527a977cab412aede3a532cfe2903bbb)
1*6eef5f0cSAntonio Huete Jimenez# $Id: autoconf.mk,v 1.16 2021/10/19 17:36:06 sjg Exp $
25f1e34d9SAlexandre Perrin#
35f1e34d9SAlexandre Perrin#	@(#) Copyright (c) 1996-2009, Simon J. Gerraty
45f1e34d9SAlexandre Perrin#
55f1e34d9SAlexandre Perrin#	This file is provided in the hope that it will
65f1e34d9SAlexandre Perrin#	be of use.  There is absolutely NO WARRANTY.
75f1e34d9SAlexandre Perrin#	Permission to copy, redistribute or otherwise
85f1e34d9SAlexandre Perrin#	use this file is hereby granted provided that
95f1e34d9SAlexandre Perrin#	the above copyright notice and this notice are
105f1e34d9SAlexandre Perrin#	left intact.
115f1e34d9SAlexandre Perrin#
125f1e34d9SAlexandre Perrin#	Please send copies of changes and bug-fixes to:
135f1e34d9SAlexandre Perrin#	sjg@crufty.net
145f1e34d9SAlexandre Perrin#
155f1e34d9SAlexandre Perrin
16*6eef5f0cSAntonio Huete Jimenez.NOPATH:	config.h config.gen config.recheck config.status
175f1e34d9SAlexandre Perrin
18ca58f742SDaniel FojtCONFIGURE_DEPS += ${.CURDIR}/config.h.in ${.CURDIR}/configure
19ca58f742SDaniel Fojt
205f1e34d9SAlexandre Perrin.if !target(config.h)
21*6eef5f0cSAntonio Huete Jimenezconfig.h:	.NOTMAIN ${CONFIGURE_DEPS} config.status
225f1e34d9SAlexandre Perrin	./config.status
23*6eef5f0cSAntonio Huete Jimenez.if !empty(AUTOCONF_GENERATED_MAKEFILE) && ${AUTOCONF_GENERATED_MAKEFILE:T:@m@${"${.MAKE.MAKEFILES:T:M$m}":?yes:no}@:Mno} != ""
24*6eef5f0cSAntonio Huete Jimenez	@echo Generated ${AUTOCONF_GENERATED_MAKEFILE}, you need to restart; exit 1
25*6eef5f0cSAntonio Huete Jimenez.endif
265f1e34d9SAlexandre Perrin.endif
275f1e34d9SAlexandre Perrin
285f1e34d9SAlexandre Perrin.if !target(config.status)
295f1e34d9SAlexandre Perrin# avoid the targets behaving differently
30*6eef5f0cSAntonio Huete Jimenezconfig.status:	.NOTMAIN
315f1e34d9SAlexandre Perrin.if exists(${.OBJDIR}/config.status)
325f1e34d9SAlexandre Perrinconfig.status:	config.recheck
335f1e34d9SAlexandre Perrin.else
345f1e34d9SAlexandre Perrinconfig.status:  config.gen
355f1e34d9SAlexandre Perrin.endif
365f1e34d9SAlexandre Perrin
37*6eef5f0cSAntonio Huete Jimenezconfig.recheck: .NOTMAIN ${CONFIGURE_DEPS} config.gen
385f1e34d9SAlexandre Perrin	./config.status --recheck
395f1e34d9SAlexandre Perrin	@touch $@
405f1e34d9SAlexandre Perrin
41*6eef5f0cSAntonio Huete Jimenezconfig.gen: .NOTMAIN ${CONFIGURE_DEPS}
425f1e34d9SAlexandre Perrin	CC="${CC} ${CCMODE}" ${.CURDIR}/configure --no-create ${CONFIGURE_ARGS}
435f1e34d9SAlexandre Perrin	@touch $@ config.recheck
445f1e34d9SAlexandre Perrin
45*6eef5f0cSAntonio Huete JimenezCLEANFILES+= config.recheck config.gen config.status *.meta \
46*6eef5f0cSAntonio Huete Jimenez	${AUTOCONF_GENERATED_MAKEFILE:U}
475f1e34d9SAlexandre Perrin.endif
485f1e34d9SAlexandre Perrin
495f1e34d9SAlexandre Perrin# avoid things blowing up if these are not here...
505f1e34d9SAlexandre Perrin# this is not quite per the autoconf manual,
515f1e34d9SAlexandre Perrin# and is extremely convoluted - but all utterly necessary!
525f1e34d9SAlexandre Perrin
535f1e34d9SAlexandre Perrin.if make(autoconf-in) || make(configure) || make(config.h.in) || ${AUTO_AUTOCONF:Uno:tl} == "yes"
545f1e34d9SAlexandre PerrinAUTOCONF ?= autoconf
555f1e34d9SAlexandre PerrinAUTOHEADER ?= autoheader
565f1e34d9SAlexandre Perrin
575f1e34d9SAlexandre Perrin# expand it to a full path
585f1e34d9SAlexandre PerrinAUTOCONF := ${AUTOCONF:${M_whence}}
595f1e34d9SAlexandre Perrin
605f1e34d9SAlexandre Perrin.if exists(${AUTOCONF})
615f1e34d9SAlexandre Perrin
625f1e34d9SAlexandre Perrin.PRECIOUS: configure config.h.in config.status
635f1e34d9SAlexandre Perrin
645f1e34d9SAlexandre PerrinACLOCAL =
655f1e34d9SAlexandre PerrinACCONFIG =
665f1e34d9SAlexandre Perrin
675f1e34d9SAlexandre Perrin.if exists(${.CURDIR}/aclocal.m4)
685f1e34d9SAlexandre PerrinACLOCAL += aclocal.m4
695f1e34d9SAlexandre Perrin.endif
705f1e34d9SAlexandre Perrin# use of acconfig.h is deprecated!
715f1e34d9SAlexandre Perrin.if exists(${.CURDIR}/acconfig.h)
725f1e34d9SAlexandre PerrinACCONFIG += acconfig.h
735f1e34d9SAlexandre Perrin.endif
745f1e34d9SAlexandre Perrin
75*6eef5f0cSAntonio Huete Jimenezconfig.h.in:	.NOTMAIN ${.CURDIR}/configure.in ${ACCONFIG}
765f1e34d9SAlexandre Perrin	(cd ${.CURDIR} && ${AUTOHEADER})
775f1e34d9SAlexandre Perrin
78*6eef5f0cSAntonio Huete Jimenezconfigure:	.NOTMAIN ${.CURDIR}/configure.in ${ACLOCAL}
795f1e34d9SAlexandre Perrin	(cd ${.CURDIR} && ${AUTOCONF})
805f1e34d9SAlexandre Perrin
815f1e34d9SAlexandre PerrinAUTOCONF_INPUTS += configure
82*6eef5f0cSAntonio Huete Jimenezautoconf-input:	.NOTMAIN ${AUTOCONF_INPUTS}
835f1e34d9SAlexandre Perrin
845f1e34d9SAlexandre Perrin.endif
855f1e34d9SAlexandre Perrin.endif
86