Discussion:
A Closer Look at GNU AutoTools
Shawn H Corey
2014-09-04 17:47:56 UTC
Permalink
I have just added an article to my blog on my programming language
about the GNU AutoTools. Please feel free to comment.

http://kori-programming-language.blogspot.ca/2014/09/a-closer-look-at-gnu-autotools.html
--
Don't stop where the ink does.
Shawn
John Spencer
2014-09-04 18:58:45 UTC
Permalink
Post by Shawn H Corey
I have just added an article to my blog on my programming language
about the GNU AutoTools. Please feel free to comment.
http://kori-programming-language.blogspot.ca/2014/09/a-closer-look-at-gnu-autotools.html
i wanted to comment on this that you should take a look at
https://github.com/GregorR/autoconf-lean , because using autoscan
results in a boatload of bloat and nastyness.

however you can only comment there using a google plus account, which i
cannot create due to lack of a mobile phone. (and even if i had one, i
wouldn't want to register there anyway because then google could link
almost any activity happening in my webbrowser to my ID).

so maybe you should revisit the decision where you host your blog.

--JS
Nick Bowler
2014-09-04 20:33:13 UTC
Permalink
Post by Shawn H Corey
I have just added an article to my blog on my programming language
about the GNU AutoTools. Please feel free to comment.
http://kori-programming-language.blogspot.ca/2014/09/a-closer-look-at-gnu-autotools.html
After some investigation, I discovered that the documentation for GNU
AutoTools was crappy. This is surprising considering how long it has
been in use. ☹
Can you be more constructive? I think Autoconf and Automake have rather
good manuals[1][2]. Why are they crappy? How can we make them better?

[1] https://gnu.org/s/autoconf/manual/autoconf.html
[2] https://gnu.org/s/automake/manual/automake.html

