Skip to content

Instantly share code, notes, and snippets.

@devnoname120
Created December 31, 2016 18:01
Show Gist options
  • Save devnoname120/a1f1f68f3c55e5ea13cf102c1d81d021 to your computer and use it in GitHub Desktop.
Save devnoname120/a1f1f68f3c55e5ea13cf102c1d81d021 to your computer and use it in GitHub Desktop.
Yifanlu's explanations on why CMake is better than a simple Makefile
<yifanlu[m]> okay I'll engage in this one last time
<yifanlu[m]> evolution of build systems (for C)
<yifanlu[m]> shell scripts => makefiles => automake => autoconf/cmake
<yifanlu[m]> saying makefiles are better is like saying the model t is better because it gets you from point a to point b with no issues
<yifanlu[m]> while missing all the advances people made for a couple of decades
<yifanlu[m]> "but my ford fiesta is so complicated. I don't understand how it works!"
<yifanlu[m]> I agree autoconf/cmake are not perfect systems. and they are more painful to write/maintain.
<yifanlu[m]> but the idea is at some point you will run into a wall
<yifanlu[m]> "oh shit how do I do this"
<yifanlu[m]> and you have to hack together a solution
<yifanlu[m]> then you realize that solution doesn't work properly on OSX so you change it again
<yifanlu[m]> now it breaks on ubuntu 8.04
<yifanlu[m]> okay you fix it again
<yifanlu[m]> now another part breaks because you realize it's not compatible with your hacked together solution
<yifanlu[m]> rinse repeat and you get so frustrated and decide to write a new build system from scratch
<yifanlu[m]> then you make autoconf
<yifanlu[m]> but people start bitching about how it's too hard to learn! it does weird things! oh, how life used to be more simple
<yifanlu[m]> then the cycle starts again with another project
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment