| 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 |