CC = gcc
CXX = g++
LD = g++

CXXFLAGS = -g -ggdb -Wall -std=gnu++0x
LIBS = -lmmo-network -lmmo-database -lboost_system -lboost_thread -lboost_date_time -lboost_filesystem -lboost_regex \
 -lpthread  -lssl -lcrypto -lsqlite3 -lsnappy -lminiupnpc
LIBDIRS = -L/usr/local/lib -L../common/network -L../common/database

TARGET = bin/mmoserver
OBJS := $(patsubst %.cpp,%.o,$(wildcard *.cpp))

TARGET_SCANNER = bin/mmoscanner
OBJS_SCANNER := $(patsubst %.cpp,%.o,$(wildcard scanner/*.cpp))
OBJS_SCANNER += Config.o

TARGET_TESTBOT = bin/mmotestbot
OBJS_TESTBOT := $(patsubst %.cpp,%.o,$(wildcard testbot/*.cpp))
OBJS_TESTBOT += Config.o

all: $(OBJS) $(OBJS_SCANNER) $(OBJS_TESTBOT) libmmo-network.a libmmo-database.a
	$(LD) $(CXXFLAGS) -o $(TARGET) $(OBJS) $(LIBS) $(LIBDIRS)
	$(LD) $(CXXFLAGS) -o $(TARGET_SCANNER) $(OBJS_SCANNER) $(LIBS) $(LIBDIRS)
	$(LD) $(CXXFLAGS) -o $(TARGET_TESTBOT) $(OBJS_TESTBOT) $(LIBS) $(LIBDIRS)

clean:
	@rm -f $(OBJS) $(TARGET)
	@rm -f $(OBJS_SCANNER) $(TARGET_SCANNER)
	@rm -f $(OBJS_TESTBOT) $(TARGET_TESTBOT)
	@cd ../common/network;make clean;
	@cd ../common/database;make clean;
    
libmmo-network.a:
	cd ../common/network;make;
	
libmmo-database.a:
	cd ../common/database;make;

.cpp.o:
	$(CXX) $(CXXFLAGS) -c -o $@ $<