#****************************************************************************
#                Makefile for cc_statd (  CC Stat Daemon  )
#                -----------------------------------------
#
#    begin      : 2013/05/28
#    copyright  : (C) 2013 Solbox Inc.
#    author     : Development 1 Team
#					- 2013/05/28 - 1st dadamin
#    email      : dev1@solbox.com
#    version    : 3.2.0
#
#    CopyRight(C) 2005 Solbox Inc. All Rights reserved.
#    Redistribution and use in source and binary forms, with or with out
#    modification, are not permitted in outside of Solbox Inc.
#*****************************************************************************

# Program info
PROG_NAME           = cc_statd
REVISION            = 1142
BUILD_DATE          = `date +%Y%m%d%H%M%S`
PROG_VERSION        = 3.4.0.$(REVISION)-$(BUILD_DATE)
CONFIG_NAME         = gts.conf
SOCI_HOME			= /user/SOCI
INSTALL_HOME        = /user/service
INSTALL_BIN         = $(INSTALL_HOME)/bin
INSTALL_CONFIG      = $(INSTALL_HOME)/etc
INSTALL_LOG_HOME    = $(INSTALL_HOME)/logs
DEFAULT_CONFIG_FILE = $(INSTALL_CONFIG)/$(CONFIG_NAME)

#XML EVIRONMENT VARIABLE
XML++_INCLUDES = `pkg-config libxml++-2.6 --cflags`
XML++_LIBS = `pkg-config libxml++-2.6 --libs`

#SOCI EVIRONMENT VARIABLE
SOCI_LIBS = $(SOCI_HOME)/lib64/libsoci_core.a $(SOCI_HOME)/lib64/libsoci_postgresql.a /user/db/pgsql/lib/libpq.a 
## core
SOCI_INCLUDE		= $(SOCI_HOME)/include/soci
## PostgreSQL
POSTGRESQL_INCLUDE	= /user/db/pgsql/include 

# Compiler info
CC     = /usr/bin/g++

CFLAGS = -Wall -O3 -g -Wimplicit -Wreturn-type -Wunused -Wuninitialized\
		-Wparentheses -Wshadow -Wpointer-arith -Woverloaded-virtual\
		-minline-all-stringops -fstack-protector-all\
		-D_THREAD_SAFE -D_REENTRANT -D_PTHREADS -Wno-unused -Wno-non-virtual-dtor

LFLAGS = --fast-math -march=native 

# DEBUG or RELEASE Mode select
ifeq ($(DEBUG), yes)
PROG_VERSION = 3.4.0.$(REVISION)D-$(BUILD_DATE)

CFLAGS = -Wall -O0 -g -Wimplicit -Wreturn-type -Wunused\
		-Wparentheses -Wshadow -Wpointer-arith -Woverloaded-virtual\
		-minline-all-stringops -fstack-protector-all\
		-D_THREAD_SAFE -D_REENTRANT -D_PTHREADS -Wno-unused -Wno-non-virtual-dtor\

DFLAGS = $(TEST) -D_DEBUG -DPROG_NAME=\"$(PROG_NAME)\" -DPROG_VERSION=\"$(PROG_VERSION)\"\
		-DDEFAULT_CONFIG_FILE=\"$(DEFAULT_CONFIG_FILE)\"
else
DFLAGS = $(TEST) -DPROG_NAME=\"$(PROG_NAME)\" -DPROG_VERSION=\"$(PROG_VERSION)\"\
		-DDEFAULT_CONFIG_FILE=\"$(DEFAULT_CONFIG_FILE)\"
endif

# Application Enviroment
APP         = $(PROG_NAME) 

DIR_LIB     = -L../lib -L$(INSTALL_LIBRARY) 
DIR_INCLUDE = -I./. -I../lib $(XML++_INCLUDES) -I$(SOCI_INCLUDE) -I$(POSTGRESQL_INCLUDE)
LIBS        = -lpthread ../lib/libInterCommon.a $(XML++_LIBS) $(SOCI_LIBS)

OBJ         = Insert.o InsertData.o Work.o DBManager.o WorkPool.o\
			  Service.o Worker.o Signals.o Configs.o ArgParser.o main.o

############################

all:$(APP)
	sync

%.o: %.cpp
	$(CC) $(CFLAGS) -o $@ -c $^ $(DFLAGS) $(DIR_INCLUDE) 
	
$(PROG_NAME): $(OBJ)
	$(CC) $(LFLAGS) -o $@ $^ $(DFLAGS) $(DIR_LIB) $(LIBS)

clean:
	-rm -f *.o *.core core.* .out *.log
	-rm -f $(APP)
	-rm -f $(DUMP_PATH)/core.*
	sync


install : $(APP)
	-mkdir -p $(INSTALL_HOME)
	-mkdir -p $(INSTALL_BIN)
	-mkdir -p $(INSTALL_CONFIG)
	-mkdir -p $(INSTALL_LOG_HOME)
	-mkdir -p $(DUMP_PATH)
	-cp -f $(APP) $(INSTALL_BIN)/$(APP)
	-cp -i ../conf/$(CONFIG_NAME) $(INSTALL_CONF)/$(CONFIG_NAME)
	sync

# End of Makefile