Thanks,
--
Nick Bowler, Elliptic Technologies (http://www.elliptictech.com/)
Shawn H Corey
2014-09-04 21:00:21 UTC
Permalink
On Thu, 4 Sep 2014 16:33:13 -0400
Post by Nick Bowler
Can you be more constructive? I think Autoconf and Automake have
rather good manuals[1][2]. Why are they crappy? How can we make
them better?
[1] https://gnu.org/s/autoconf/manual/autoconf.html
[2] https://gnu.org/s/automake/manual/automake.html
When was the last time you read completely through those manuals?
There's too much information all at once. And I didn't say the manuals
were bad. It's that the documentation is too dense and not organized
for learning. In other words, crappy.

It took me two days to find the diagram on my blog from Wikipedia. It
should have been one of the first things I searched for.
--
Don't stop where the ink does.
Shawn
Nick Bowler
2014-09-04 21:55:27 UTC
Permalink
Post by Shawn H Corey
On Thu, 4 Sep 2014 16:33:13 -0400
Post by Nick Bowler
Can you be more constructive? I think Autoconf and Automake have
rather good manuals[1][2]. Why are they crappy? How can we make
them better?
[1] https://gnu.org/s/autoconf/manual/autoconf.html
[2] https://gnu.org/s/automake/manual/automake.html
When was the last time you read completely through those manuals?
There's too much information all at once.
I have never read the manuals cover-to-cover. But by now I have probably
read most, if not all of the material in them over the course of ~10 years.

But this puts me in a bad position to critique the manual from the
perspective of newbies: as I know Autoconf rather well I am unlikely to
notice if some details are missing from the manual.
Post by Shawn H Corey
And I didn't say the manuals were bad. It's that the documentation is
too dense and not organized for learning. In other words, crappy.
Sorry, I am having a hard time reconciling these two statements.
Post by Shawn H Corey
It took me two days to find the diagram on my blog from Wikipedia. It
should have been one of the first things I searched for.
Similar diagrams are found at the very beginning of chapter 3 ("Making
configure scripts") of the Autoconf manual. Would changing them or
perhaps adding another diagram here improve the manual?

Thanks,
--
Nick Bowler, Elliptic Technologies (http://www.elliptictech.com/)
Shawn H Corey
2014-09-04 22:05:16 UTC
Permalink
On Thu, 4 Sep 2014 17:55:27 -0400
Post by Nick Bowler
Post by Shawn H Corey
On Thu, 4 Sep 2014 16:33:13 -0400
Post by Nick Bowler
Can you be more constructive? I think Autoconf and Automake have
rather good manuals[1][2]. Why are they crappy? How can we make
them better?
[1] https://gnu.org/s/autoconf/manual/autoconf.html
[2] https://gnu.org/s/automake/manual/automake.html
When was the last time you read completely through those manuals?
There's too much information all at once.
I have never read the manuals cover-to-cover. But by now I have
probably read most, if not all of the material in them over the
course of ~10 years.
But this puts me in a bad position to critique the manual from the
perspective of newbies: as I know Autoconf rather well I am unlikely
to notice if some details are missing from the manual.
It's not that it's has errors or it lacks detail. The problem is it has
too much detail. When it presents a topic, it present all possible
variations of it. But most of those variations are not needed by the
average developer.
Post by Nick Bowler
Post by Shawn H Corey
And I didn't say the manuals were bad. It's that the documentation
is too dense and not organized for learning. In other words, crappy.
Sorry, I am having a hard time reconciling these two statements.
That's because you have forgotten what's it like to be faced with
thousands of pages of technical manuals about something you know
nothing about and all you want to do is a simple task.
Post by Nick Bowler
Post by Shawn H Corey
It took me two days to find the diagram on my blog from Wikipedia.
It should have been one of the first things I searched for.
Similar diagrams are found at the very beginning of chapter 3 ("Making
configure scripts") of the Autoconf manual. Would changing them or
perhaps adding another diagram here improve the manual?
You mean those ASCII diagrams that should be inside <pre></pre> tags?
And you don't think that's crappy?
--
Don't stop where the ink does.
Shawn
Paul Eggert
2014-09-04 22:12:32 UTC
Permalink
Post by Shawn H Corey
You mean those ASCII diagrams that should be inside <pre></pre> tags?
And you don't think that's crappy?
The manuals can be improved, and a good way to improve them is to
propose specific patches, in 'git diff' format. Merely complaining
about them will probably not be an effective use of your time.
Shawn H Corey
2014-09-04 23:44:23 UTC
Permalink
On Thu, 04 Sep 2014 15:12:32 -0700
Post by Paul Eggert
The manuals can be improved, and a good way to improve them is to
propose specific patches, in 'git diff' format. Merely complaining
about them will probably not be an effective use of your time.
Patronizing novices might make you feel better but it will drive them
away. How on Earth do you expect somebody who does know very much about
autoconf be able to correct the problems?
--
Don't stop where the ink does.
Shawn
Paul Eggert
2014-09-05 00:52:58 UTC
Permalink
Post by Shawn H Corey
How on Earth do you expect somebody who does know very much about
autoconf be able to correct the problems?
I expect them to make constructive and specific suggestions, which have
been in short supply in this thread but which have occurred in the past
and, I hope, the future.

It's not like there is an army of well-paid developers to maintain this
stuff. It's only a thin time-slice of a small number of volunteers, all
of who have more-important things to do. If you make specific and clear
suggestions for improvements, the manuals will likely get improved. If
you merely kvetch, you'll likely just waste your time and ours. It's
not an ideal situation, but that's life.
Shawn H Corey
2014-09-05 12:10:08 UTC
Permalink
On Thu, 04 Sep 2014 17:52:58 -0700
Post by Paul Eggert
I expect them to make constructive and specific suggestions, which
have been in short supply in this thread but which have occurred in
the past and, I hope, the future.
I have made suggestions; they've been ignored.
Post by Paul Eggert
It's not like there is an army of well-paid developers to maintain
this stuff. It's only a thin time-slice of a small number of
volunteers, all of who have more-important things to do. If you make
specific and clear suggestions for improvements, the manuals will
likely get improved. If you merely kvetch, you'll likely just waste
your time and ours. It's not an ideal situation, but that's life.
Is that an official policy? "Be condescending to complainers so that
they will shut up and go away." No wonder people prefer CMake.
--
Don't stop where the ink does.
Shawn
2014-09-12 10:23:24 UTC
Permalink
Post by Paul Eggert
It's not like there is an army of well-paid developers to maintain this
stuff.
Perhaps there would be more contributions and people picking up the
slack if people like you didn't replied with passive-aggressive versions
of "patch it yourself" whenever someone points out that the manual isn't
great, and actually tried to get people involved in a constructive way.
--

John Calcote
2014-09-04 22:40:40 UTC
Permalink
-----Original Message-----
Shawn H Corey
Sent: Thursday, September 04, 2014 4:05 PM
To: autoconf
Subject: Re: A Closer Look at GNU AutoTools
...
That's because you have forgotten what's it like to be faced with
thousands
of pages of technical manuals about something you know nothing about and
all you want to do is a simple task.
If you're looking for a tutorial that walks you through the small set of
tasks that you personally need to perform, you're unlikely to find one
unless you write it. This is just common sense. While there are many
task-specific tutorials out there, the fact is, the Autotools are a general
set of build tools designed to handle a million permutations of build
requirements. The manuals are necessarily complete and generic.
You mean those ASCII diagrams that should be inside <pre></pre> tags?
And you don't think that's crappy?
Are they in some way unreadable? The point is to convey information. If they
accomplish that task, how could they be better? If the definition of crappy
is "they're not polished eye candy", well then I guess they're crappy, but
for my own uses they suffice.

That said, however, please feel free to submit updated versions of these
graphics that have a bit more polish to them. Please don't forget to submit
the necessary changes to the documentation build system to make these
graphics be properly incorporated into the document, and also don't forget
to ensure the final pictures (if generated from source) are in a format that
will be acceptable to the wide community of autotools users - probably at
least PNG, but don't take my word for it - survey the list and ensure the
chosen format is acceptable. See, it's not as easy as it looks - ASCII is
probably a reasonable compromise.

John
Shawn H Corey
2014-09-05 00:02:47 UTC
Permalink
On Thu, 4 Sep 2014 16:40:40 -0600
Post by Shawn H Corey
-----Original Message-----
Of Shawn H Corey
Sent: Thursday, September 04, 2014 4:05 PM
To: autoconf
Subject: Re: A Closer Look at GNU AutoTools
...
That's because you have forgotten what's it like to be faced with
thousands
of pages of technical manuals about something you know nothing
about and all you want to do is a simple task.
If you're looking for a tutorial that walks you through the small set
of tasks that you personally need to perform, you're unlikely to find
one unless you write it. This is just common sense. While there are
many task-specific tutorials out there, the fact is, the Autotools
are a general set of build tools designed to handle a million
permutations of build requirements. The manuals are necessarily
complete and generic.
No, it's not common sense. Cookbooks have been written for other tools,
programming languages, and operating systems.
Post by Shawn H Corey
You mean those ASCII diagrams that should be inside <pre></pre>
tags? And you don't think that's crappy?
Are they in some way unreadable? The point is to convey information.
If they accomplish that task, how could they be better? If the
definition of crappy is "they're not polished eye candy", well then I
guess they're crappy, but for my own uses they suffice.
They're unreadable in proportionally=space fonts. The web isn't stuck
with just monospaced ones.
Post by Shawn H Corey
That said, however, please feel free to submit updated versions of
these graphics that have a bit more polish to them. Please don't
forget to submit the necessary changes to the documentation build
system to make these graphics be properly incorporated into the
document, and also don't forget to ensure the final pictures (if
generated from source) are in a format that will be acceptable to the
wide community of autotools users - probably at least PNG, but don't
take my word for it - survey the list and ensure the chosen format is
acceptable. See, it's not as easy as it looks - ASCII is probably a
reasonable compromise.
"If you want to help, blah. Blah, blah, blah,..."

No wonder the documentation doesn't improve: it's too complicated to do
even a simple change.
--
Don't stop where the ink does.
Shawn
Nick Bowler
2014-09-05 15:05:31 UTC
Permalink
Post by Shawn H Corey
On Thu, 4 Sep 2014 16:40:40 -0600
Post by John Calcote
-----Original Message-----
Of Shawn H Corey
Sent: Thursday, September 04, 2014 4:05 PM
You mean those ASCII diagrams that should be inside <pre></pre>
tags? And you don't think that's crappy?
Are they in some way unreadable? The point is to convey information.
If they accomplish that task, how could they be better? If the
definition of crappy is "they're not polished eye candy", well then I
guess they're crappy, but for my own uses they suffice.
They're unreadable in proportionally=space fonts. The web isn't stuck
with just monospaced ones.
My browser uses a monospace font for the diagrams, and they look OK to
me. Is there a problem with the HTML code? You may have discovered a
bug in Texinfo.

The font is correct in the PDF version of the manual.

Thanks,
--
Nick Bowler, Elliptic Technologies (http://www.elliptictech.com/)
2014-09-12 10:28:27 UTC
Permalink
Post by John Calcote
If you're looking for a tutorial that walks you through the small set of
tasks that you personally need to perform, you're unlikely to find one
unless you write it.
As I see it, this is a clear indicator that the manual is sub-par and
doesn't fulfill its purpose.
Post by John Calcote
This is just common sense.
And this is why this is still a problem.
Post by John Calcote
While there are many task-specific tutorials out there, the fact is,
the Autotools are a general set of build tools designed to handle a
million permutations of build requirements. The manuals are necessarily
complete and generic.

I agree, but that doesn't justify why it fails to cover those
task-specific topics that everyone is looking and has to either write it
themselves or go look elsewhere.

In fact, I don't understand how you can at the same time acknowledge
that people are forced to look elsewhere for information that should be
available in the doc, and still don't understand that's a major problem
with the manual.
--

John Calcote
2014-09-12 16:43:40 UTC
Permalink
Post by Zé
Post by John Calcote
If you're looking for a tutorial that walks you through the small set
of tasks that you personally need to perform, you're unlikely to find
one unless you write it.
As I see it, this is a clear indicator that the manual is sub-par and
doesn't fulfill
Post by Zé
its purpose.
Post by John Calcote
This is just common sense.
And this is why this is still a problem.
I honestly don't get why you have a problem with this attitude in open
source software. It's not a bad attitude - it's a natural attitude. You're
trying to treat the Autotools as if a paid team of developers is working on
it. If that were the case, you'd be paying money for the product. You're not
- it's free. Why is that so hard to understand? I personally think it's an
amazing aspect of humanity that we even have open source software (and
hardware) in the first place.

There are pros and cons to commercial software. One of the pros is that we
can rely on a strong support system of paid personnel to provide a great
customer experience. This is not always the case, though. Lately, it seems,
companies seem to think they can get away with more and more crap while
providing a paid product. However, this is likely a false perception on my
part because, in a free-market economy, market forces naturally drive these
factors. If a company doesn't provide what the market feels is reasonable
service for the price, consumers simply stop buying the product and the
company either changes or goes under. I've often thought we're stupider and
more tolerant today as consumers than we used to be a few decades ago - this
is probably because we're farther away from events like the depression of
the 30's than past generations of consumers... *sigh* another topic for
another discussion.

Open source is different - it's also driven by various forces - just not the
same ones. The market cannot *reasonably* expect primary contributors to
provide 100% of the product. Contributors are not getting the same sort of
payoff as a commercial provider gets - the payoff isn't as easily
transferrable. It's emotional and personal-needs based rather than fiscal in
nature. Once the personal needs of the contributors have been met, then the
emotional part kicks in - any additional participation in product
enhancement by these folks is done purely out of a sense of community and
pride. Open source software manuals are a great example of this aspect of
OSS contribution - did the original author NEED a nice manual? Of course not
- he wrote the software. The manual was written for others.

Stop acting like the world owes you something for nothing and start taking
part in the natural order of open source. When I started writing the book
(Autotools: A Practitioner's Guide), I didn't know very much about the
Autotools - not nearly as much as I knew when I finished (which was one of
my personal-needs based motivating factors for writing it). I had great help
- people who volunteered to answer questions on the lists, and one or two
who were invested enough in the outcome to put some real time and effort
into fact checking and content review.

(By the way - there IS a free version of the book online - check it out at
http://www.freesoftwaremagazine.com/books/autotools_a_guide_to_autoconf_auto
make_libtool. This was my first draft - it's not quite as complete or up to
date, but it's about 85% of the same content as the published book and
formatted in a similar manner. I could have requested that the site owner,
Tony Mobily, remove it from the site and he would have complied (because
he's a nice guy), but I felt it was important to contribute back to the
community in some way for the help they gave me in writing the book in the
first place.)

The point is, I didn't come to the list whining about why the manual isn't
better. I read through the manual several times, assimilating more
information with each pass, until I had the data I needed to create
something I felt was more palatable to the novice. I also found some
mistakes and submitted patches and suggestions to the list. As far as I can
tell, they were much appreciated. So stop complaining and start contributing
- it's the natural order of open source. Kicking against the pricks never
works.

John
Shawn H Corey
2014-09-12 17:10:12 UTC
Permalink
On Fri, 12 Sep 2014 10:43:40 -0600
Post by John Calcote
I honestly don't get why you have a problem with this attitude in open
source software. It's not a bad attitude - it's a natural attitude.
You're trying to treat the Autotools as if a paid team of developers
is working on it. If that were the case, you'd be paying money for
the product. You're not
- it's free. Why is that so hard to understand? I personally think
it's an amazing aspect of humanity that we even have open source
software (and hardware) in the first place.
No, it's not a "natural" attitude. I have worked on open-source
projects where this attitude is not present and on proprietary ones
which had it in spades. It depends on the people involved. And it also
drives people away from open-source projects.
--
Don't stop where the ink does.
Shawn
Gavin Smith
2014-09-12 20:49:28 UTC
Permalink
Post by Shawn H Corey
No, it's not a "natural" attitude. I have worked on open-source
projects where this attitude is not present and on proprietary ones
which had it in spades. It depends on the people involved. And it also
drives people away from open-source projects.
Attitude is subject to interpretation. None of the autoconf
maintainers said they thought the documentation had to stay exactly as
it was. I am sure that there can be changes. I think that the best
chance for changes to happen is for the person seeing the problem to
make them themselves, and hope that other people agree. Unfortunately,
unless you give specific criticism, other people can easily overlook
the points you make and it tends to get forgotten about. As an
interested bystander, I hope you can work with the autoconf
maintainers to get a graphical flowchart into one of the manuals.

Remembering that "talk is cheap", here are my own changes that I made
to the autoconf manual, the "Manual Configuration" section, based on
the "autoconf.texi" file I got from the current git repository. If
anyone has any suggestions I will see about incorporating them. I
don't mind if someone else wants to use this to inspire their own
attempt.

(I have not updated cross-references to renamed nodes yet.)

Summary of changes:

Rename "Manual Configuration" to "Canonical System Types", as the old
name was meaningless
Rename "Canonicalization" to "Getting System Types"
Remove word "deliberately" from "Specifying Target Triplets" (it
doesn't matter to the reader what the motivation of the author was)
Move list of when to use system types from "Using System Types" to
higher-level node "Canonical System Types" to give a better overview
of this feature
Move explanation of when to use "target" from "Using System Type" to
"Getting System Types" so it is next to the presentation of the three
system types
Rewrite so that introducing "build_alias" etc. doesn't appear to be a
jarring change of subject
Change heading in "Getting the Canonical System Type" to "Getting
Canonical System Types in configure Scripts"
Change heading in "Using System Type" to "Examples of Using the System Type"
Ineiev
2014-09-13 09:41:21 UTC
Permalink
Hello, John!
Post by John Calcote
I honestly don't get why you have a problem with this attitude in open
source software.
...
Post by John Calcote
There are pros and cons to commercial software.
The division "open source" vs "commercial" is wrong. you certainly
know that open source is a development model, it can be and it is used
both in commercial and non-commercial projects.
Post by John Calcote
Open source is different - it's also driven by various forces - just not the
same ones.
...
Post by John Calcote
Open source software manuals are a great example of this aspect of
OSS contribution - did the original author NEED a nice manual? Of course not
- he wrote the software. The manual was written for others.
When I look at the motives for writing free software listed
on www.gnu.org [0], I conclude that they are in fact the same
that drive the developers of proprietary software. therefore,
if free software is written for profit, its developers may NEED
a nice manual for the same reasons as developers of proprietary
software; and if free software is written as a result of political
beliefs, the author of course did need a good manual.

On the other hand, the documentation of proprietary products is
not always written by the same people, it's often a different
department or even a completely unrelated company.

(If you mean "commercial" vs "non-commercial" free software,
the same argument applies.)

[0] https://www.gnu.org/philosophy/fs-motives.html
Post by John Calcote
(By the way - there IS a free version of the book online - check it out at
http://www.freesoftwaremagazine.com/books/autotools_a_guide_to_autoconf_auto
make_libtool. This was my first draft - it's not quite as complete or up to
date, but it's about 85% of the same content as the published book and
formatted in a similar manner. I could have requested that the site owner,
Tony Mobily, remove it from the site and he would have complied (because
he's a nice guy), but I felt it was important to contribute back to the
community in some way for the help they gave me in writing the book in the
first place.)
I hope you didn't intend to say that people have to restrict their
readers in order to get money for writing manuals. that wouldn't
be true.
John Calcote
2014-09-13 15:57:15 UTC
Permalink
The division "open source" vs "commercial" is wrong. you certainly know
that
open source is a development model, it can be and it is used both in
commercial and non-commercial projects.
I'm sorry - you're absolutely right Ineiev - please forgive my oversight. I
made a fatal mistake using "open source" vs "commercial". Of course, I meant
"free software" vs "commercial". I tend toward that mistake and it's silly
that I do because I've worked for companies like Novell that capitalize on
open source all the time.
date, but it's about 85% of the same content as the published book and >
formatted in a similar manner. I could have requested that the site owner,
Tony Mobily, remove it from the site and he would have complied (because
Post by John Calcote
he's a nice guy), but I felt it was important to contribute back to the
community in some way for the help they gave me in writing the book in the
Post by John Calcote
first place.)
I hope you didn't intend to say that people have to restrict their readers
in
order to get money for writing manuals. that wouldn't be true.
No - not at all - the only reasons I haven't gotten the online version up to
date are laziness and/or lack of time. I'll get around to it sometime soon.

John
2014-09-13 12:57:13 UTC
Permalink
Post by John Calcote
I honestly don't get why you have a problem with this attitude in open
source software.
This is not an open source software problem. It's your attitude
problem, that is being reflected in single open source software project.
There is nothing in the source code that forces people to lash at
anyone who points a problem in a manual. You decide to lash at others
on your own. Take responsibility for your own personal actions.
Post by John Calcote
It's not a bad attitude - it's a natural attitude.
It's a terrible attitude, and it's not natural. Even if it comes out
naturally to you, it is not natural. Plus, it does not help the project
in any way, and actually only harms it.
Post by John Calcote
You're
trying to treat the Autotools as if a paid team of developers
Your accusation is absolutely absurd. No one is expecting that a bunch
of people contributing their free time for something that essentially is
a hobby are here to take orders or to do something users are told to.
No one is giving out orders or demanding anything. The only thing
that's been pointed out is that the manual has problems.

That's it.

Then, after you've reacted in a completely unhelpful and anti-social way
and in the process made your attitude problem also a autoconf problem,
the problems caused by your attitude were also flagged.

As this is supposed to be a FLOSS project that's open to any
contribution, the only difference between the "developers" you've
referred to and others like me is whether someone is currently working
on a contribution to submit to it. And here you are, lashing out at
anyone based on you fake notion of who is and who isn't a developer.

Your attitude problem becomes even more pathetic when you start to talk
about wishing others contributed to. You, and people who act like you,
drive away any potential contributor.
Post by John Calcote
is working on
it. If that were the case, you'd be paying money for the product.
And you'd be paying all users to test the thing.

So, should I start to get all sanctimonious on you based on all this
debt you amassed and all this magic money you supposedly owe?

Get off your high horse and cut out that bullshit.

<snip bullshit/>
Post by John Calcote
Open source is different
I repeat: the license the software ships with is not responsible for the
way you choose to interact with others. That's **your choice** and your
choice alone.

I manage a couple of FLOSS projects. They are nothing big.
Nevertheless, whenever a user contacts me I do listen to them **AND**
once the issue is taken care of I ask their overall opinion on the
projects and on suggestions to improve them. I don't lash out at them
like you did. That's not a open source software thing. That's a jerk
thing. It's something a jerk does because he believes the world owes
them something. Nothing in the project forces them to act that way.
There's nothing in software development that forces anyone to act that
way. Someone acts that way because he wants to act that way, and has no
intention in interacting with others with any trace of respect and
common courtesy.



John Calcote
2014-09-13 16:40:20 UTC
Permalink
Post by John Calcote
I honestly don't get why you have a problem with this attitude in open
source software.
This is not an open source software problem. It's your attitude problem,
that
is being reflected in single open source software project.
There is nothing in the source code that forces people to lash at anyone
who points a problem in a manual. You decide to lash at others on your
own.
Take responsibility for your own personal actions.
Post by John Calcote
It's not a bad attitude - it's a natural attitude.
It's a terrible attitude, and it's not natural. Even if it comes out
naturally to
you, it is not natural. Plus, it does not help the project in any way,
and
actually only harms it.
Ok - I can see upon rereading my message how my presentation might have been
a *little bit* abrasive, but I don't believe I deserve the sort of response
I got. I want to apologize up front to the Autotools community for any harm
I may have caused. It was never my intent - my intent was only to elucidate.

(And for the sake of completeness, let me again point out the mistake I made
using the term "open source software" instead of "free software". I
understand the difference and I just wasn't careful. FSF and the Autotools
projects are all about free software.)
Post by John Calcote
You're
trying to treat the Autotools as if a paid team of developers
Your accusation is absolutely absurd. No one is expecting that a bunch of
people contributing their free time for something that essentially is a
hobby
are here to take orders or to do something users are told to.
No one is giving out orders or demanding anything. The only thing that's
been pointed out is that the manual has problems.
I guess I misunderstood. So help me understand - why send a message to the
list stating how bad the manual is if you don't hope someone on the list
will read your message and decide to update the manual accordingly? Isn't it
reasonable to assume in the face of such negative criticism that the poster
wants something to be done about the problem?
That's it.
Then, after you've reacted in a completely unhelpful and anti-social way
and
in the process made your attitude problem also a autoconf problem, the
problems caused by your attitude were also flagged.
As this is supposed to be a FLOSS project that's open to any contribution,
the
only difference between the "developers" you've referred to and others
like
me is whether someone is currently working on a contribution to submit to
it.
And here you are, lashing out at anyone based on you fake notion of who is
and who isn't a developer.
Your attitude problem becomes even more pathetic when you start to talk
about wishing others contributed to. You, and people who act like you,
drive
away any potential contributor.
It's strange to me that you use phrases like "pathetic" and "lash out" and
"fake notion" and "you and people like you", but then you call me
anti-social and abrasive. The words I used were not even on the same level
as these.

Well, I seriously apologize for any pain I caused anyone with my response. I
want you to know that I am not a developer on the Autotools projects, or
even a minor contributor (one or two contributions does not a contributor
make). Please don't bring the projects down based on my comments. The people
that spend their time on these lists answering questions and the developers
of the tools are always courteous and responsive.

I'll shut up now.

John
Shawn H Corey
2014-09-13 16:59:37 UTC
Permalink
On Sat, 13 Sep 2014 10:40:20 -0600
Post by John Calcote
I guess I misunderstood. So help me understand - why send a message
to the list stating how bad the manual is if you don't hope someone
on the list will read your message and decide to update the manual
accordingly? Isn't it reasonable to assume in the face of such
negative criticism that the poster wants something to be done about
the problem?
There are two problems here.

One is that the complainer does not know enough about the subject to
provide an useful guidance on how to make things better.

The other is that those who have used things for a long time cannot see
a way to explain things better. Any changes that could be made would be
as convoluted as before.

How to fix it? Do a proper analysis and create a domain model
<https://en.wikipedia.org/wiki/Domain_model>. A domain model should be
the first step in any computer project but it is seldom done. Most
computer projects just happen, leaving a confusing set of programs and
documentation. :(
--
Don't stop where the ink does.
Shawn
Hartmut Holzgraefe
2014-09-04 22:36:11 UTC
Permalink
Post by Shawn H Corey
When was the last time you read completely through those manuals?
There's too much information all at once. And I didn't say the manuals
were bad. It's that the documentation is too dense and not organized
for learning. In other words, crappy.
at least with autotools there are alternative documentation sources:

* the good old "Goats Book" which is also available online, and seems
to have received an update lately:

https://www.sourceware.org/autobook/autobook/autobook_toc.html

I still refer to my paper copy every once in a while, but by now
that one's so old that a lot of things need to be cross-checked
against current autotools documentation

* Autotools Mythbusters

available as ebook and online

https://www.flameeyes.eu/autotools-mythbuster/

* "Autotools: A Practioner's Guide to GNU Autoconf, Automake, and
Libtool "

available as paper and 'e' book, but no free edition here ...

While on the CMake front there's still essentially just "Mastering
CMake" which is just more or less the CMake wiki documentation
exported to paper ...

I've got to deal with both, for Unix-only projects I still prefer
autotools over Cmake any time as the produced Makefiles are just
way more powerful and the configuration option naming is more
meaningful without the -D prefix and with the possibility to
group them by topic where cmake and cmake-gui just provide an
alphabetical list. But our flagship products need to be delivered
for Windows, too, and maintaining two build systems in parallel
didn't really make sense after all, so it's all cmake on that
front now ...

And I can tell you that the cmake documentation gives me WTF
moments way more often than the autotools counterpart by now ...
--
hartmut
Shawn H Corey
2014-09-04 23:50:48 UTC
Permalink
On Fri, 05 Sep 2014 00:36:11 +0200
Post by Hartmut Holzgraefe
* the good old "Goats Book" which is also available online, and seems
https://www.sourceware.org/autobook/autobook/autobook_toc.html
From 5.1 User-Provided Input Files
<https://www.sourceware.org/autobook/autobook/autobook_24.html#SEC24>

## Makefile.am -- Process this file with automake to produce Makefile.in
bin_PROGRAMS = foonly
foonly_SOURCES = main.c foo.c foo.h nly.c scanner.l parser.y
foonly_LDADD = @LEXLIB@

Why isn't foonly_LDADD explained in the following text? (It took me
less than a minute to find that issue.)
Post by Hartmut Holzgraefe
I still refer to my paper copy every once in a while, but by now
that one's so old that a lot of things need to be cross-checked
against current autotools documentation
* Autotools Mythbusters
available as ebook and online
https://www.flameeyes.eu/autotools-mythbuster/
ebook link not on page.
Post by Hartmut Holzgraefe
* "Autotools: A Practioner's Guide to GNU Autoconf, Automake, and
Libtool "
available as paper and 'e' book, but no free edition here ...
Which means it does not exist.
Post by Hartmut Holzgraefe
While on the CMake front there's still essentially just "Mastering
CMake" which is just more or less the CMake wiki documentation
exported to paper ...
Making CMake look like a gimmick to sell books.
Post by Hartmut Holzgraefe
I've got to deal with both, for Unix-only projects I still prefer
autotools over Cmake any time as the produced Makefiles are just
way more powerful and the configuration option naming is more
meaningful without the -D prefix and with the possibility to
group them by topic where cmake and cmake-gui just provide an
alphabetical list. But our flagship products need to be delivered
for Windows, too, and maintaining two build systems in parallel
didn't really make sense after all, so it's all cmake on that
front now ...
What the frack is the -D option? Is it part of CMake or autoconf?

(See how easy it is to create nonsense.)
--
Don't stop where the ink does.
Shawn
Henrique de Moraes Holschuh
2014-09-05 11:34:47 UTC
Permalink
Post by Hartmut Holzgraefe
* the good old "Goats Book" which is also available online, and seems
https://www.sourceware.org/autobook/autobook/autobook_toc.html
I still refer to my paper copy every once in a while, but by now
that one's so old that a lot of things need to be cross-checked
against current autotools documentation
This one is available under the OPL v1.0 with no extra options
(http://opencontent.org/openpub/).

It was updated in 2006 to address autoconf-2.59, automake-1.9.6, libtool
1.5.22. This _should_ be fresh enough to be useful.

If someone looks it over and states that it is indeed useful for recent
autotools, I believe a pointer to this book should be added to the autotools
(autoconf, automake, libtool) websites.

In fact, the Debian project had it packaged in "non-free" for quite a
while[1]. It was removed in 2008, because "non-free" was carrying the
"unofficial" 1.4.4 edition from http://mdcc.cx/autobook/, which is obsolete
as it was never updated to the 1.5 official release.


[1] The Debian DFSG when applied to documentation is more restrictive than
the GNU free documentation license guidelines. The autobook complies to the
GNU requirements for a free documentation license, at least according to
http://www.gnu.org/licenses/license-list.html#FreeDocumentationLicenses
since no options of the OPL were exercised in the autobook license.
--
"One disk to rule them all, One disk to find them. One disk to bring
them all and in the darkness grind them. In the Land of Redmond
where the shadows lie." -- The Silicon Valley Tarot
Henrique Holschuh
Grégory Pakosz
2014-09-05 11:58:13 UTC
Permalink
For further reference: don't forget Alexandre Duret-Lutz's excellent
Autotools Tutorial (https://www.lrde.epita.fr/~adl/autotools.html).

IMHO people should start with this, then the Autotools Mythbuster.

Regards
Post by Henrique de Moraes Holschuh
Post by Hartmut Holzgraefe
* the good old "Goats Book" which is also available online, and seems
https://www.sourceware.org/autobook/autobook/autobook_toc.html
I still refer to my paper copy every once in a while, but by now
that one's so old that a lot of things need to be cross-checked
against current autotools documentation
This one is available under the OPL v1.0 with no extra options
(http://opencontent.org/openpub/).
It was updated in 2006 to address autoconf-2.59, automake-1.9.6, libtool
1.5.22. This _should_ be fresh enough to be useful.
If someone looks it over and states that it is indeed useful for recent
autotools, I believe a pointer to this book should be added to the autotools
(autoconf, automake, libtool) websites.
In fact, the Debian project had it packaged in "non-free" for quite a
while[1]. It was removed in 2008, because "non-free" was carrying the
"unofficial" 1.4.4 edition from http://mdcc.cx/autobook/, which is obsolete
as it was never updated to the 1.5 official release.
[1] The Debian DFSG when applied to documentation is more restrictive than
the GNU free documentation license guidelines. The autobook complies to the
GNU requirements for a free documentation license, at least according to
http://www.gnu.org/licenses/license-list.html#FreeDocumentationLicenses
since no options of the OPL were exercised in the autobook license.
--
"One disk to rule them all, One disk to find them. One disk to bring
them all and in the darkness grind them. In the Land of Redmond
where the shadows lie." -- The Silicon Valley Tarot
Henrique Holschuh
_______________________________________________
Autoconf mailing list
https://lists.gnu.org/mailman/listinfo/autoconf
Gary V. Vaughan
2014-09-05 14:51:23 UTC
Permalink
Post by Henrique de Moraes Holschuh
Post by Hartmut Holzgraefe
* the good old "Goats Book" which is also available online, and seems
https://www.sourceware.org/autobook/autobook/autobook_toc.html
I still refer to my paper copy every once in a while, but by now
that one's so old that a lot of things need to be cross-checked
against current autotools documentation
This one is available under the OPL v1.0 with no extra options
(http://opencontent.org/openpub/).
It was updated in 2006 to address autoconf-2.59, automake-1.9.6, libtool
1.5.22. This _should_ be fresh enough to be useful.
If someone looks it over and states that it is indeed useful for recent
autotools, I believe a pointer to this book should be added to the autotools
(autoconf, automake, libtool) websites.
In fact, the Debian project had it packaged in "non-free" for quite a
while[1]. It was removed in 2008, because "non-free" was carrying the
"unofficial" 1.4.4 edition from http://mdcc.cx/autobook/, which is obsolete
as it was never updated to the 1.5 official release.
[1] The Debian DFSG when applied to documentation is more restrictive than
the GNU free documentation license guidelines. The autobook complies to the
GNU requirements for a free documentation license, at least according to
http://www.gnu.org/licenses/license-list.html#FreeDocumentationLicenses
since no options of the OPL were exercised in the autobook license.
I've been meaning to make the time to update The Goat Book to latest autotools for a few years, maybe even a complete overhaul for a 2ed. But it keeps slipping down my TODO.

I'll see if I can get it moved to Savannah presently, and in the mean time patches, corrections or even reports of examples that are broken or otherwise misleading with current releases would be enough to prompt me into taking the first few bites if the elephant.

Cheers,
--
Gary V. Vaughan (gary AT gnu DOT org)
Gavin Smith
2014-09-05 15:33:54 UTC
Permalink
Post by Nick Bowler
Post by Shawn H Corey
After some investigation, I discovered that the documentation for GNU
AutoTools was crappy. This is surprising considering how long it has
been in use. ☹
Can you be more constructive? I think Autoconf and Automake have rather
good manuals[1][2]. Why are they crappy? How can we make them better?
[1] https://gnu.org/s/autoconf/manual/autoconf.html
[2] https://gnu.org/s/automake/manual/automake.html
My problem in the past is getting an idea for how to create a very
simple project with automake and autoconf.

I had a brief look at the autoconf manual to refresh my memory and
here's one thing I noticed:
In the "Results of Tests" chapter
(http://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Results.html#Results),
there are 4 ways to record results of tests listed: "There are four
sorts of things it can do: define a C preprocessor symbol, set a
variable in the output files, save the result in a cache file for
future configure runs, and print a message letting the user know the
result of the test." Then if you look at the first subsection
("Defining Symbols",
http://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Defining-Symbols.html#Defining-Symbols),
you get:

"A common action to take in response to a feature test is to define a
C preprocessor symbol indicating the results of the test. That is done
by calling AC_DEFINE or AC_DEFINE_UNQUOTED.

"By default, AC_OUTPUT places the symbols defined by these macros into
the output variable DEFS, which contains an option -Dsymbol=value for
each symbol defined. Unlike in Autoconf version 1, there is no
variable DEFS defined while configure is running. To check whether
Autoconf macros have already defined a certain C preprocessor symbol,
test the value of the appropriate cache variable, as in this example:"

This is not easy to read because it mentions "output variables" and
"cache variables", which haven't been explained so far in the manual:
they are described in later sections. (Also no-one cares about what
happened in older versions.) "Output variables" should probably be
described first.

Under the "Setting Output Variables" section, AC_SUBST is explained,
but there's nothing about how automake uses this information. (You've
got to look at the "Other things automake recognizes" section in the
automake manual
(http://www.gnu.org/software/automake/manual/html_node/Optional.html#Optional)
This is right if you are documenting how to use autoconf independently
of automake, but this underscores the importance of being able to
learn about the autotools from a single manual (i.e. the automake
manual). A flow chart like that in the autoconf manual
(http://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Making-configure-Scripts.html#Making-configure-Scripts)
(which incidentally does use a fixed-width font for the diagram) could
be placed in the automake manual as well.

There are some problems with the automake manual, for example the
section "An Introduction to the Autotools" is too rambly ("It is a
truth universally acknowledged, that as a developer in possession of a
new package, you must be in want of a build system."). Jokes and
cultural references are fine as long as they don't get in the way,
which they do here, and just annoy the reader who is looking for
useful information.

The "Introduction" of the automake manual is not great:

"The GNU Makefile Standards Document is long, complicated, and subject
to change. The goal of
Automake is to remove the burden of Makefile maintenance from the back
of the individual GNU maintainer (and put it on the back of the Automake
maintainers)."

Generally, most people won't care about adhering to the "GNU Makefile
Standards Document". Instead, it could be mentioned here that using
automake provides many useful targets in the Makefiles it generates
(and these targets happen to be described in a Standards Document).

The three example packages in the automake manual don't have a simple
bare-bones project. The Hello World example
(http://www.gnu.org/software/automake/manual/html_node/Hello-World.html#Hello-World)
is a project with subdirectories. I find it annoying that it boasts
about how simple this package is: "The package is simple enough so
that we will only need to write 5 files." - having to write 5 files
doesn't seem very simple to me. The true/false example seems like a
logic puzzle and not anything useful. The 'zardoz' example
(http://www.gnu.org/software/automake/manual/html_node/Complete.html#Complete),
in fact isn't a complete example from start to finish. It assumes that
the project is already using autoconf, which will not be the case for
the vast majority of people reading the manual who are trying to
master both autoconf and automake at the same time. It doesn't show
the full contents of configure.ac. Also I am annoyed by the cheery
tone when it says "Now you can run ‘automake --add-missing’ to
generate your Makefile.in and grab any auxiliary files you might need,
and you’re done!", which implies that it is easy, which is annoying
for people who are struggling to get it to work.

In general I've found when using automake on small personal projects
that I don't care about what autoconf has to offer (portability
between OS variants). I'd like the automake manual to give a brief
explanation of what I needed to know about autoconf to get started
(i.e. what do I put in configure.ac), with pointers to the autoconf
manual for how to add, e.g., checks for libraries I might need.

A problem with having a manual that has flaws is that readers will
think that its authors had reasons for writing it the way they did and
like it the way it is, so they may be reluctant to suggest changes.
We'd be better off if people rewrote the manuals to be more helpful
instead of writing other tutorials or books about it (not that there's
anything wrong with that, of course). Hopefully there will be some
useful suggestions in this conversation.
2014-09-12 09:19:56 UTC
Permalink
Post by Nick Bowler
Can you be more constructive? I think Autoconf and Automake have rather
good manuals[1][2].
Neither autoconf nor automake have good manuals. They do have extensive
manuals, but they are very hard to read and to reference.


Johan Persson
2014-09-05 07:11:44 UTC
Permalink
Post by Shawn H Corey
I have just added an article to my blog on my programming language
about the GNU AutoTools. Please feel free to comment.
http://kori-programming-language.blogspot.ca/2014/09/a-closer-look-at-gnu-autotools.html [1]
Well in my humble opinion, the manuals are just that, (technical)
manuals. Meaning reference material when you already have a kind of
mental overview. When I first tried to get to grip with the tools I also
found it difficult to understand how it all fitted together and where
the magic started and where it stopped.

The hands down best (and the only worth naming) introduction to the tool
set is "Autotools, A practitioner's guide" by John Calcote which I
consider to be the missing introduction to the tool chain. After reading
through that you will have a very god birds view of the tools. Having
had that book 10 years ago would have saved me many days of trial,
errors and head scratching.

Note however , that there are still some common patterns which all
semi-complex SW will face that you wont find written down in any receipt
collection. But then this list is good to use since it is highly likely
that the issue you are facing already have a (more or less) accepted
standard-solution but not necessarily a trivial one.


Links:
------
[1]
http://kori-programming-language.blogspot.ca/2014/09/a-closer-look-at-gnu-autotools.html
David A. Wheeler
2014-09-13 15:32:13 UTC
Permalink
There *are* good tutorials available for the autotools.
John Calcote's book is awesome, I highly recommend it.
The "Goat book" ("GNU Autoconf, Automake, and Libtool" by Gary V. Vaughn and Ben Elliston)
was great for its time; if updated that'd be great too.
For quick introductions, there are lots of OSS ones. I'll re-mention my video
at http://www.dwheeler.com/autotools/ and there are many others.

I agree that it'd be nice to have, as OSS, an "official" tutorial (not reference) for the autotools.
I believe that the autoconf, automake, and libtool manuals are reasonable references, but
are difficult for people who "just want to use it"
for common simple cases and don't care about all the details.

I think there's an unusual complication that does NOT happen in many other projects:
there is no one master project. The autotools are at least autoconf + automake + libtool,
which are maintained as separate projects, yet they are typically used together.
A tutorial needs to clearly explain how to use them *together*, interleaving their discussion
as much as possible, and omitting a lot of details (at least at first).

Perhaps what is needed is a separate autotools-tutorial project, one that
*interleaves* the discussion of the tools. It could start by using some existing material.
Or perhaps the autoconf website (etc.) could add links to some tutorials.

An aside: In the U.S., by law open source software is just a kind of commercial software.
By law any item that is (1) customarily used for non-government purposes, and
(2) is sold, leased, or *licensed* to the general public, is a commercial item.
(41 USC 103, http://www.law.cornell.edu/uscode/text/41/103).
That turns out to be really important when working with the U.S. government,
and in many other cases as well. Billions of dollars are spent on open source software today.

--- David A. Wheeler
Shawn H Corey
2014-09-13 16:38:40 UTC
Permalink
On Sat, 13 Sep 2014 11:32:13 -0400 (EDT)
Post by David A. Wheeler
I believe that the autoconf, automake, and libtool manuals are
reasonable references, but are difficult for people who "just want to
use it" for common simple cases and don't care about all the details.
I was thinking something like a cookbook, step-by-step instructions on
how to do specific tasks.
--
Don't stop where the ink does.
Shawn
Gavin Smith
2014-09-19 08:08:56 UTC
Permalink
Post by David A. Wheeler
There *are* good tutorials available for the autotools.
John Calcote's book is awesome, I highly recommend it.
The "Goat book" ("GNU Autoconf, Automake, and Libtool" by Gary V. Vaughn and Ben Elliston)
was great for its time; if updated that'd be great too.
For quick introductions, there are lots of OSS ones. I'll re-mention my video
at http://www.dwheeler.com/autotools/ and there are many others.
I agree that it'd be nice to have, as OSS, an "official" tutorial (not reference) for the autotools.
I believe that the autoconf, automake, and libtool manuals are reasonable references, but
are difficult for people who "just want to use it"
for common simple cases and don't care about all the details.
The manuals do have examples that could be improved as tutorials. More
examples could be added for common use cases. It would be better for
the existing manuals to do better as tutorials rather than having a
separate document that many people would never get round to reading.

Here are some comments on the first few sections of the automake
manual. I'd be willing to prepare patches for the below if there is
any interest:

1. Introduction
Mention that scans configure.ac. Maybe include a flowchart with programs
and files involved.
2. An Introduction to the Autotools
2.1. Introducing the GNU Build System
2.2. Use Cases for the GNU Build System
It's possibly unclear whether these are use cases for a generated build
system (to be used by users of packages that use the autotools), or use cases
for the autotools themselves.
2.3. How Autotools Help
Merge with sections 1. or 2.
2.4 - A Small Hello World
Include as an example under section 4. Confusing coming right after 2.2. which
is not for users of the autotools themselves. Mention in 2.4.1 that the
contents of configure.ac and Makefile.am will be explained in 2.4.2 and 2.4.3.
3. General ideas.
3.1. General Operation
I'm not sure what the purpose of this section is. Doesn't mention that
automake scans 'configure.ac'. Include a mention of the naming scheme
discussed in section 3.3.? Rename as "Format of 'Makefile.am'"?
3.2. Strictness
3.3. The Uniform Naming Scheme
Rename as something like "Naming for automake variables" - the terminology
"Uniform Naming Scheme" is not used anywhere else.
3.4. Staying below the command line length limit
3.5. How derived variables are named
Reorder 3.4. and 3.5. so sections about variable naming are together.
3.6. Variables reserved for the user
3.7. Programs automake might require
This section is not very important as neither users of autotools nor users of
generated build systems need to know about these programs. I can't suggest
another place for it, though.
4. Some example packages
Move 2.4 here. Add an example that doesn't use subdirectories.
5. Creating a 'Makefile.in'
Rename 'Invoking automake' or 'automake Invocation' (node name was this already)
Post by David A. Wheeler
there is no one master project. The autotools are at least autoconf + automake + libtool,
which are maintained as separate projects, yet they are typically used together.
A tutorial needs to clearly explain how to use them *together*, interleaving their discussion
as much as possible, and omitting a lot of details (at least at first).
Also, where can discussion of documentation take place when
documentation of the whole system is spread across several projects.
Arguably the autoconf manual does a better job at giving an overview
than the automake manual, despite automake being the higher-level
project (i.e. automake uses autoconf, not the other way around).

Loading...