MODULES+=	opentracing

MODULE_SUMMARY_opentracing=	3rd-party OpenTracing dynamic module

include $(CONTRIB)/src/opentracing-cpp/version
include $(CONTRIB)/src/nginx-opentracing/version
include $(CONTRIB)/src/thrift/version
include $(CONTRIB)/src/jaeger-client-cpp/version

MODULE_VERSION_opentracing=	$(NGINX_OPENTRACING_VERSION)
MODULE_RELEASE_opentracing=	1

MODULE_VERSION_PREFIX_opentracing=$(MODULE_TARGET_PREFIX)

MODULE_SOURCES_opentracing=	opentracing-cpp-$(OPENTRACING_CPP_VERSION).tar.gz \
				nginx-opentracing-$(NGINX_OPENTRACING_VERSION).tar.gz \
				thrift-$(THRIFT_VERSION).tar.gz \
				jaeger-client-cpp-$(JAEGER_CLIENT_CPP_VERSION).tar.gz

MODULE_PATCHES_opentracing=	$(CONTRIB)/src/opentracing-cpp/CMakeLists.txt.patch \
				$(CONTRIB)/src/jaeger-client-cpp/CMakeLists.txt.patch \
				$(CONTRIB)/src/thrift/CMakeLists.txt.patch \
				$(CONTRIB)/src/thrift/build-cmake-Config.cmake.in.patch \
				$(CONTRIB)/src/thrift/build-cmake-ThriftMacros.cmake.patch \
				$(CONTRIB)/src/thrift/lib-cpp-CMakeLists.txt.patch

ifeq ($(shell test `rpm --eval '0%{?rhel}'` -gt 0 -a `rpm --eval '0%{?rhel}'` -lt 8 && echo 1),1)
MODULE_PATCHES_opentracing+=	$(CONTRIB)/src/jaeger-client-cpp/CMakeLists.txt.suppress-gcc-version-check.patch
endif

MODULE_CONFARGS_opentracing=	--add-dynamic-module=nginx-opentracing-$(NGINX_OPENTRACING_VERSION)/opentracing

.deps-module-opentracing:
	cd $(CONTRIB) && make \
		.sum-opentracing-cpp \
		.sum-nginx-opentracing \
		.sum-thrift \
		.sum-jaeger-client-cpp
	touch $@

define MODULE_DEFINITIONS_opentracing
%if (0%{?rhel} > 0) || (0%{?amzn} > 0)
%if (0%{?rhel} >= 8)
BuildRequires: cmake
%define _cmake_cmd %{__cmake}
%else
BuildRequires: cmake3
%define _cmake_cmd %{__cmake3}
%endif
%endif

%if (0%{?suse_version} >= 1500) || (0%{?fedora} > 0)
BuildRequires: cmake
%define _cmake_cmd %{__cmake}
%endif
%if (0%{?rhel} >= 7) || (0%{?fedora} > 0)
BuildRequires: libstdc++-static
%endif
BuildRequires: yaml-cpp-devel
BuildRequires: boost-devel
endef
export MODULE_DEFINITIONS_opentracing

MODULE_CC_OPT_opentracing=-I%{bdir}/opentracing-cpp-$(OPENTRACING_CPP_VERSION)/usr/local/include
MODULE_CC_OPT_DEBUG_opentracing=$(MODULE_CC_OPT_opentracing)
MODULE_LD_OPT_opentracing=-L%{bdir}/opentracing-cpp-$(OPENTRACING_CPP_VERSION)/usr/local/lib
MODULE_LD_OPT_DEBUG_opentracing=$(MODULE_LD_OPT_opentracing)

define MODULE_PREBUILD_opentracing
cd %{bdir}/opentracing-cpp-$(OPENTRACING_CPP_VERSION) \&\& \
mkdir .build \&\& \
cd .build \&\& \
%{_cmake_cmd} ../ \&\& \
DESTDIR=%{bdir}/opentracing-cpp-$(OPENTRACING_CPP_VERSION) make %{?_smp_mflags} install || exit 1
cd %{bdir}/thrift-$(THRIFT_VERSION) \&\& \
mkdir .build \&\& \
cd .build \&\& \
%{_cmake_cmd} \
	-DBUILD_TESTING=OFF \
	-DBUILD_TUTORIALS=OFF \
	-DBUILD_COMPILER=OFF \
	-DBUILD_C_GLIB=OFF \
	-DBUILD_HASKELL=OFF \
	-DBUILD_JAVA=OFF \
	-DBUILD_PYTHON=OFF \
	-DWITH_QT4=OFF \
	-DWITH_QT5=OFF \
	-DWITH_SHARED_LIB=OFF \
	-DWITH_PLUGIN=OFF \
	-DWITH_LIBEVENT=OFF \
	-DWITH_OPENSSL=OFF \
	-DWITH_ZLIB=OFF \
	-DBUILD_SHARED_LIBS=ON \
	-DCMAKE_INSTALL_LIBDIR=lib \
