diff options
Diffstat (limited to 'meta/classes/autotools.bbclass')
-rw-r--r-- | meta/classes/autotools.bbclass | 158 |
1 files changed, 75 insertions, 83 deletions
diff --git a/meta/classes/autotools.bbclass b/meta/classes/autotools.bbclass index a5997c55e0..e4e034b623 100644 --- a/meta/classes/autotools.bbclass +++ b/meta/classes/autotools.bbclass | |||
@@ -111,91 +111,83 @@ do_configure[prefuncs] += "autotools_preconfigure" | |||
111 | do_configure[postfuncs] += "autotools_postconfigure" | 111 | do_configure[postfuncs] += "autotools_postconfigure" |
112 | 112 | ||
113 | autotools_do_configure() { | 113 | autotools_do_configure() { |
114 | case ${PN} in | 114 | # WARNING: gross hack follows: |
115 | autoconf*) | 115 | # An autotools built package generally needs these scripts, however only |
116 | ;; | 116 | # automake or libtoolize actually install the current versions of them. |
117 | automake*) | 117 | # This is a problem in builds that do not use libtool or automake, in the case |
118 | ;; | 118 | # where we -need- the latest version of these scripts. e.g. running a build |
119 | *) | 119 | # for a package whose autotools are old, on an x86_64 machine, which the old |
120 | # WARNING: gross hack follows: | 120 | # config.sub does not support. Work around this by installing them manually |
121 | # An autotools built package generally needs these scripts, however only | 121 | # regardless. |
122 | # automake or libtoolize actually install the current versions of them. | 122 | ( for ac in `find ${S} -name configure.in -o -name configure.ac`; do |
123 | # This is a problem in builds that do not use libtool or automake, in the case | 123 | rm -f `dirname $ac`/configure |
124 | # where we -need- the latest version of these scripts. e.g. running a build | 124 | done ) |
125 | # for a package whose autotools are old, on an x86_64 machine, which the old | 125 | if [ -e ${S}/configure.in -o -e ${S}/configure.ac ]; then |
126 | # config.sub does not support. Work around this by installing them manually | 126 | olddir=`pwd` |
127 | # regardless. | 127 | cd ${S} |
128 | ( for ac in `find ${S} -name configure.in -o -name configure.ac`; do | 128 | # Remove any previous copy of the m4 macros |
129 | rm -f `dirname $ac`/configure | 129 | rm -rf ${B}/aclocal-copy/ |
130 | done ) | 130 | if [ x"${acpaths}" = xdefault ]; then |
131 | if [ -e ${S}/configure.in -o -e ${S}/configure.ac ]; then | 131 | acpaths= |
132 | olddir=`pwd` | 132 | for i in `find ${S} -maxdepth 2 -name \*.m4|grep -v 'aclocal.m4'| \ |
133 | cd ${S} | 133 | grep -v 'acinclude.m4' | sed -e 's,\(.*/\).*$,\1,'|sort -u`; do |
134 | # Remove any previous copy of the m4 macros | 134 | acpaths="$acpaths -I $i" |
135 | rm -rf ${B}/aclocal-copy/ | 135 | done |
136 | if [ x"${acpaths}" = xdefault ]; then | 136 | else |
137 | acpaths= | 137 | acpaths="${acpaths}" |
138 | for i in `find ${S} -maxdepth 2 -name \*.m4|grep -v 'aclocal.m4'| \ | 138 | fi |
139 | grep -v 'acinclude.m4' | sed -e 's,\(.*/\).*$,\1,'|sort -u`; do | 139 | AUTOV=`automake --version |head -n 1 |sed "s/.* //;s/\.[0-9]\+$//"` |
140 | acpaths="$acpaths -I $i" | 140 | automake --version |
141 | done | 141 | echo "AUTOV is $AUTOV" |
142 | else | 142 | if [ -d ${STAGING_DATADIR_NATIVE}/aclocal-$AUTOV ]; then |
143 | acpaths="${acpaths}" | 143 | acpaths="$acpaths -I${STAGING_DATADIR_NATIVE}/aclocal-$AUTOV" |
144 | fi | 144 | fi |
145 | AUTOV=`automake --version |head -n 1 |sed "s/.* //;s/\.[0-9]\+$//"` | 145 | # The aclocal directory could get modified by other processes |
146 | automake --version | 146 | # uninstalling data from the sysroot. See Yocto #861 for details. |
147 | echo "AUTOV is $AUTOV" | 147 | # We avoid this by taking a copy here and then files cannot disappear. |
148 | if [ -d ${STAGING_DATADIR_NATIVE}/aclocal-$AUTOV ]; then | 148 | if [ -d ${STAGING_DATADIR}/aclocal ]; then |
149 | acpaths="$acpaths -I${STAGING_DATADIR_NATIVE}/aclocal-$AUTOV" | 149 | # for scratch build this directory can be empty |
150 | fi | 150 | # so avoid cp's no files to copy error |
151 | # The aclocal directory could get modified by other processes | 151 | cp-noerror ${STAGING_DATADIR}/aclocal ${B}/aclocal-copy/ |
152 | # uninstalling data from the sysroot. See Yocto #861 for details. | 152 | acpaths="$acpaths -I ${B}/aclocal-copy/" |
153 | # We avoid this by taking a copy here and then files cannot disappear. | 153 | fi |
154 | if [ -d ${STAGING_DATADIR}/aclocal ]; then | 154 | # autoreconf is too shy to overwrite aclocal.m4 if it doesn't look |
155 | # for scratch build this directory can be empty | 155 | # like it was auto-generated. Work around this by blowing it away |
156 | # so avoid cp's no files to copy error | 156 | # by hand, unless the package specifically asked not to run aclocal. |
157 | cp-noerror ${STAGING_DATADIR}/aclocal ${B}/aclocal-copy/ | 157 | if ! echo ${EXTRA_AUTORECONF} | grep -q "aclocal"; then |
158 | acpaths="$acpaths -I ${B}/aclocal-copy/" | 158 | rm -f aclocal.m4 |
159 | fi | 159 | fi |
160 | # autoreconf is too shy to overwrite aclocal.m4 if it doesn't look | 160 | if [ -e configure.in ]; then |
161 | # like it was auto-generated. Work around this by blowing it away | 161 | CONFIGURE_AC=configure.in |
162 | # by hand, unless the package specifically asked not to run aclocal. | 162 | else |
163 | if ! echo ${EXTRA_AUTORECONF} | grep -q "aclocal"; then | 163 | CONFIGURE_AC=configure.ac |
164 | rm -f aclocal.m4 | 164 | fi |
165 | fi | 165 | if ! echo ${EXTRA_OECONF} | grep -q "\-\-disable-nls"; then |
166 | if [ -e configure.in ]; then | 166 | if grep "^[[:space:]]*AM_GLIB_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then |
167 | CONFIGURE_AC=configure.in | 167 | if grep "sed.*POTFILES" $CONFIGURE_AC >/dev/null; then |
168 | else | 168 | : do nothing -- we still have an old unmodified configure.ac |
169 | CONFIGURE_AC=configure.ac | 169 | else |
170 | fi | 170 | bbnote Executing glib-gettextize --force --copy |
171 | if ! echo ${EXTRA_OECONF} | grep -q "\-\-disable-nls"; then | 171 | echo "no" | glib-gettextize --force --copy |
172 | if grep "^[[:space:]]*AM_GLIB_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then | 172 | fi |
173 | if grep "sed.*POTFILES" $CONFIGURE_AC >/dev/null; then | 173 | else if grep "^[[:space:]]*AM_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then |
174 | : do nothing -- we still have an old unmodified configure.ac | 174 | # We'd call gettextize here if it wasn't so broken... |
175 | else | 175 | cp ${STAGING_DATADIR}/gettext/config.rpath ${AUTOTOOLS_AUXDIR}/ |
176 | bbnote Executing glib-gettextize --force --copy | 176 | if [ -d ${S}/po/ -a ! -e ${S}/po/Makefile.in.in ]; then |
177 | echo "no" | glib-gettextize --force --copy | 177 | cp ${STAGING_DATADIR}/gettext/po/Makefile.in.in ${S}/po/ |
178 | fi | 178 | fi |
179 | else if grep "^[[:space:]]*AM_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then | 179 | fi |
180 | # We'd call gettextize here if it wasn't so broken... | ||
181 | cp ${STAGING_DATADIR}/gettext/config.rpath ${AUTOTOOLS_AUXDIR}/ | ||
182 | if [ -d ${S}/po/ -a ! -e ${S}/po/Makefile.in.in ]; then | ||
183 | cp ${STAGING_DATADIR}/gettext/po/Makefile.in.in ${S}/po/ | ||
184 | fi | ||
185 | fi | ||
186 | fi | ||
187 | fi | ||
188 | mkdir -p m4 | ||
189 | if grep "^[[:space:]]*[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then | ||
190 | bbnote Executing intltoolize --copy --force --automake | ||
191 | intltoolize --copy --force --automake | ||
192 | fi | 180 | fi |
193 | bbnote Executing autoreconf --verbose --install --force ${EXTRA_AUTORECONF} $acpaths | ||
194 | autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || bbfatal "autoreconf execution failed." | ||
195 | cd $olddir | ||
196 | fi | 181 | fi |
197 | ;; | 182 | mkdir -p m4 |
198 | esac | 183 | if grep "^[[:space:]]*[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then |
184 | bbnote Executing intltoolize --copy --force --automake | ||
185 | intltoolize --copy --force --automake | ||
186 | fi | ||
187 | bbnote Executing autoreconf --verbose --install --force ${EXTRA_AUTORECONF} $acpaths | ||
188 | autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || bbfatal "autoreconf execution failed." | ||
189 | cd $olddir | ||
190 | fi | ||
199 | if [ -e ${S}/configure ]; then | 191 | if [ -e ${S}/configure ]; then |
200 | oe_runconf | 192 | oe_runconf |
201 | else | 193 | else |