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

WWSRC      = WWCommon.c WWMessageThread.c WWWriterThread.c WWCommThread.c WWGetterThread.c
LOGCMPSRC  =  WALDecompress.c

CMNSRC     = $(CMNSRCDIR)/PREXMessage.c \
             $(CMNSRCDIR)/ReadWWConfFile.c \
             $(CMNSRCDIR)/GetCheckPointLSNFromBackupLabel.c
ifdef PG82
SOURCES    = $(WWSRC) $(CMNSRC) $(LOGCMPSRC)
else
SOURCES    = $(WWSRC) $(CMNSRC)
endif
OBJECTS    = $(SOURCES:.c=.o)
CMNOBJS    = $(CMNSRCDIR)/PREXUtil.o
LIBS       = -lpthread
DEFS       =

CKPSRC     = $(CMNSRCDIR)/GetCheckPointLSN.c

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

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

TARGET     = WALWriter

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

$(TARGET): GetCheckPointLSN.o $(OBJECTS) $(CMNOBJS) $(LDLIBS)
	$(LINK.c) -o $@ $(OBJECTS) $(CMNOBJS) GetCheckPointLSN.o $(PGDIR)/src/backend/utils/hash/pg_crc.o $(LDLIBS)

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

GetCheckPointLSN.o:
	$(COMPILE.c) $(OUTPUT_OPTION) $(CKPSRC)

##
## 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) *.o

include $(ROOTDIR)/Makefile.global
