#!/usr/bin/make -f
# -*- makefile-gmake -*-
#
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
# This has to be exported to make some magic below work.
export DH_OPTIONS

export DEB_BUILD_MAINT_OPTIONS=reproducible=-timeless

export ARROW_ABSL_URL=${CURDIR}/dependencies/absl-20210324.2.tar.gz
export ARROW_AWSSDK_URL=${CURDIR}/dependencies/aws-sdk-cpp-1.8.133.tar.gz
export ARROW_AWS_CHECKSUMS_URL=${CURDIR}/dependencies/aws-checksums-v0.1.12.tar.gz
export ARROW_AWS_C_COMMON_URL=${CURDIR}/dependencies/aws-c-common-v0.6.9.tar.gz
export ARROW_AWS_C_EVENT_STREAM_URL=${CURDIR}/dependencies/aws-c-event-stream-v0.1.5.tar.gz
export ARROW_BOOST_URL=${CURDIR}/dependencies/boost-1.75.0.tar.gz
export ARROW_BROTLI_URL=${CURDIR}/dependencies/brotli-v1.0.9.tar.gz
export ARROW_BZIP2_URL=${CURDIR}/dependencies/bzip2-1.0.8.tar.gz
export ARROW_CARES_URL=${CURDIR}/dependencies/cares-1.17.2.tar.gz
export ARROW_CRC32C_URL=${CURDIR}/dependencies/crc32c-1.1.2.tar.gz
export ARROW_GBENCHMARK_URL=${CURDIR}/dependencies/gbenchmark-v1.6.0.tar.gz
export ARROW_GFLAGS_URL=${CURDIR}/dependencies/gflags-v2.2.2.tar.gz
export ARROW_GLOG_URL=${CURDIR}/dependencies/glog-v0.5.0.tar.gz
export ARROW_GOOGLE_CLOUD_CPP_URL=${CURDIR}/dependencies/google-cloud-cpp-v1.35.0.tar.gz
export ARROW_GRPC_URL=${CURDIR}/dependencies/grpc-v1.35.0.tar.gz
export ARROW_GTEST_URL=${CURDIR}/dependencies/gtest-1.11.0.tar.gz
export ARROW_JEMALLOC_URL=${CURDIR}/dependencies/jemalloc-5.2.1.tar.bz2
export ARROW_LZ4_URL=${CURDIR}/dependencies/lz4-8f61d8eb7c6979769a484cde8df61ff7c4c77765.tar.gz
export ARROW_MIMALLOC_URL=${CURDIR}/dependencies/mimalloc-v1.7.3.tar.gz
export ARROW_NLOHMANN_JSON_URL=${CURDIR}/dependencies/nlohmann-json-v3.10.2.tar.gz
export ARROW_OPENTELEMETRY_URL=${CURDIR}/dependencies/opentelemetry-cpp-v1.1.0.tar.gz
export ARROW_OPENTELEMETRY_PROTO_URL=${CURDIR}/dependencies/opentelemetry-proto-v0.11.0.tar.gz
export ARROW_ORC_URL=${CURDIR}/dependencies/orc-1.7.2.tar.gz
export ARROW_PROTOBUF_URL=${CURDIR}/dependencies/protobuf-v3.18.1.tar.gz
export ARROW_RAPIDJSON_URL=${CURDIR}/dependencies/rapidjson-1a803826f1197b5e30703afe4b9c0e7dd48074f5.tar.gz
export ARROW_RE2_URL=${CURDIR}/dependencies/re2-2021-11-01.tar.gz
export ARROW_SNAPPY_URL=${CURDIR}/dependencies/snappy-1.1.9.tar.gz
export ARROW_THRIFT_URL=${CURDIR}/dependencies/thrift-0.13.0.tar.gz
export ARROW_UTF8PROC_URL=${CURDIR}/dependencies/utf8proc-v2.7.0.tar.gz
export ARROW_XSIMD_URL=${CURDIR}/dependencies/xsimd-aeec9c872c8b475dedd7781336710f2dd2666cb2.tar.gz
export ARROW_ZLIB_URL=${CURDIR}/dependencies/zlib-1.2.11.tar.gz
export ARROW_ZSTD_URL=${CURDIR}/dependencies/zstd-v1.5.1.tar.gz

BUILD_TYPE=release

%:
	dh $@

override_dh_auto_configure:
	dh_auto_configure					\
	  --sourcedirectory=cpp					\
	  --builddirectory=cpp_build				\
	  --buildsystem=cmake				\
	  --							\
	  -DARROW_PACKAGE_KIND=deb				\
	  -DARROW_PARQUET=ON					\
	  -DARROW_USE_CCACHE=OFF				\
	  -DARROW_JEMALLOC=OFF                  \
	  -DARROW_WITH_BZ2=ON					\
	  -DARROW_WITH_LZ4=ON					\
	  -DARROW_WITH_SNAPPY=ON				\
	  -DARROW_WITH_ZLIB=ON					\
	  -DCMAKE_BUILD_TYPE=$(BUILD_TYPE)			\
	  -DPARQUET_REQUIRE_ENCRYPTION=ON

override_dh_auto_build:
	dh_auto_build				\
	  --sourcedirectory=cpp			\
	  --builddirectory=cpp_build

override_dh_auto_install:
	dh_auto_install				\
	  --sourcedirectory=cpp			\
	  --builddirectory=cpp_build
	# Remove built files to reduce disk usage
	dh_auto_clean				\
	  --sourcedirectory=cpp			\
	  --builddirectory=cpp_build

override_dh_auto_test:
	# TODO: We need Boost 1.64 or later to build tests for
	# Apache Arrow Flight.
	# git clone --depth 1 https://github.com/apache/arrow-testing.git
	# git clone --depth 1 https://github.com/apache/parquet-testing.git
	# cd cpp_build &&								\
	#   env									\
	#     ARROW_TEST_DATA=$(CURDIR)/arrow-testing/data			\
	#     PARQUET_TEST_DATA=$(CURDIR)/parquet-testing/data			\
	#       ctest --exclude-regex 'arrow-cuda-test|plasma-client_tests'

# libarrow.so: avoid failing with "Unknown DWARF DW_OP_172"
# libgandiva.so: avoid failing with "Unknown DWARF DW_OP_255"
#   See also: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=949296
# plasma-store-server: avoid failing with "Unknown DWARF DW_OP_1"
override_dh_dwz:
	dh_dwz \
	  --exclude=libarrow.so
