#****************************************************************************
#                Makefile for rc_mngd (  RC Management Daemon  )
#                -----------------------------------------
#
#    begin      : 2013/02/13
#    copyright  : (C) 2013 Solbox Inc.
#    author     : Development 1 Team
#					- 2013/02/13 - 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           = rc_mngd
REVISION            = 1373
BUILD_DATE          = `date +%Y%m%d%H%M%S`
PROG_VERSION        = 3.5.0.$(REVISION)-$(BUILD_DATE)
CONFIG_NAME         = rcts.conf
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)

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

CFLAGS = -Wall -O3 -g -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.3.0.$(REVISION)D-$(BUILD_DATE)

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

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


# Application Enviroment
APP         = $(PROG_NAME) 

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

DIR_LIB     = -L../lib
DIR_INCLUDE = -I./. -I../lib -I/user/db/pgsql/include ${XML++_INCLUDES}

#LIBS        = -lpthread -lssl ../lib/libInterCommon.a /user/db/pgsql/lib/libpq.a ${XML++_LIBS}
LIBS        = -lpthread -lssl -lcrypto ../lib/libInterCommon.a /user/db/pgsql/lib/libpq.a ${XML++_LIBS}

OBJ         = Job.o Convert.o JobData.o FtsdSocketControl.o FhsControl.o DbConnPool.o\
			Database.o RCDBControl.o SocketControl.o JobControl.o Parser.o Client.o\
			UtilFn.o Service.o Worker.o Signals.o Configs.o ArgParser.o main.o\
			ConvertServiceOpen.o ServiceOpen.o\
			ConvertServiceChange.o ServiceChange.o\
			ConvertVolumeInfo.o VolumeInfo.o\
			ConvertAnonymousDir.o AnonymousDir.o\
			ConvertFileControl.o FileControl.o\
			ConvertReqServiceMove.o ConvertReqServiceLink.o\
			RcMngdControl.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
