COMPILER=g++
COMMON=../common
COMMON_INCLUDE=../common/include
INCLUDE=./include
KERNEL_INCLUDE=../kernelModule/include
GRPMGR_INCLUDE=../server/include
GRPMGR=../server
BIN=../../bin

#compilation flags
CFLAGS=  -I${COMMON_INCLUDE} -I${INCLUDE} -I${KERNEL_INCLUDE} -I${GRPMGR_INCLUDE} -Wall -gstabs

ifeq ($(DEBUG),y)
CFLAGS += -g -D_DEBUG
else
CFLAGS += -g
endif


#library flags 
LIBS=-L../libxml2/lib  -lm -lpthread -g


all: host-manager

# hostMgr: AllObjs
# 	${COMPILER} ${LIBS}  UserRequest.o StringTokenizer.o get_hw_addrs.o HostMgr.o  -o hostMgr #HostMgrHelper.o VMController.o  ${GRPMGR}/FileGenConsts.o

host-manager: AllObjs
	${COMPILER} ${LIBS} ${GRPMGR}/common.o UserRequest.o StringTokenizer.o get_hw_addrs.o HostMgrHelper.o VMController.o  ${GRPMGR}/FileGenConsts.o HostMgr.o -o host-manager
	cp host-manager ${BIN}

AllObjs: UserRequest.o get_hw_addrs.o StringTokenizer.o HostMgr.o HostMgrHelper.o VMController.o


VMController.o: VMController.C ${INCLUDE}/VMController.h
		${COMPILER} ${CFLAGS} VMController.C -c

HostMgr.o: HostMgr.C
	${COMPILER} ${CFLAGS}  HostMgr.C -c

HostMgrHelper.o: HostMgrHelper.C  ${INCLUDE}/HostMgrHelper.h
	${COMPILER} ${CFLAGS}  HostMgrHelper.C -c

GrpResourceMgr.o: ${COMMON}/GrpResourceMgr.C ${COMMON_INCLUDE}/GrpResourceMgr.h
	${COMPILER} ${CFLAGS}  ${COMMON}/GrpResourceMgr.C -c

StringTokenizer.o:  ${COMMON}/StringTokenizer.C ${COMMON_INCLUDE}/StringTokenizer.h 
	${COMPILER} ${CFLAGS}  ${COMMON}/StringTokenizer.C -c

#common.o:  ${COMMON}/common.C ${COMMON_INCLUDE}/common.h 
#	${COMPILER} ${CFLAGS}  ${COMMON}/common.C -c

UserRequest.o:  ${COMMON}/UserRequest.C ${COMMON_INCLUDE}/UserRequest.h
	${COMPILER} ${CFLAGS}  ${COMMON}/UserRequest.C -c

get_hw_addrs.o:  ${COMMON}/get_hw_addrs.c ${COMMON_INCLUDE}/hw_addrs.h
	${COMPILER} ${CFLAGS}  ${COMMON}/get_hw_addrs.c -c


#FileGenConsts.o: FileGenConsts.C ${SERVER_INCLUDE}/FileGenConsts.h
#	${COMPILER} ${CFLAGS}  FileGenConsts.C -c

compiler: 
	$(MAKE) -C ${COMPILER_SRC}

clean:
	rm -f *.o host-manager

lclean:
	rm -f *.o host-manager
