# USE_OT     : enable the OpenTracing filter
# OT_DEBUG   : compile the OpenTracing filter in debug mode
# OT_INC     : force the include path to libopentracing-c-wrapper
# OT_LIB     : force the lib path to libopentracing-c-wrapper
# OT_RUNPATH : add libopentracing-c-wrapper RUNPATH to haproxy executable
# OT_USE_VARS : allows the use of variables for the OpenTracing context

OT_DEFINE    =
OT_CFLAGS    =
OT_LDFLAGS   =
OT_DEBUG_EXT =
OT_PKGSTAT   =
OTC_WRAPPER  = opentracing-c-wrapper

ifneq ($(OT_DEBUG),)
OT_DEBUG_EXT = _dbg
OT_DEFINE    = -DDEBUG_OT
endif

ifeq ($(OT_INC),)
OT_PKGSTAT = $(shell pkg-config --exists $(OTC_WRAPPER)$(OT_DEBUG_EXT); echo $$?)
OT_CFLAGS = $(shell pkg-config --silence-errors --cflags $(OTC_WRAPPER)$(OT_DEBUG_EXT))
else
ifneq ($(wildcard $(OT_INC)/$(OTC_WRAPPER)/.*),)
OT_CFLAGS = -I$(OT_INC) $(if $(OT_DEBUG),-DOTC_DBG_MEM)
endif
endif

ifeq ($(OT_PKGSTAT),)
ifeq ($(OT_CFLAGS),)
$(error OpenTracing C wrapper : can't find headers)
endif
else
ifneq ($(OT_PKGSTAT),0)
$(error OpenTracing C wrapper : can't find package)
endif
endif

ifeq ($(OT_LIB),)
OT_LDFLAGS = $(shell pkg-config --silence-errors --libs $(OTC_WRAPPER)$(OT_DEBUG_EXT))
else
ifneq ($(wildcard $(OT_LIB)/lib$(OTC_WRAPPER).*),)
OT_LDFLAGS = -L$(OT_LIB) -l$(OTC_WRAPPER)$(OT_DEBUG_EXT)
ifneq ($(OT_RUNPATH),)
OT_LDFLAGS += -Wl,--rpath,$(OT_LIB)
endif
endif
endif

ifeq ($(OT_LDFLAGS),)
$(error OpenTracing C wrapper : can't find library)
endif

OPTIONS_OBJS += \
	addons/ot/src/cli.o         \
	addons/ot/src/conf.o        \
	addons/ot/src/event.o       \
	addons/ot/src/filter.o      \
	addons/ot/src/group.o       \
	addons/ot/src/http.o        \
	addons/ot/src/opentracing.o \
	addons/ot/src/parser.o      \
	addons/ot/src/pool.o        \
	addons/ot/src/scope.o       \
	addons/ot/src/util.o

ifneq ($(OT_USE_VARS),)
OT_DEFINE    += -DUSE_OT_VARS
OPTIONS_OBJS += \
	addons/ot/src/vars.o
endif

OT_CFLAGS := $(OT_CFLAGS) -Iaddons/ot/include $(OT_DEFINE)
