Hacker News new | ask | show | jobs
by ambrop7 4959 days ago

  $ tar xf autotools-using-package.tar.bz2
  $ cd autotools-using-package
Configure, compile, install. Oh, I found this little bug. Let's try to fix it ... edits configure.ac ....

  $ ./autogen.sh
  Error: possibly undefined macro AC_BLABLABA
Spend some hours figuring this out... Oh, I need to install an old version of auto*! How do I get the old one but keep the new one around? Spend another 30 minutes to figure that out.

  $ ./autogen.sh
  checking for build system type...
  ^C
No damn, I wanted to generate configure, not run it! How do I clean up the mess it made just now?

  $ make clean
  $ make distclean
  $ ./configure --prefix=$HOME/my_app ...
  $ make -j9 install
  ...
  install: no such file or directory blabla.la
WTF!?!?! Spend an hour or so googling this mess. Ah, it's a parallel-make bug.

  $ make install
HOLY SHIT, IT INSTALLED!!!

Let's submit this fix upstream. No problem, use diff.

  $ mkdir temp
  $ tar xf autotools-using-package.tar.bz2 -C temp
  $ mv temp/autotools-using-package autotools-using-package.orig
  $ diff -urN autotools-using-package.orig autotools-using-package
WTF IS ALL THIS MESS IN THE DIFF I NEVER TOUCHED?!!??!

I know you're going to say I should be using the VCS checkout in the first place, which would hopefully be configured to ignore the autogenerated files. But as a user, or distribution maintainer, most of the time the bug you find is with a specific, packaged version of the software, and it may be quite an effort to figure out how to get the exact same version from the VCS server.

2 comments

> $ ./autogen.sh > checking for build system type... > ^C > > No damn, I wanted to generate configure, not run it! How do I clean up the mess it made just now?

I always run "./autogen.sh --help" for exactly that reason; then if I see --help output from configure, I know that autogen.sh "helpfully" ran configure for me.

You can also usually just run "autoreconf -v -f -i" directly, unless the package has done something unusual that it needs to take extra steps in autogen for.

This just about sums up my experience with autotools except for the fact that I quit in frustration after step 2.