/[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.33 Revision 1.37
1# Copyright 1999-2012 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.33 2012/01/09 10:16:25 jlec Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/autotools-utils.eclass,v 1.37 2012/01/14 14:59:18 mgorny 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>
97# @DEFAULT_UNSET 97# @DEFAULT_UNSET
98# @DESCRIPTION: 98# @DESCRIPTION:
99# Set to a non-empty value in order to enable running autoreconf 99# Set to a non-empty value in order to enable running autoreconf
100# in src_prepare() and adding autotools dependencies. 100# in src_prepare() and adding autotools dependencies.
101# 101#
102# This is usually necessary when using live sources or applying patches
103# modifying configure.ac or Makefile.am files. Note that in the latter case
104# setting this variable is obligatory even though the eclass will work without
105# it (to add the necessary dependencies).
106#
102# The eclass will try to determine the correct autotools to run including a few 107# 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. 108# 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. 109# If your tool is not supported, please open a bug and we'll add support for it.
105# 110#
106# Note that dependencies are added for autoconf, automake and libtool only. 111# Note that dependencies are added for autoconf, automake and libtool only.
330 eaclocal 335 eaclocal
331 fi 336 fi
332 337
333 eautoconf 338 eautoconf
334 eautoheader 339 eautoheader
335 eautomake 340 FROM_EAUTORECONF=sure eautomake
336 341
337 local x 342 local x
338 for x in $(autotools_get_subdirs); do 343 for x in $(autotools_get_subdirs); do
339 if [[ -d ${x} ]] ; then 344 if [[ -d ${x} ]] ; then
340 pushd "${x}" >/dev/null 345 pushd "${x}" >/dev/null
352autotools-utils_src_prepare() { 357autotools-utils_src_prepare() {
353 debug-print-function ${FUNCNAME} "$@" 358 debug-print-function ${FUNCNAME} "$@"
354 359
355 local want_autoreconf=${AUTOTOOLS_AUTORECONF} 360 local want_autoreconf=${AUTOTOOLS_AUTORECONF}
356 361
362 touch "${T}"/.autotools-utils.timestamp || die
357 [[ ${PATCHES} ]] && epatch "${PATCHES[@]}" 363 [[ ${PATCHES} ]] && epatch "${PATCHES[@]}"
358 epatch_user 364 epatch_user
365 if [[ ! ${want_autoreconf} ]]; then
366 if [[ $(find . -newer "${T}"/.autotools-utils.timestamp \
367 -a '(' -name 'Makefile.am' \
368 -o -name 'configure.ac' \
369 -o -name 'configure.in' ')' \
370 -print -quit) ]]; then
371 einfo 'Will autoreconfigure due to patches applied.'
372 want_autoreconf=yep
373 fi
374 fi
359 375
360 [[ ${want_autoreconf} ]] && autotools-utils_autoreconf 376 [[ ${want_autoreconf} ]] && autotools-utils_autoreconf
361 elibtoolize --patch-only 377 elibtoolize --patch-only
362} 378}
363 379
374 debug-print-function ${FUNCNAME} "$@" 390 debug-print-function ${FUNCNAME} "$@"
375 391
376 [[ -z ${myeconfargs+1} || $(declare -p myeconfargs) == 'declare -a'* ]] \ 392 [[ -z ${myeconfargs+1} || $(declare -p myeconfargs) == 'declare -a'* ]] \
377 || die 'autotools-utils.eclass: myeconfargs has to be an array.' 393 || die 'autotools-utils.eclass: myeconfargs has to be an array.'
378 394
395 [[ ${EAPI} == 2 ]] && ! use prefix && EPREFIX=
396
379 # Common args 397 # Common args
380 local econfargs=() 398 local econfargs=(
399 --docdir="${EPREFIX}/usr/share/doc/${PF}"
400 )
381 401
382 # Handle static-libs found in IUSE, disable them by default 402 # Handle static-libs found in IUSE, disable them by default
383 if in_iuse static-libs; then 403 if in_iuse static-libs; then
384 econfargs+=( 404 econfargs+=(
385 --enable-shared 405 --enable-shared
423 _check_build_dir 443 _check_build_dir
424 pushd "${AUTOTOOLS_BUILD_DIR}" > /dev/null 444 pushd "${AUTOTOOLS_BUILD_DIR}" > /dev/null
425 emake DESTDIR="${D}" "$@" install || die "emake install failed" 445 emake DESTDIR="${D}" "$@" install || die "emake install failed"
426 popd > /dev/null 446 popd > /dev/null
427 447
448 # Move docs installed by autotools (in EAPI < 4).
449 if [[ ${EAPI} == [23] && -d ${D}${EPREFIX}/usr/share/doc/${PF} ]]; then
450 mkdir "${T}"/temp-docdir
451 mv "${D}${EPREFIX}"/usr/share/doc/${PF}/* "${T}"/temp-docdir/ \
452 || die "moving docs to tempdir failed"
453
454 local f
455 for f in "${T}"/temp-docdir/*; do
456 [[ -d ${f} ]] \
457 && die "directories in docdir require at least EAPI 4"
458 done
459
460 dodoc "${T}"/temp-docdir/* || die "docdir dodoc failed"
461 rm -r "${T}"/temp-docdir || die
462 fi
463
428 # XXX: support installing them from builddir as well? 464 # XXX: support installing them from builddir as well?
429 if [[ ${DOCS} ]]; then 465 if [[ ${DOCS} ]]; then
430 dodoc "${DOCS[@]}" || die "dodoc failed" 466 dodoc "${DOCS[@]}" || die "dodoc failed"
467 else
468 local f
469 # same list as in PMS
470 for f in README* ChangeLog AUTHORS NEWS TODO CHANGES \
471 THANKS BUGS FAQ CREDITS CHANGELOG; do
472 if [[ -s ${f} ]]; then
473 dodoc "${f}" || die "(default) dodoc ${f} failed"
474 fi
475 done
431 fi 476 fi
432 if [[ ${HTML_DOCS} ]]; then 477 if [[ ${HTML_DOCS} ]]; then
433 dohtml -r "${HTML_DOCS[@]}" || die "dohtml failed" 478 dohtml -r "${HTML_DOCS[@]}" || die "dohtml failed"
434 fi 479 fi
435 480

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

  ViewVC Help
Powered by ViewVC 1.1.20