#****************************************************************************
#                Makefile for rc_balanced 
#                -----------------------------------------
#
#    begin      : 2019/02/22
#    copyright  : (C) 2005 Solbox Inc.
#    author     : Dev Storage Team
#    email      : huibong@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 		= rc_balanced
REVISION 		= 1531
PROG_VERSION = 3.5.0.$(REVISION)-`date +%Y%m%d%H%M%S`

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

# COPY 처리를 수행하는 Copy Thread 의 Max count 값 설정
# - 3 이상 값으로 할 경우.. MOVE 수신 FHS 가 1대인 경우..  Write 처리 관련 부하 발생
# - recommand: 1~2 , max: 10
MAX_COPY_THREAD_COUNT = 2


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 = 

DFLAGS = -DPROG_NAME=\"$(PROG_NAME)\" -DPROG_VERSION=\"$(PROG_VERSION)\" -DDEFAULT_CONFIG_FILE=\"$(DEFAULT_CONFIG_FILE)\" -DMAX_COPY_THREAD_COUNT=$(MAX_COPY_THREAD_COUNT) 

# Application Enviroment
APP = $(PROG_NAME) 

DIR_INCLUDE = -I../lib -I../ftsd -I../rc_mond -I/user/db/pgsql/include
DIR_LIB     = -L../lib


OBJ = ProcessConfig.o RebalanceData.o Common.o \
      ../ftsd/FtsdSocketControl.o RcdbInfo.o Database.o CopyThread.o ShmInfoThread.o \
	  ProcessMonitoringThread.o TargetSelectThread.o CopyControlThread.o RcdbUpdateThread.o PhysicalDeleteThread.o \
      WorkerRebalance.o \
      Main.o
	  
LIBS = ../lib/libInterCommon.a -lpthread -lrt /user/db/pgsql/lib/libpq.a


#---------------------------------------------------------------------#

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.* *.out *.log
	-rm -f ../ftsd/*.o ../ftsd/*.out ../ftsd/core.*
	-rm -f ../rc_mond/*.o ../rc_mond/*.out ../rc_mond/core.*
	-rm -f $(APP)
	sync


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


# End of Makefile

