#!/usr/bin/make -f
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# -*- makefile -*-

# 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

%:
	dh $@

override_dh_auto_build:
	rm -rf bigtop-empty
	mkdir -p bigtop-empty
	sh debian/do-component-build -Drat.basedir=$${PWD}/bigtop-empty -Dmaven.repo.local=$${HOME}/.m2/repository

override_dh_auto_install:
	mkdir -p debian/tmp
	(cd dist/target/hama-${HAMA_BASE_VERSION}/hama-${HAMA_BASE_VERSION} && tar cf - --exclude=debian/\* .) | (cd debian/tmp && tar xf -)
	sh debian/install_hama.sh \
		--distro-dir=debian \
		--build-dir=debian/tmp \
		--doc-dir=/usr/share/doc/hama-doc \
		--prefix=debian/tmp/hama
	rm debian/tmp/hama/usr/lib/hama/lib/hadoop-*.jar
	ln -s /usr/lib/hadoop/hadoop-core.jar debian/tmp/hama/usr/lib/hama/lib/hadoop-core.jar
	rm debian/tmp/hama/usr/lib/hama/lib/zookeeper-*.jar
	ln -s /usr/lib/zookeeper/zookeeper.jar debian/tmp/hama/usr/lib/hama/lib/zookeeper.jar
	mkdir -p debian/tmp/hama/etc/default
	cp debian/hama.default debian/tmp/hama/etc/default/hama

override_dh_install:
	dh_install --sourcedir=debian/tmp/hama
