]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blobdiff - debian/rules
KVM: arm64: vgic-v3: Log which GICv3 system registers are trapped
[mirror_ubuntu-zesty-kernel.git] / debian / rules
index 5dace6fc7abac97fab938e1f4dadd06012dd0b63..5bcd85d77a63fabb646fdd3eb0755c0c1118b342 100755 (executable)
@@ -26,31 +26,33 @@ include $(DROOT)/rules.d/0-common-vars.mk
 # Pull in some arch specific stuff
 -include $(DEBIAN)/rules.d/$(arch).mk
 
+# Pull in some branch specific stuff. Used by LTS backport
+# branches to override master branch settings such as do_tools_common.
+-include $(DEBIAN)/rules.d/hooks.mk
+
 # Maintainer targets
 include $(DROOT)/rules.d/1-maintainer.mk
 
-do_linux_tools=$(sort $(filter-out false,$(do_tools_cpupower) $(do_tools_perf) $(do_tools_x86)))
+do_linux_tools=$(sort $(filter-out false,$(do_tools_usbip) $(do_tools_cpupower) $(do_tools_perf) $(do_tools_x86)))
 do_cloud_tools=$(sort $(filter-out false,$(do_tools_hyperv)))
+do_tools_common=true
 
-# Don't build tools in a cross compile environment.
+# Don't build tools or udebs in a cross compile environment.
 ifneq ($(DEB_HOST_ARCH),$(DEB_BUILD_ARCH))
        do_tools=false
+       disable_d_i=true
+       do_zfs=false
+       do_zfs_disable:=$(shell cat $(DROOT)/zfs-modules.ignore >>$(prev_abidir)/../modules.ignore)
 endif
 
-# Backwards compatiblility, do_tools=false|0 should disable all tools.
-ifneq ($(do_tools),true)
-       do_linux_tools=
-       do_cloud_tools=
-endif
-
-# Either tools package needs the common source preparation
-do_any_tools=$(sort $(filter-out false,$(do_linux_tools) $(do_cloud_tools)))
-
 # Stages -- support both DEB_STAGE=stage1 and DEB_BUILD_PROFILE=bootstrap
 ifeq ($(DEB_STAGE),stage1)
-    DEB_BUILD_PROFILE=bootstrap
+    DEB_BUILD_PROFILES=stage1
+endif
+ifneq ($(DEB_BUILD_PROFILE),)
+    DEB_BUILD_PROFILES=$(DEB_BUILD_PROFILE)
 endif
-ifeq ($(DEB_BUILD_PROFILE),bootstrap)
+ifneq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
     do_tools=false
     do_doc_package=false
     do_source_package=false
@@ -58,9 +60,27 @@ ifeq ($(DEB_BUILD_PROFILE),bootstrap)
     do_flavour_header_package=false
 endif
 
+# Being used to build a mainline build -- turn off things which do not work.
+ifeq ($(do_mainline_build),true)
+       do_extras_package=false
+       do_tools=false
+       no_dumpfile=1
+       do_zfs=false
+endif
+
+# Disable tools build and packaging if do_tools != true
+ifneq ($(do_tools),true)
+       do_linux_tools=
+       do_cloud_tools=
+       do_tools_common=
+endif
+
+# Either tools package needs the common source preparation
+do_any_tools=$(sort $(filter-out false,$(do_linux_tools) $(do_cloud_tools)))
+
 # autopkgtest -- rebuild support
 #  only build the first flavour on the assumption it is representative
-ifeq ($(DEB_BUILD_PROFILE),autopkgtest)
+ifneq ($(filter autopkgtest,$(DEB_BUILD_PROFILES)),)
 flavours := $(firstword $(flavours))
 endif
 
@@ -77,7 +97,7 @@ clean: debian/control
        # d-i stuff
        rm -rf $(DEBIAN)/d-i-$(arch)
        # Generated on the fly.
-       rm -f $(DEBIAN)/d-i/firmware/kernel-image
+       rm -f $(DEBIAN)/d-i/firmware/$(arch)/kernel-image
 
        # normal build junk
        rm -rf $(DEBIAN)/abi/$(release)-$(revision)
@@ -86,15 +106,20 @@ clean: debian/control
        rm -rf $(DEBIAN)/linux-*
 
        # This gets rid of the d-i packages in control
-       cp -f $(DEBIAN)/control.stub $(DEBIAN)/control
+       cp -f $(DEBIAN)/control.stub $(DROOT)/control
        cp $(DEBIAN)/changelog debian/changelog
 
        # Install the copyright information.
        cp $(DEBIAN)/copyright debian/copyright
 
+       # If we have a reconstruct script use it.
+       [ -f $(DEBIAN)/reconstruct ] && bash $(DEBIAN)/reconstruct
+
+       # Remove generated intermediate files
+       rm -f $(DROOT)/control.stub $(DEBIAN)/control.stub
+
 distclean: clean
-       rm -rf $(DEBIAN)/control $(DEBIAN)/control.stub \
-               $(DEBIAN)/d-i/kernel-versions debian/changelog \
+       rm -rf $(DROOT)/control debian/changelog \
                debian/control debian/control.stub debian/copyright
 
 # Builds the image, arch headers and debug packages
@@ -111,12 +136,12 @@ include $(DROOT)/rules.d/4-checks.mk
 
 # Misc stuff
 .PHONY: $(DEBIAN)/control.stub
-$(DEBIAN)/control.stub: $(DEBIAN)/d-i/kernel-versions.in       \
+$(DEBIAN)/control.stub:                                \
                $(DROOT)/scripts/control-create         \
                $(DEBIAN)/control.stub.in                       \
                $(DEBIAN)/changelog                     \
                $(wildcard $(DEBIAN)/control.d/* $(DEBIAN)/sub-flavours/*.vars)
-       for i in $(DEBIAN)/d-i/kernel-versions.in $(DEBIAN)/control.stub.in; do \
+       for i in $(DEBIAN)/control.stub.in; do                                  \
          new=`echo $$i | sed 's/\.in$$//'`;                                    \
          cat $$i | sed -e 's/PKGVER/$(release)/g'                              \
                -e 's/ABINUM/$(abinum)/g'                                       \
@@ -124,7 +149,7 @@ $(DEBIAN)/control.stub: $(DEBIAN)/d-i/kernel-versions.in    \
                -e 's/=HUMAN=/$(human_arch)/g'                                    \
          > $$new;                                                              \
        done
-       flavours="$(wildcard $(DEBIAN)/control.d/vars.* $(DEBIAN)/sub-flavours/*.vars)";\
+       flavours="$(sort $(wildcard $(DEBIAN)/control.d/vars.* $(DEBIAN)/sub-flavours/*.vars))";\
        for i in $$flavours; do                                                 \
          $(SHELL) $(DROOT)/scripts/control-create $$i |                                \
                sed -e 's/PKGVER/$(release)/g'                                  \
@@ -133,134 +158,13 @@ $(DEBIAN)/control.stub: $(DEBIAN)/d-i/kernel-versions.in \
                -e 's/=HUMAN=/$(human_arch)/g'                                    \
                >> $(DEBIAN)/control.stub;                                              \
        done
-       cp $(DEBIAN)/control.stub $(DEBIAN)/control
 
 .PHONY: debian/control
 debian/control: $(DEBIAN)/control.stub
-       rm -rf $(builddir)/modules $(builddir)/firmware                 \
-               $(builddir)/kernel-versions $(builddir)/package-list    \
-               $(builddir)/$(DEBIAN)
-       mkdir -p $(builddir)/modules/$(arch)/
-       cp $(DEBIAN)/d-i/modules/* $(builddir)/modules/$(arch)/
-       mkdir -p $(builddir)/firmware/$(arch)/
-       cp $(DEBIAN)/d-i/firmware/* $(builddir)/firmware/$(arch)/
-       cp $(DEBIAN)/d-i/package-list $(DEBIAN)/d-i/kernel-versions $(builddir)/
-       touch $(builddir)/modules/$(arch)/kernel-image
-       # kernel-wedge needs to poke around in $(DEBIAN)/
-       ln -nsf $(CURDIR)/debian $(builddir)/debian
-
-       # Some files may need to differ between architectures
-       if [ -d $(DEBIAN)/d-i/modules-$(arch) ]; then                   \
-           cp $(DEBIAN)/d-i/modules-$(arch)/* \
-               $(builddir)/modules/$(arch)/;                           \
-       fi
-       if [ -d $(DEBIAN)/d-i/firmware-$(arch) ]; then                  \
-           cp $(DEBIAN)/d-i/firmware-$(arch)/* \
-               $(builddir)/firmware/$(arch)/;                          \
-       fi
-
-       # Remove unwanted stuff for this architecture
-       if [ -r "$(DEBIAN)/d-i/exclude-modules.$(arch)" ]; then         \
-           (cat $(DEBIAN)/d-i/exclude-modules.$(arch);                 \
-            ls $(builddir)/modules/$(arch)/) | sort | uniq -d |        \
-               (cd $(builddir)/modules/$(arch)/; xargs rm -f);         \
-       fi
-       if [ -r "$(DEBIAN)/d-i/exclude-firmware.$(arch)" ]; then                \
-           (cat $(DEBIAN)/d-i/exclude-firmware.$(arch);                        \
-            ls $(builddir)/firmware/$(arch)/) | sort | uniq -d |       \
-               (cd $(builddir)/firmware/$(arch)/; xargs rm -f);        \
-       fi
-
-       # Per flavour module lists
-       flavour_modules=`ls $(DEBIAN)/d-i/modules.$(arch)-* 2>/dev/null`        \
-               || true;                                                \
-       if [ "$$flavour_modules" != "" ]; then                          \
-           for flav in $$flavour_modules; do                           \
-               name=`echo $$flav | sed 's/.*\/modules.$(arch)-//'`;    \
-               mkdir $(builddir)/modules/$(arch)-$$name;               \
-               (cd $(builddir)/modules/; tar cf - `cat ../$$flav`) |   \
-                   (cd $(builddir)/modules/$(arch)-$$name/; tar xf -); \
-               touch $(builddir)/modules/$(arch)-$$name/kernel-image;  \
-           done;                                                       \
-       fi
-       flavour_firmware=`ls $(DEBIAN)/d-i/firmware.$(arch)-* 2>/dev/null`      \
-               || true;                                                \
-       if [ "$$flavour_firmware" != "" ]; then                         \
-           for flav in $$flavour_firmware; do                          \
-               name=`echo $$flav | sed 's/.*\/firmware.$(arch)-//'`;   \
-               mkdir $(builddir)/firmware/$(arch)-$$name;              \
-               (cd $(builddir)/firmware/; tar cf - `cat ../$$flav`) |  \
-                   (cd $(builddir)/firmware/$(arch)-$$name/; tar xf -);\
-               touch $(builddir)/firmware/$(arch)-$$name/kernel-image; \
-           done;                                                       \
-       fi
-
-       # Some files may need to differ between flavours
-       flavour_module_dirs=`ls -d $(DEBIAN)/d-i/modules-$(arch)-* 2>/dev/null`\
-               || true;                                                \
-       if [ "$$flavour_module_dirs" ]; then                            \
-           for flav in $$flavour_module_dirs; do                       \
-               name=`echo $$flav | sed 's/.*\/modules-$(arch)-//'`;    \
-               [ -d $(builddir)/modules/$(arch)-$$name ] ||            \
-                   cp -a $(builddir)/modules/$(arch)                   \
-                       modules/$(arch)-$$name;                         \
-               cp $$flav/* $(builddir)/modules/$(arch)-$$name/;        \
-           done;                                                       \
-       fi
-       flavour_firmware_dirs=`ls -d $(DEBIAN)/d-i/firmware-$(arch)-* 2>/dev/null`\
-               || true;                                                \
-       if [ "$$flavour_firmware_dirs" ]; then                          \
-           for flav in $$flavour_firmware_dirs; do                     \
-               name=`echo $$flav | sed 's/.*\/firmware-$(arch)-//'`;   \
-               [ -d $(builddir)/firmware/$(arch)-$$name ] ||           \
-                   cp -a $(builddir)/firmware/$(arch)                  \
-                       firmware/$(arch)-$$name;                        \
-               cp $$flav/* $(builddir)/firmware/$(arch)-$$name/;       \
-           done;                                                       \
-       fi
-
-       # Remove unwanted stuff for each flavour
-       flavour_exclude=`ls $(DEBIAN)/d-i/exclude-modules.$(arch)-* 2>/dev/null`\
-               || true;                                                \
-       if [ "$$flavour_exclude" ]; then                                \
-           for flav in $$flavour_exclude; do                           \
-               name=`echo $$flav | sed 's/.*\/exclude-modules.$(arch)-//'`;\
-               [ -d $(builddir)/modules/$(arch)-$$name ] ||            \
-                   cp -a $(builddir)/modules/$(arch)                   \
-                       $(builddir)/modules/$(arch)-$$name;             \
-               (cat $$flav;                                            \
-                ls $(builddir)/modules/$(arch)-$$name) |               \
-                sort | uniq -d |                                       \
-                   (cd $(builddir)/modules/$(arch)-$$name/;            \
-                    xargs rm -f);                                      \
-           done;                                                       \
-       fi
-       flavour_exclude=`ls $(DEBIAN)/d-i/exclude-firmware.$(arch)-* 2>/dev/null`\
-               || true;                                                \
-       if [ "$$flavour_exclude" ]; then                                \
-           for flav in $$flavour_exclude; do                           \
-               name=`echo $$flav | sed 's/.*\/exclude-firmware.$(arch)-//'`;\
-               [ -d $(builddir)/firmware/$(arch)-$$name ] ||           \
-                   cp -a $(builddir)/firmware/$(arch)                  \
-                       $(builddir)/firmware/$(arch)-$$name;            \
-               (cat $$flav;                                            \
-                ls $(builddir)/firmware/$(arch)-$$name) |              \
-                sort | uniq -d |                                       \
-                   (cd $(builddir)/firmware/$(arch)-$$name/;           \
-                    xargs rm -f);                                      \
-           done;                                                       \
-       fi
-
-       if [ ! -d $(builddir)/modules/$(build_arch) ]; then             \
-               mkdir -p $(builddir)/modules/$(build_arch);             \
-               cp $(builddir)/modules/$(arch)/*                        \
-                       $(builddir)/modules/$(build_arch);              \
-       fi
-       if [ ! -d $(builddir)/firmware/$(build_arch) ]; then            \
-               mkdir -p $(builddir)/firmware/$(build_arch);            \
-               cp $(builddir)/firmware/$(arch)/*                       \
-                       $(builddir)/firmware/$(build_arch);             \
-       fi
-
-       cp $(DEBIAN)/control.stub debian/control.stub
-       cd $(builddir) && kernel-wedge gen-control > $(CURDIR)/debian/control
+       echo "# placebo control.stub for kernel-wedge flow change" >debian/control.stub
+       cp $(DEBIAN)/control.stub debian/control
+       export KW_DEFCONFIG_DIR=$(DEBIAN)/d-i && \
+       export KW_CONFIG_DIR=$(DEBIAN)/d-i && \
+       LANG=C kernel-wedge gen-control $(release)-$(abinum) | \
+               perl -f $(DROOT)/scripts/misc/kernel-wedge-arch.pl $(arch) \
+               >>$(CURDIR)/debian/control