#****************************************************************************
#                Makefile for fimngd 
#                -----------------------------------------
#
#    begin      : 2013/04/23
#    copyright  : (C) 2005 Solbox Inc.
#    author     : Development Team (Storage Part)
#    email      : storage.sd@solbox.com
#    version    : 3.5
#
#    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 		= fimngd
REVISION 		= 1501
PROG_VERSION = 3.5.0.$(REVISION)-`date +%Y%m%d%H%M%S`

DEFAULT_CONFIG_FILE = /user/service/etc/fhs.conf

APACHE_DIR = /user/service/httpd
APACHE_INCLUDES =  $(APACHE_DIR)/include
APACHE_LIB= $(APACHE_DIR)/lib

INSTALL_BIN  = /user/service/bin
INSTALL_CONF = /user/service/etc

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

CFLAGS = -Wall -O3 -g -Wreturn-type -Wunused -Wuninitialized\
		 -Wparentheses -Wshadow -Wpointer-arith -Woverloaded-virtual\
		 -fno-rtti -D_REENTRANT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE

LFLAGS =  

# DEBUG or RELEASE Mode select
#DFLAGS = -DPROG_NAME=\"$(PROG_NAME)\" -DPROG_VERSION=\"$(PROG_VERSION)\" -DDEFAULT_CONFIG_FILE=\"$(DEFAULT_CONFIG_FILE)\" -D__TEST__
DFLAGS = -DPROG_NAME=\"$(PROG_NAME)\" -DPROG_VERSION=\"$(PROG_VERSION)\" -DDEFAULT_CONFIG_FILE=\"$(DEFAULT_CONFIG_FILE)\"

# Application Enviroment
APP = $(PROG_NAME) 

DIR_INCLUDE = -I../lib -I/user/db/pgsql/include -I $(APACHE_INCLUDES)
DIR_LIB     = -L../lib -L$(APACHE_LIB)

LIBS = -lpthread /user/db/pgsql/lib/libpq.a ../lib/libInterCommon.a $(APACHE_LIB)/libapr-1.a
#LIBS = -lpthread /user/db/pgsql/lib/libpq.a ../lib/libInterCommon.a ./libapr-1.a

OBJ = ArgParser.o Signal_handle.o SharedMemAPR.o IPCMsgQueue.o Database.o\
	ProcessRename.o Process.o\
	DaemonConfigs.o\
	ProcessDummy.o Main.o\
	WorkerServiceInfoUpdater.o AccountUpdateThread.o AnonyUpdateThread.o \
	WorkerFhsInfoUpdater.o FhsStatUpdateThread.o \
	WorkerMessageQueueControl.o MsgQueuePopThread.o TransferStatData.o TransferStatDataList.o CacheRequestList.o CacheGeneratorThread.o \
	FstatHandler.o HotContentDetectThread.o HotContentInfoMap.o \
	WorkerNetworkStatSender.o NetworkStatSendThread.o \
	SocketControl.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.$(PROG_NAME).* $(PROG_NAME).core *.out *.log
	-rm -f $(APP)
	sync


install : $(APP)
	-cp $(APP) $(INSTALL_BIN)/$(APP)
	sync


# End of Makefile
