Why automake?

Started by
12 comments, last by Geri 8 years, 3 months ago

I just use make.

MinGW or Cygwin solve the problem on Windows.

MinGW is simpler but it has an older version of make, 3.8.

Cygwin is running 4.x

- The trade-off between price and quality does not exist in Japan. Rather, the idea that high quality brings on cost reduction is widely accepted.-- Tajima & Matsubara
Advertisement

I prefer using clean GNU make along with tiny makefile library I wrote https://github.com/igagis/prorab/blob/master/wiki/HomePage.md

This allows me using same makefiles I wrote once in Linux, Mac OS X and Windows (using MSYS)

autotools are horrible. CMake, scons, etc. are, in my opinion, redundant. Plain GNU make is very powerful if you know how to use it, I mean you really have to master it.

I think that it is better to master one small tool and build powerful stuff on its base, rather than constantly learning a new build system every 6 month, as those seem popping up like a mushrooms after rain. For example, Android is now moving to Gradle... I haven't even heard about it before, same as I don't understand what was the purpose of creating Ant which was just an XML-based clone of make...

The autotools are the gods gift to programmer kind. Before the autotools, there was chaos and a sort of dark evil lurking horror of formless void.

If you're on a POSIXish system there is nothing better for handling cross-platform builds. The autotools fall down when it comes to Windows builds, but they're no worse than the alternative of CMake or handling MS Visual Studio configurations manually.

It's funny that even CMake relies on the autotools to be ported to a new platform before it can be ported. Well, not exactly, because the autotools do cross compilation with such ease and grace, so you only have to bootstrap the CMake prerequisites from an existing port.

If you're shipping a generated Makefile with your autotools project, you're doing it wrong -- it makes no more sense than shipping your Win10 .EXE file to you Mac or Android target. It's designed to build from a read-only source tree, so if you're getting artifacts in your sources you're doing it wrong.

There was an effort once to replace the autotools with pure GNUmake (google for "quagmire") but it didn't do anything the autotools couldn't do and the autotools don't require the arcance GNUmake function syntax and opaque debuggability. The Linux kernel uses an extended GNUmake engine for its kconfig utility, and that's been adapted throughout the embedded world but in my experience, it's even more arcane than the autotools.

I don't want to preselytize the autotools: choose the tools that work for you. But, don;t diss the autotools just because you're personally unfamiliar with them and have read opinions on the interwebs somewhere. I came from the time before the autotools, and I've used them extensively in a lot of places, and I tell you the're a really good tool that almost always is the best choice for the job.

Stephen M. Webb
Professional Free Software Developer

i personally dont use such things. usually, i use codeblocks to compile, after adjusting the settings carefully. or some times, for simple projects, i just type the compilation command into console.

This topic is closed to new replies.

Advertisement