[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Groff] new automake system
From: |
Ingo Schwarze |
Subject: |
Re: [Groff] new automake system |
Date: |
Mon, 22 Sep 2014 22:38:40 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Hi Bertrand,
Bertrand Garrigues wrote on Sun, Sep 21, 2014 at 09:14:27PM +0200:
> With commit a88127a4fecb307f26f2e217213d4a90e300d220 the automake2
> branch is now ready for more testing from other members of the list.
Here are some experiences and suggestions:
$ ./bootstrap 2>&1
./bootstrap: Error: 'autoconf' not found
./bootstrap: Error: 'automake' not found
./bootstrap: Please install the prerequisite programs
$ which autoconf
/usr/local/bin/autoconf
$ which automake
/usr/local/bin/automake
$ autoconf --version
Provide an AUTOCONF_VERSION environment variable, please
$ echo $?
127
$ (cd /usr/local/bin/; ls auto*)
autoconf autoheader-2.67 automake-1.9 autoscan-2.65
autoconf-2.13 autoheader-2.68 autopoint autoscan-2.67
autoconf-2.59 autoheader-2.69 autoreconf autoscan-2.68
autoconf-2.61 autoinst autoreconf-2.13 autoscan-2.69
autoconf-2.62 autom4te autoreconf-2.59 autoupdate
autoconf-2.63 autom4te-2.59 autoreconf-2.61 autoupdate-2.13
autoconf-2.65 autom4te-2.61 autoreconf-2.62 autoupdate-2.59
autoconf-2.67 autom4te-2.62 autoreconf-2.63 autoupdate-2.61
autoconf-2.68 autom4te-2.63 autoreconf-2.65 autoupdate-2.62
autoconf-2.69 autom4te-2.65 autoreconf-2.67 autoupdate-2.63
autoheader autom4te-2.67 autoreconf-2.68 autoupdate-2.65
autoheader-2.13 autom4te-2.68 autoreconf-2.69 autoupdate-2.67
autoheader-2.59 autom4te-2.69 autoscan-2.13 autoupdate-2.68
autoheader-2.61 automake autoscan-2.59 autoupdate-2.69
autoheader-2.62 automake-1.11 autoscan-2.61
autoheader-2.63 automake-1.12 autoscan-2.62
autoheader-2.65 automake-1.14 autoscan-2.63
So this code in ./bootstrap is suboptimal:
check_exists() {
($1 --version </dev/null) >/dev/null 2>&1
That deliberately hides the error message from the user
and displays a bogus message instead, so you might wish to refrain
from hiding stderr.
You might also wish to add a sentence like the following to
INSTALL.REPO, right after "1. Initial build", before "First invoke
the bootstrap script:"
On operating systems supporting concurrent installation of multiple
versions of the autotools, set the following environment variables:
export AUTOMAKE_VERSION=1.12
export AUTOCONF_VERSION=2.65
The following line in the output of ./bootstrap looks suspicious:
You may need to add #include directives for the following .h files.
#include <wchar.h>
I tried to read the source code of gnulib/gnulib-tool to find out
what is going on here, but even though it has multiple lines of
comments, it seems completely incomprehensible to me and i don't
have the least idea what it's trying to do and complaining about.
Most certainly i do have wchar.h installed, in any case:
$ ls /usr/include/wchar.h
/usr/include/wchar.h
Regarding the configure script, here is a list of things it gets
wrong:
- it prefers /usr/local/bin/ggrep over /usr/bin/grep in both
of the following tests:
checking for grep that handles long lines and -e...
checking for egrep...
- it prefers /usr/local/bin/gmkdir over /bin/mkdir in the test
checking for a thread-safe mkdir -p
- checking for style of include used by make... GNU
that makes no sense at all, it's a POSIX-compatible BSD make
- it prefers /usr/local/bin/gsed over /usr/bin/sed
- it prefers /usr/local/bin/bison over /usr/bin/yacc
Prefering the GNU versions over the native POSIX versions is bad
because it causes needless build dependencies.
And then finally, "make" dies here:
FILEMODE=`echo contrib/groffer/roff2dvi.man | \
sed 's|contrib/groffer/roff2\([a-z]\+\)\.man|\1|g'` && \
sed -e 's/address@hidden@]/'"$FILEMODE"'/g' \
../contrib/groffer/roff2.man > contrib/groffer/roff2dvi.man;
sed: 1: "s/address@hidden@]/contr ...: bad flag in substitute command: 'r'
*** Error 1 in . (Makefile:8589 'contrib/groffer/roff2dvi.man')
*** Error 1 in /co/groff/build (Makefile:3713 'all')
The problem here is that basic regular expressions don't have a "+"
bound. So the subexpression needs to be written as
\([a-z][a-z]*\)
or alternatively, one could switch to extended regular expressions.
With that issue fixed, the build finishes. I can't say yet
whether it's correct and works.
I didn't come round to testing "make dist" yet, but wanted to report
what i found so far, anyway.
Yours,
Ingo
- Re: [Groff] new automake system, (continued)
- Re: [Groff] new automake system, Ralph Corderoy, 2014/09/25
- Re: [Groff] new automake system, Werner LEMBERG, 2014/09/25
- Re: [Groff] new automake system, Ralph Corderoy, 2014/09/25
- Re: [Groff] new automake system, Werner LEMBERG, 2014/09/25
- Re: [Groff] new automake system, Bertrand Garrigues, 2014/09/27
- Re: [Groff] new automake system, Ralph Corderoy, 2014/09/28
- Re: [Groff] new automake system, Bertrand Garrigues, 2014/09/28
- Re: [Groff] new automake system, Werner LEMBERG, 2014/09/29
- Re: [Groff] new automake system, Bertrand Garrigues, 2014/09/29
- Re: [Groff] new automake system, Werner LEMBERG, 2014/09/30
- Re: [Groff] new automake system,
Ingo Schwarze <=
- Re: [Groff] new automake system, Werner LEMBERG, 2014/09/22
- Re: [Groff] new automake system, Bertrand Garrigues, 2014/09/22
- Re: [Groff] new automake system, Ralph Corderoy, 2014/09/23
- Re: [Groff] new automake system, Ingo Schwarze, 2014/09/24
- Re: [Groff] new automake system, Werner LEMBERG, 2014/09/25
- Re: [Groff] new automake system, Blake McBride, 2014/09/23
- Re: [Groff] new automake system, Bertrand Garrigues, 2014/09/23
- Re: [Groff] new automake system, Blake McBride, 2014/09/23
- Re: [Groff] new automake system, Bertrand Garrigues, 2014/09/23
- Re: [Groff] new automake system, Blake McBride, 2014/09/23