Derision; I also noticed, it seemed at one time, when I did a 'make clean' from the source root, it would go through all the subs and include a 'make depend' , it doesn't seem to do that anymore, just includes 'make clean' only.
I wonder if something got removed?
Quote:
Originally Posted by Derision
It's not actually your fault, it is a problem with the makefiles.
Both the makefile.common for world and zone specify ../common/rulesys.o in the SF= line.
../common/rulesys.o gets compiled for world first, then, when zone gets compiled, it sees that ../common/rulesys.o is newer than ../common/rulesys.cpp and so it knows it doesn't need to recompile it.
Normally, this is not a problem, however in the case of code bracketed in #ifdef/#endif, where different defines are used between world and zone, it causes problems.
Instead of ../common/rulesys.o, the world and zone makefile.common should specify .obj/rulesys.o
This tells the makefile to compile it's own private version using it's own set of -D flags.
I'll update the makefiles.
|