Created
December 31, 2016 18:01
-
-
Save devnoname120/a1f1f68f3c55e5ea13cf102c1d81d021 to your computer and use it in GitHub Desktop.
Yifanlu's explanations on why CMake is better than a simple Makefile
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<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