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

Contents of /eclass/autotools.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.15 - (hide annotations) (download)
Tue Aug 30 11:29:17 2005 UTC (8 years, 10 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 azarah 1.11 # Copyright 1999-2005 Gentoo Foundation
2 vapier 1.6 # Distributed under the terms of the GNU General Public License v2
3 flameeyes 1.15 # $Header: /var/cvsroot/gentoo-x86/eclass/autotools.eclass,v 1.14 2005/08/30 09:31:16 flameeyes Exp $
4 vapier 1.7 #
5 azarah 1.11 # Author: Diego Pettenò <flameeyes@gentoo.org>
6 azarah 1.12 # Enhancements: Martin Schlemmer <azarah@gentoo.org>
7 vapier 1.7 #
8 azarah 1.11 # This eclass is for handling autotooled software packages that
9     # needs to regenerate their build scripts.
10 azarah 1.1 #
11 azarah 1.11 # NB: If you add anything, please comment it!
12 azarah 1.1
13 azarah 1.11 inherit eutils gnuconfig
14    
15 azarah 1.12 #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 azarah 1.11
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 azarah 1.12 eend ${ris}
34 azarah 1.11
35 azarah 1.12 if [[ ${ris} != 0 ]]; then
36 azarah 1.11 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 azarah 1.1
47 azarah 1.12 # 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 flameeyes 1.15
58 azarah 1.12 subdirs_scan_out=$(autotools_check_macro "AC_CONFIG_SUBDIRS")
59     [[ -n ${subdirs_scan_out} ]] || return 0
60 flameeyes 1.15
61 azarah 1.12 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 azarah 1.11 # 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 azarah 1.12 local aclocal_opts
80    
81 flameeyes 1.13 [[ -n ${M4DIR} ]] && aclocal_opts="-I ${M4DIR}"
82 flameeyes 1.15
83 azarah 1.12 [[ -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 flameeyes 1.15 use userland_Darwin && LIBTOOLIZE="glibtoolize"
91     autotools_run_tool ${LIBTOOLIZE:-libtoolize} "$@"
92    
93 azarah 1.12 # Need to rerun aclocal
94     eaclocal
95 azarah 1.11 }
96 azarah 1.1
97 azarah 1.11 eautoheader() {
98 azarah 1.12 # Check if we should run autoheader
99     [[ -n $(autotools_check_macro "AC_CONFIG_HEADERS") ]] || return 0
100 azarah 1.11 autotools_run_tool autoheader "$@"
101     }
102 azarah 1.1
103 azarah 1.11 eautoconf() {
104 azarah 1.12 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 azarah 1.11 autotools_run_tool autoconf "$@"
112     }
113 azarah 1.1
114 azarah 1.11 eautomake() {
115 azarah 1.12 [[ -f Makefile.am ]] || return 0
116 flameeyes 1.14 # --force-missing seems not to be recognized by some flavours of automake
117     autotools_run_tool automake --add-missing --copy "$@"
118 azarah 1.1 }
119    
120 azarah 1.11 # 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 azarah 1.12 local pwd=$(pwd) x
127 azarah 1.11
128 azarah 1.12 # 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 azarah 1.11
137 azarah 1.12 eaclocal
138     _elibtoolize --copy --force
139 azarah 1.11 eautoconf
140     eautoheader
141     eautomake
142     gnuconfig_update
143     }

  ViewVC Help
Powered by ViewVC 1.1.20