CXX ?= g++

HELPERS_DIR ?= ../_build/default/lib/helpers
ifeq ("$(wildcard $(HELPERS_DIR))","")
		HELPERS_DIR := ../../helpers
endif

RELEASE ?= Release

CXXFLAGS := -std=c++17 -DFUSE_USE_VERSION=34 -DWITH_CEPH=1 -DWITH_S3=1 -DWITH_SWIFT=1 -DWITH_GLUSTERFS=1 -DWITH_WEBDAV=1 -DWITH_XROOTD=1 -DWITH_NFS=1 $(CXXFLAGS)

CMAKE_EXTRA_ARGS ?=
ifeq ($(shell awk -F= '/^ID=/{print $$2}' /etc/os-release), "centos")
		CMAKE_EXTRA_ARGS := -DOPENSSL_ROOT_DIR=/opt/onedata/onedata2102/root/usr -DOPENSSL_CRYPTO_LIBRARY=/opt/onedata/onedata2102/root/usr/lib64/libcrypto.so -DOPENSSL_SSL_LIBRARY=/opt/onedata/onedata2102/root/usr/lib64/libssl.so
endif

ifneq ($(SANITIZE),)
		CXXFLAGS := -I/usr/lib/clang/6.0.0/include -fsanitize=thread $(CXXFLAGS)
		LDFLAGS := -fsanitize=thread $(LDFLAGS)
		CXX = clang++-6.0
endif

../priv/link:
		mkdir -p build
		cd build && CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" cmake .. \
				-DCMAKE_CXX_COMPILER=$(CXX) \
				-DCMAKE_BUILD_TYPE=$(RELEASE) \
				-DONEDATA_HELPERS_DIR=$(abspath $(HELPERS_DIR)/priv) $(CMAKE_EXTRA_ARGS) \
				-GNinja
		cmake --build build/
		cp build/link $@

.PHONY: clang-tidy
clang-tidy:
		cmake --build build --target clang-tidy
