1. 12
  1.  

  2. 9

    Autoconf is one of my favourite things. It’s a pill I’ve learned to swallow.

    Want to add a feature test? you already know how to do this from the last 50 times.

    Wonder why something is broken (even when debugging through a third party?) - it just dumped a single config.log with all of the invocations and the environment.

    Want to add it into your project? great! zero extra dependencies.

    Want to override a configure test result? no patching needed, you can just ac_cv_bullshit=no.

    Every oddball use case (non default prefix, cross compiling) just works. It catches subtle bugs like not generating new files because your system time is wrong.

    1. 3

      Amen!

      Want to combine Go and C files into a library? Autotools makes it possible: https://github.com/stefantalpalaru/golib/blob/master/Makefile.am

    2. 7

      Relevant link for this and anyone thinking legacy FOSS automagically is better than legacy proprietary:

      http://queue.acm.org/detail.cfm?id=2349257

      Author of tools actually apologizes in the comments haha.

      1. 2

        Just in case anyone else wants to read it, you can see it here: http://queue.acm.org/fullcomments.cfm?id=2349257

        It’s by David Mackenzie. Unfortunately I don’t see a way to link to the comment itself.

      2. 3

        My personal favorite is CMake. … The way its state and cache values interact on repeated invocations is non-intuitive. Fortunately you usually don’t have to care about that if you just want to build your stuff.

        I agree. It does have some warts but it’s probably the best balance of ubiquity/popularity and feature coverage.

        1. 4

          I work with cmake every day and I beg to differ. Whoever came up with the syntax of cmake needs to be taken out the back of the computer centre and given a good thrashing. It’s hard to come up with something less readable than Makefiles but they managed it somehow. In terms of making real life build systems cmake can be ok in very simple cases but complex cmake builds turn into the spawn of the devil and start invoking demons from the netherworld before you know what’s happened.

          Overall the most astonishing thing about cmake is that given the benefit of forty years of hindsight they managed to replace the ancient system of Makefiles with something which is actually worse in many cases.