#!/usr/bin/make -f
# -*- makefile -*-

DEB_DESTDIR=debian/rabbitmq-server
export PROJECT_VERSION=$(shell dpkg-parsechangelog -SVersion | sed -e 's/^[[:digit:]]*://' -e 's/[-].*//' -e 's/~/.0/' -e 's/+dfsg1//' | head -n 1)

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

%:
	dh $@ --with python3

override_dh_auto_clean:
	$(MAKE) clean distclean-manpages
	rm -rf .erlang.mk
	rm -f plugins-src/rabbitmq-server
	rm -rf plugins
	rm -rf deps/*/ebin deps/thoas/thoas.d plugins.lock deps/systemd/systemd.d /deps/sysmon_handler/sysmon_handler.d deps/syslog/syslog.d
	rm -rf deps/rabbitmq_cli/deps deps/rabbitmq_cli/_build deps/rabbitmq_cli/escript deps/rabbitmq_cli/debian
	rm -rf deps/sysmon_handler/sysmon_handler.d \
		deps/stdout_formatter/stdout_formatter.d \
		deps/seshat/seshat.d \
		deps/recon/recon.d \
		deps/ranch/ranch.d \
		deps/rabbitmq_web_stomp_examples/rabbitmq_web_stomp_examples.d \
		deps/rabbitmq_web_stomp/rabbitmq_web_stomp.d \
		deps/rabbitmq_web_mqtt_examples/rabbitmq_web_mqtt_examples.d \
		deps/rabbitmq_web_mqtt/rabbitmq_web_mqtt.d \
		deps/rabbitmq_web_dispatch/rabbitmq_web_dispatch.d \
		deps/rabbitmq_trust_store/rabbitmq_trust_store.d \
		deps/rabbitmq_tracing/rabbitmq_tracing.d \
		deps/rabbitmq_top/rabbitmq_top.d \
		deps/rabbitmq_stream_management/rabbitmq_stream_management.d \
		deps/rabbitmq_stream_common/rabbitmq_stream_common.d \
		deps/rabbitmq_stream/rabbitmq_stream.d \
		deps/rabbitmq_stomp/rabbitmq_stomp.d \
		deps/rabbitmq_shovel_prometheus/rabbitmq_shovel_prometheus.d \
		deps/rabbitmq_shovel_management/rabbitmq_shovel_management.d \
		deps/rabbitmq_shovel/rabbitmq_shovel.d \
		deps/rabbitmq_sharding/rabbitmq_sharding.d \
		deps/rabbitmq_recent_history_exchange/rabbitmq_recent_history_exchange.d \
		deps/rabbitmq_random_exchange/rabbitmq_random_exchange.d \
		deps/rabbitmq_prometheus/rabbitmq_prometheus.d \
		deps/rabbitmq_prelaunch/rabbitmq_prelaunch.d \
		deps/rabbitmq_peer_discovery_k8s/rabbitmq_peer_discovery_k8s.d \
		deps/rabbitmq_peer_discovery_etcd/rabbitmq_peer_discovery_etcd.d \
		deps/rabbitmq_peer_discovery_consul/rabbitmq_peer_discovery_consul.d \
		deps/rabbitmq_peer_discovery_common/rabbitmq_peer_discovery_common.d \
		deps/rabbitmq_peer_discovery_aws/rabbitmq_peer_discovery_aws.d \
		deps/rabbitmq_mqtt/rabbitmq_mqtt.d \
		deps/rabbitmq_management_agent/rabbitmq_management_agent.d \
		deps/rabbitmq_management/rabbitmq_management.d \
		deps/rabbitmq_jms_topic_exchange/rabbitmq_jms_topic_exchange.d \
		deps/rabbitmq_federation_prometheus/rabbitmq_federation_prometheus.d \
		deps/rabbitmq_federation_management/rabbitmq_federation_management.d \
		deps/rabbitmq_federation/rabbitmq_federation.d \
		deps/rabbitmq_event_exchange/rabbitmq_event_exchange.d \
		deps/rabbitmq_consistent_hash_exchange/rabbitmq_consistent_hash_exchange.d \
		deps/redbug/redbug.d \
		deps/rabbitmq_aws/rabbitmq_aws.d \
		deps/rabbitmq_auth_mechanism_ssl/rabbitmq_auth_mechanism_ssl.d \
		rabbitmq_auth_backend_oauth2/rabbitmq_auth_backend_oauth2.d \
		deps/rabbitmq_auth_backend_ldap/rabbitmq_auth_backend_ldap.d \
		deps/rabbitmq_auth_backend_http/rabbitmq_auth_backend_http.d \
		deps/rabbitmq_auth_backend_cache/rabbitmq_auth_backend_cache.d \
		deps/rabbitmq_amqp1_0/rabbitmq_amqp1_0.d \
		deps/rabbit_common/rabbit_common.d \
		deps/rabbit/rabbit.d \
		deps/ra/ra.d \
		deps/quantile_estimator/quantile_estimator.d \
		deps/prometheus/prometheus.d \
		deps/osiris/osiris.d \
		deps/observer_cli/observer_cli.d \
		deps/oauth2_client/oauth2_client.d \
		deps/khepri_mnesia_migration/khepri_mnesia_migration.d \
		deps/khepri/khepri.d \
		deps/jose/jose.d \
		deps/horus/horus.d \
		deps/horus/horus.d \
		deps/gun/gun.d \
		deps/gen_batch_server/gen_batch_server.d \
		deps/enough/enough.d \
		deps/eetcd/eetcd.d \
		deps/cuttlefish/cuttlefish.d \
		deps/credentials_obfuscation/credentials_obfuscation.d \
		deps/cowlib/cowlib.d \
		deps/cowboy/cowboy.d \
		deps/base64url/base64url.d \
		deps/aten/aten.d \
		deps/amqp_client/amqp_client.d \
		deps/amqp10_common/src/amqp10_framing0.erl \
		deps/amqp10_common/include/amqp10_framing.hrl \
		deps/amqp10_common/amqp10_common.d \
		deps/amqp10_client/amqp10_client.d \
		deps/accept/accept.d \
		deps/.hex/cache.ets \
		deps/getopt/getopt.d \
		deps/rabbitmq_auth_backend_oauth2/rabbitmq_auth_backend_oauth2.d
	cp debian/preserve/* deps/redbug/src

override_dh_auto_build:
	$(MAKE) dist manpages

override_dh_auto_test:
	echo "Disabled tests, as they download from github"

export PREFIX RMQ_ROOTDIR

override_dh_auto_install: PREFIX = /usr
override_dh_auto_install: RMQ_ROOTDIR = $(PREFIX)/lib/rabbitmq
override_dh_auto_install: RMQ_ERLAPP_DIR = $(RMQ_ROOTDIR)/lib/rabbitmq_server-$(PROJECT_VERSION)
override_dh_auto_install:
	dh_auto_install
	#dh_auto_install -- DESTDIR=$(DEB_DESTDIR) PREFIX=/usr MAN_DIR=$(DEB_DESTDIR)/usr/share/man

	$(MAKE) install-bin DESTDIR=$(DEB_DESTDIR)


	mkdir -p debian/rabbitmq-server/usr/sbin
	sed -e 's|@SU_RABBITMQ_SH_C@|su rabbitmq -s /bin/sh -c|' \
		-e 's|@STDOUT_STDERR_REDIRECTION@|> "$$RABBITMQ_LOG_BASE/startup_log" 2> "$$RABBITMQ_LOG_BASE/startup_err"|' \
		< scripts/rabbitmq-script-wrapper \
		> $(DEB_DESTDIR)$(PREFIX)/sbin/rabbitmqctl
	chmod 0755 $(DEB_DESTDIR)$(PREFIX)/sbin/rabbitmqctl
	for script in rabbitmq-server rabbitmq-plugins rabbitmq-diagnostics rabbitmq-queues rabbitmq-upgrade; do \
		cp -a $(DEB_DESTDIR)$(PREFIX)/sbin/rabbitmqctl \
		$(DEB_DESTDIR)$(PREFIX)/sbin/$$script; \
	done

	install -p -D -m 0755 scripts/rabbitmq-server.ocf \
		$(DEB_DESTDIR)$(PREFIX)/lib/ocf/resource.d/rabbitmq/rabbitmq-server

	# Unlocalify
#	mkdir -p $(DEB_DESTDIR)$(PREFIX)/lib/rabbitmq/bin
#	mv $(DEB_DESTDIR)$(PREFIX)/local/lib/erlang/bin/* $(DEB_DESTDIR)$(PREFIX)/lib/rabbitmq/bin
#	mkdir -p $(DEB_DESTDIR)$(PREFIX)/sbin
#	mv $(DEB_DESTDIR)$(PREFIX)/local/lib/erlang/lib/rabbitmq_server-3.6.5/sbin/* $(DEB_DESTDIR)$(PREFIX)/sbin
#	rm -rf $(DEB_DESTDIR)$(PREFIX)/local

	# Remove extra license files
	rm -f $(DEB_DESTDIR)$(PREFIX)/lib/erlang/lib/rabbitmq_server-*/LICENSE
	rm -f $(RABBIT_LIB)/LICENSE* $(RABBIT_LIB)/INSTALL*

override_dh_install:
	dh_install
	sed -i s/%%VSN%%/$(PROJECT_VERSION)/ $(CURDIR)/debian/rabbitmq-server/usr/bin/rabbitmqadmin

override_dh_python3:
	dh_python3 --shebang=/usr/bin/python3
