GOPHERSPACE.DE - P H O X Y
gophering on tilde.team
2019-10-30 - Makefiles 
------------------------------------------------------------------- 
As i've written about before, i'm either too stupid or too lazy to 
effectively build and maintain skills for certain activities. One 
of them is writing proper makefiles.

Although i find makefiles quite handy, and use them a lot, I'm feel 
pretty illiterate when it comes to writing them. I have a 
preference for writing simple, straightforward files, without too 
many fancy clever things in them. 

As a result, all my makefiles, use the same basic pattern of simply 
and explicitly listing the target, prerequisites and a buildline.

general.o: general.cpp general.h
        $(CC) $(CFLAGS) general.cpp  -c -o general.o $(LIBS)

I'm confident enough to use basic variables, such as $(CC) and 
$(LIBS), and that's pretty much how far my understanding goes.

I don't feel comfortable with implicit rules, looping and all the 
other clever things the cool people do ($@,$<,$^). And when i read 
my makefile, I just want to clearly see what things are going to be 
build. With my limited understanding, I don't want to have to 
figure out how certain clever tags will expand, and how on earth 
"make" is going to crawl through my makefile and compile stuff.

So, i just literally write out all the rules for all of my 
individual *.c files to create object files, and link these into a 
program with another rule. For me it's only a minor task to add a 
new rule to the makefile, when i create a new file for a c project. 
And the benefit is, that i know what the heck is going on, without 
having to dive into Make to much...  

Yes, as i said, i'm lazy, or stupid with these kind of things :P