# -*- makefile -*- # rules to patch the unpacked files in the source directory # --------------------------------------------------------------------------- # various rules to unpack addons and (un)apply patches. # - patch / apply-patches # - unpatch / reverse-patches .NOTPARALLEL: patchdir ?= debian/patches series_file ?= $(patchdir)/series # which patches should be applied? debian_patches = \ $(if $(with_linaro_branch),gcc-linaro) \ svn-updates$(if $(with_linaro_branch),-linaro) \ hjl-x32-gcc-4_7-branch \ ifeq ($(with_java),yes) # debian_patches += \ # svn-class-updates endif ifneq ($(GFDL_INVARIANT_FREE),yes) debian_patches += \ rename-info-files \ $(if $(with_linaro_branch),gcc-linaro-doc) \ hjl-x32-gcc-4_7-branch-doc \ # $(if $(with_linaro_branch),,svn-doc-updates) \ else endif debian_patches += \ gcc-gfdl-build # boehm-gc-nocheck: seems to work on the buildds \ debian_patches += \ $(if $(with_linaro_branch),aarch64-multiarch) \ $(if $(with_linaro_branch),aarch64-hash-style-gnu) \ $(if $(with_linaro_branch),pr59695) \ aarch64-libffi \ aarch64-libffi-testsuite \ gcc-textdomain \ gcc-driver-extra-langs ifneq (,$(filter $(distrelease),dapper hardy intrepid jaunty karmic lucid lenny etch squeeze wheezy)) debian_patches += gcc-hash-style-both else debian_patches += gcc-hash-style-gnu endif debian_patches += \ libstdc++-pic \ libstdc++-doclink \ libstdc++-man-3cxx \ libstdc++-test-installed \ libjava-stacktrace \ libjava-jnipath \ libjava-sjlj \ libjava-disable-plugin \ alpha-no-ev4-directive \ boehm-gc-getnprocs \ note-gnu-stack \ libgomp-omp_h-multilib \ sparc-force-cpu \ pr24619 \ gccgo-version \ pr45078 \ pr47818 \ pr49940 \ pr49944 \ libffi-kfreebsd \ gcc-base-version \ libffi-powerpc-sf \ libffi-powerpc-sysv-without-string-ops \ mudflapth-link \ libffi-m68k \ pr26155 \ arm-no-va_list-warn \ libmudflap-x32 \ pr54411 \ hurd-pthread \ libgo-testsuite \ gcc-target-include-asm \ libgcc-backports \ ppl-version \ libgo-setcontext-config \ pr50043 \ gdb_depends := $(shell dpkg -s gdb | grep '^Depends:.*libpython3') ifneq (,$(findstring libpython3,$(gdb_depends))) debian_patches += libstdc++-python3 endif ifneq (,$(filter $(cloog_backend),ppl-0.11)) debian_patches += gcc-cloog-dl endif # $(if $(filter yes, $(DEB_CROSS)),,gcc-print-file-name) \ # libstdc++-nothumb-check \ # TODO: update ... # libjava-rpath \ hardening_patches = ifneq ($(distribution),Debian) ifneq (,$(findstring gcc-4, $(PKGSOURCE))) hardening_patches += gcc-default-format-security \ gcc-default-fortify-source \ gcc-default-relro \ testsuite-hardening-format \ testsuite-hardening-printf-types endif endif ifeq ($(with_ssp)-$(with_ssp_default),yes-yes) ifeq ($(distribution),Ubuntu) hardening_patches += gcc-default-ssp$(if $(filter ppc64,$(DEB_TARGET_ARCH)),-ppc64) else hardening_patches += gcc-default-ssp endif endif # FIXME 4.5: Drop and adjust symbols files ifneq (,$(findstring 4.4, $(PKGSOURCE))) debian_patches += pr39491 endif ifeq ($(with_ada),yes) debian_patches += \ ada-driver-check \ ada-gcc-name \ ada-default-project-path \ ada-symbolic-tracebacks \ ada-library-project-files-soname ifeq ($(biarch64),yes) debian_patches += \ ada-nobiarch-check endif ifeq ($(with_libgnat),yes) debian_patches += \ ada-link-lib \ ada-libgnatvsn \ ada-libgnatprj \ ada-acats ifeq ($(with_gnat_zcx)-$(with_gnat_sjlj),yes-yes) debian_patches += \ ada-sjlj endif endif ifneq (,$(findstring $(DEB_TARGET_ARCH_OS),kfreebsd hurd)) debian_patches += ada-kfreebsd-gnu \ ada-bug564232 endif ifeq ($(DEB_TARGET_ARCH_OS),hurd) debian_patches += \ gcc_ada_gcc-interface_Makefile.in \ ada-s-osinte-gnu.adb \ ada-s-osinte-gnu.ads \ ada-s-taprop-gnu.adb endif debian_patches += \ ada-link-shlib endif ifeq (0,1) ifeq ($(with_d),yes) debian_patches += \ gdc-4.6 \ gdc-libphobos-math \ gdc-driver-zlib ifeq ($(with_libphobos),yes) debian_patches += gdc-libphobos-build else debian_patches += gdc-driver-nophobos endif else debian_patches += gcc-d-lang endif endif ifeq ($(DEB_TARGET_ARCH),alpha) debian_patches += alpha-ieee mudflap-nocheck ifneq ($(GFDL_INVARIANT_FREE),yes) debian_patches += alpha-ieee-doc endif endif ifneq (,$(findstring $(DEB_TARGET_ARCH),arm armel armhf)) debian_patches += libjava-armel-unwind endif ifeq ($(DEB_TARGET_ARCH),m68k) debian_patches += endif ifeq ($(DEB_TARGET_ARCH),powerpcspe) debian_patches += powerpc_remove_many debian_patches += powerpc_nofprs endif ifeq ($(DEB_TARGET_ARCH),ppc64) ifeq ($(distribution),Ubuntu) #debian_patches += ibm-branch endif endif spu_patches = cross-install-location #debian_patches += link-libs debian_patches += $(if $(with_linaro_branch),,arm-dynamic-linker) # all patches below this line are applied for gcc-snapshot builds as well ifeq ($(single_package),yes) spu_patches = debian_patches = endif ifeq ($(trunk_build),yes) debian_patches += gcc-sysroot-trunk else debian_patches += gcc-sysroot endif ifeq ($(with_softfloat),yes) debian_patches += arm-multilib-soft-float else ifeq ($(multilib),yes) ifneq (,$(filter $(distrelease),lucid maverick natty oneiric precise)) debian_patches += arm-multilib-softfp$(if $(filter yes,$(DEB_CROSS)),-cross) else debian_patches += arm-multilib-soft$(if $(filter yes,$(DEB_CROSS)),-cross) endif endif debian_patches += arm-multilib-defaults ifeq ($(DEB_CROSS),yes) debian_patches += cross-fixes ifeq ($(with_deps_on_target_arch_pkgs),yes) debian_patches += cross-ma-install-location else debian_patches += cross-install-location spu_patches := $(filter-out cross-install-location,$(spu_patches)) endif endif ifeq ($(DEB_TARGET_ARCH_OS),hurd) debian_patches += hurd-changes endif debian_patches += gcc-ice-hack gcc-ice-apport debian_patches += gold-and-ld ifneq ($(GFDL_INVARIANT_FREE),yes) debian_patches += gold-and-ld-doc endif debian_patches += libjava-fixed-symlinks debian_patches += libstdc++-arm-wno-abi ifneq (,$(filter $(DEB_TARGET_ARCH), mips mipsel)) # timeouts on the buildd's, Debian debian_patches += libstdc++-no-testsuite else ifeq ($(distribution),Ubuntu) ifneq (,$(filter $(DEB_TARGET_ARCH), armel ia64 mips mipsel)) # timeouts on the buildd's, Ubuntu only debian_patches += libstdc++-no-testsuite endif endif debian_patches += ada-mips debian_patches += libffi-ro-eh_frame_sect debian_patches += gcc-multiarch debian_patches += gcc-powerpc-nof debian_patches += gcc-multiarch-no-multilib ifeq ($(with_multiarch_lib),yes) ifneq ($(single_package),yes) debian_patches += libjava-multiarch endif endif debian_patches += libjava-nobiarch-check debian_patches += config-ml ifneq ($(single_package),yes) ifeq ($(with_multiarch_cxxheaders),yes) debian_patches += g++-multiarch-incdir endif endif ifeq ($(DEB_CROSS),yes) debian_patches += cross-no-locale-include endif ifeq ($(biarch64),yes) ifeq ($(DEB_CROSS),yes) debian_patches += cross-biarch endif endif debian_patches += gcc-powerpc-undef debian_patches += gcc-multilib-multiarch ifeq (,$(filter $(distrelease),lenny squeeze wheezy jessie sid experimental dapper hardy intrepid jaunty karmic lucid maverick)) debian_patches += gcc-as-needed endif debian_patches += mips-fix-loongson2f-nop ifeq ($(distribution),Ubuntu) ifeq ($(DEB_TARGET_ARCH),ppc64) debian_patches += gcc-ppc64-O3 endif endif debian_patches += libgomp-kfreebsd-testsuite #debian_patches += address-clauses-timed-entry-calls series_stamp = $(stampdir)/02-series-stamp series: $(series_stamp) $(series_stamp): echo $(strip $(addsuffix .diff,$(debian_patches))) \ | sed -r 's/ +/ /g' | tr " " "\n" > $(series_file) ifneq (,$(strip $(hardening_patches))) ifneq ($(trunk_build),yes) echo $(strip $(addsuffix .diff,$(hardening_patches))) \ | sed -r 's/ +/ /g' | tr " " "\n" >> $(series_file) endif endif sed -r 's/(.)$$/\1 -p1/' -i $(series_file) touch $@ autotools_files := $(addprefix ./,$(foreach file,$(shell lsdiff --no-filename \ $(foreach patch,$(debian_patches),$(patchdir)/$(patch).diff) \ | sed -r 's:[^/]+/src/:src/:' | sort | uniq),$(shell echo $(file) \ | egrep 'configure\.(ac|in)|Makefile\.(am|in)|acinclude.m4'))) autoconf_version = 2.64 ifeq ($(trunk_build),yes) # The actual version depends on the build-dependencies set by # variable AUTO_BUILD_DEP in rules.conf. Here, we assume the # correct version is installed. #autoconf_version = endif # FIXME: the auto* stuff is done every time for every subdir, which # leads to build errors. Idea: record the auto* calls in the patch # files (AUTO