[LLVMbugs] [Bug 105] New: Usage Of autoconf Is Awkward
bugzilla-daemon at zion.cs.uiuc.edu
bugzilla-daemon at zion.cs.uiuc.edu
Sun Nov 9 20:15:48 PST 2003
http://llvm.cs.uiuc.edu/bugs/show_bug.cgi?id=105
Summary: Usage Of autoconf Is Awkward
Product: Build scripts
Version: 1.0
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: autoconf
AssignedTo: criswell at uiuc.edu
ReportedBy: rspencer at x10sys.com
CC: criswell at uiuc.edu,sabre at nondot.org
The current instructions for using autoconf with LLVM are:
0. Don't ever run aclocal.
1. Make sure you have autoconf-2.57, the exact version, installed.
2. Go to the top directory and do:
'gmake configure AUTOCONF=/path/to/autoconf257'
3. Still in the top directory, run:
'gmake include/Config/config.h.in AUTOHEADER=/path/to/autoheader257'
4. Inspect the 'cvs diff include/Config/config.h.in' output
to make sure that no one has checked in important edits that
autoheader can't automate
While step 4 will continue to be a good idea, the rest of it doesn't follow the
typical/standard/usual guidelines for using aclocal/autoconf/autoheader. In
particular, the current approach has the following concerns:
1. Makefiles are built by configure so there is no way (or should be no way) to
run a "configure" target from make. The only way this can work is (a) if you
already ran configure and (b) configured in your source tree. In the first
case (a), you won't have "configure" if you're starting from scratch with the
project. In the second case (b), we're forcing developers who use autoconf
to always build in the source tree. This is neither desireable nor wise.
2. The omission of using aclocal means that the aclocal.m4 file must be manually
kept up to date. Any new macros resulting from (a) upgrading to a new version
of autoconf or (b) adding new statements to configure.ac will require manual
changes to aclocal.m4. Admittedly, this doesn't happen often, but that's all
the more reason to do it .. because you'll forget what needs to be done when
it does come time to do it. We should discover why it is necessary to omit
the use of aclocal and simply permit it. The trick is to use acinclude.m4
for the project specific macros. This keeps them out of aclocal.m4 which
aclocal could change.
3. Keeping the process simple will help new developers who must make config
changes get through the process more easily. Case in point: I've been using
autoconf for about 5 years and I couldn't figure out how to do it with LLVM
without being told. The process should be as simple as:
aclocal
autoconf
autoheader
with only very minor deviations from this. A "bootstrap.sh" file could be
written that encapsulates the process and does what is necessary to correctly
build the configure file.
This bug isn't so much of a bug as it is a "task" that needs to get on someone's
to do list (probably mine). Before venturing down that road, however, I'd like
feedback from other folks since I'm new to the project.
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
More information about the llvm-bugs
mailing list