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 |