#!/usr/bin/make -f

export VERBOSEMAKE = 1

ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
        MAKEFLAGS += -j$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
endif
DEB_CFLAGS := $(shell dpkg-buildflags --get CFLAGS)
DEB_CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS)
DEB_LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)

# upstream Makefile only has CFLAGS (missing CPPFLAGS)
# and does not give CFLAGS to linking calls, so add them.
# also needs some stuff so the Makefile can be overriden:
CFLAGS = $(DEB_CPPFLAGS) $(DEB_CFLAGS) -I../include -Wall -DGCC_WARN -DNOTPARMDECL
LFLAGS = $(DEB_CFLAGS) $(DEB_LDFLAGS)

override_dh_auto_build: Makefile
	+$(call build_target,console)
	+$(call build_target,x11)
	+$(call build_target,lisp)
	touch src/nethack-dummy ; sleep 2
	$(MAKE) -j1 LFLAGS='$(LFLAGS)' CFLAGS='$(CFLAGS) -DUSE_XPM' \
	  GAME=src/nethack-dummy \
	  VARDATND="x11tiles NetHack.ad pet_mark.xbm pilemark.xbm rip.xpm mapbg.xpm" \
	  all
	/usr/bin/bdftopcf win/X11/nh10.bdf | gzip -9fn > debian/nh10.pcf.gz

TARGETS = console lisp x11

define build_target
	$(MAKE) clean
	touch include/config.h
	sleep 2
	$(MAKE) LFLAGS='$(LFLAGS)' CFLAGS='$(CFLAGS)' LINK='$$(CC)' -C util makedefs
	$(MAKE) LFLAGS='$(LFLAGS)' CFLAGS='$(CFLAGS) $(EXTRACPP_$1)' \
		WINSRC='$(SRC_$1)' WINOBJ='$(OBJ_$1)' WINLIB='$(LIB_$1)' \
		LINK='$$(CC)' GAME='nethack-$1' -C src 'nethack-$1'
endef
SRC_console = $$(WINTTYSRC)
OBJ_console = $$(WINTTYOBJ)
LIB_console = -lcurses
EXTRACPP_console =
SRC_x11 = $$(WINTTYSRC) $$(WINX11SRC)
OBJ_x11 = $$(WINTTYOBJ) $$(WINX11OBJ)
LIB_x11 = -lncurses -lXaw -Wl,--as-needed -lXmu -lXext -Wl,--no-as-needed -lXt -lXpm -lX11 -Wl,--as-needed -lm -Wl,--no-as-needed
EXTRACPP_x11 = -DX11_GRAPHICS
SRC_lisp = $$(WINLISPSRC)
OBJ_lisp = $$(WINLISPOBJ)
LIB_lisp = $$(WINLISPLIB)
EXTRACPP_lisp = -DLISP_GRAPHICS -DDEFAULT_WINDOW_SYS=\"lisp\"


Makefile:
# setup.sh creates all the Makefiles.
	sh sys/unix/setup.sh

override_dh_auto_install:

override_dh_auto_clean:
	rm -f debian/nh10.pcf.gz
	rm -f $(patsubst %,src/nethack-%,$(TARGETS) dummy)
	if [ -f Makefile ] ; then $(MAKE) spotless ; fi
	find . -name Makefile -print0 | xargs -r -0 --no-run-if-empty rm

override_dh_installinit:
	dh_installinit --no-start

override_dh_fixperms:
	dh_fixperms
	chgrp games debian/nethack-common/usr/lib/games/nethack/recover
	chgrp -R games debian/nethack-common/var/games/nethack
	chmod -R 2775 debian/nethack-common/var/games/nethack
	set -e; for flavor in $(TARGETS); do \
		chgrp games debian/nethack-$$flavor/usr/lib/games/nethack/nethack-$$flavor; \
		chmod 2755 debian/nethack-$$flavor/usr/lib/games/nethack/nethack-$$flavor; \
	done

%:
	dh $@
