summaryrefslogtreecommitdiffstats
path: root/addons/ot/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'addons/ot/Makefile')
-rw-r--r--addons/ot/Makefile73
1 files changed, 73 insertions, 0 deletions
diff --git a/addons/ot/Makefile b/addons/ot/Makefile
new file mode 100644
index 0000000..5bf8d9e
--- /dev/null
+++ b/addons/ot/Makefile
@@ -0,0 +1,73 @@
+# 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)