roh/conf/area/
roh/game/talk/
roh/help/
roh/monsters/ocean/
roh/objects/ocean/
roh/player/
roh/rooms/area/1/
roh/rooms/misc/
roh/rooms/ocean/
roh/src-2.44b/
LANG=C
# Moved compiler logic to compiler file, will commit a base of it and then add to svn ignore
# so we can modify the makefile and not worry about changing g++/icc
include compiler

CFLAGS := -g -Wall -I/usr/include/libxml2 -O0 $(COMPILER_CFLAGS)
CFLAGS += -I/usr/include/python2.6


LIBS = -laspell -lxml2 -lz -lc -L./ -L/usr/lib/python2.5/config -lpython2.6 -lboost_python-mt-py26

GENERAL_SOURCE := mudObject.cpp pythonHandler.cpp abjuration.cpp alchemy.cpp access.cpp action.cpp
GENERAL_SOURCE += afflictions.cpp area.cpp attack.cpp attackTimer.cpp bank.cpp bans.cpp
GENERAL_SOURCE += builder.cpp calendar.cpp clans.cpp cmd.cpp color.cpp combat.cpp
GENERAL_SOURCE += combatSystem.cpp command1.cpp command2.cpp command4.cpp command5.cpp
GENERAL_SOURCE += commerce.cpp communication.cpp config.cpp conjuration.cpp craft.cpp creature.cpp
GENERAL_SOURCE += creature2.cpp creatures.cpp data.cpp demographics.cpp die.cpp divination.cpp
GENERAL_SOURCE += dm.cpp dmcrt.cpp dmobj.cpp dmply.cpp dmroom.cpp duel.cpp effect.cpp effects.cpp
GENERAL_SOURCE += enchantment.cpp equipment.cpp errors.cpp evocation.cpp exits.cpp factions.cpp
GENERAL_SOURCE += files1.cpp files2.cpp files-xml-read.cpp files-xml-save.cpp fishing.cpp
GENERAL_SOURCE += global.cpp gods.cpp groups.cpp guilds.cpp healers.cpp healmagic.cpp illusion.cpp
GENERAL_SOURCE += io.cpp import.cpp log.cpp logic.cpp login.cpp lottery.cpp magic.cpp
GENERAL_SOURCE += magic1.cpp mccp.cpp md5.cpp memory.cpp misc.cpp monsters.cpp
GENERAL_SOURCE += mordorMain.cpp movement.cpp necromancy.cpp object.cpp objects.cpp oldQuest.cpp
GENERAL_SOURCE += player.cpp player2.cpp players.cpp port.cpp post.cpp property.cpp quests.cpp
GENERAL_SOURCE += queue.cpp realms.cpp rogues.cpp room.cpp rooms.cpp security.cpp server.cpp
GENERAL_SOURCE += ships.cpp singers.cpp size.cpp skills.cpp socket.cpp specials.cpp special1.cpp
GENERAL_SOURCE += spelling.cpp spells.cpp staff.cpp start.cpp stats.cpp steal.cpp talk.cpp
GENERAL_SOURCE += timer.cpp translocation.cpp transmutation.cpp undead.cpp unique.cpp update.cpp
GENERAL_SOURCE += vprint.cpp warriors.cpp watchers.cpp weaponless.cpp web.cpp xml.cpp

REALMS_SOURCE  := main.cpp
LIST_SOURCE    := list.cpp 
CONVERT_SOURCE := convert.cpp

ALL_SOURCE     := $(GENERAL_SOURCE) $(REALMS_SOURCE) $(LIST_SOURCE)
#CPP_SOURCE := main.cpppp Server.cpppp Socket.cpppp Interpreters.cpppp Timer.cpppp
#CPP_SOURCE += SignalHandler.cpppp Xml.cpppp Bans.cpppp MudObject.cpppp

GENERAL_OBJ    := $(notdir $(GENERAL_SOURCE:%.cpp=%.o))
REALMS_OBJ	   := $(GENERAL_OBJ) $(notdir $(REALMS_SOURCE:%.cpp=%.o))
LIST_OBJ	   := $(GENERAL_OBJ) $(notdir $(LIST_SOURCE:%.cpp=%.o))
CONVERT_OBJ	   := $(GENERAL_OBJ) $(notdir $(CONVERT_SOURCE:%.cpp=%.o)) 
ALLOBJ         := $(REALMS_OBJ)

BINS := realms.exe list.exe convert.exe

default:
	@echo 'Using $(CC) as a compiler' 
	$(MAKE) all

DEPS := $(notdir $(ALL_SOURCE:%.cpp=%.d)) mud.h.d
-include $(DEPS)

all: realms.exe 
		
#all: $(BINS)

copy:
	@echo 'Copying binary to bin dir.'
	@cp -f realms.exe ../bin/
	
clean:
	@echo 'Removing all binaries, dependancies, and object files.'
	@rm -f $(ALLOBJ)
	@rm -f $(BINS)
	@rm -f $(DEPS)
	@rm -f *.pchi
	@rm -f *.gch
	@rm -f *.d
	@rm -f *~

mud.h.gch: mud.h
	@echo 'Precompiling mud.h'
	@g++ -x c++-header mud.h -o mud.h.gch $(CFLAGS) && \
	g++ -MM -MG -MT mud.h.gch $(CFLAGS) mud.h > mud.h.d

convert.exe: $(CONVERT_OBJ)
	@echo 'Building target: $@'
	@$(CC) -o $@ $(CFLAGS) $(CONVERT_OBJ) $(LIBS) 
	@echo 'Done making: $@'
	
list.exe: $(LIST_OBJ)
	@echo 'Building target: $@'
	@$(CC) -o $@ $(CFLAGS) $(LIST_OBJ) $(LIBS) 
	@echo 'Done making: $@'
	
realms.exe: $(PRE_COMPILED_HEADER) $(REALMS_OBJ)
	@echo 'Building target: $@'
	@$(CC) -o $@ $(CFLAGS) $(REALMS_OBJ) $(LIBS) 
	@echo 'Done making: $@'

compiler:
	@cp compiler.default compiler
	
# General compilation commands
%.o : %.cpp
	@echo -e 'Compiling $<'
	@$(CC) $(CFLAGS) $(ICCFLAGS) -c $< -o$@ && \
	g++ -MM -MG $(CFLAGS) $< > $(@:%.o=%.d)