View Single Post
  #15  
Old 01-14-2009, 11:39 AM
Derision
Developer
 
Join Date: Feb 2004
Location: UK
Posts: 1,540
Default

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.

The EQOffline:BotCount rule should really be a RULE_INT (integer) rather than a RULE_REAL (floating point).
Reply With Quote