[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
automake 1.7d feedback
From: |
Bruno Haible |
Subject: |
automake 1.7d feedback |
Date: |
Mon, 24 Nov 2003 12:46:06 +0100 |
User-agent: |
KMail/1.5 |
Hi Alexandre et al.,
automake-1.7d is fine for me: I cannot find anything wrong with it.
However, there is an important change in behaviour that IMO should be
mentioned in the NEWS file (or maybe even undone): While it was possible
to add dependencies to automake targets in automake-1.7.x, such dependencies
are now interpreted as *overriding* the automake definition. In usual
Makefiles, when I write
target: dependencies
RULES
then it overrides the original target definition if and only if the
RULES section is nonempty. This is a pitfall for users: While the
syntax of Makefile.am is the same as the syntax of Makefiles,
writing a line like
target: dependencies
doesn't mean the same thing.
To reproduce:
$ mkdir testdir
$ cd testdir
$ cat > configure.ac <<EOF
> AC_INIT
> AM_INIT_AUTOMAKE(gettext-runtime, 0.12.2)
> AC_CONFIG_FILES([Makefile])
> AC_OUTPUT
> EOF
$ cat > Makefile.am <<\EOF
bin_SCRIPTS = foo
install-exec-am: install-exec-clean
install-exec-clean:
rm -f $(bindir)/foo
EOF
$ touch foo NEWS README AUTHORS ChangeLog
With automake-1.7.8:
$ aclocal
$ autoconf
$ automake -a -c Makefile
$ ./configure --prefix=/tmp/prefix
$ make
$ make -n install
make install-exec-am install-data-am
make[1]: Entering directory `/tmp/testdir'
:
/bin/sh ./../mkinstalldirs /tmp/prefix/bin
list='foo'; for p in $list; do \
if test -f "$p"; then d=; else d="./"; fi; \
if test -f $d$p; then \
f=`echo "$p" | sed 's|^.*/||;s,x,x,'`; \
echo " /packages/gnu/bin/install -c $d$p /tmp/prefix/bin/$f"; \
/packages/gnu/bin/install -c $d$p /tmp/prefix/bin/$f; \
else :; fi; \
done
rm -f /tmp/prefix/bin/foo
make[1]: Für das Ziel »install-data-am« ist nichts zu tun.
make[1]: Leaving directory `/tmp/testdir'
With automake-1.7d:
$ aclocal
$ autoconf
$ automake -a -c Makefile
$ ./configure --prefix=/tmp/prefix
$ make
$ make -n install
make install-exec-am install-data-am
make[1]: Entering directory `/tmp/testdir'
rm -f /tmp/prefix/bin/foo
make[1]: Für das Ziel »install-data-am« ist nichts zu tun.
make[1]: Leaving directory `/tmp/testdir'
Bruno
- automake 1.7d feedback,
Bruno Haible <=