../ \&\& \
DESTDIR=%{bdir}/thrift-$(THRIFT_VERSION) make %{?_smp_mflags} install || exit 1
cd %{bdir}/jaeger-client-cpp-$(JAEGER_CLIENT_CPP_VERSION) \&\& \
mkdir .build \&\& \
cd .build \&\& \
OpenTracing_DIR=%{bdir}/opentracing-cpp-$(OPENTRACING_CPP_VERSION)/usr/local/lib/cmake/OpenTracing \
thrift_DIR=%{bdir}/thrift-$(THRIFT_VERSION)/usr/local/lib/cmake/thrift \
%{_cmake_cmd} \
	-DJAEGERTRACING_BUILD_EXAMPLES=OFF \
	-DBUILD_TESTING=OFF \
	-DJAEGERTRACING_PLUGIN=ON \
	-DCMAKE_BUILD_TYPE=Release \
	-DHUNTER_CONFIGURATION_TYPES=Release \
	-DOPENTRACING_INC=%{bdir}/opentracing-cpp-$(OPENTRACING_CPP_VERSION)/usr/local/include \
../ \&\& \
make %{?_smp_mflags} || exit 1
endef
export MODULE_PREBUILD_opentracing

define MODULE_PREINSTALL_opentracing
%{__mkdir} -p $$RPM_BUILD_ROOT%{_libdir}
%{__install} -m755 %{bdir}/opentracing-cpp-$(OPENTRACING_CPP_VERSION)/usr/local/lib/libopentracing.so.$(OPENTRACING_CPP_VERSION) \
   $$RPM_BUILD_ROOT%{_libdir}/
%{__install} -m755 %{bdir}/opentracing-cpp-$(OPENTRACING_CPP_VERSION)/usr/local/lib/libopentracing_mocktracer.so.$(OPENTRACING_CPP_VERSION) \
   $$RPM_BUILD_ROOT%{_libdir}/
%{__ln_s} -f libopentracing.so.$(OPENTRACING_CPP_VERSION) $$RPM_BUILD_ROOT%{_libdir}/libopentracing.so.1
%{__ln_s} -f libopentracing.so.1 $$RPM_BUILD_ROOT%{_libdir}/libopentracing.so
%{__ln_s} -f libopentracing_mocktracer.so.$(OPENTRACING_CPP_VERSION) $$RPM_BUILD_ROOT%{_libdir}/libopentracing_mocktracer.so.1
%{__ln_s} -f libopentracing_mocktracer.so.1 $$RPM_BUILD_ROOT%{_libdir}/libopentracing_mocktracer.so
%{__mkdir} -p $$RPM_BUILD_ROOT%{_includedir}
%{__cp} -rp %{bdir}/opentracing-cpp-$(OPENTRACING_CPP_VERSION)/usr/local/include/opentracing $$RPM_BUILD_ROOT%{_includedir}/
%{__mkdir} -p $$RPM_BUILD_ROOT%{_libexecdir}/opentracing
%{__install} -m755 %{bdir}/jaeger-client-cpp-$(JAEGER_CLIENT_CPP_VERSION)/.build/libjaegertracing_plugin.so $$RPM_BUILD_ROOT%{_libexecdir}/opentracing/
endef
export MODULE_PREINSTALL_opentracing

define MODULE_FILES_opentracing
%{_libdir}/libopentracing.so.$(OPENTRACING_CPP_VERSION)
%{_libdir}/libopentracing.so.1
%{_libdir}/libopentracing.so
%{_libdir}/libopentracing_mocktracer.so.$(OPENTRACING_CPP_VERSION)
%{_libdir}/libopentracing_mocktracer.so.1
%{_libdir}/libopentracing_mocktracer.so
%dir %{_libexecdir}/opentracing
%{_libexecdir}/opentracing/libjaegertracing_plugin.so
%dir %{_includedir}/opentracing
%{_includedir}/opentracing/*
endef
export MODULE_FILES_opentracing

define MODULE_POST_opentracing
cat <<BANNER
----------------------------------------------------------------------

The $(MODULE_SUMMARY_opentracing) for $(MODULE_SUMMARY_PREFIX) has been installed.
To enable this module, add the following to /etc/nginx/nginx.conf
and reload nginx:

    load_module modules/ngx_http_opentracing_module.so;

Note that additional tracer plugins are required in order
to communicate with corresponding services (e.g. Zipkin, Jaeger).
This package includes the Jaeger dynamic tracer plugin:

    /usr/libexec/opentracing/libjaegertracing_plugin.so

Please refer to the module documentation for further details:
https://github.com/opentracing-contrib/nginx-opentracing
https://github.com/opentracing-contrib/nginx-opentracing/blob/master/doc/Reference.md

OpenTracing project site (general info and documentation):
https://opentracing.io/

----------------------------------------------------------------------
BANNER
endef
export MODULE_POST_opentracing
