LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Programming (https://www.linuxquestions.org/questions/programming-9/)
-   -   Best Build System (https://www.linuxquestions.org/questions/programming-9/best-build-system-4175655833/)

Andy Alt 06-16-2019 04:58 PM

Best Build System
 
What's your favorite build system? Which ones need to be added to this poll?

Andy Alt 06-16-2019 05:00 PM

Oh.. no way to edit polls I created?

GazL 06-16-2019 05:28 PM

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.

FOSSilized_Daemon 06-16-2019 06:25 PM

Quote:

Originally Posted by Andy Alt (Post 6006076)
What's the best build system? Which ones need to be added to this poll?

mk from Plan9
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.

orbea 06-17-2019 07:55 AM

I'm not sure what the best is, but I like sofort.

https://git.midipix.org/sofort

Quote:

Originally Posted by FOSSilized_Daemon (Post 6006102)
tinycc

This is a compiler, not a build system.

pan64 06-17-2019 08:02 AM

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.

Andy Alt 06-18-2019 01:25 AM

"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.

Andy Alt 06-25-2019 11:43 AM

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.

crts 06-25-2019 12:34 PM

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.

cyent 07-02-2019 12:12 AM

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.

pan64 07-02-2019 12:33 AM

there is a tool named tup too and there are additional "extensions" like ccache and audited objects (not to speak about maven).

wjaguar 07-02-2019 01:28 PM

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.

cyent 07-03-2019 08:27 PM

Quote:

Originally Posted by wjaguar (Post 6011236)
Hugely overcomplicated pseudo-"universal" stuff, fraught with weird errors and eldritch misbehaviours. Why learn a whole extra made-up language

Agreed. CMake is even worse, it's a bad language that autogenerates a worse language.

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 02:01 AM.