summaryrefslogtreecommitdiff
path: root/mk/mkc_imp.foreign_autotools.mk
blob: e01166f8655beb27a9e9ffe752b644ca1b42a1ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# Copyright (c) 2014 by Aleksey Cheusov
#
# See LICENSE file in the distribution.
############################################################

.ifndef _MKC_IMP_FOREIGN_AUTOTOOLS_MK
_MKC_IMP_FOREIGN_AUTOTOOLS_MK := 1

MESSAGE.atconf ?=	@${_MESSAGE} "CONFIGURE:"
MESSAGE.autotools ?=	@${_MESSAGE} "AUTOTOOLS:"

MKC_REQUIRE_PROGS +=	autoreconf

AT_USE_AUTOMAKE ?=	yes
AT_MAKE         ?=	${MAKE}
AT_AUTORECONF_ARGS ?=	-is -f

.if empty(FSRCDIR)
MKC_ERR_MSG +=	"FSRCDIR should not be empty"
.elif empty(FSRCDIR:M/*)
_FSRCDIR = ${.CURDIR}/${FSRCDIR}
.else
_FSRCDIR = ${FSRCDIR}
.endif

.if defined(MAKEOBJDIR) || defined(MAKEOBJDIRPREFIX)
_FOBJDIR =	${.OBJDIR}
.else
_FOBJDIR =	${_FSRCDIR}
.endif

_CONFIGURE_ARGS = --prefix ${PREFIX:Q} --bindir=${BINDIR:Q} \
   --sbindir=${SBINDIR:Q} --libexecdir=${LIBEXECDIR} \
   --sysconfdir=${SYSCONFDIR:Q} --sharedstatedir=${SHAREDSTATEDIR:Q} \
   --localstatedir=${VARDIR:Q} --libdir=${LIBDIR:Q} \
   --includedir=${INCSDIR:Q} --datarootdir=${DATADIR:Q} \
   --infodir=${INFODIR:Q} --localedir=${DATADIR:Q}/locale \
   --mandir=${MANDIR:Q} --docdir=${DATADIR:Q}/doc/${PROJECTNAME} \
   --srcdir=${_FSRCDIR} ${AT_CONFIGURE_ARGS}

_CONFIGURE_ENV = CC=${CC:Q} CFLAGS=${_CFLAGS:Q} \
   CXX=${CXX:Q} CXXFLAGS=${_CXXFLAGS:Q} \
   CPPFLAGS=${_CPPFLAGS:Q} \
   LDFLAGS=${LDFLAGS:Q} LIBS=${LDADD:Q} CPP=${CPP:Q} ${AT_CONFIGURE_ENV}

_AT_MAKE_ENV = ${DESTDIR:DDESTDIR=${DESTDIR:Q}} ${AT_MAKE_ENV}

realdo_mkgen:
	${MESSAGE.mkgen}
	${_V} ${PROG.autoreconf} ${AT_AUTORECONF_ARGS} ${_FSRCDIR}

realdo_configure: check_mkc_err_msg .WAIT at_do_configure

at_do_configure: .PHONY
	${MESSAGE.atconf}
	${_V} cd ${_FOBJDIR}; env ${_CONFIGURE_ENV} ${_FSRCDIR}/configure ${_CONFIGURE_ARGS}

.for i in all clean cleandir install uninstall
realdo_${i}: at_do_${i}
at_do_${i}: .PHONY
	${MESSAGE.autotools}
	${_V} set -e; \
	cd ${_FOBJDIR}; \
	if test -f Makefile; then \
	    env ${_AT_MAKE_ENV} ${AT_MAKE:S/^$$/false/} ${AT_MAKEFLAGS} \
		MAKE=${AT_MAKE} ${.TARGET:S/^at_do_//:S/cleandir/distclean/}; \
	fi
.endfor

CLEANDIRDIRS  +=	${_FSRCDIR}/autom4te.cache
CLEANDIRFILES +=	${_FSRCDIR}/aclocal.m4 ${_FOBJDIR}/config.log \
   ${_FOBJDIR}/config.status ${_FSRCDIR}/configure ${_FSRCDIR}/depcomp \
   ${_FSRCDIR}/INSTALL ${_FSRCDIR}/install-sh ${_FOBJDIR}/Makefile \
   ${_FSRCDIR}/missing ${_FSRCDIR}/compile ${_FOBJDIR}/stamp-h1

.if ${AT_USE_AUTOMAKE:tl:U} == yes
CLEANDIRFILES    +=	${_FSRCDIR}/Makefile.in
MKC_REQUIRE_PROGS +=	automake
.endif

.endif # _MKC_IMP_FOREIGN_AUTOTOOLS_MK