[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Autoconf and CVS
From: |
David Fang |
Subject: |
Re: Autoconf and CVS |
Date: |
Sat, 24 Dec 2005 12:37:02 -0500 (EST) |
> > Interesting thought: Wouldn't it get annoying if many devs are working
> > on one CVS controlled project, and they have different version
> > autotools, surely each time they commit their changes they're possibly
> > going to have conflicts? Which would make the files unusable? (until
> > resolved).
>
> Yes, this can be annoying. As a work-around you can include some sort
> of 'bootstrap' script so that developer's can immediately overwrite
> the version from CVS. Of course then changed files will be committed,
> and there will be thrashing in CVS. If the bootstrap script insists
> on certain versions of the autotools, then the thrashing should go
> away.
Hi,
Here's an example bootstrap/autogen.sh script that I use in my projects, I
imagine others' may look very similar. (With a little more sed/awk/cut
magic, one could even *enforce* correct versions.)
------------8<-----------------
PROJECT=foo
TEST_TYPE=-f
# unique file in top_srcdir
FILE=INSTALL
# possibly pre-generate some things here...
DIE=0
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have autoconf installed to compile $PROJECT."
echo "Download the appropriate package for your distribution,"
echo "or get the source tarball at: "
echo "http://ftp.gnu.org/gnu/autoconf/autoconf-2.59.tar.gz"
DIE=1
}
(libtoolize --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have libtool installed to compile $PROJECT."
echo "Get ftp://ftp.gnu.org/gnu/libtool/libtool-1.5.20.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
(automake --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have automake installed to compile $PROJECT."
echo "Get http://ftp.gnu.org/gnu/automake/automake-1.9.6.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
}
if test "$DIE" -eq 1; then
exit 1
fi
test $TEST_TYPE $FILE || {
echo "You must run this script in the top-level $PROJECT
directory"
exit 1
}
libtoolize --copy --force
# uses config subdir
aclocal $ACLOCAL_FLAGS -I config
(autoheader --version) < /dev/null > /dev/null 2>&1 && autoheader
automake --copy --add-missing --verbose --gnu $am_opt
autoconf
------------>8-----------------
HTH,
David Fang