#!/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

lib_spark=/usr/lib/spark
lib_hadoop_client=/usr/lib/hadoop/client
lib_hadoop_yarn=/usr/lib/hadoop-yarn/

%:
	dh $@

override_dh_auto_build:
	bash debian/do-component-build

svcs=spark-master spark-worker spark-history-server spark-thriftserver

$(svcs): debian/init.d.tmpl
	bash $< debian/$@.svc deb debian/$@.init
	touch $@

override_dh_auto_install: $(svcs)
	bash -x debian/install_spark.sh \
	--build-dir=`pwd` \
	--doc-dir=/usr/share/doc/spark \
	--source-dir=debian \
	--prefix=debian/tmp

override_dh_install:
	dh_install
	# BIGTOP-2588 drop datanucleus jars from spark-core
	rm -Rf debian/spark-core/usr/lib/spark/jars/datanucleus*

	rm -f debian/tmp/${lib_spark}/jars/hadoop-*.jar
	ln -s  ${lib_hadoop_client}/hadoop-annotations.jar debian/tmp/${lib_spark}/jars/
	ln -s  ${lib_hadoop_client}/hadoop-auth.jar debian/tmp/${lib_spark}/jars/
	ln -s  ${lib_hadoop_client}/hadoop-client.jar debian/tmp/${lib_spark}/jars/
	ln -s  ${lib_hadoop_client}/hadoop-common.jar debian/tmp/${lib_spark}/jars/
	ln -s  ${lib_hadoop_client}/hadoop-hdfs.jar debian/tmp/${lib_spark}/jars/
	ln -s  ${lib_hadoop_client}/hadoop-mapreduce-client-app.jar debian/tmp/${lib_spark}/jars/
	ln -s  ${lib_hadoop_client}/hadoop-mapreduce-client-common.jar debian/tmp/${lib_spark}/jars/
	ln -s  ${lib_hadoop_client}/hadoop-mapreduce-client-core.jar debian/tmp/${lib_spark}/jars/
	ln -s  ${lib_hadoop_client}/hadoop-mapreduce-client-jobclient.jar debian/tmp/${lib_spark}/jars/
	ln -s  ${lib_hadoop_client}/hadoop-mapreduce-client-shuffle.jar debian/tmp/${lib_spark}/jars/
	ln -s  ${lib_hadoop_yarn}/hadoop-yarn-api.jar debian/tmp/${lib_spark}/jars/
	ln -s  ${lib_hadoop_yarn}/hadoop-yarn-client.jar debian/tmp/${lib_spark}/jars/
	ln -s  ${lib_hadoop_yarn}/hadoop-yarn-common.jar debian/tmp/${lib_spark}/jars/
	ln -s  ${lib_hadoop_yarn}/hadoop-yarn-server-common.jar debian/tmp/${lib_spark}/jars/
	ln -s  ${lib_hadoop_yarn}/hadoop-yarn-server-web-proxy.jar debian/tmp/${lib_spark}/jars/
