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

include /usr/share/dpatch/dpatch.make

soversion = 5
libversion = $(soversion).2

# architecture dependent variables
DEB_HOST_ARCH		?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
DEB_HOST_ARCH_OS	?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
DEB_HOST_GNU_TYPE	?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE	?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
DEB_HOST_MULTIARCH	?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

distribution := $(shell lsb_release -is)

DPKG_EXPORT_BUILDFLAGS = 1
-include /usr/share/dpkg/buildflags.mk

ifeq ($(origin CC),default)
CC = $(DEB_HOST_GNU_TYPE)-gcc
endif

CFLAGS += -g -O2

ifeq ($(DEB_HOST_ARCH_OS),netbsd)
  CC_LINK_FLAGS =
else
  CC_LINK_FLAGS = -Wl,
endif

SHELL	= bash

p_rl	= libreadline$(soversion)
p_comm	= readline-common
p_rld	= libreadline-gplv2-dev
p_rlg	= $(p_rl)-dbg
p_doc	= $(p_rl)-doc
p_rlfe	= rlfe

d	= debian/tmp
d_rl	= debian/$(p_rl)
d_comm	= debian/$(p_comm)
d_rld	= debian/$(p_rld)
d_rlg	= debian/$(p_rlg)
d_doc	= debian/$(p_doc)
d_rlfe	= debian/$(p_rlfe)

srcdir		= $(CURDIR)
builddir	= $(CURDIR)/build

default: build

configure: dpatch configure-stamp
configure-stamp: patch-stamp
	dh_testdir
	cp -p /usr/share/misc/config.* ./support/
	rm -rf $(builddir)
	mkdir $(builddir)
	find . -type d | xargs chmod g-s
	cd $(builddir) && \
	  CC=$(CC) $(srcdir)/configure \
		--with-curses --prefix=/usr\
		--host=$(DEB_HOST_GNU_TYPE) \
		--libdir=/usr/lib/$(DEB_HOST_MULTIARCH)

	touch configure-stamp

#ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
#build: build-stamp build-rlfe-stamp
#else
build: build-stamp
#endif
build-arch: build
build-indep: build

build-stamp: configure-stamp
	dh_testdir
	$(MAKE) -C $(builddir) \
	    SHOBJ_CFLAGS="-fPIC -D_REENTRANT" \
	    SHLIB_LIBS="-ltinfo"

	$(MAKE) -C $(builddir)/doc info

	touch build-stamp

build-rlfe-stamp: configure-stamp
	dh_testdir
	ln -sf libhistory.so.$(libversion) \
	    $(builddir)/shlib/libhistory.so.$(soversion)
	ln -sf libhistory.so.$(soversion) $(builddir)/shlib/libhistory.so
	ln -sf libreadline.so.$(libversion) \
	    $(builddir)/shlib/libreadline.so.$(soversion)
	ln -sf libreadline.so.$(soversion) $(builddir)/shlib/libreadline.so
	rm -rf $(builddir)/examples/rlfe
	cp -a examples/rlfe $(builddir)/examples/
	ln -sf ../../.. $(builddir)/examples/rlfe/readline
	cd $(builddir)/examples/rlfe \
		&& ./configure --prefix=/usr --host=$(DEB_HOST_GNU_TYPE)
	$(MAKE) -C $(builddir)/examples/rlfe \
	    LDFLAGS="-g -L$(builddir)/shlib" rlfe
	touch build-rlfe-stamp

