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

Contents of /eclass/autotools.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.15 - (show annotations) (download)
Tue Aug 30 11:29:17 2005 UTC (8 years, 11 months ago) by flameeyes
Branch: MAIN
Changes since 1.14: +7 -6 lines
Let darwin userlands use glibtoolize instead of libtoolize. Removed trailing whitespaces.

1 # Copyright 1999-2005 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: /var/cvsroot/gentoo-x86/eclass/autotools.eclass,v 1.14 2005/08/30 09:31:16 flameeyes Exp $
4 #
5 # Author: Diego Pettenò <flameeyes@gentoo.org>
6 # Enhancements: Martin Schlemmer <azarah@gentoo.org>
7 #
8 # This eclass is for handling autotooled software packages that
9 # needs to regenerate their build scripts.
10 #
11 # NB: If you add anything, please comment it!
12
13 inherit eutils gnuconfig
14
15 #DEPEND="sys-devel/automake
16 # sys-devel/autoconf
17 # sys-devel/libtool"
18 #
19 # Ebuilds should rather depend on the proper version of the tool.
20
21 # Internal function to run an autotools' tool
22 autotools_run_tool() {
23 local STDERR_TARGET="${T}/$$.out"
24 local PATCH_TARGET="${T}/$$.patch"
25 local ris
26
27 echo "***** $1 *****" > ${STDERR_TARGET%/*}/$1-${STDERR_TARGET##*/}
28 echo >> ${STDERR_TARGET%/*}/$1-${STDERR_TARGET##*/}
29
30 ebegin "Running $1"
31 $@ >> ${STDERR_TARGET%/*}/$1-${STDERR_TARGET##*/} 2>&1
32 ris=$?
33 eend ${ris}
34
35 if [[ ${ris} != 0 ]]; then
36 echo
37 eerror "Failed Running $1 !"
38 eerror
39 eerror "Include in your bugreport the contents of:"
40 eerror
41 eerror " ${STDERR_TARGET%/*}/$1-${STDERR_TARGET##*/}"
42 echo
43 die "Failed Running $1 !"
44 fi
45 }
46
47 # Internal function to check for support
48 autotools_check_macro() {
49 [[ -f configure.ac || -f configure.in ]] && \
50 autoconf --trace=$1 2>/dev/null
51 return 0
52 }
53
54 # Internal function to get additional subdirs to configure
55 autotools_get_subdirs() {
56 local subdirs_scan_out
57
58 subdirs_scan_out=$(autotools_check_macro "AC_CONFIG_SUBDIRS")
59 [[ -n ${subdirs_scan_out} ]] || return 0
60
61 echo "${subdirs_scan_out}" | gawk \
62 '($0 !~ /^[[:space:]]*(#|dnl)/) {
63 if (match($0, "AC_CONFIG_SUBDIRS\\(\\[?([^\\])]*)", res)) {
64 split(res[1], DIRS, /[\])]/)
65 print DIRS[1]
66 }
67 }' | uniq
68
69 return 0
70 }
71
72
73
74 # These functions runs the autotools using autotools_run_tool with the
75 # specified parametes. The name of the tool run is the same of the function
76 # without e prefix.
77 # They also force installing the support files for safety.
78 eaclocal() {
79 local aclocal_opts
80
81 [[ -n ${M4DIR} ]] && aclocal_opts="-I ${M4DIR}"
82
83 [[ -f aclocal.m4 && -n $(grep -e 'generated.*by aclocal' aclocal.m4) ]] && \
84 autotools_run_tool aclocal "$@" ${aclocal_opts}
85 }
86
87 _elibtoolize() {
88 # Check if we should run libtoolize
89 [[ -n $(autotools_check_macro "AC_PROG_LIBTOOL") ]] || return 0
90 use userland_Darwin && LIBTOOLIZE="glibtoolize"
91 autotools_run_tool ${LIBTOOLIZE:-libtoolize} "$@"
92
93 # Need to rerun aclocal
94 eaclocal
95 }
96
97 eautoheader() {
98 # Check if we should run autoheader
99 [[ -n $(autotools_check_macro "AC_CONFIG_HEADERS") ]] || return 0
100 autotools_run_tool autoheader "$@"
101 }
102
103 eautoconf() {
104 if [[ ! -f configure.ac && ! -f configure.in ]] ; then
105 echo
106 eerror "No configure.{ac,in} present in '$(pwd | sed -e 's:.*/::')'!"
107 echo
108 die "No configure.{ac,in} present!"
109 fi
110
111 autotools_run_tool autoconf "$@"
112 }
113
114 eautomake() {
115 [[ -f Makefile.am ]] || return 0
116 # --force-missing seems not to be recognized by some flavours of automake
117 autotools_run_tool automake --add-missing --copy "$@"
118 }
119
120 # This function mimes the behavior of autoreconf, but uses the different
121 # eauto* functions to run the tools. It doesn't accept parameters, but
122 # the directory with include files can be specified with M4DIR variable.
123 #
124 # Note: doesn't run autopoint right now, but runs gnuconfig_update.
125 eautoreconf() {
126 local pwd=$(pwd) x
127
128 # Take care of subdirs
129 for x in $(autotools_get_subdirs); do
130 if [[ -d ${x} ]] ; then
131 cd "${x}"
132 eautoreconf
133 cd "${pwd}"
134 fi
135 done
136
137 eaclocal
138 _elibtoolize --copy --force
139 eautoconf
140 eautoheader
141 eautomake
142 gnuconfig_update
143 }

  ViewVC Help
Powered by ViewVC 1.1.20