#!/usr/bin/make -f
# debian/rules for the Debian mesa package
# Copyright © 2006 Thierry Reding <thierry@gilfi.de>

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

STAMP_DIR = debian/stamp

QUILT_STAMPFN = $(STAMP_DIR)/patch
include /usr/share/quilt/quilt.make

CFLAGS = -Wall -g
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -O0
else
	CFLAGS += -O2
endif
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
	INSTALL_PROGRAM += -s
endif

DEB_BUILD_ARCH     ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
DEB_HOST_ARCH_CPU  ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU)
DEB_BUILD_DIR      ?= $(CURDIR)/obj-$(DEB_BUILD_GNU_TYPE)

export DEB_BUILD_ARCH
export DEB_HOST_ARCH_CPU

# choose which configurations to build
SWX11_GLU_CONFIGS =
DRI_CONFIGS =

include debian/scripts/choose-configs

# build the following configurations by default
CONFIGS = $(SWX11_GLU_CONFIGS) \
          $(DRI_CONFIGS) \
          debian-osmesa \
          debian-osmesa-static \
          debian-osmesa16 \
          debian-osmesa16-static \
          debian-osmesa32 \
          debian-osmesa32-static

STAMP = $(STAMP_DIR)/$(DEB_BUILD_GNU_TYPE)
BUILD_STAMPS = $(addprefix $(STAMP)-build-, $(CONFIGS))
ARCH_INSTALL_STAMPS = $(addprefix $(STAMP)-install-, $(CONFIGS))
INDEP_INSTALL_STAMPS = $(STAMP_DIR)/install-source

# list the configurations that will built
configs:
	@echo Building the following configurations: $(CONFIGS)

$(STAMP_DIR):
	dh_testdir
	mkdir -p $@

$(QUILT_STAMPFN): $(STAMP_DIR)


build: $(BUILD_STAMPS)

$(STAMP)-build-%: patch
	dh_testdir
	mkdir -p $(DEB_BUILD_DIR)/$*
	find $(CURDIR)/* -maxdepth 0 -not -path '$(DEB_BUILD_DIR)*' | \
		xargs cp -rlf --target-directory=$(DEB_BUILD_DIR)/$*
	ln -sf $* $(DEB_BUILD_DIR)/$*/configs/current
	cd $(DEB_BUILD_DIR)/$* && $(MAKE)
	touch $@

pre-install:
	dh_testdir
	dh_testroot
	dh_clean -k
	rm -rf $(INSTALL_STAMPS)

install: pre-install $(ARCH_INSTALL_STAMPS)

$(STAMP)-install-%: $(STAMP)-build-%
	# Add here commands to install the package into debian/tmp
	cd $(DEB_BUILD_DIR)/$* && $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
	touch $@

$(STAMP_DIR)/install-source: pre-install
	# install Mesa source for mesa-swx11-source package
	chmod a+x debian/scripts/install-source.sh
	debian/scripts/install-source.sh
	touch $@

clean: unpatch
	dh_testdir
	dh_testroot
	dh_clean --exclude ./Makefile.orig
	rm -rf $(DEB_BUILD_DIR) $(STAMP_DIR)

# Build architecture-independent files here.
binary-indep: build install $(INDEP_INSTALL_STAMPS)
	dh_testdir
	dh_testroot
	dh_installchangelogs -i
	dh_installdocs -i
	dh_installexamples -i
	dh_install --sourcedir=debian/tmp --list-missing -i
	dh_installman -i
	dh_link -i
	dh_compress -i
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs -s
	dh_installdocs -s
	dh_installexamples -s
	dh_install --sourcedir=debian/tmp --list-missing -s
	dh_installman -s
	dh_link -s
	dh_strip -plibgl1-mesa-swx11 --dbg-package=libgl1-mesa-swx11-dbg
	dh_strip -plibgl1-mesa-glx --dbg-package=libgl1-mesa-glx-dbg
	dh_strip -plibgl1-mesa-dri --dbg-package=libgl1-mesa-dri-dbg
	dh_strip -s
	dh_compress -s
	dh_fixperms -s
	dh_makeshlibs -s
	dh_installdeb -s
	dh_shlibdeps -s
	dh_gencontrol -s
ifneq (,$(findstring armel,$(DEB_BUILD_ARCH)))
	maemo-optify
endif
	dh_md5sums -s
	dh_builddeb -s

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

