This shit has gotten out of hand. Make wasn't good enough, so out comes CMake, which is 1000% more bloated than was already necessary. The output Makefile is incomprehensible and can't even really be read by humans because it calls back into fucking CMake itself! Even with plain ol' Make, it is considered fashionable to just blanket the file with cryptic pattern matching garbage that is no-doubt copy-pasted from some tutorial and tweaked by trial and error, all because someone is too lazy to update the Makefile when new files are added. The proper solutions for that is to either stop being a lazy fuck or to stop adding new files all willy-nilly.
To protest such nonsense, from now on, I'll just have a shell script compile, or for things that need more complex options, I'll use ./configure to write a shell script to direct compilation. Or maybe a perl script to do everything.
Name:
Anonymous2014-12-30 2:54
I summon L. A. Calculi Modules/CheckFunctionExists.c #ifdef CHECK_FUNCTION_EXISTS
char CHECK_FUNCTION_EXISTS(); #ifdef __CLASSIC_C__ int main(){ int ac; char*av[]; #else int main(int ac, char*av[]){ #endif CHECK_FUNCTION_EXISTS(); if(ac > 1000) { return *av[0]; } return 0; }
#else /* CHECK_FUNCTION_EXISTS */
# error "CHECK_FUNCTION_EXISTS has to specify the function"
Oh and you said something about the generated makefile? src/game/g_script_actions.o: src/game/g_script_actions.c.o .PHONY : src/game/g_script_actions.o
# target to build an object file src/game/g_script_actions.c.o: $(MAKE) -f CMakeFiles/qagame.mp.i386.dir/build.make CMakeFiles/qagame.mp.i386.dir/src/game/g_script_actions.c.o .PHONY : src/game/g_script_actions.c.o
# target to generate assembly for a file src/game/g_script_actions.c.s: $(MAKE) -f CMakeFiles/qagame.mp.i386.dir/build.make CMakeFiles/qagame.mp.i386.dir/src/game/g_script_actions.c.s .PHONY : src/game/g_script_actions.c.s Yeah because we need that unportable GNU phony bs, we also need to generate without reason a .c.s, .s, .c.i, .i, .c.o and .o for every .c file that's going to be compiled.
Even with plain ol' Make, it is considered fashionable to just blanket the file with cryptic pattern matching garbage that is no-doubt copy-pasted from some tutorial and tweaked by trial and error
The biggest problem with using make is that most people just don't understand it. Make is brain dead simple to use if you take an hour to read the fucking manual and recognize that it's a dependency description language and not just some bizarre shell dialect. 90% of the problems I see in makefiles result from people who didn't do this writing total bullshit pseudo targets that wreck make's dependency resolution. As long as people like that are allowed to touch the build system I don't see much hope for make replacements.
Name:
Anonymous2015-01-02 11:03
all because someone is too lazy to update the Makefile when new files are added.
Wait, that's why opensource project makefiles are so hideously bloated and unreadable? I thought it was just some morbid tribute to RMS Marx Stalin and GNU.
Name:
Anonymous2015-01-02 11:25
Files are bloat
Name:
Anonymous2015-01-02 19:43
>>8 OSS actually has a better chance of having a good build because there's no designated "build guy" you can ask to fix things when a compilation unit is changed. Bad build systems drive away contributors.
Name:
Anonymous2015-01-02 20:02
>>10 Then why is OSS being replaced by Alsa everywhere?
Name:
Anonymous2015-01-02 20:18
>>11 Why is Alsa being replaced by Pulse everywhere?
Name:
Anonymous2015-01-02 20:22
>>12 Because it isn't. You should look up what PulseAudio is and how it relates to Alsa.
Name:
Anonymous2015-01-02 22:11
oss is better than alsa pulse and whatever windows and mac use haha how about that faget i'm an audiophile and ur just a nigger with muh beats muh beats run along now nigger
Name:
Anonymous2015-01-03 2:40
Most of the closed source I've seen doesn't use make, it uses F5 in Visual Studios or Eclipse.
But CMake is easily abused. I don't like it as a dependency system because it seems so much slower than a handwritten Makefile, but it is occasionally useful if people have some pressing need to generate project files for their favorite IDE and won't leave you alone about it. It is also nice for thinks where you need better control over envvars, but usually you are doing something wrong at that point.
Name:
Anonymous2017-01-15 3:47
What even is the point of make? Isn't it easier to just use shell scripts to compile your programs?
GNU Make - a make program featuring pattern-matched viewpaths, parallel threads, multiple platforms, conditional directives, makefile regeneration, and an advanced Make description language.
TBH, if I needed this kind of functionality, I'd much prefer to be describing the build process using a declarative language (CMake, premake5) of if I needed it to be imperative, I'd be using something like Perl or Python (Scons).
Name:
Anonymous2017-01-15 4:18
willy nilly nilly nilly nilly nilly nooo
Name:
Anonymous2017-01-15 6:04
>>17 My point is that building most programs doesn't require that kind of functionality.