TARGET1= fence_xvm
TARGET2= fence_xvmd
TARGET3= testprog

SBINDIRT=$(TARGET1) $(TARGET2)

MANTARGET= fence_xvm.8

all: ${TARGET1} ${TARGET2} ${MANTARGET}

include ../../../make/defines.mk
include $(OBJDIR)/make/cobj.mk
include $(OBJDIR)/make/clean.mk
include $(OBJDIR)/make/install.mk
include $(OBJDIR)/make/uninstall.mk

OBJS1=	fence_xvm.o \
	ip_lookup.o

OBJS2=	fence_xvmd.o \
	virt.o \
	options-ccs.o \
	vm_states.o \
	xml.o

OBJS3=	xml-standalone.o

SHAREDOBJS=	mcast.o \
		simple_auth.o \
		tcp.o \
		options.o \
		debug.o

CFLAGS += -D_GNU_SOURCE
CFLAGS += -I${ccsincdir} -I${cmanincdir}
CFLAGS += -I${corosyncincdir} -I${openaisincdir}
CFLAGS += -I${logtincdir}
CFLAGS += -I${virtincdir} -I${nssincdir} -I${nsprincdir}
CFLAGS += `xml2-config --cflags`
CFLAGS += -I${incdir}

STANDALONE_CFLAGS += -DSTANDALONE

LDFLAGS += -L${nsslibdir} -lnss3
LDFLAGS += -L${logtlibdir} -llogthread
LDFLAGS += -L${libdir}

EXTRA_LDFLAGS += -L${ccslibdir} -lccs -L${cmanlibdir} -lcman
EXTRA_LDFLAGS += -L${virtlibdir} -lvirt
EXTRA_LDFLAGS += -L${openaislibdir} -lSaCkpt
XML_LDFLAGS += `xml2-config --libs`

${TARGET1}: ${SHAREDOBJS} ${OBJS1}
	$(CC) -o $@ $^ $(LDFLAGS)

${TARGET2}: ${SHAREDOBJS} ${OBJS2}
	$(CC) -o $@ $^ $(EXTRA_LDFLAGS) $(XML_LDFLAGS) $(LDFLAGS)

${TARGET3}: ${OBJS3}
	$(CC) -o $@ $^ $(XML_LDFLAGS)

$(MANTARGET): $(TARGET1) ${SRCDIR}/fence/agents/lib/fence2man.xsl
	set -e && \
	./$(TARGET1) -o metadata > .$@.tmp && \
	xsltproc ${SRCDIR}/fence/agents/lib/fence2man.xsl .$@.tmp > $@

clean: generalclean
	rm -f $(MANTARGET) .$(MANTARGET).tmp

-include $(OBJS1:.o=.d)
-include $(OBJS2:.o=.d)
-include $(OBJS3:.o=.d)
-include $(SHAREDOBJS:.o=.d)
