#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.

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

CFLAGS = -Wall

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -O0 -g
else
	CFLAGS += -O2
endif

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

ifeq ($(DEB_HOST_GNU_TYPE),aarch64-linux-gnu)
	CFLAGS += -mcmodel=large -fno-PIE
	LDFLAGS += -no-pie
endif

TARGET = h8300-hitachi-coff

# TODO package name should be changed in the future
p_cross = gcc-h8300-hms

configure: configure-stamp
configure-stamp:
	dh_testdir
	rm configure && autoconf
ifneq "$(wildcard /usr/share/misc/config.sub)" ""
	cp -f /usr/share/misc/config.sub config.sub
endif
ifneq "$(wildcard /usr/share/misc/config.guess)" ""
	cp -f /usr/share/misc/config.guess config.guess
endif
	mkdir builddir-$(TARGET)
	cd builddir-$(TARGET) && \
			env CC="$(CC)" CFLAGS="$(CFLAGS)" \
	    ../configure --prefix=/usr \
				--libexecdir=/usr/lib \
        --enable-languages=c,c++ \
				--with-gnu-as \
				--with-gnu-ld \
				--disable-libssp \
				--enable-target-optspace \
				--disable-multilib \
        --target=$(TARGET)
	touch configure-stamp

build-arch: build-stamp

build-stamp: configure-stamp
	dh_testdir

	# Add here commands to compile the package.
	cd builddir-$(TARGET) && $(MAKE)
	touch $@

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp configure-stamp 
ifneq "$(wildcard /usr/share/misc/config.sub)" ""
	rm -f config.sub
endif
ifneq "$(wildcard /usr/share/misc/config.guess)" ""
	rm -f config.guess
endif
	# Add here commands to clean up after the build process.
	rm -rf builddir-$(TARGET)

	dh_clean

install-arch: build-arch
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs

	# Add here commands to install the package into debian/#PACKAGE#.
	cd builddir-$(TARGET) && $(MAKE) install DESTDIR=$(CURDIR)/debian/$(p_cross)/

	ln -sf $(TARGET)-g++ debian/$(p_cross)/usr/bin/$(TARGET)-c++
	ln -sf $(TARGET)-gcc-3.4.6 debian/$(p_cross)/usr/bin/$(TARGET)-gcc

	cd debian/$(p_cross)/usr/ && \
	rm -rf bin/$(TARGET)-gcov bin/$(TARGET)-gccbug \
	$(TARGET)/ include/ share/man/man1/$(TARGET)-gcov.1* \
	bin/$(TARGET)-protoize share/man/man1/$(TARGET)-protoize.1* \
	bin/$(TARGET)-unprotoize share/man/man1/$(TARGET)-unprotoize.1* \
	lib/libiberty.a share/info share/man/man7 \
	share/locale
	
	for i in $(CURDIR)/debian/$(p_cross)/usr/bin/$(TARGET)-* ; do \
		ln -s `basename $$i` $(CURDIR)/debian/$(p_cross)/usr/bin/h8300-hms-`echo $$i | sed 's/.*$(TARGET)-//'` ; \
	done

build-indep:

install-indep: build-indep

build: build-arch build-indep

install: install-arch install-indep

# Build architecture-independent files here.
binary-indep: install-indep
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: install-arch
	dh_testdir
	dh_testroot
	dh_installchangelogs ChangeLog
	dh_installdocs
#	dh_installexamples
#	dh_install
#	dh_installmenu
#	dh_installdebconf	
#	dh_installlogrotate
#	dh_installemacsen
#	dh_installpam
#	dh_installmime
#	dh_python
#	dh_installinit
#	dh_installcron
#	dh_installinfo
#	dh_installman
	dh_link
	dh_strip -X.so -X.a -X.o
	for f in `find debian/$(p_cross) -name '*.so*'`; do \
	  $(TARGET)-strip --remove-section=.comment --remove-section=.note --strip-unneeded $$f; \
	done
	for f in `find debian/$(p_cross) -name '*.a*'`; do \
	  $(TARGET)-strip --strip-debug $$f; \
	done
	dh_compress
	dh_fixperms
#	dh_perl
#	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

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