#!/usr/bin/make -f

CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS)
CFLAGS   := $(shell dpkg-buildflags --get   CFLAGS) -Wall -g
LDFLAGS  := $(shell dpkg-buildflags --get  LDFLAGS)
INSTALL = install
INSTALL_FILE    = $(INSTALL) -p    -o root -g root -m 644
INSTALL_PROGRAM = $(INSTALL) -p    -o root -g root -m 755
INSTALL_SCRIPT  = $(INSTALL) -p    -o root -g root -m 755
INSTALL_DIR     = $(INSTALL) -p -d -o root -g root -m 755

ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
  CFLAGS += -O0
else
  CFLAGS += -O3
endif
ifeq (,$(filter nostrip,$(DEB_BUILD_OPTIONS)))
  INSTALL_PROGRAM += -s
endif
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
  NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
  MAKEFLAGS += -j$(NUMJOBS)
endif

DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
confflags= --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
else
confflags= --build $(DEB_BUILD_GNU_TYPE)
endif

CFG_BASE := --prefix=/usr --mandir=$${prefix}/share/man --enable-utmp --enable-wtmp \
       --enable-xim --enable-ttygid --enable-xgetdefault --with-term=rxvt \
       --with-x $(confflags) --enable-rxvt-scroll --enable-mousewheel \
			 --enable-keepscrolling

CFG_XPM := $(CFG_BASE) --enable-xpm-background --enable-transparency --enable-menubar \
           --enable-graphics --with-xpm-includes=/usr/include/X11 --with-xpm

UTMP_SHELLS := debian/rxvt/usr/bin/rxvt-xterm debian/rxvt/usr/bin/rxvt-xpm \
               debian/rxvt-ml/usr/bin/krxvt debian/rxvt-ml/usr/bin/grxvt \
               debian/rxvt-ml/usr/bin/crxvt-big5 debian/rxvt-ml/usr/bin/crxvt-gb

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

clean:
	dh_testdir
	dh_testroot
	rm -f install.stamp build.stamp
	[ ! -f Makefile ] || $(MAKE) -i distclean
	rm -f src/rxvt-xterm src/rxvt-xpm src/krxvt src/grxvt src/crxvt-gb src/crxvt-big5
	rm -f doc/rxvt.1 rxvt-xterm.1 src/rxvtlib.h doc/Makefile doc/yodl/rxvtRef.yo
	dh_autoreconf_clean
	dh_autotools-dev_restoreconfig
	[ ! -f .configure.orig ] || mv .configure.orig configure
	dh_clean

build: build-arch build-indep
build-arch: build.stamp

build-indep: build.stamp
build.stamp:
	dh_testdir

	dh_autotools-dev_updateconfig
	dh_autoreconf
	mv configure .configure.orig
	cp autoconf/configure .
	./configure $(CFG_BASE) --without-xpm
	echo "#define PTYS_ARE_GETPT 1" >> config.h
	$(MAKE) $(MAKEFLAGS) $(CROSS) CPPFLAGS='$(CPPFLAGS)' CFLAGS='$(CFLAGS)' LDFLAGS='$(LDFLAGS)' all clock
	mv src/rxvt src/rxvt-xterm
	cp doc/rxvt.tbl rxvt-xterm.1
	$(MAKE) -C src clean

	./configure $(CFG_XPM) --enable-xterm-scroll --enable-next-scroll
	echo "#define PTYS_ARE_GETPT 1" >> config.h
	$(MAKE) $(MAKEFLAGS) $(CROSS) CPPFLAGS='$(CPPFLAGS)' CFLAGS='$(CFLAGS)' LDFLAGS='$(LDFLAGS)' rxvt
	mv src/rxvt src/rxvt-xpm
	$(MAKE) -C src clean

	./configure $(CFG_XPM) --enable-kanji --disable-big5 --disable-gb --disable-greek
	echo "#define PTYS_ARE_GETPT 1" >> config.h
	$(MAKE) $(MAKEFLAGS) $(CROSS) CPPFLAGS='$(CPPFLAGS)' CFLAGS='$(CFLAGS)' LDFLAGS='$(LDFLAGS)' rxvt
	mv src/rxvt src/krxvt
	$(MAKE) -C src clean

	./configure $(CFG_XPM) --disable-kanji --enable-big5 --disable-gb --disable-greek
	echo "#define PTYS_ARE_GETPT 1" >> config.h
	$(MAKE) $(MAKEFLAGS) $(CROSS) CPPFLAGS='$(CPPFLAGS)' CFLAGS='$(CFLAGS)' LDFLAGS='$(LDFLAGS)' rxvt
	mv src/rxvt src/crxvt-big5
	$(MAKE) -C src clean

	./configure $(CFG_XPM) --disable-kanji --disable-big5 --enable-gb --disable-greek
	echo "#define PTYS_ARE_GETPT 1" >> config.h
	$(MAKE) $(MAKEFLAGS) $(CROSS) CPPFLAGS='$(CPPFLAGS)' CFLAGS='$(CFLAGS)' LDFLAGS='$(LDFLAGS)' rxvt
	mv src/rxvt src/crxvt-gb
	$(MAKE) -C src clean

	./configure $(CFG_XPM) --disable-kanji --disable-big5 --disable-gb --enable-greek
	echo "#define PTYS_ARE_GETPT 1" >> config.h
	$(MAKE) $(MAKEFLAGS) $(CROSS) CPPFLAGS='$(CPPFLAGS)' CFLAGS='$(CFLAGS)' LDFLAGS='$(LDFLAGS)' rxvt
	mv src/rxvt src/grxvt

	touch build.stamp

install: install.stamp
install.stamp: build
	dh_testdir
	dh_testroot
	dh_install
	dh_installdirs
	touch install.stamp

binary: binary-arch binary-indep

binary-indep: build install

binary-arch: build install
	dh_testdir
	dh_testroot
	cp debian/rxvt.override debian/rxvt/usr/share/lintian/overrides/rxvt
	cp debian/rxvt-ml.override debian/rxvt-ml/usr/share/lintian/overrides/rxvt-ml
	dh_installdocs
	chmod 0644 debian/rxvt/usr/share/doc/rxvt/examples/* \
	           debian/rxvt-ml/usr/share/doc/rxvt-ml/examples/*
	dh_installchangelogs doc/changes.txt
	dh_installmenu
	dh_fixperms
	for SH in $(UTMP_SHELLS); do \
	  chown root.utmp $$SH; \
	  chmod 2755 $$SH; \
	done
	dh_compress
	dh_link
	dh_strip
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_installdeb
	dh_builddeb
