#!/usr/bin/make -f
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
#export DH_OPTIONS=-v

DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/default.mk

DEB_CFLAGS_MAINT_APPEND = -DSYSLOG_SUCCESS -DSYSLOG_FAILURE -DSYSLOG_NON_ROOT

# Renesas SH(sh4) need -mieee option.
ifeq ($(DEB_HOST_ARCH_CPU),sh4)
  DEB_CFLAGS_MAINT_APPEND += -mieee
endif

ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
  cross_build := yes
  CROSS_CONFIGURE_FLAGS = --cache-file=./config.cache
  CROSS_BUILD_FLAGS = run_help2man=$(CURDIR)/man/dummy-man
  CROSS_INSTALL_FLAGS = EXTRA_MANS=
endif

BIN_PROGS = cat chgrp chmod chown cp date dd df dir echo false ln ls mkdir \
	mknod mv pwd readlink rm rmdir vdir sleep stty sync touch true uname \
	mktemp
d=debian/coreutils

override_dh_auto_configure:
ifeq ($(cross_build),yes)
	echo 'fu_cv_sys_stat_statfs2_bsize=yes' > config.cache
endif
	dh_auto_configure -- --enable-install-program=arch $(CROSS_CONFIGURE_FLAGS)

%:
	dh  $@ 

override_dh_auto_clean:
	make distclean || true

override_dh_auto_build:
	dh_auto_build -- $(CROSS_BUILD_FLAGS)

override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
ifneq ($(cross_build),yes)
  ifeq ($(DEB_HOST_ARCH),armhf)
	: # on armhf, the cut-huge-range test fails on the buildds when run
	: # in the test suite. Run it explicitely, and then ignore the
	: # test results when run in the test suite.
	: # XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
	-$(MAKE) SHELL=/bin/dash TESTS=tests/misc/cut-huge-range.sh check
	cat tests/misc/cut-huge-range.log
	rm -f tests/misc/cut-huge-range.log tests/misc/cut-huge-range.trs
	: # XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
	if dh_auto_test; then \
	  echo "tests succeeded unexpectedly" ; \
	else \
	  echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; \
	  echo "TEST FAILURES (log)"; \
	  cat tests/misc/cut-huge-range.log; \
	  echo "TEST FAILURES (trs)"; \
	  cat tests/misc/cut-huge-range.trs; \
	  echo "ignoring the cut-huge-range test failure" ; \
	fi
  else
	dh_auto_test
  endif
endif
endif

override_dh_auto_install:
	dh_auto_install --destdir=$(d) -- $(CROSS_INSTALL_FLAGS)

override_dh_install-arch: 
	dh_install -a

	# some things go in root rather than usr
	for f in $(BIN_PROGS); do \
		mv $(d)/usr/bin/$$f $(d)/bin/$$f; \
	done
	
	# backward compatability
	ln -s /usr/bin/md5sum $(d)/usr/bin/md5sum.textutils
	ln -s /usr/share/man/man1/md5sum.1 $(d)/usr/share/man/man1/md5sum.textutils.1

	# remove stuff provided by other packages
ifeq ($(DEB_HOST_ARCH_OS),linux)
	# kill from procps is linux-specific
	rm -f $(d)/usr/bin/kill $(d)/usr/share/man/man1/kill.1
else
	mv $(d)/usr/bin/kill $(d)/bin
endif
	rm -f $(d)/usr/bin/hostname $(d)/usr/share/man/man1/hostname.1
	rm -f $(d)/usr/bin/uptime $(d)/usr/share/man/man1/uptime.1

	# the [ program doesn't have its own man page yet
	ln -s test.1 $(d)/usr/share/man/man1/[.1

	# gnu thinks chroot is in bin, debian thinks it's in sbin
	install -d $(d)/usr/sbin $(d)/usr/share/man/man8
	mv $(d)/usr/bin/chroot $(d)/usr/sbin/chroot
	sed s/\"1\"/\"8\"/1 $(d)/usr/share/man/man1/chroot.1 > $(d)/usr/share/man/man8/chroot.8
	rm $(d)/usr/share/man/man1/chroot.1

	# some build environments will leave a dangling info dir
	rm -f $(d)/usr/share/info/dir

	# unneeded entries
	rm -rf $(d)/usr/share/locale/*/LC_TIME

	cp AUTHORS \
 		NEWS README \
 		THANKS \
 		TODO \
 		$(d)/usr/share/doc/coreutils

