#*****************************************************************************
# Copyright (C) 2006-2007 NTT
#*****************************************************************************
##
## MACRO definition
##
#PROF       = -pg
#EFENCE     = -lefence
#MPATROL    = -lmpatrol -lbfd -liberty -ldl
ROOTDIR    = ../..
CCDIR      = $(ROOTDIR)/clustercommand
BINDIR     = $(CCDIR)/bin
SRCDIR     = $(CCDIR)/src
INCDIR     = $(CCDIR)/include
CMNDIR     = $(ROOTDIR)/common
CMNINCDIR  = $(CMNDIR)/include
CMNSRCDIR  = $(CMNDIR)/src
INSTALLDIR = $(PREFIX)/bin

CCSRC      = CompRemoteLSN.c mkmsgq.c msgact.c msgsbyrecv.c prexsyslog.c ReadConfig.c SyncXLOG.c WaitSyncXLOG.c
CMNSRC     = $(CMNSRCDIR)/PREXMessage.c \
             $(CMNSRCDIR)/ReadWWConfFile.c \
             $(CMNSRCDIR)/GetCheckPointLSN.c
CMNOBJECT1 = $(CMNSRCDIR)/PREXMessage.o
CMNOBJECT2 = $(CMNSRCDIR)/ReadWWConfFile.o
CMNOBJECT3 = $(CMNSRCDIR)/GetCheckPointLSN.o
CCOBJECTS1 = CompRemoteLSN.o $(CMNOBJECT1) $(CMNOBJECT3) 
CCOBJECTS2 = mkmsgq.o $(CMNOBJECT1)
CCOBJECTS3 = msgact.o $(CMNOBJECT1)
CCOBJECTS4 = msgsbyrecv.o $(CMNOBJECT1)
CCOBJECTS5 = prexsyslog.o $(CMNOBJECT1)
CCOBJECTS6 = ReadConfig.o $(CMNOBJECT1) $(CMNOBJECT2)
CCOBJECTS7 = SyncXLOG.o $(CMNOBJECT1)
CCOBJECTS8 = WaitSyncXLOG.o $(CMNOBJECT1)
#CCOBJECTS9 = exclude.o $(CMNOBJECT1)
SOURCES    = $(CCSRC) $(CMNSRC)
OBJECTS    = $(SOURCES:.c=.o)
LIBS       = 
DEFS       =

CC         = gcc
CFLAGS     = -I$(ROOTDIR) -I$(INCDIR) -I$(CMNINCDIR) $(DEFS) -D_REENTRANT $(PROF)
COMPILE.c  = $(CC) $(CFLAGS) -c -Wall
DEBUG      = -g3

LDLIBS     = $(LIBS) $(EFENCE)
LDFLAGS    = $(MPATROL) $(PROF)
LINK.c     = $(CC) $(LDFLAGS)

TARGET     = CompRemoteLSN mkmsgq msgact msgsbyrecv prexsyslog ReadConfig SyncXLOG WaitSyncXLOG

##
## Target definition
##
all: $(TARGET)

.c.o:
	$(COMPILE.c) $(OUTPUT_OPTION) $<


CompRemoteLSN: $(CCOBJECTS1)
	$(LINK.c) -o $@ $(CCOBJECTS1) $(LDLIBS)
	
mkmsgq: $(CCOBJECTS2)
	$(LINK.c) -o $@ $(CCOBJECTS2) $(LDLIBS)

msgact: $(CCOBJECTS3)
	$(LINK.c) -o $@ $(CCOBJECTS3) $(LDLIBS)

msgsbyrecv: $(CCOBJECTS4)
	$(LINK.c) -o $@ $(CCOBJECTS4) $(LDLIBS)

prexsyslog: $(CCOBJECTS5)
	$(LINK.c) -o $@ $(CCOBJECTS5) $(LDLIBS)

ReadConfig: $(CCOBJECTS6)
	$(LINK.c) -o $@ $(CCOBJECTS6) $(LDLIBS)

SyncXLOG: $(CCOBJECTS7)
	$(LINK.c) -o $@ $(CCOBJECTS7) $(LDLIBS)

WaitSyncXLOG: $(CCOBJECTS8)
	$(LINK.c) -o $@ $(CCOBJECTS8) $(LDLIBS)

#exclude: $(CCOBJECTS9)
#	$(LINK.c) -o $@ $(CCOBJECTS9) $(LDLIBS)

##
## make debug objects
##
debugobj: $(SOURCES)
	for file in $(SOURCES) ; do \
	  echo $(COMPILE.c) $${file} $(DEBUG); \
	  $(COMPILE.c) $${file} $(DEBUG); \
	done

debug:
	make debugobj; \
	make

##
## Install
##
install: $(TARGET)
	cp -p $(TARGET) $(INSTALLDIR)

##
## Clean
##
clean:
	rm -f $(OBJECTS) $(TARGET)

include $(ROOTDIR)/Makefile.global
