#!/usr/bin/make -f include /usr/share/dpkg/pkg-info.mk TARGET_RISCV=riscv64-unknown-elf PACKAGE_GCC_RISCV=gcc-$(TARGET_RISCV) PACKAGE_GCC_SOURCE=gcc-riscv64-unknown-elf-source PACKAGE_LIBSTDCXX_RISCV=libstdc++-$(TARGET_RISCV) TOP_DIR=$(shell pwd) GCC_BUILD_DIR_RISCV=$(TOP_DIR)/build-$(TARGET_RISCV) GCC_SOURCE_DIR=$(TOP_DIR)/src GCC_DEB_TMP_DIR_RISCV=$(TOP_DIR)/debian/$(PACKAGE_LIBSTDCXX_RISCV)-tmp LIBSTDCXX_BUILD_DIR_RISCV=$(GCC_BUILD_DIR_RISCV)/libstdc++-v3 STAMP_DIR=$(TOP_DIR)/debian/stamp UNPACK=$(STAMP_DIR)/unpack GCC_SOURCE_VERSION := $(shell dpkg-query -W -f="\$${Version}\n" $(PACKAGE_GCC_SOURCE)) PACKAGE_VERSION := $(GCC_SOURCE_VERSION)+$(DEB_VERSION) # these need to match the flags used in gcc-riscv64-unknown-elf export DEB_BUILD_MAINT_OPTIONS=hardening=-format BUILDFLAGS:=$(shell dpkg-buildflags --export=configure) INHIBIT_LIBC_CFLAGS="-DUSE_TM_CLONE_REGISTRY=0" TARGET_TOOLS_RISCV=\ AR_FOR_TARGET=$(TARGET_RISCV)-ar \ AS_FOR_TARGET=$(TARGET_RISCV)-as \ LD_FOR_TARGET=$(TARGET_RISCV)-ld \ NM_FOR_TARGET=$(TARGET_RISCV)-nm \ OBJDUMP_FOR_TARGET=$(TARGET_RISCV)-objdump \ RANLIB_FOR_TARGET=$(TARGET_RISCV)-ranlib \ READELF_FOR_TARGET=$(TARGET_RISCV)-readelf \ STRIP_FOR_TARGET=$(TARGET_RISCV)-strip CONFIGURE_GCC_FLAGS_LIBSTDC = \ --enable-libstdcxx \ --enable-hosted-libstdcxx CONFIGURE_GCC_FLAGS_COMMON = \ --with-gcc-major-version-only \ --mandir=/usr/share/man \ --enable-languages=c,c++,lto \ --enable-multilib-space \ --disable-decimal-float \ --disable-libffi \ --disable-libgomp \ --disable-libmudflap \ --disable-libquadmath \ --disable-libssp \ --disable-libstdcxx-pch \ --disable-nls \ --disable-shared \ --disable-threads \ --enable-tls \ --build=$(DEB_BUILD_GNU_TYPE) \ --with-system-zlib \ --with-gnu-as \ --with-gnu-ld \ "--with-pkgversion=$(DEB_VERSION)" \ --without-included-gettext \ --prefix=/usr \ --libexecdir=/usr/libexec \ --libdir=/usr/lib \ --host=$(DEB_HOST_GNU_TYPE) \ --with-headers=no \ --with-picolibc \ --without-newlib \ $(CONFIGURE_GCC_FLAGS_LIBSTDC) \ $(BUILDFLAGS) \ SED=/bin/sed \ SHELL=/bin/sh \ BASH=/bin/bash \ CONFIG_SHELL=/bin/bash \ CONFIGURE_GCC_FLAGS_RISCV = \ $(CONFIGURE_GCC_FLAGS_COMMON) \ --target=$(TARGET_RISCV) \ --enable-multilib \ --includedir=/usr/$(TARGET_RISCV)/include \ --infodir=/usr/share/doc/$(PACKAGE_GCC_RISCV)/info \ --htmldir=/usr/share/doc/$(PACKAGE_GCC_RISCV)/html \ --pdfdir=/usr/share/doc/$(PACKAGE_GCC_RISCV)/pdf \ --with-cmodel=medany \ --with-arch=rv64imafdc \ $(TARGET_TOOLS_RISCV) %: dh $@ override_dh_auto_configure: $(UNPACK) dh_auto_configure -D$(GCC_SOURCE_DIR) -Bbuild-$(TARGET_RISCV) -- $(CONFIGURE_GCC_FLAGS_RISCV) override_dh_auto_build: dh_auto_build -Bbuild-$(TARGET_RISCV) -- all-target-libstdc++-v3 # remove the libtool dregs override_dh_auto_install: $(MAKE) install-target-libstdc++-v3 -C$(GCC_BUILD_DIR_RISCV) DESTDIR=$(GCC_DEB_TMP_DIR_RISCV) find $(GCC_DEB_TMP_DIR_RISCV) -name *.la -exec rm '{}' + override_dh_auto_test: @echo "no testing, that's way too painful" override_dh_clean: rm -rf build-$(TARGET_RISCV) rm -rf $(GCC_BUILD_DIR_RISCV) rm -rf $(GCC_DEB_TMP_DIR_RISCV) rm -rf $(GCC_SOURCE_DEB_TMP_DIR) dh_clean override_dh_strip: dh_strip -X.a override_dh_install: dh_install -p$(PACKAGE_LIBSTDCXX_RISCV) --sourcedir $(GCC_DEB_TMP_DIR_RISCV) $(UNPACK): mkdir -p $(STAMP_DIR) mkdir -p $(GCC_SOURCE_DIR) tar xf /usr/src/$(PACKAGE_GCC_SOURCE).tar.* -C $(GCC_SOURCE_DIR) touch $@ override_dh_gencontrol: dh_gencontrol -- -v$(PACKAGE_VERSION) -Vgcc:Version=$(GCC_SOURCE_VERSION)