/[gentoo-x86]/eclass/autotools-utils.eclass
Gentoo

Diff of /eclass/autotools-utils.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.31 Revision 1.33
1# Copyright 1999-2011 Gentoo Foundation 1# Copyright 1999-2012 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/autotools-utils.eclass,v 1.31 2011/12/22 18:01:12 mgorny Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/autotools-utils.eclass,v 1.33 2012/01/09 10:16:25 jlec Exp $
4 4
5# @ECLASS: autotools-utils.eclass 5# @ECLASS: autotools-utils.eclass
6# @MAINTAINER: 6# @MAINTAINER:
7# Maciej Mrozowski <reavertm@gentoo.org> 7# Maciej Mrozowski <reavertm@gentoo.org>
8# Michał Górny <mgorny@gentoo.org> 8# Michał Górny <mgorny@gentoo.org>
91case ${EAPI:-0} in 91case ${EAPI:-0} in
92 2|3|4) ;; 92 2|3|4) ;;
93 *) die "EAPI=${EAPI} is not supported" ;; 93 *) die "EAPI=${EAPI} is not supported" ;;
94esac 94esac
95 95
96# @ECLASS-VARIABLE: AUTOTOOLS_AUTORECONF
97# @DEFAULT_UNSET
98# @DESCRIPTION:
99# Set to a non-empty value in order to enable running autoreconf
100# in src_prepare() and adding autotools dependencies.
101#
102# The eclass will try to determine the correct autotools to run including a few
103# external tools: gettext, glib-gettext, intltool, gtk-doc, gnome-doc-prepare.
104# If your tool is not supported, please open a bug and we'll add support for it.
105#
106# Note that dependencies are added for autoconf, automake and libtool only.
107# If your package needs one of the external tools listed above, you need to add
108# appropriate packages to DEPEND yourself.
109[[ ${AUTOTOOLS_AUTORECONF} ]] || _autotools_auto_dep=no
110
111AUTOTOOLS_AUTO_DEPEND=${_autotools_auto_dep} \
96inherit autotools eutils libtool 112inherit autotools eutils libtool
97 113
98EXPORT_FUNCTIONS src_prepare src_configure src_compile src_install src_test 114EXPORT_FUNCTIONS src_prepare src_configure src_compile src_install src_test
115
116unset _autotools_auto_dep
99 117
100# @ECLASS-VARIABLE: AUTOTOOLS_BUILD_DIR 118# @ECLASS-VARIABLE: AUTOTOOLS_BUILD_DIR
101# @DEFAULT_UNSET 119# @DEFAULT_UNSET
102# @DESCRIPTION: 120# @DESCRIPTION:
103# Build directory, location where all autotools generated files should be 121# Build directory, location where all autotools generated files should be
248 eqawarn "This is not supported and never was. Please report a bug against" 266 eqawarn "This is not supported and never was. Please report a bug against"
249 eqawarn "the offending ebuild. This will become a fatal error in a near future." 267 eqawarn "the offending ebuild. This will become a fatal error in a near future."
250 fi 268 fi
251} 269}
252 270
271# @FUNCTION: autotools-utils_autoreconf
272# @DESCRIPTION:
273# Reconfigure the sources (like gnome-autogen.sh or eautoreconf).
274autotools-utils_autoreconf() {
275 debug-print-function ${FUNCNAME} "$@"
276
277 # Override this func to not require unnecessary eaclocal calls.
278 autotools_check_macro() {
279 local x
280
281 # Add a few additional variants as we don't get expansions.
282 [[ ${1} = AC_CONFIG_HEADERS ]] && set -- "${@}" AC_CONFIG_HEADER
283
284 for x; do
285 grep -h "^${x}" configure.{ac,in} 2>/dev/null
286 done
287 }
288
289 einfo "Autoreconfiguring '${PWD}' ..."
290
291 local auxdir=$(sed -n -e 's/^AC_CONFIG_AUX_DIR(\(.*\))$/\1/p' \
292 configure.{ac,in} 2>/dev/null)
293 if [[ ${auxdir} ]]; then
294 auxdir=${auxdir%%]}
295 mkdir -p ${auxdir##[}
296 fi
297
298 # Support running additional tools like gnome-autogen.sh.
299 # Note: you need to add additional depends to the ebuild.
300
301 # gettext
302 if [[ $(autotools_check_macro AM_GLIB_GNU_GETTEXT) ]]; then
303 echo 'no' | autotools_run_tool glib-gettextize --copy
304 elif [[ $(autotools_check_macro AM_GNU_GETTEXT) ]]; then
305 eautopoint
306 fi
307
308 # intltool
309 if [[ $(autotools_check_macro AC_PROG_INTLTOOL IT_PROG_INTLTOOL) ]]
310 then
311 autotools_run_tool intltoolize --copy --automake
312 fi
313
314 # gtk-doc
315 if [[ $(autotools_check_macro GTK_DOC_CHECK) ]]; then
316 autotools_run_tool gtkdocize --copy
317 fi
318
319 # gnome-doc
320 if [[ $(autotools_check_macro GNOME_DOC_INIT) ]]; then
321 autotools_run_tool gnome-doc-prepare --copy
322 fi
323
324 # We need to perform the check twice to know whether to run eaclocal.
325 # (_elibtoolize does that itself)
326 if [[ $(autotools_check_macro AC_PROG_LIBTOOL AM_PROG_LIBTOOL LT_INIT) ]]
327 then
328 _elibtoolize --copy --force --install
329 else
330 eaclocal
331 fi
332
333 eautoconf
334 eautoheader
335 eautomake
336
337 local x
338 for x in $(autotools_get_subdirs); do
339 if [[ -d ${x} ]] ; then
340 pushd "${x}" >/dev/null
341 autotools-utils_eautoreconf
342 popd >/dev/null
343 fi
344 done
345}
346
253# @FUNCTION: autotools-utils_src_prepare 347# @FUNCTION: autotools-utils_src_prepare
254# @DESCRIPTION: 348# @DESCRIPTION:
255# The src_prepare function. 349# The src_prepare function.
256# 350#
257# Supporting PATCHES array and user patches. See base.eclass(5) for reference. 351# Supporting PATCHES array and user patches. See base.eclass(5) for reference.
258#
259# This function calls elibtoolize implicitly. If you need to call eautoreconf
260# afterwards, please use AT_NOELIBTOOLIZE=yes to avoid it being called twice.
261autotools-utils_src_prepare() { 352autotools-utils_src_prepare() {
262 debug-print-function ${FUNCNAME} "$@" 353 debug-print-function ${FUNCNAME} "$@"
354
355 local want_autoreconf=${AUTOTOOLS_AUTORECONF}
263 356
264 [[ ${PATCHES} ]] && epatch "${PATCHES[@]}" 357 [[ ${PATCHES} ]] && epatch "${PATCHES[@]}"
265 epatch_user 358 epatch_user
266 359
360 [[ ${want_autoreconf} ]] && autotools-utils_autoreconf
267 elibtoolize --patch-only 361 elibtoolize --patch-only
268} 362}
269 363
270# @FUNCTION: autotools-utils_src_configure 364# @FUNCTION: autotools-utils_src_configure
271# @DESCRIPTION: 365# @DESCRIPTION:

Legend:
Removed from v.1.31  
changed lines
  Added in v.1.33

  ViewVC Help
Powered by ViewVC 1.1.20