#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

# Debian version
DEBVER = $(shell dpkg-parsechangelog | grep ^Version | cut -d' ' -f 2)

CFLAGS = -Wall -g

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -O0
else
	CFLAGS += -O2
endif

build: build-stamp 
build-stamp:
	dh_testdir

	# Generate include/syslinux_mbr.h
	chmod +x debian/mbr/mkmbrhdr.py
	debian/mbr/mkmbrhdr.py /usr/lib/syslinux/mbr/mbr.bin > include/syslinux_mbr.h

	# Move the AA font in place
	cp -f debian/font/egemb_font.h libeg/

	# Build 32bit EFI applications
	mkdir libeg/build32
	$(MAKE) -C libeg/build32 -f ../Makefile SRCDIR=$(CURDIR)/libeg ARCH=ia32
	mkdir refit/build32
	$(MAKE) -C refit/build32 -f ../Makefile SRCDIR=$(CURDIR)/refit ARCH=ia32 DEBVER="ia32 (Debian $(DEBVER))"
	mkdir gptsync/build32
	$(MAKE) -C gptsync/build32 -f ../Makefile.gnuefi SRCDIR=$(CURDIR)/gptsync ARCH=ia32

	# Build 64bit EFI applications
	mkdir libeg/build64
	$(MAKE) -C libeg/build64 -f ../Makefile SRCDIR=$(CURDIR)/libeg ARCH=x86_64
	mkdir refit/build64
	$(MAKE) -C refit/build64 -f ../Makefile SRCDIR=$(CURDIR)/refit ARCH=x86_64 DEBVER="x86_64 (Debian $(DEBVER))"
	mkdir gptsync/build64
	$(MAKE) -C gptsync/build64 -f ../Makefile.gnuefi SRCDIR=$(CURDIR)/gptsync ARCH=x86_64

	# Assemble fat binaries
	mkdir fat-binaries
	./fatglue.py fat-binaries/refit.efi refit/build32/refit.efi refit/build64/refit.efi
	mkdir fat-binaries/tools
	./fatglue.py fat-binaries/tools/gptsync.efi gptsync/build32/gptsync.efi gptsync/build64/gptsync.efi

	# Build the gptsync command-line utility
	mkdir gptsync/buildux
	$(MAKE) -C gptsync/buildux -f ../Makefile.unix SRCDIR=$(CURDIR)/gptsync

	touch $@

clean: 
	dh_testdir
	dh_testroot
	rm -f build-stamp configure-stamp

	# Add here commands to clean up after the build process.
	rm -rf libeg/build32 libeg/build64
	rm -rf refit/build32 refit/build64
	rm -rf gptsync/build32 gptsync/build64 gptsync/buildux

	rm -rf fat-binaries

	# Remove the MBR code
	rm -f include/syslinux_mbr.h

	# Remove the AA font
	rm -f libeg/egemb_font.h

	dh_clean 

install: build
	dh_testdir
	dh_testroot
	dh_clean -k 
	dh_installdirs
	dh_install

	chmod 0644 $(CURDIR)/debian/refit/usr/lib/refit/ia32/*
	chmod 0644 $(CURDIR)/debian/refit/usr/lib/refit/x64/*

# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs 
	dh_installdocs
	dh_installexamples
	dh_installman
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
	dh_installdeb
	dh_shlibdeps -Nrefit
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure
