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

include /usr/share/dpkg/default.mk

export DH_VERBOSE=1

#export http_proxy=http://127.0.9.1:9
#export https_proxy=http://127.0.9.1:9

ifeq ($(wildcard /CurrentlyBuilding),)
PORTS_URL = http://ports.ubuntu.com
else
PORTS_URL = http://ftpmaster.internal/ubuntu
endif

depends = $(shell chdist --data-dir repo apt-cache $(dist) show linux-image-$(strip $(1)) | sed -n 's/Depends: .*\(linux-image-.*-$(strip $(1))\).*/\1/p')

dist=$(DEB_DISTRIBUTION)

export BUILD_ID=$(dist)
export BUILD_NUMBER=$(DEB_VERSION)

DEVICES ?= mako maguro manta grouper
SRC ?= libhybris platform-api

device = $(basename $(notdir $@))

%:
	dh $@

stamps/chdist:
	rm -rf repo
	chdist --data-dir repo --arch armhf create $(dist)
	echo "deb [arch=armhf] $(PORTS_URL) $(dist) main universe restricted multiverse" >> repo/$(dist)/etc/apt/sources.list
	echo "deb-src $(PORTS_URL) $(dist) main universe restricted multiverse" >> repo/$(dist)/etc/apt/sources.list
	echo "deb [arch=armhf] $(PORTS_URL) $(dist)-updates main universe restricted multiverse" >> repo/$(dist)/etc/apt/sources.list
	echo "deb-src $(PORTS_URL) $(dist)-updates main universe restricted multiverse" >> repo/$(dist)/etc/apt/sources.list
	echo "deb [arch=armhf] $(PORTS_URL) $(dist)-proposed main universe restricted multiverse" >> repo/$(dist)/etc/apt/sources.list
	echo "deb-src $(PORTS_URL) $(dist)-proposed main universe restricted multiverse" >> repo/$(dist)/etc/apt/sources.list
	echo "deb [arch=armhf] $(PORTS_URL) $(dist)-security main universe restricted multiverse" >> repo/$(dist)/etc/apt/sources.list
	echo "deb-src $(PORTS_URL) $(dist)-security main universe restricted multiverse" >> repo/$(dist)/etc/apt/sources.list
	chdist --data-dir $(CURDIR)/repo --arch armhf apt-get $(dist) update
	cd repo/$(dist) && chdist --data-dir $(CURDIR)/repo --arch armhf apt-get $(dist) source $(SRC)
	cd repo/$(dist) && chdist --data-dir $(CURDIR)/repo --arch armhf apt-get $(dist) download ubuntu-touch-generic-initrd  initramfs-tools-ubuntu-touch
	mkdir -p stamps && touch $@

stamps/%.fetch: stamps/chdist
	cd repo/$(dist) && chdist --data-dir $(CURDIR)/repo apt-get $(dist) download $(call depends, $(device))
	mkdir -p stamps && touch $@

stamps/prepare-android: stamps/chdist
	rm -rf ubuntu/hybris ubuntu/platform-api
	cp -r repo/$(dist)/libhybris-* ubuntu/hybris
	rm -rf ubuntu/hybris/.pc
	cp -r repo/$(dist)/platform-api-* ubuntu/platform-api
	rm -rf $(filter-out vendor/cm, $(wildcard vendor/*))
	cp -r /usr/src/android/vendor/* vendor/
	mkdir -p stamps && touch $@


stamps/%.build: SHELL=/bin/bash

stamps/%.build: stamps/prepare-android stamps/%.fetch
	rm -rf out/target/product/$(device)/*.img
	rm -rf out/target/product/$(device)/*.zip
	. ./build/envsetup.sh; breakfast $(device); dh_auto_build --parallel -- bacon showcommands BUILD_WITH_COLORS=0
	mkdir -p stamps && touch $@

build: build-arch build-indep

build-arch: stamps/chdist $(DEVICES:%=stamps/%.build)
build-indep:

override_dh_auto_clean:
	rm -rf stamps out repo ubuntu/platform-api ubuntu/hybris debian/intall $(filter-out vendor/cm, $(wildcard vendor/*))
	rm -rf vendor/cm/prebuilt/common/media/audio vendor/cm/overlay vendor/cm/prebuilt/common/bootanimation/[2-6]*.zip
	rm -rf debian/$(DEB_SOURCE).copyright

override_dh_auto_install:

override_dh_install:
	echo "#!/usr/bin/dh-exec" > debian/install
	for dev in $(DEVICES); do \
		echo "out/target/product/$$dev/cm_$$dev-ota-$(DEB_VERSION).zip => usr/share/android/product/$(DEB_DISTRIBUTION)-preinstalled-touch-armel+$$dev.zip" >> debian/install; \
		echo "out/target/product/$$dev/boot.img => usr/share/android/product/$(DEB_DISTRIBUTION)-preinstalled-boot-armhf+$$dev.img" >> debian/install; \
		echo "out/target/product/$$dev/android-boot.img => usr/share/android/product/$(DEB_DISTRIBUTION)-preinstalled-boot-armel+$$dev.img" >> debian/install; \
		echo "out/target/product/$$dev/android-ramdisk.img => usr/share/android/product/$(DEB_DISTRIBUTION)-android-ramdisk+$$dev.img" >> debian/install; \
		echo "out/target/product/$$dev/recovery.img => usr/share/android/product/$(DEB_DISTRIBUTION)-preinstalled-recovery-armel+$$dev.img" >> debian/install; \
		echo "out/target/product/$$dev/system.img => usr/share/android/product/$(DEB_DISTRIBUTION)-preinstalled-system-armel+$$dev.img" >> debian/install; \
		echo "out/target/product/$$dev/ramdisk.img => usr/share/android/product/$(DEB_DISTRIBUTION)-ramdisk+$$dev.img" >> debian/install; \
		echo "out/target/product/$$dev/ramdisk-recovery.img => usr/share/android/product/$(DEB_DISTRIBUTION)-ramdisk-recovery+$$dev.img" >> debian/install; \
	done
	chmod +x debian/install
	dh_install

override_dh_installdocs:
	make -f debian/rules copyright COPYRIGHT_ALL=True
	dh_installdocs

override_dh_builddeb:
	dh_builddeb -- -Zxz

SOURCES=$(filter-out debian prebuilts vendor, $(wildcard *)) prebuilts/qemu-kernel/*/LINUX_KERNEL_COPYING vendor/cm

get-orig-source:
	fakeroot ./debian/rules clean
	make -f debian/rules copyright
	-quilt pop -a -f
	tar --exclude-vcs --transform='s,^,$(DEB_SOURCE)-$(DEB_VERSION_UPSTREAM)/,S' -caf ../$(DEB_SOURCE)_$(DEB_VERSION_UPSTREAM).orig.tar.xz $(SOURCES)

copyright:
	cp debian/copyright.header debian/copyright
	find $(if $(COPYRIGHT_ALL),.,$(SOURCES)) -name NOTICE | xargs -L1 ./debian/notice.sh >> $(if $(COPYRIGHT_ALL),debian/$(DEB_SOURCE).copyright,debian/copyright)

.PHONY: build build-arch build-indep get-orig-source copyright
