#!/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 -*-
SHELL=/bin/bash

# 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

hawq_pkg_name=hawq

%:
	dh $@

override_dh_auto_build:
	bash debian/do-component-build 


override_dh_auto_install:
	cp debian/hawq.default debian/${hawq_pkg_name}/etc/default/${hawq_pkg_name}
	env HADOOP_VERSION=${HAWQ_BASE_VERSION} \
	bash -x debian/install_hawq.sh \
		--build-dir=target/bin \
		--conf-dir=/etc/${hawq_pkg_name}/conf.dist \
		--doc-dir=usr/share/doc/${hawq_pkg_name}-doc \
		--prefix=debian/tmp
	ln -s /var/log/${hawq_pkg_name} debian/tmp/usr/lib/${hawq_pkg_name}/logs
	ln -s /var/run/${hawq_pkg_name} debian/tmp/usr/lib/${hawq_pkg_name}/pids
	bash debian/init.d.tmpl debian/hawq-master.svc deb debian/${hawq_pkg_name}-master-service.init
	bash debian/init.d.tmpl debian/hawq-segment.svc deb debian/${hawq_pkg_name}-segment-service.init

## Let's override the auto_configure and auto_clean to make sure existing 
## top-level Makefile doesn't interfere with the package creation
override_dh_auto_configure:

override_dh_auto_clean:

override_dh_auto_test:
