#!/usr/bin/make -f
# $Id: rules,v 1.10 2024/06/20 00:17:16 tom Exp $

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

# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)

BUILD_CC = gcc

CC_NORMAL = -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wconversion
CC_STRICT = $(CC_NORMAL) -W -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-declarations -Wnested-externs -Wpointer-arith -Wwrite-strings -ansi -pedantic

TARGET    = i686-w64-mingw32
MINGW_TOP = /usr/$(TARGET)
MINGW_USE = $(CURDIR)/debian/mingw32-libcdk5
MINGW_DEV = $(CURDIR)/debian/mingw32-libcdk5-dev

CFLAGS = $(CC_NORMAL)

CONFIG_OPTIONS = \
	--disable-echo \
	--verbose \
	--with-shared \
	--enable-pc-files \
	--enable-warnings \
	--enable-stdnoreturn \
	--enable-const \
	--with-screen=ncursesw6td \
	--with-pkg-config-libdir=$(MINGW_TOP)/lib/pkgconfig

verbose = # -v

export CFLAGS BUILD_CC

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

configure: configure-stamp
configure-stamp:
	dh_testdir

	CC=$(TARGET)-gcc \
	CFLAGS="$(CFLAGS)" \
	./configure \
		--host=$(TARGET) \
		--target=$(TARGET) \
		--prefix=$(MINGW_TOP) \
		--with-build-cc=$(BUILD_CC) \
		$(CONFIG_OPTIONS)

	touch configure-stamp

build: build-stamp
build-stamp: configure-stamp
	dh_testdir

	$(MAKE)

	touch build-stamp

clean:
	dh_testdir
	dh_testroot

	[ ! -f makefile ] || $(MAKE) distclean

	rm -f configure-stamp build-stamp install-stamp

	dh_clean

install: install-stamp
install-stamp: build-stamp
	dh_testdir
	dh_testroot
	dh_clean -k	     $(verbose)
	dh_installdirs	     $(verbose)

	$(MAKE) installCDKLibrary DESTDIR=$(MINGW_DEV)
	mkdir $(verbose) -p $(MINGW_USE)$(MINGW_TOP)/lib
	mv $(verbose) $(MINGW_DEV)$(MINGW_TOP)/lib/*.dll $(MINGW_USE)$(MINGW_TOP)/lib/
	chmod -x $(verbose) $(MINGW_USE)$(MINGW_TOP)/lib/*.dll
	$(MAKE) installImportLibrary DESTDIR=$(MINGW_DEV)
	$(MAKE) installCDKHeaderFiles DESTDIR=$(MINGW_DEV)

	touch install-stamp

# Build architecture-independent files here.
binary-indep: build install
# No binary-indep target.

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installdocs       $(verbose)
	dh_installchangelogs $(verbose)
	dh_compress          $(verbose)
	dh_fixperms	     $(verbose)
	dh_installdeb	     $(verbose)
	dh_shlibdeps	     $(verbose)
	dh_gencontrol	     $(verbose)
	dh_md5sums	     $(verbose)
	dh_builddeb	     $(verbose)

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