Gentoo Archives: gentoo-dev

From: Mike Frysinger <vapier@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Unofficial Gentoo Development Guide and Autotools
Date: Thu, 19 May 2005 05:43:51
Message-Id: 200505190143.12285.vapier@gentoo.org
In Reply to: [gentoo-dev] Unofficial Gentoo Development Guide and Autotools by Ciaran McCreesh
1 On Wednesday 18 May 2005 11:44 pm, Ciaran McCreesh wrote:
2 > What more would people like to see explained? Is there anything in there
3 > that needs changing or clarifying? Anything that's just plain wrong?
4 > Does it need a section on libtool and if so does someone want to explain
5 > to me how the heck it works? Are there good examples of ebuilds which
6 > make understandable changes to these things that I should be adding as
7 > illustrations? Do you like the picture? Feedback please.
8
9 it doesnt cover anything related to older autotools which do not have
10 Makefile.am, but i think that's something we can neglect now since the number
11 of projects that still just have configure.in/Makefile.in are in decline and
12 in low numbers ... i'd point out that some projects (like binutils/gcc) will
13 probably never be 'updated', but thankfully the people who work on those
14 packages *seem* to know what they're doing
15
16 things i'd add:
17 - make a note at the top that it doesnt matter if the file is configure.in or
18 configure.ac, autoconf will act the same ... it's currently hinted at but not
19 explicitly mentioned ...
20 - maybe a section on aclocal and m4 files ... an advanced topic that most
21 people shouldnt need to know about ...
22 - i believe all autotools should be executed in src_unpack() rather than
23 src_compile() ... i see unpack as the 'preparation' stage for the
24 'compilation' stage of things ...
25 - there is no 'autoconf-2.5' binary ... there are the perl scripts
26 'autoconf-2.13' and 'autoconf-2.59' ...
27 - when talking about exporting WANT_AUTOMAKE, the usage of 'We can export
28 WANT_AUTOMAKE here ...' is a little vague ... it makes it sound like we could
29 export it inside the configure.ac rather than when we invoke automake
30 - WANT_AUTOCONF / WANT_AUTOMAKE are gentooism's that were originally taken
31 from Mandrake ... i'm not sure what other distro's use an autotool wrappers,
32 but it'd be nice to note this
33 - library checks are AC_CHECK_LIB while header checks are AC_CHECK_HEADER ...
34 - maybe set the 3rd parameter of AC_ARG_ENABLE to be enable_cscope=$enableval
35 - i would add notes under AC_ARG_ENABLE / AC_ARG_WITH that misuse of these
36 macros is *very* common due to the confusing description of their
37 arguments ... many people think the 3rd/4th arguments correspond with
38 enable/disable when in reality they correspond with specified/not
39 specified ... ive seen many packages which do:
40 AC_ARG_ENABLE(blah, [help output], enable_blah=yes, enable_blah=no)
41 - the most common evil auto check ive seen is when code just does AC_CHECK_LIB
42 and then enables/disables support for that library based on the result
43 - add links to the autobook website (`esearch autobook` for the URL) and links
44 to the autoconf/automake/m4 documentation ... i think they all have online
45 html versions built off of the bundled docs
46 - maybe mention that every package which is built on newer autotools (it has a
47 Makefile.am and Makefile.in instead of just Makefile.in) should support
48 DESTDIR just fine ... if it doesnt, the fault is 99.9% of the time made by
49 the package maintainer rather than autotools
50 - add some notes about how variables in Makefile.{am,in} of the form @VAR@
51 will be expanded if you use the m4 macro AC_SUBST(VAR)
52
53 now for long term suggestions:
54 - develop a reference list of m4 macros since the autobook docs are
55 outdated ... have a list that tries to help people who havent worked with
56 autotools before ... developer knows they want to verify a header exists or a
57 library exists, but they dont know what macro to use
58 - add a section to cover cross-compile issues ... for example, using
59 AC_TRY_RUN is bad manners, even if you do specify a somewhat 'sane'
60 default ...
61 -mike
62 --
63 gentoo-dev@g.o mailing list

Replies

Subject Author
Re: [gentoo-dev] Unofficial Gentoo Development Guide and Autotools Mike Frysinger <vapier@g.o>