View Single Post
  #18  
Old 01-14-2009, 01:26 PM
Angelox
AX Classic Developer
 
Join Date: May 2006
Location: filler
Posts: 2,049
Default

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 View Post
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.
Reply With Quote