Best Build System
What's your favorite build system? Which ones need to be added to this poll?
|
Oh.. no way to edit polls I created?
|
For my own stuff, I just use a plain old makefile. Autotools has always seemed like a prime example of "cure is worse than the disease" to me. I don't know much about the other 3 on you list.
|
Quote:
make makefiles tinycc I hate cmake as it sucks and frankly avoid any cpp things like the plague (for many reasons), but especially because building cpp from source is often harder than it's worth. |
I'm not sure what the best is, but I like sofort.
https://git.midipix.org/sofort Quote:
|
clearmake is the best I know.
CMake is not a build system, but a build system generator and the generated build system is not "the best" at all. |
"Favorite" would have been a better title for this poll and thread. So let's try that theme from here on. :)
Still.. good info so far. |
I've mostly been using GNU autotools the last few years for small projects. I never spent the time to learn how to write just plain Makefiles, but have gotten pretty handy with automake and autoconf in the last year-and-a-half.
I tried changing a few projects to CMake but never was too happy that CMake doesn't create an "uninstall" rule. I don't completely understand the logic behind the statement: "We do not want 'make uninstall' to remove useful files from the system." If 'make uninstall' removed files from someone's system, wouldn't that mean 'make install' overwrote files on the system? I mean, if the idea is that uninstalling files only uninstalls files that were installed with 'make install'? If there were any files overwritten, wouldn't that be a matter of a user setting an install target that was unintended? Recently someone suggested to me that Meson was "better" than CMake or Autootools; I've since tried it out on two of my small projects, created a binary and a library. Meson is... interesting. Without stumbling into any major bugs, I basically got it to do everything I needed to do for those small projects, with the help of folks from #mesonbuild on IRC. The docs are pretty good, mostly complete, imo, but I find them a little bit difficult to navigate at times. But what I couldn't find in the docs, I got answers to with good speed from #mesonbuild. As for minor bugs, sometimes it's difficult to call anything a "bug" until I'm sure it's not user-error from lack of experience. xD. But with over 900 issues open on the project repo, I'm concerned about porting yet until I know what I may be facing. I'm not in any real hurry though to switch my build systems (or generator systems xD). GNU autotools has worked pretty well for me, I may never switch. Once in a while I get pretty frustrated with it but somehow I can always get things to work in the end. |
Gradle
Gradle is quite versatile and takes some time to get even the basics, yet somehow (within a reasonable amount of time spent on websearches) I manage to configure the project the way I want. I have seen it mostly used for Java projects but I have also successfully build a small c program with it.
|
Need more options....
....those are old or boring or insane.
cmake worries me. It seems like a grand leap in the wrong direction. Things like https://github.com/apenwarr/redo are more interesting. |
there is a tool named tup too and there are additional "extensions" like ccache and audited objects (not to speak about maven).
|
All are worse
Hugely overcomplicated pseudo-"universal" stuff, fraught with weird errors and eldritch misbehaviours. Why learn a whole extra made-up language (no matter if it styles itself a "build system" when it IS Turing-complete) when you already have two (sh AND make) you need to know irregardless? Just make full use of either. It is not THAT hard.
Myself, I use a "build system" written by my very own self. 20 kb of portable shell code; 8 years in use; no problems at all. And less time spent WRITING it, than would have gone into LEARNING autotools OR cmake OR whatever-is-in-fashion-today. |
Quote:
Personally I opt for ruby as much nicer than shell, but I agree with you. Although I do think the redo /tup generation of tools are on to some good ideas. |
All times are GMT -5. The time now is 04:26 PM. |