oz123 / awesome-c

A curated list of awesome C frameworks, libraries, resources and other shiny things. Inspired by all the other awesome-... projects out there.
Creative Commons Attribution Share Alike 4.0 International
9.47k stars 833 forks source link

build: autotools and autotools-skeleton #162

Closed msune closed 4 years ago

msune commented 4 years ago

This patcheset (2), adds:

NOTE: this PR builds on top of #161 and #160, respectively, for the sake of avoiding unnecessary rebases (specially with refs). If necessary, I can rebased them on top of current HEAD of master to be integrated before the others

kozross commented 4 years ago

I personally do not consider the Autotools to be a good choice for a new C project in 2020. This here is why.

msune commented 4 years ago

Hi @kozross. it's a very respectable opinion. For those who work close to HW, with multiple Unix POSIX (and non-POSIX) systems, autotools is arguably the only thing that truly works, and works well. I've tried multiple times cmake, and there are always portability problems - and I don't like some of the design decisions on it. It's very personal, though.

On the article, let me already pinpoint some of the things:

Complexity is standard. If I were to describe Autotools with just one word, it would be this: Ununderstandable

I partially agree. There is a substantial lack of proper documentation. Those who have been working with it long time, already have their templates and ways to work (hence the template project).

One website that I'd strongly recommend:

https://autotools.io/

Which is a good source for someone unfamiliar to autools - and btw refutes some of the claims of the article. If this PR is accepted I can add it in the doc section.

Poor portability You can use Autotools on Windows, but first you need to install either Cygwin or MSYS and even then you can only use variants of GCC.

GNU build system was designed around Unix systems not Windows, plain and simple.

There is roughly zero support for Visual studio,

I truly don't understand why this is GNU's build system fault. If at all, is the unwilligness of Microsoft to add it (as most IDEs have it), most likely is due to the Unix nature (and need of Cygwin). But maybe Microsoft embracing Linux will change that? :smiley:


Anyway, I don't want to create controversy; your list => your rules :smile:. Just let me know if you feel like accepting it or not, so that I can amend #163 accordingly.

msune commented 4 years ago

Hi @oz123 @kozross . Let me know how to proceed with this, to act accordingly wth #163.

kozross commented 4 years ago

@msune I've handed over maintenance to @oz123, so the ball's in their court.

oz123 commented 4 years ago

TBH, I am not against autotools, and it's still VERY common. Lastly, the development of autotools has restarted. Hence, I am in favour of merging this PR.