#!/usr/bin/make -f include /usr/share/dpkg/pkg-info.mk GCC_VERSION=15.2.0 DEB_SOURCE_VERSION=$(shell dpkg-parsechangelog -S Version) DEB_VERSION := $(GCC_VERSION)-$(DEB_SOURCE_VERSION) PACKAGE_GCC_RISCV=gcc-riscv64-unknown-elf PACKAGE_GCC_SOURCE=gcc-riscv64-unknown-elf-source TARGET_RISCV=riscv64-unknown-elf TOP_DIR=$(shell pwd) NPROC=$(shell nproc) GCC_TAR_DIR=debian GCC_BUILD_DIR_RISCV=$(TOP_DIR)/build-$(TARGET_RISCV) GCC_SOURCE_DIR=gcc-$(GCC_VERSION) GCC_DEB_TMP_DIR_RISCV=$(TOP_DIR)/debian/$(PACKAGE_GCC_RISCV)-tmp GCC_SOURCE_DEB_TMP_DIR=$(TOP_DIR)/debian/$(PACKAGE_GCC_SOURCE)-tmp export DEB_BUILD_MAINT_OPTIONS=hardening=+all,-format ifeq ($(DEB_BUILD_ARCH),mips64el) export DEB_CFLAGS_MAINT_APPEND=-mxgot export DEB_CXXFLAGS_MAINT_APPEND=-mxgot endif ifeq ($(DEB_BUILD_ARCH),m68k) export DEB_CFLAGS_MAINT_APPEND=-mlong-jump-table-offsets export DEB_CXXFLAGS_MAINT_APPEND=-mlong-jump-table-offsets endif BUILDFLAGS:=$(shell dpkg-buildflags --export=configure) INHIBIT_LIBC_CFLAGS="-DUSE_TM_CLONE_REGISTRY=0" STAMPDIR=debian/stamp unpack_stamp=$(STAMPDIR)/unpack tar_stamp=$(STAMPDIR)/tar 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 = \ --disable-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 $@ --parallel --with autoreconf $(unpack_stamp): $(tar_stamp) set -ex; \ cd gcc-*; \ for patch in ../debian/patches/*.patch; do \ echo Applying patch "$$patch"; \ patch -p1 < "$$patch"; \ done touch $@ $(tar_stamp): tar xf $(GCC_TAR_DIR)/gcc-*.tar.* mkdir -p $(STAMPDIR) touch $@ override_dh_autoreconf: $(unpack_stamp) autoreconf2.69 -f -i $(GCC_SOURCE_DIR) override_dh_auto_configure: $(unpack_stamp) dh_auto_configure -D$(GCC_SOURCE_DIR) -Bbuild-$(TARGET_RISCV) -- $(CONFIGURE_GCC_FLAGS_RISCV) override_dh_auto_build: dh_auto_build -Bbuild-$(TARGET_RISCV) -- -j$(NPROC) override_dh_auto_install: $(MAKE) install -C$(GCC_BUILD_DIR_RISCV) DESTDIR=$(GCC_DEB_TMP_DIR_RISCV) override_dh_auto_test: @echo "no testing, that's way too painful" override_dh_clean: rm -rf $(GCC_BUILD_DIR_RISCV) rm -rf $(GCC_DEB_TMP_DIR_RISCV) rm -rf $(GCC_SOURCE_DEB_TMP_DIR) rm -rf $(GCC_SOURCE_DIR) rm -rf $(STAMPDIR) dh_clean override_dh_strip: dh_strip -X.a override_dh_install: dh_install -p$(PACKAGE_GCC_RISCV) --sourcedir $(GCC_DEB_TMP_DIR_RISCV) mkdir -p $(GCC_SOURCE_DEB_TMP_DIR)/usr/src tar --exclude=autom4te.cache --sort=name --mtime="@$(SOURCE_DATE_EPOCH)" --owner=0 --group=0 --numeric-owner --mode=go-w,u+rw -C $(GCC_SOURCE_DIR) -c -f - . | xz -T0 > $(GCC_SOURCE_DEB_TMP_DIR)/usr/src/$(PACKAGE_GCC_SOURCE).tar.xz dh_install -p$(PACKAGE_GCC_SOURCE) --sourcedir $(GCC_SOURCE_DEB_TMP_DIR) override_dh_compress: dh_compress -Xexamples/ override_dh_installchangelogs: dh_installchangelogs $(GCC_SOURCE_DIR)/ChangeLog override_dh_gencontrol: dh_gencontrol -- -v$(DEB_VERSION) -Vgcc:Version=$(GCC_VERSION)