CUR_REL_PATH := "base/ngpipes/protobuf"

include ../../shared/config.mk


APPS := iris2protobuf
TESTS :=
COMMON_OBJS := filepublisher.o

PROTO_SRC_DIR = proto_src

PROTO_DIR  := proto

PROTOS      := $(patsubst $(PROTO_DIR)/%.proto,%,$(wildcard $(PROTO_DIR)/*.proto))
PROTO_SRCS  := $(patsubst %,$(PROTO_SRC_DIR)/%.pb.cc,$(PROTOS))
PROTO_HDRS  := $(patsubst %,$(PROTO_SRC_DIR)/%.pb.h,$(PROTOS))
PROTO_OBJS  := $(patsubst %,$(PROTO_SRC_DIR)/%.pb.o,$(PROTOS))
PROTO_PYS  := $(patsubst %,$(PROTO_SRC_DIR)/%_pb2.py,$(PROTOS))

print-%:
	@echo '$*=$($*)'


PROTOC      := protoc

CPPFLAGS += -Wall -MMD -D_REENTRANT -D BOOST_LOG_DYN_LINK -I $(PROTO_SRC_DIR)
CXXFLAGS +=  -g -O0 -std=c++11

APPS_OBJS = $(patsubst %,%.o,$(APPS))
TESTS_OBJS = $(patsubst %,%.o,$(TESTS))

SHARED_OBJS = $(PROTO_OBJS) $(COMMON_OBJS)
OBJS := $(APPS_OBJS) $(TESTS_OBJS) $(SHARED_OBJS)
DEPS := $(patsubst %.o,%.d,$(OBJS))

PRE_CPPFLAGS += -I../../wrdata_lib -I../
PRE_LDFLAGS += -L../../lib

LINK.o = $(LINK.cc)
LDLIBS += -lwrdata -lrscan -ldsp -lmisc -lhimath -luser -lsiglog -lconfig -lprotobuf -lboost_program_options -lboost_system -lboost_filesystem -lboost_log

all: $(PROTO_HDRS) $(PROTO_SRCS) $(PROTO_PYS) $(SHARED_OBJS) $(APPS) $(TESTS_OBJS)

install: all ${IRIS_PIPES} ${IRIS_PIPES_TMPL} ${IRIS_CONFIG_TMPL}
	install -m 0775 -o ${IRIS_USER} -g ${IRIS_GROUP} $(STRIP_OPT) ${APPS} ${IRIS_PIPES}
	install -m 0775 -o ${IRIS_USER} -g ${IRIS_GROUP} $(STRIP_OPT) ${APPS} ${IRIS_PIPES_TMPL}
	install -m 0664 -o ${IRIS_USER} -g ${IRIS_GROUP} ${CONFS} ${IRIS_CONFIG_TMPL}

uninstall:
	if [ -d ${IRIS_PIPES}       ]; then cd ${IRIS_PIPES}       && rm -f ${APPS}; fi
	if [ -d ${IRIS_PIPES_TMPL}  ]; then cd ${IRIS_PIPES_TMPL}  && rm -f ${APPS}; fi
	if [ -d ${IRIS_CONFIG_TMPL} ]; then cd ${IRIS_CONFIG_TMPL} && rm -f ${CONFS}; fi

clean:
	@rm -f $(APPS) $(TESTS) *.o *.d *.d.bak *~ $(PROTO_SRCS) $(PROTO_HDRS) $(PROTO_PYS)
	@rm -rf $(PROTO_SRC_DIR)

$(PROTO_SRC_DIR)/%.pb.h $(PROTO_SRC_DIR)/%.pb.cc: $(PROTO_DIR)/%.proto
	+@[ -d $(PROTO_SRC_DIR) ] || mkdir -p $(PROTO_SRC_DIR)
	$(PROTOC) --proto_path $(PROTO_DIR) --cpp_out=$(PROTO_SRC_DIR) $<

$(PROTO_SRC_DIR)/%_pb2.py: $(PROTO_DIR)/%.proto
	+@[ -d $(PROTO_SRC_DIR) ] || mkdir -p $(PROTO_SRC_DIR)
	$(PROTOC) --proto_path $(PROTO_DIR) --python_out=$(PROTO_SRC_DIR) $<

$(APPS): $(SHARED_OBJS)

$(APP_OBJS):

$(OBJS): Makefile

-include $(DEPS)