clean: unpatch
	dh_testdir
	dh_testroot
	rm -f configure*-stamp build*-stamp install-stamp
	rm -rf autom4te.cache
	rm -rf $(builddir)
	rm -f doc/*.dvi
	rm -f debian/shlibs.local
	$(MAKE) -f debian/rules unpatch
	rm -f patch-stamp*
	find . -type d | xargs chmod g-s
	rm -f support/config.guess support/config.sub
	dh_clean

install: install-stamp
install-stamp:
	dh_testdir
	dh_testroot
	dh_clean -k
	rm -rf $(d)
	mkdir -p $(d)/usr/bin
	$(MAKE) -C $(builddir) install \
	    CFLAGS="-g -O2 -D_REENTRANT" \
	    DESTDIR=$(CURDIR)/$(d) \
	    mandir=/usr/share/man \
	    infodir=/usr/share/info

	: # move $(p_rl)
	dh_installdirs -p$(p_rl) \
		etc \
		lib/$(DEB_HOST_MULTIARCH) \
		usr/share/doc
	cp -a $(d)/usr/lib/$(DEB_HOST_MULTIARCH)/lib{history,readline}.so.* $(d_rl)/lib/$(DEB_HOST_MULTIARCH)
#	cp -a $(d)/usr/lib/lib{history,readline}.so.$(libversion) $(d_rl)/lib/
#	ln -s libhistory.so.$(libversion) \
#		$(d_rl)/lib/libhistory.so.$(soversion)
#	ln -s libreadline.so.$(libversion) \
#		$(d_rl)/lib/libreadline.so.$(soversion)

	: # move $(p_comm)
ifeq (0,1)
	dh_installdirs -p$(p_comm) \
		etc \
		usr/share/readline \
		usr/share/info \
		usr/share/doc
	mv $(d)/usr/share/man $(d_comm)/usr/share/.
	mv $(d_comm)/usr/share/man/man3/history.3 \
		$(d_comm)/usr/share/man/man3/history.3readline
	mv $(d_comm)/usr/share/man/man3/readline.3 \
		$(d_comm)/usr/share/man/man3/readline.3readline
	install -m 644 debian/inputrc $(d_comm)/usr/share/readline/
endif

	: # move $(p_rlg)
	dh_installdirs -p$(p_rlg) \
		usr/lib/debug \
		usr/share/doc
	mv $(d)/usr/lib/$(DEB_HOST_MULTIARCH)/lib{history,readline}.so.$(libversion) \
		$(d_rlg)/usr/lib/debug/.
	ln -s libhistory.so.$(libversion) \
		$(d_rlg)/usr/lib/debug/libhistory.so.$(soversion)
	ln -s libreadline.so.$(libversion) \
		$(d_rlg)/usr/lib/debug/libreadline.so.$(soversion)

	: # move $(p_rld)
	dh_installdirs -p$(p_rld) \
		usr/lib/$(DEB_HOST_MULTIARCH) \
		usr/share/doc
	ln -s /lib/$(DEB_HOST_MULTIARCH)/libhistory.so.$(soversion) $(d_rld)/usr/lib/$(DEB_HOST_MULTIARCH)/libhistory.so
	ln -s /lib/$(DEB_HOST_MULTIARCH)/libreadline.so.$(soversion) $(d_rld)/usr/lib/$(DEB_HOST_MULTIARCH)/libreadline.so
	mv $(d)/usr/lib/$(DEB_HOST_MULTIARCH)/lib{history,readline}.a	$(d_rld)/usr/lib/$(DEB_HOST_MULTIARCH)/.
	mv $(d)/usr/include $(d_rld)/usr/.

	: # remove HAVE_CONFIG_H from installed headers
	awk '/^#if defined \(HAVE_CONFIG_H\)/, /^#endif/ \
	     {if ($$0 == "#else") print "#include <string.h>"; next} {print}' \
	  $(d_rld)/usr/include/readline/chardefs.h \
	  > $(d_rld)/usr/include/readline/chardefs.h.new
	if diff -u $(d_rld)/usr/include/readline/chardefs.h \
		$(d_rld)/usr/include/readline/chardefs.h.new; \
	then \
	  rm -f $(d_rld)/usr/include/readline/chardefs.h.new; \
	else \
	  mv -f $(d_rld)/usr/include/readline/chardefs.h.new \
	    $(d_rld)/usr/include/readline/chardefs.h; \
	fi

ifeq (0,1)
	: # install $(p_rlfe)
ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
	dh_installdirs -p$(p_rlfe) \
	    usr/bin usr/share/man/man1 \
	    usr/share/doc/$(p_rlfe)
	cp -p $(builddir)/examples/rlfe/rlfe $(d_rlfe)/usr/bin/.
	cp -p debian/rlfe.1 $(d_rlfe)/usr/share/man/man1/.
endif
endif

	touch install-stamp

binary-indep: build install
ifeq (0,1)
	dh_testdir
	dh_testroot
	mkdir -p $(d_comm)/usr/share/lintian/overrides
	cp -p debian/readline-common.overrides \
		$(d_comm)/usr/share/lintian/overrides/readline-common
	dh_installdocs -p$(p_comm) debian/inputrc.arrows
	dh_installchangelogs -p$(p_comm)
	dh_installdocs -p$(p_comm)
	dh_installchangelogs -p$(p_comm)
	dh_compress -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i
endif

binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installdocs -p$(p_rl) \
		USAGE debian/inputrc.arrows
	dh_installchangelogs -p$(p_rl) CHANGES
	dh_installexamples -p$(p_rl) \
		examples/Inputrc
	mkdir -p $(d_rld)/usr/share/doc/$(p_rl)/examples
	cp -p $(builddir)/examples/Makefile examples/*.c \
		$(d_rld)/usr/share/doc/$(p_rl)/examples/
	sed -i -e's,srcdir = .*/readline5-5.*/examples,srcdir = /usr/share/doc/libreadline5/examples,' \
	    -e's,VPATH = .:.*/readline5-5.*/examples,VPATH = .:/usr/share/doc/libreadline5/examples,' \
	    -e's,top_srcdir = .*/readline5-5.*,top_srcdir = /usr/include/readline/,' \
	    $(d_rld)/usr/share/doc/$(p_rl)/examples/Makefile
	ln -sf $(p_rl) $(d_rld)/usr/share/doc/$(p_rld)
	ln -sf $(p_rl) $(d_rlg)/usr/share/doc/$(p_rlg)

ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
ifeq (0,1)
	dh_installdocs -p$(p_rlfe) examples/rlfe/README
	dh_installchangelogs -p$(p_rlfe) examples/rlfe/ChangeLog
endif

	dh_fixperms -p$(p_rl) -p$(p_rld) -p$(p_rlg)
	dh_strip -p$(p_rl) -p$(p_rld) -p$(p_rlg)
	dh_compress -p$(p_rl) -p$(p_rld) -p$(p_rlg)  -X.c
	dh_makeshlibs -p$(p_rl) -V '$(p_rl) (>= 5.2)'
	cp -p debian/$(p_rl).shlibs debian/shlibs.local
	dh_shlibdeps -p$(p_rl) -p$(p_rld) -p$(p_rlg) \
		 -L $(p_rl) -l $(d_rl)/lib
endif

	dh_installdeb -s
	dh_gencontrol -s $(gencontrol_flags)
	dh_md5sums -s
	dh_builddeb -s

binary:		binary-indep binary-arch

.PHONY: binary binary-arch binary-indep clean

# Local Variables:
# mode: makefile
# end:
