#!/usr/bin/make -f export DH_VERBOSE=1 target=xtensa-lx106-elf GCC_VERSION=10 GCC_PACKAGE=gcc-$(GCC_VERSION) GCC_DIR := /usr/src/gcc-10 GCC_TARBALL := $(notdir $(wildcard $(GCC_DIR)/gcc-*.tar.*)) package=gcc-xtensa-lx106 top_dir=$(shell pwd) gcc_dir=/usr/src/$(GCC_PACKAGE) doc_dir=/usr/share/doc/$(package) build_doc_dir=$(top_dir)/debian/$(package)$(doc_dir) stampdir=debian/stamp source_version := $(shell dpkg-query -W -f="\$${Version}\n" $(GCC_PACKAGE)-source) deb_version := $(source_version)+$(shell dpkg-parsechangelog | sed -ne "s/^Version: \(.*\)/\1/p") deb_upstream_version := $(shell echo $(deb_version) | cut -d- -f1) base_version := $(shell echo $(deb_version) | sed -e 's/\([1-9]\.[0-9]\).*-.*/\1/') BUILT_USING := $(shell dpkg-query -f '$${source:Package} (= $${source:Version}), ' -W $(GCC_PACKAGE)-source) unpack_stamp=$(stampdir)/unpack tar_stamp=$(stampdir)/tar build_dir=build export DEB_BUILD_MAINT_OPTIONS=hardening=+all,-format buildflags:=$(shell dpkg-buildflags --export=configure) INHIBIT_LIBC_CFLAGS="-DUSE_TM_CLONE_REGISTRY=0" target_tools=\ AR_FOR_TARGET=$(target)-ar \ AS_FOR_TARGET=$(target)-as \ LD_FOR_TARGET=$(target)-ld \ NM_FOR_TARGET=$(target)-nm \ OBJDUMP_FOR_TARGET=$(target)-objdump \ RANLIB_FOR_TARGET=$(target)-ranlib \ READELF_FOR_TARGET=$(target)-readelf \ STRIP_FOR_TARGET=$(target)-strip configure_flags = \ --enable-languages=c,c++ \ --prefix=/usr/lib \ --infodir=/usr/share/doc/$(package)/info \ --mandir=/usr/share/man \ --htmldir=/usr/share/doc/$(package)/html \ --pdfdir=/usr/share/doc/$(package)/pdf \ --bindir=/usr/bin \ --libexecdir=/usr/lib \ --libdir=/usr/lib \ --with-system-zlib \ --enable-multilib \ --disable-decimal-float \ --disable-libffi \ --disable-libgomp \ --disable-libmudflap \ --disable-libquadmath \ --disable-libquadmath-support \ --disable-libssp \ --disable-libstdcxx-pch \ --disable-libstdc++-v3 \ --disable-nls \ --disable-shared \ --disable-threads \ --disable-tls \ --enable-lto \ --enable-target-optspace \ --disable-__cxa_atexit \ --without-long-double-128 \ --disable-multilib \ --enable-cxx-flags=-fno-exceptions \ --build=$(DEB_BUILD_GNU_TYPE) \ --host=$(DEB_HOST_GNU_TYPE) \ --target=$(target) \ --with-gnu-as \ --with-gnu-ld \ --with-headers=no \ --without-newlib \ "--with-pkgversion=$(deb_version)" \ --without-included-gettext \ $(buildflags) \ $(target_tools) %: dh $@ -Dgcc-source -B$(build_dir) $(unpack_stamp): $(tar_stamp) set -ex; \ cd $(top_dir)/gcc-source; \ for patch in $(shell cat debian/debian_patches.txt); do \ echo Applying patch "$$patch"; \ patch -p2 < $(gcc_dir)/patches/$$patch; \ done set -ex; \ cd gcc-*; \ for patch in ../debian/local-patches/[0-9]*.patch; do \ echo Applying patch "$$patch"; \ patch -p1 < "$$patch"; \ done touch $@ $(tar_stamp): tar xf $(GCC_DIR)/$(GCC_TARBALL) ln -s gcc-$(GCC_VERSION)* gcc-source cp debian/overlay/include/xtensa-config.h gcc-source/include/ mkdir -p $(stampdir) cp /usr/share/doc/$(GCC_PACKAGE)-source/copyright debian/copyright-gcc touch $@ override_dh_autoreconf: $(unpack_stamp) autoreconf -f -i gcc-source override_dh_auto_configure: $(unpack_stamp) mkdir -p $(build_dir) dh_auto_configure -Dgcc-source -B$(build_dir) -- $(configure_flags) override_dh_auto_clean: rm -rf gcc-* $(build_dir) debian/tmp debian/copyright-gcc $(stampdir) dh_autoreconf_clean override_dh_auto_test: @echo "no testing, that's way too painful" # dh_auto_test -Dgcc-source -B$(build_dir) --max-parallel=1 override_dh_gencontrol: dh_gencontrol -a -- -v$(deb_version) -Vlocal:Version=$(deb_upstream_version) -Vgcc:Version=$(source_version) -VBuilt-Using="$(BUILT_USING)" override_dh_auto_install: mkdir -p $(top_dir)/debian/tmp cd build/xtensa-lx106-elf/libgcc/ && xtensa-lx106-elf-ar -M <$(top_dir)/debian/strip-libgcc-funcs.txt cd $(top_dir)/build && make install DESTDIR=$(top_dir)/debian/tmp override_dh_installchangelogs: dh_installchangelogs gcc-source/ChangeLog override_dh_compress: dh_compress -Xexamples/ override_dh_strip: dh_strip -X.a