418 lines
14 KiB
Makefile
418 lines
14 KiB
Makefile
#-*- mode: makefile; tab-width: 4; -*-
|
|
# ex:ts=4
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
# Please view me with 4 column tabs!
|
|
#
|
|
# Please make sure all changes to this file are passed either through
|
|
# the maintainer, or portmgr@FreeBSD.org
|
|
|
|
Autotools_Include_MAINTAINER= ade@FreeBSD.org
|
|
|
|
#---------------------------------------------------------------------------
|
|
# Entry points into the autotools system
|
|
#---------------------------------------------------------------------------
|
|
#
|
|
# USE_AUTOMAKE_VER=<value>
|
|
# - Port wishes to use automake, including the configuration step
|
|
# - Implies GNU_CONFIGURE?=yes and WANT_AUTOMAKE_VER=<value>
|
|
#
|
|
# WANT_AUTOMAKE_VER=<value>
|
|
# - Port needs access to the automake build environment
|
|
#
|
|
# WANT_AUTOMAKE_RUN=yes
|
|
# - Port also needs access to automake as a run-time dependency
|
|
# This is a NULL-OP if neither {USE,WANT}_AUTOMAKE_VER are defined
|
|
#
|
|
# AUTOMAKE_ARGS=...
|
|
# - Extra arguments passed to automake during configure step
|
|
#
|
|
#---------------------------------------------------------------------------
|
|
#
|
|
# USE_AUTOCONF_VER=<value>
|
|
# - Port wishes to use autoconf, including the configuration step
|
|
# - Implies GNU_CONFIGURE?=yes and WANT_AUTOCONF_VER=<value>
|
|
#
|
|
# USE_AUTOHEADER_VER=<value>
|
|
# - Port wishes to use autoheader in the configuration step
|
|
# - Implies USE_AUTOCONF_VER=<value>
|
|
#
|
|
# WANT_AUTOCONF_VER=<value>
|
|
# - Port needs access to the autoconf build environment
|
|
#
|
|
# WANT_AUTOCONF_RUN=yes
|
|
# - Port also needs access to autoconf as a run-time dependency
|
|
# This is a NULL-OP if neither {USE,WANT}_AUTOCONF_VER are defined
|
|
#
|
|
# AUTOCONF_ARGS=...
|
|
# - Extra arguments passed to autoconf during configure step
|
|
#
|
|
# AUTOHEADER_ARGS=...
|
|
# - Extra arguments passed to autoheader during configure step
|
|
#
|
|
#---------------------------------------------------------------------------
|
|
#
|
|
# USE_LIBLTDL=yes
|
|
# - Convenience knob to depend on the library from devel/libltdl15
|
|
#
|
|
# USE_LIBTOOL_VER=<value>
|
|
# - Port wishes to use libtool, including the configuration step
|
|
# - Port will use the ports version of libtool
|
|
# - Implies GNU_CONFIGURE?=yes and WANT_LIBTOOL_VER=<value>
|
|
#
|
|
# USE_INC_LIBTOOL_VER=<value>
|
|
# - Port wishes to use libtool, including the configuration step
|
|
# - Port will use its own included version of libtool
|
|
# - Implies GNU_CONFIGURE?=yes and WANT_LIBTOOL_VER=<value>
|
|
#
|
|
# WANT_LIBTOOL_VER=<value>
|
|
# - Port needs access to the libtool build environment
|
|
#
|
|
# WANT_LIBTOOL_RUN=yes
|
|
# - Port also needs access to autoconf as a run-time dependency
|
|
# This is a NULL-OP if neither {USE,WANT}_LIBTOOL_VER are defined
|
|
#
|
|
# LIBTOOLFLAGS=<value>
|
|
# - Arguments passed to libtool during configure step
|
|
# Currently defaults to "--disable-ltlibs", but this will be going
|
|
# away when libtool .la files are brought back
|
|
#
|
|
# LIBTOOLFILES=<list-of-files>
|
|
# - A list of files to patch during libtool pre-configuration
|
|
# Defaults to "aclocal.m4" if autoconf is in use, otherwise "configure"
|
|
#
|
|
#---------------------------------------------------------------------------
|
|
# Major changes:
|
|
#
|
|
# - USE_AUTOMAKE, USE_AUTOCONF, USE_AUTOHEADER, and USE_LIBTOOL have
|
|
# been deprecated in favor of USE_<x>_VER=...
|
|
# As of 4/21/2004, changes should be made as follows:
|
|
# USE_AUTOMAKE -> USE_AUTOMAKE_VER=14
|
|
# USE_AUTOCONF -> USE_AUTOCONF_VER=213
|
|
# USE_AUTOHEADER -> USE_AUTOHEADER_VER=213
|
|
# USE_LIBTOOL -> USE_LIBTOOL_VER=13
|
|
#
|
|
# - additional variables WANT_{AUTOMAKE,AUTOCONF,AUTOHEADER,LIBTOOL}_RUN
|
|
# have been added to include a run-time dependency on the appropriate
|
|
# autotools port, as part of work in progress to remove ALL explicit
|
|
# dependencies on autotools in port Makefiles, in favor of using the
|
|
# autotools knobs
|
|
#
|
|
# - USE_LIBLTDL has been added as a convenience function to provide
|
|
# a lib dependency on devel/libltdl15, so that if the major version
|
|
# number changes in future, only one item has to be updated
|
|
#
|
|
# - {WANT,USE}_AUTOMAKE_VER no longer automatically brings in
|
|
# autoconf as before, to allow for greater flexibility in version
|
|
# matching, and to simplify bsd.autotools.mk
|
|
# It is now the port Makefile responsibility to specifically bring
|
|
# in the "appropriate" version of autoconf if automake is specified.
|
|
# The mappings are as follows (automake,autoconf pairs):
|
|
# (14,213) (15,253) (18,259)
|
|
#
|
|
# - Only set GNU_CONFIGURE automatically if USE_<x>_VER is specified,
|
|
# since WANT_<x>_VER implies that we want the environment, but not
|
|
# the configuration steps.
|
|
#
|
|
# Things to do:
|
|
# - Move both autoconf and automake to true versioned ports
|
|
# (devel/autoconf253 and devel/automake14 respectively). This is
|
|
# likely to break a number of ports that make assumptions about
|
|
# "autoconf", "automake", et al. but is required if we are to move
|
|
# to strictly-versioned autotools.
|
|
#
|
|
# - Work on killing off as many "old" autotools ports as possible
|
|
#
|
|
# - Bring back the installation of libtool .la files by default, removing
|
|
# those FreeBSD-specific knobs added to prevent this
|
|
#
|
|
# - Migrate the myriad of autotools-related knobs into a single
|
|
# USE_AUTOTOOLS=... (to be defined) variable, akin to USE_GNOME=...
|
|
|
|
#---------------------------------------------------------------------------
|
|
# DEPRECATED ENTRY POINTS
|
|
#---------------------------------------------------------------------------
|
|
|
|
.for i in AUTOMAKE AUTOCONF AUTOHEADER LIBTOOL
|
|
. if defined(USE_${i})
|
|
BROKEN= "USE_${i} deprecated: replace with USE_${i}_VER=..."
|
|
. endif
|
|
. if defined(WANT_${i})
|
|
BROKEN= "WANT_${i} deprecated: replace with WANT_${i}_VER=..."
|
|
. endif
|
|
.endfor
|
|
|
|
#---------------------------------------------------------------------------
|
|
# AUTOMAKE
|
|
#---------------------------------------------------------------------------
|
|
|
|
.if defined(USE_AUTOMAKE_VER)
|
|
WANT_AUTOMAKE_VER?= ${USE_AUTOMAKE_VER}
|
|
GNU_CONFIGURE?= yes
|
|
.endif
|
|
|
|
.if defined(WANT_AUTOMAKE_VER)
|
|
|
|
# XXX: hackery to handle non-versioned "legacy" ports
|
|
# destined to die
|
|
#
|
|
. if ${WANT_AUTOMAKE_VER} == 15
|
|
AUTOMAKE_SUFFIX= # empty
|
|
. else
|
|
AUTOMAKE_SUFFIX= ${WANT_AUTOMAKE_VER}
|
|
. endif
|
|
|
|
# Make sure we specified a legal version of automake
|
|
#
|
|
. if !exists(${PORTSDIR}/devel/automake${AUTOMAKE_SUFFIX}/Makefile)
|
|
BROKEN= "Unknown AUTOMAKE version: ${WANT_AUTOMAKE_VER}"
|
|
. endif
|
|
|
|
# Set up the automake environment
|
|
#
|
|
AUTOMAKE= ${LOCALBASE}/bin/automake${AUTOMAKE_SUFFIX}
|
|
AUTOMAKE_DIR= ${LOCALBASE}/share/automake${AUTOMAKE_SUFFIX}
|
|
ACLOCAL= ${LOCALBASE}/bin/aclocal${AUTOMAKE_SUFFIX}
|
|
ACLOCAL_DIR= ${LOCALBASE}/share/aclocal${AUTOMAKE_SUFFIX}
|
|
AUTOMAKE_PATH= ${LOCALBASE}/libexec/automake${AUTOMAKE_SUFFIX}:
|
|
AUTOMAKE_VARS= ACLOCAL=${ACLOCAL} AUTOMAKE=${AUTOMAKE}
|
|
AUTOMAKE_VERSION= ${WANT_AUTOMAKE_VER}
|
|
|
|
AUTOMAKE_DEPENDS= ${AUTOMAKE}:${PORTSDIR}/devel/automake${AUTOMAKE_SUFFIX}
|
|
BUILD_DEPENDS+= ${AUTOMAKE_DEPENDS}
|
|
. if defined(WANT_AUTOMAKE_RUN)
|
|
RUN_DEPENDS+= ${AUTOMAKE_DEPENDS}
|
|
. endif
|
|
|
|
# XXX: here be dragons, for some reason
|
|
#
|
|
. if ${WANT_AUTOMAKE_VER} == 14
|
|
AUTOMAKE_ARGS+= -i
|
|
. endif
|
|
|
|
.endif
|
|
|
|
#---------------------------------------------------------------------------
|
|
# AUTOCONF/AUTOHEADER
|
|
#---------------------------------------------------------------------------
|
|
|
|
.if defined(USE_AUTOHEADER_VER)
|
|
USE_AUTOCONF_VER?= ${USE_AUTOHEADER_VER}
|
|
.endif
|
|
|
|
.if defined(USE_AUTOCONF_VER)
|
|
WANT_AUTOCONF_VER?= ${USE_AUTOCONF_VER}
|
|
GNU_CONFIGURE?= yes
|
|
.endif
|
|
|
|
# Sanity checking - we can't use a different version of
|
|
# autoheader and autoconf
|
|
#
|
|
.if defined(USE_AUTOHEADER_VER) && defined(USE_AUTOCONF_VER) && \
|
|
${USE_AUTOHEADER_VER} != ${USE_AUTOCONF_VER}
|
|
BROKEN= "Incompatible autoheader ${USE_AUTOHEADER_VER} and autoconf ${USE_AUTOCONF_VER}"
|
|
.endif
|
|
|
|
.if defined(WANT_AUTOHEADER_VER) && defined(WANT_AUTOCONF_VER) && \
|
|
${WANT_AUTOHEADER_VER} != ${WANT_AUTOCONF_VER}
|
|
BROKEN= "Incompatible autoheader ${WANT_AUTOHEADER_VER} and autoconf ${WANT_AUTOCONF_VER}"
|
|
.endif
|
|
|
|
.if defined(WANT_AUTOCONF_VER)
|
|
|
|
# XXX: hackery to handle non-versioned "legacy" ports
|
|
# destined to die
|
|
#
|
|
. if ${WANT_AUTOCONF_VER} == 253
|
|
AUTOCONF_SUFFIX= # empty
|
|
. else
|
|
AUTOCONF_SUFFIX= ${WANT_AUTOCONF_VER}
|
|
. endif
|
|
|
|
# Make sure we specified a legal version of autoconf
|
|
#
|
|
. if !exists(${PORTSDIR}/devel/autoconf${AUTOCONF_SUFFIX}/Makefile)
|
|
BROKEN= "Unknown AUTOCONF version: ${WANT_AUTOCONF_VER}"
|
|
. endif
|
|
|
|
# Set up the autoconf/autoheader environment
|
|
#
|
|
AUTOCONF= ${LOCALBASE}/bin/autoconf${AUTOCONF_SUFFIX}
|
|
AUTOCONF_DIR= ${LOCALBASE}/share/autoconf${AUTOCONF_SUFFIX}
|
|
AUTOHEADER= ${LOCALBASE}/bin/autoheader${AUTOCONF_SUFFIX}
|
|
AUTOIFNAMES= ${LOCALBASE}/bin/ifnames${AUTOCONF_SUFFIX}
|
|
AUTOM4TE= ${LOCALBASE}/bin/autom4te${AUTOCONF_SUFFIX}
|
|
AUTORECONF= ${LOCALBASE}/bin/autoreconf${AUTOCONF_SUFFIX}
|
|
AUTOSCAN= ${LOCALBASE}/bin/autoscan${AUTOCONF_SUFFIX}
|
|
AUTOUPDATE= ${LOCALBASE}/bin/autoupdate${AUTOCONF_SUFFIX}
|
|
AUTOCONF_PATH= ${LOCALBASE}/libexec/autoconf${AUTOCONF_SUFFIX}:
|
|
AUTOCONF_VARS= AUTOCONF=${AUTOCONF} AUTOHEADER=${AUTOHEADER} AUTOIFNAMES=${AUTOIFNAMES} AUTOM4TE=${AUTOM4TE} AUTORECONF=${AUTORECONF} AUTOSCAN=${AUTOSCAN} AUTOUPDATE=${AUTOUPDATE}
|
|
AUTOCONF_VERSION= ${WANT_AUTOCONF_VER}
|
|
|
|
AUTOCONF_DEPENDS= ${AUTOCONF}:${PORTSDIR}/devel/autoconf${AUTOCONF_SUFFIX}
|
|
BUILD_DEPENDS+= ${AUTOCONF_DEPENDS}
|
|
. if defined(WANT_AUTOCONF_RUN) || defined(WANT_AUTOHEADER_RUN)
|
|
RUN_DEPENDS+= ${AUTOCONF_DEPENDS}
|
|
. endif
|
|
|
|
.endif
|
|
|
|
#---------------------------------------------------------------------------
|
|
# LIBTOOL/LIBLTDL
|
|
#---------------------------------------------------------------------------
|
|
|
|
# Convenience function to save people having to depend directly on
|
|
# devel/libltdl15
|
|
#
|
|
.if defined(USE_LIBLTDL)
|
|
LIB_DEPENDS+= ltdl.4:${PORTSDIR}/devel/libltdl15
|
|
.endif
|
|
|
|
.if defined(USE_LIBTOOL_VER)
|
|
GNU_CONFIGURE?= yes
|
|
WANT_LIBTOOL_VER?= ${USE_LIBTOOL_VER}
|
|
.elif defined(USE_INC_LIBTOOL_VER)
|
|
GNU_CONFIGURE?= yes
|
|
WANT_LIBTOOL_VER?= ${USE_INC_LIBTOOL_VER}
|
|
.endif
|
|
|
|
# Note that there aren't any non-versioned libtools, so we can skip
|
|
# a little bit of cruft that exists in automake/autoconf above
|
|
#
|
|
.if defined(WANT_LIBTOOL_VER)
|
|
LIBTOOL_SUFFIX= ${WANT_LIBTOOL_VER}
|
|
|
|
# Make sure we specified a legal version of libtool
|
|
#
|
|
. if !exists(${PORTSDIR}/devel/libtool${LIBTOOL_SUFFIX}/Makefile)
|
|
BROKEN= "Unknown LIBTOOL version: ${WANT_LIBTOOL_VER}"
|
|
. endif
|
|
|
|
# Set up the libtool environment
|
|
#
|
|
LIBTOOL= ${LOCALBASE}/bin/libtool${LIBTOOL_SUFFIX}
|
|
LIBTOOLIZE= ${LOCALBASE}/bin/libtoolize${LIBTOOL_SUFFIX}
|
|
LIBTOOL_LIBEXECDIR= ${LOCALBASE}/libexec/libtool${LIBTOOL_SUFFIX}
|
|
LIBTOOL_SHAREDIR= ${LOCALBASE}/share/libtool${LIBTOOL_SUFFIX}
|
|
LIBTOOL_VERSION= ${WANT_LIBTOOL_VER}
|
|
LIBTOOL_M4= ${LOCALBASE}/share/aclocal/libtool${LIBTOOL_VERSION}.m4
|
|
LTMAIN= ${LIBTOOL_SHAREDIR}/ltmain.sh
|
|
. if ${LIBTOOL_VERSION} == 13
|
|
LTCONFIG= ${LIBTOOL_SHAREDIR}/ltconfig${LIBTOOL_VERSION}
|
|
. else
|
|
LTCONFIG= ${TRUE}
|
|
. endif
|
|
LIBTOOL_PATH= ${LIBTOOL_LIBEXECDIR}:
|
|
LIBTOOL_VARS= LIBTOOL=${LIBTOOL} LIBTOOLIZE=${LIBTOOLIZE} LIBTOOL_M4=${LIBTOOL_M4} LTCONFIG=${LTCONFIG}
|
|
|
|
LIBTOOL_DEPENDS= ${LIBTOOL}:${PORTSDIR}/devel/libtool${LIBTOOL_SUFFIX}
|
|
BUILD_DEPENDS+= ${LIBTOOL_DEPENDS}
|
|
. if defined(WANT_LIBTOOL_RUN)
|
|
RUN_DEPENDS+= ${LIBTOOL_DEPENDS}
|
|
. endif
|
|
|
|
LIBTOOLFLAGS?= --disable-ltlibs # XXX: probably not useful
|
|
. if defined(USE_AUTOCONF_VER)
|
|
LIBTOOLFILES?= aclocal.m4
|
|
. else
|
|
LIBTOOLFILES?= configure
|
|
. endif
|
|
|
|
.endif
|
|
|
|
#---------------------------------------------------------------------------
|
|
# Environmental handling
|
|
# Now that we've got our environments defined for autotools, add them
|
|
# in so that the rest of the world can handle them
|
|
#
|
|
AUTOTOOLS_PATH= ${AUTOMAKE_PATH}${AUTOCONF_PATH}${LIBTOOL_PATH}
|
|
AUTOTOOLS_VARS= ${AUTOMAKE_VARS} ${AUTOCONF_VARS} ${LIBTOOL_VARS}
|
|
|
|
.if defined(AUTOTOOLS_PATH) && (${AUTOTOOLS_PATH} != "")
|
|
AUTOTOOLS_ENV+= PATH=${AUTOTOOLS_PATH}${PATH}
|
|
CONFIGURE_ENV+= PATH=${AUTOTOOLS_PATH}${PATH}
|
|
MAKE_ENV+= PATH=${AUTOTOOLS_PATH}${PATH}
|
|
SCRIPTS_ENV+= PATH=${AUTOTOOLS_PATH}${PATH}
|
|
. if defined(WANT_AUTOMAKE_VER)
|
|
AUTOMAKE_ENV+= PATH=${AUTOTOOLS_PATH}${PATH}
|
|
. endif
|
|
. if defined(WANT_AUTOCONF_VER)
|
|
AUTOCONF_ENV+= PATH=${AUTOTOOLS_PATH}${PATH}
|
|
. endif
|
|
. if defined(WANT_AUTOHEADER_VER)
|
|
AUTOHEADER_ENV+=PATH=${AUTOTOOLS_PATH}${PATH}
|
|
. endif
|
|
.endif
|
|
|
|
.if defined(AUTOTOOLS_VARS) && (${AUTOTOOLS_VARS} != "")
|
|
AUTOTOOLS_ENV+= ${AUTOTOOLS_VARS}
|
|
CONFIGURE_ENV+= ${AUTOTOOLS_VARS}
|
|
MAKE_ENV+= ${AUTOTOOLS_VARS}
|
|
SCRIPTS_ENV+= ${AUTOTOOLS_VARS}
|
|
. if defined(WANT_AUTOMAKE_VER)
|
|
AUTOMAKE_ENV+= ${AUTOTOOLS_VARS}
|
|
. endif
|
|
. if defined(WANT_AUTOCONF_VER)
|
|
AUTOCONF_ENV+= ${AUTOTOOLS_VARS}
|
|
. endif
|
|
. if defined(WANT_AUTOHEADER_VER)
|
|
AUTOHEADER_ENV+=${AUTOTOOLS_VARS}
|
|
. endif
|
|
.endif
|
|
|
|
#---------------------------------------------------------------------------
|
|
# Make targets
|
|
#---------------------------------------------------------------------------
|
|
|
|
# run-autotools
|
|
#
|
|
# Part of the configure set - run appropriate programs prior to
|
|
# the actual configure target if autotools are in use
|
|
#
|
|
.if !target(run-autotools)
|
|
run-autotools:
|
|
. if defined(USE_AUTOMAKE_VER)
|
|
@(cd ${CONFIGURE_WRKSRC} && ${SETENV} ${AUTOTOOLS_ENV} ${AUTOMAKE} \
|
|
${AUTOMAKE_ARGS})
|
|
. endif
|
|
. if defined(USE_AUTOCONF_VER)
|
|
@(cd ${CONFIGURE_WRKSRC} && ${SETENV} ${AUTOTOOLS_ENV} ${AUTOCONF} \
|
|
${AUTOCONF_ARGS})
|
|
. endif
|
|
. if defined(USE_AUTOHEADER_VER)
|
|
@(cd ${CONFIGURE_WRKSRC} && ${SETENV} ${AUTOTOOLS_ENV} ${AUTOHEADER} \
|
|
${AUTOHEADER_ARGS})
|
|
. endif
|
|
.endif
|
|
|
|
# patch-autotools
|
|
#
|
|
# Special target to automatically make libtool using ports use the
|
|
# libtool port. See above for default values of LIBTOOLFILES.
|
|
#
|
|
.if !target(patch-autotools)
|
|
patch-autotools:
|
|
. if defined(USE_INC_LIBTOOL_VER)
|
|
@(cd ${PATCH_WRKSRC}; \
|
|
for file in ${LIBTOOLFILES}; do \
|
|
${CP} $$file $$file.tmp; \
|
|
${SED} -e "s^\$$ac_aux_dir/ltconfig^${LTCONFIG}^g" \
|
|
-e "/^ltmain=/!s^\$$ac_aux_dir/ltmain.sh^${LIBTOOLFLAGS} ${LTMAIN}^g" \
|
|
$$file.tmp > $$file; \
|
|
${RM} $$file.tmp; \
|
|
done);
|
|
. elif defined(USE_LIBTOOL_VER)
|
|
@(cd ${PATCH_WRKSRC}; \
|
|
for file in ${LIBTOOLFILES}; do \
|
|
${CP} $$file $$file.tmp; \
|
|
${SED} -e "s^\$$ac_aux_dir/ltconfig^${LTCONFIG}^g" \
|
|
-e "/^ltmain=/!s^\$$ac_aux_dir/ltmain.sh^${LIBTOOLFLAGS} ${LTMAIN}^g" \
|
|
-e '/^LIBTOOL=/s^\$$(top_builddir)/libtool^${LIBTOOL}^g' \
|
|
$$file.tmp > $$file; \
|
|
${RM} $$file.tmp; \
|
|
done);
|
|
. else
|
|
@${DO_NADA}
|
|
. endif
|
|
.endif
|