Index: debian.chrome/rules.d/2-binary-arch.mk |
diff --git a/debian.chrome/rules.d/2-binary-arch.mk b/debian.chrome/rules.d/2-binary-arch.mk |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4468d2533d001e822c507c2bd44fa4259d182201 |
--- /dev/null |
+++ b/debian.chrome/rules.d/2-binary-arch.mk |
@@ -0,0 +1,308 @@ |
+# We don't want make removing intermediary stamps |
+.SECONDARY : |
+ |
+# Prepare the out-of-tree build directory |
+ |
+prepare-%: $(stampdir)/stamp-prepare-% |
+ @# Empty for make to be happy |
+$(stampdir)/stamp-prepare-%: target_flavour = $* |
+$(stampdir)/stamp-prepare-%: $(commonconfdir)/config.common.$(family) $(archconfdir)/config.common.$(arch) $(archconfdir)/config.flavour.% |
+ @echo "Preparing $*..." |
+ install -d $(builddir)/build-$* |
+ touch $(builddir)/build-$*/ubuntu-build |
+ cat $^ | sed -e 's/.*CONFIG_VERSION_SIGNATURE.*/CONFIG_VERSION_SIGNATURE="Ubuntu $(release)-$(revision)-$*"/' > $(builddir)/build-$*/.config |
+ find $(builddir)/build-$* -name "*.ko" | xargs rm -f |
+ $(kmake) O=$(builddir)/build-$* silentoldconfig prepare scripts |
+ touch $@ |
+ |
+ |
+# Do the actual build, including image and modules |
+build-%: $(stampdir)/stamp-build-% |
+ @# Empty for make to be happy |
+$(stampdir)/stamp-build-%: target_flavour = $* |
+$(stampdir)/stamp-build-%: $(stampdir)/stamp-prepare-% |
+ @echo "Building $*..." |
+ $(kmake) O=$(builddir)/build-$* $(conc_level) $(build_image) |
+ $(kmake) O=$(builddir)/build-$* $(conc_level) modules |
+ @touch $@ |
+ |
+# Install the finished build |
+install-%: pkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$* |
+install-%: bindoc = $(pkgdir)/usr/share/doc/$(bin_pkg_name)-$* |
+install-%: dbgpkgdir = $(CURDIR)/debian/$(dbg_pkg_name)-$* |
+install-%: basepkg = $(hdrs_pkg_name) |
+install-%: hdrdir = $(CURDIR)/debian/$(basepkg)-$*/usr/src/$(basepkg)-$* |
+install-%: target_flavour = $* |
+install-%: $(stampdir)/stamp-build-% checks-% |
+ dh_testdir |
+ dh_testroot |
+ dh_clean -k -p$(bin_pkg_name)-$* |
+ dh_clean -k -p$(hdrs_pkg_name)-$* |
+ dh_clean -k -p$(dbg_pkg_name)-$* |
+ |
+ # The main image |
+ # compress_file logic required because not all architectures |
+ # generate a zImage automatically out of the box |
+ifeq ($(compress_file),) |
+ install -m644 -D $(builddir)/build-$*/$(kernel_file) \ |
+ $(pkgdir)/boot/$(install_file)-$(abi_release)-$* |
+else |
+ install -d $(pkgdir)/boot |
+ gzip -c9v $(builddir)/build-$*/$(kernel_file) > \ |
+ $(pkgdir)/boot/$(install_file)-$(abi_release)-$* |
+ chmod 644 $(pkgdir)/boot/$(install_file)-$(abi_release)-$* |
+endif |
+ |
+ install -m644 $(builddir)/build-$*/.config \ |
+ $(pkgdir)/boot/config-$(abi_release)-$* |
+ install -m644 $(abidir)/$* \ |
+ $(pkgdir)/boot/abi-$(abi_release)-$* |
+ install -m644 $(builddir)/build-$*/System.map \ |
+ $(pkgdir)/boot/System.map-$(abi_release)-$* |
+ifeq ($(no_dumpfile),) |
+ makedumpfile -g $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* \ |
+ -x $(builddir)/build-$*/vmlinux |
+endif |
+ |
+ $(kmake) O=$(builddir)/build-$* modules_install \ |
+ INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=$(pkgdir)/ \ |
+ INSTALL_FW_PATH=$(pkgdir)/lib/firmware/$(abi_release)-$* |
+ |
+ifeq ($(no_dumpfile),) |
+ makedumpfile -g $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* \ |
+ -x $(builddir)/build-$*/vmlinux |
+endif |
+ rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/build |
+ rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/source |
+ |
+ # Some initramfs-tools specific modules |
+ install -d $(pkgdir)/lib/modules/$(abi_release)-$*/initrd |
+ if [ -f $(pkgdir)/lib/modules/$(abi_release)-$*/kernel/drivers/video/vesafb.ko ]; then\ |
+ ln -f $(pkgdir)/lib/modules/$(abi_release)-$*/kernel/drivers/video/vesafb.ko \ |
+ $(pkgdir)/lib/modules/$(abi_release)-$*/initrd/; \ |
+ fi |
+ |
+ # Now the image scripts |
+ install -d $(pkgdir)/DEBIAN |
+ for script in postinst postrm preinst prerm; do \ |
+ sed -e 's/=V/$(abi_release)-$*/g' -e 's/=K/$(install_file)/g' \ |
+ -e 's/=L/$(loader)/g' -e 's@=B@$(build_arch)@g' \ |
+ $(DEBIAN)/control-scripts/$$script > $(pkgdir)/DEBIAN/$$script; \ |
+ chmod 755 $(pkgdir)/DEBIAN/$$script; \ |
+ done |
+ |
+ # Install the full changelog. |
+ install -d $(bindoc) |
+ cat $(DEBIAN)/changelog $(DEBIAN)/changelog.historical | \ |
+ gzip -9 >$(bindoc)/changelog.Debian.old.gz |
+ chmod 644 $(bindoc)/changelog.Debian.old.gz |
+ |
+ifneq ($(skipsub),true) |
+ for sub in $($(*)_sub); do \ |
+ if ! (TO=$$sub FROM=$* ABI_RELEASE=$(abi_release) $(SHELL) \ |
+ $(DEBIAN)/scripts/sub-flavour); then exit 1; fi; \ |
+ /sbin/depmod -b debian/$(bin_pkg_name)-$$sub \ |
+ -ea -F debian/$(bin_pkg_name)-$$sub/boot/System.map-$(abi_release)-$* \ |
+ $(abi_release)-$*; \ |
+ install -d debian/$(bin_pkg_name)-$$sub/DEBIAN; \ |
+ for script in postinst postrm preinst prerm; do \ |
+ sed -e 's/=V/$(abi_release)-$*/g' \ |
+ -e 's/=K/$(install_file)/g' \ |
+ -e 's/=L/$(loader)/g' \ |
+ -e 's@=B@$(build_arch)@g' \ |
+ $(DEBIAN)/control-scripts/$$script > \ |
+ debian/$(bin_pkg_name)-$$sub/DEBIAN/$$script;\ |
+ chmod 755 debian/$(bin_pkg_name)-$$sub/DEBIAN/$$script;\ |
+ done; \ |
+ done |
+endif |
+ |
+ifneq ($(skipdbg),true) |
+ # Debug image is simple |
+ install -m644 -D $(builddir)/build-$*/vmlinux \ |
+ $(dbgpkgdir)/usr/lib/debug/boot/vmlinux-$(abi_release)-$* |
+ $(kmake) O=$(builddir)/build-$* modules_install \ |
+ INSTALL_MOD_PATH=$(dbgpkgdir)/usr/lib/debug |
+ rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/build |
+ rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/source |
+ rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/modules.* |
+ rm -fr $(dbgpkgdir)/usr/lib/debug/lib/firmware |
+endif |
+ |
+ # The flavour specific headers image |
+ # TODO: Would be nice if we didn't have to dupe the original builddir |
+ install -d -m755 $(hdrdir) |
+ cat $(builddir)/build-$*/.config | \ |
+ sed -e 's/.*CONFIG_DEBUG_INFO=.*/# CONFIG_DEBUG_INFO is not set/g' > \ |
+ $(hdrdir)/.config |
+ chmod 644 $(hdrdir)/.config |
+ $(kmake) O=$(hdrdir) silentoldconfig prepare scripts |
+ # We'll symlink this stuff |
+ rm -f $(hdrdir)/Makefile |
+ rm -rf $(hdrdir)/include2 |
+ # powerpc seems to need some .o files for external module linking. Add them in. |
+ifeq ($(arch),powerpc) |
+ mkdir -p $(hdrdir)/arch/powerpc/lib |
+ cp $(builddir)/build-$*/arch/powerpc/lib/*.o $(hdrdir)/arch/powerpc/lib |
+endif |
+ # Script to symlink everything up |
+ $(SHELL) $(DEBIAN)/scripts/link-headers "$(hdrdir)" "$(basepkg)" "$*" |
+ # Setup the proper asm symlink |
+ rm -f $(hdrdir)/include/asm |
+ ln -s asm-$(asm_link) $(hdrdir)/include/asm |
+ # The build symlink |
+ install -d debian/$(basepkg)-$*/lib/modules/$(abi_release)-$* |
+ ln -s /usr/src/$(basepkg)-$* \ |
+ debian/$(basepkg)-$*/lib/modules/$(abi_release)-$*/build |
+ # And finally the symvers |
+ install -m644 $(builddir)/build-$*/Module.symvers \ |
+ $(hdrdir)/Module.symvers |
+ |
+ # Now the header scripts |
+ install -d $(CURDIR)/debian/$(basepkg)-$*/DEBIAN |
+ for script in postinst; do \ |
+ sed -e 's/=V/$(abi_release)-$*/g' -e 's/=K/$(install_file)/g' \ |
+ $(DEBIAN)/control-scripts/headers-$$script > \ |
+ $(CURDIR)/debian/$(basepkg)-$*/DEBIAN/$$script; \ |
+ chmod 755 $(CURDIR)/debian/$(basepkg)-$*/DEBIAN/$$script; \ |
+ done |
+ |
+ # At the end of the package prep, call the tests |
+ DPKG_ARCH="$(arch)" KERN_ARCH="$(build_arch)" FLAVOUR="$*" \ |
+ VERSION="$(abi_release)" REVISION="$(revision)" \ |
+ PREV_REVISION="$(prev_revision)" ABI_NUM="$(abinum)" \ |
+ PREV_ABI_NUM="$(prev_abinum)" BUILD_DIR="$(builddir)/build-$*" \ |
+ INSTALL_DIR="$(pkgdir)" SOURCE_DIR="$(CURDIR)" \ |
+ run-parts -v $(DEBIAN)/tests |
+ |
+ # |
+ # Remove files which are generated at installation by postinst, except for |
+ # modules.order. |
+ # |
+ mv $(pkgdir)/lib/modules/$(abi_release)-$*/modules.order \ |
+ $(pkgdir)/lib/modules/$(abi_release)-$*/_modules.order |
+ rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/modules.* |
+ mv $(pkgdir)/lib/modules/$(abi_release)-$*/_modules.order \ |
+ $(pkgdir)/lib/modules/$(abi_release)-$*/modules.order |
+ |
+headers_tmp := $(CURDIR)/debian/tmp-headers |
+headers_dir := $(CURDIR)/debian/linux-libc-dev |
+ |
+hmake := $(MAKE) -C $(CURDIR) O=$(headers_tmp) SUBLEVEL=$(SUBLEVEL) \ |
+ EXTRAVERSION=-$(abinum) INSTALL_HDR_PATH=$(headers_tmp)/install \ |
+ SHELL="$(SHELL)" ARCH=$(header_arch) |
+ |
+install-arch-headers: |
+ dh_testdir |
+ dh_testroot |
+ dh_clean -k -plinux-libc-dev |
+ |
+ rm -rf $(headers_tmp) |
+ install -d $(headers_tmp) $(headers_dir)/usr/include/ |
+ |
+ $(hmake) $(defconfig) |
+ mv $(headers_tmp)/.config $(headers_tmp)/.config.old |
+ sed -e 's/^# \(CONFIG_MODVERSIONS\) is not set$$/\1=y/' \ |
+ -e 's/.*CONFIG_LOCALVERSION_AUTO.*/# CONFIG_LOCALVERSION_AUTO is not set/' \ |
+ $(headers_tmp)/.config.old > $(headers_tmp)/.config |
+ $(hmake) silentoldconfig |
+ $(hmake) headers_install |
+ |
+ ( cd $(headers_tmp)/install/include/ && \ |
+ find . -name '.' -o -name '.*' -prune -o -print | \ |
+ cpio -pvd --preserve-modification-time \ |
+ $(headers_dir)/usr/include/ ) |
+ |
+ rm -rf $(headers_tmp) |
+ |
+binary-arch-headers: install-arch-headers |
+ dh_testdir |
+ dh_testroot |
+ |
+ dh_installchangelogs -plinux-libc-dev |
+ dh_installdocs -plinux-libc-dev |
+ dh_compress -plinux-libc-dev |
+ dh_fixperms -plinux-libc-dev |
+ dh_installdeb -plinux-libc-dev |
+ dh_gencontrol -plinux-libc-dev |
+ dh_md5sums -plinux-libc-dev |
+ dh_builddeb -plinux-libc-dev |
+ |
+binary-%: pkgimg = $(bin_pkg_name)-$* |
+binary-%: pkghdr = $(hdrs_pkg_name)-$* |
+binary-%: dbgpkg = $(dbg_pkg_name)-$* |
+binary-%: install-% |
+ dh_testdir |
+ dh_testroot |
+ |
+ dh_installchangelogs -p$(pkgimg) |
+ dh_installdocs -p$(pkgimg) |
+ dh_compress -p$(pkgimg) |
+ dh_fixperms -p$(pkgimg) |
+ dh_installdeb -p$(pkgimg) |
+ dh_gencontrol -p$(pkgimg) |
+ dh_md5sums -p$(pkgimg) |
+ dh_builddeb -p$(pkgimg) -- -Zbzip2 -z9 |
+ |
+ dh_installchangelogs -p$(pkghdr) |
+ dh_installdocs -p$(pkghdr) |
+ dh_compress -p$(pkghdr) |
+ dh_fixperms -p$(pkghdr) |
+ dh_shlibdeps -p$(pkghdr) |
+ dh_installdeb -p$(pkghdr) |
+ dh_gencontrol -p$(pkghdr) |
+ dh_md5sums -p$(pkghdr) |
+ dh_builddeb -p$(pkghdr) |
+ |
+ifneq ($(skipsub),true) |
+ @set -e; for sub in $($(*)_sub); do \ |
+ pkg=$(bin_pkg_name)-$$sub; \ |
+ dh_installchangelogs -p$$pkg; \ |
+ dh_installdocs -p$$pkg; \ |
+ dh_compress -p$$pkg; \ |
+ dh_fixperms -p$$pkg; \ |
+ dh_shlibdeps -p$$pkg; \ |
+ dh_installdeb -p$$pkg; \ |
+ dh_gencontrol -p$$pkg; \ |
+ dh_md5sums -p$$pkg; \ |
+ dh_builddeb -p$$pkg; \ |
+ done |
+endif |
+ |
+ifneq ($(skipdbg),true) |
+ dh_installchangelogs -p$(dbgpkg) |
+ dh_installdocs -p$(dbgpkg) |
+ dh_compress -p$(dbgpkg) |
+ dh_fixperms -p$(dbgpkg) |
+ dh_installdeb -p$(dbgpkg) |
+ dh_gencontrol -p$(dbgpkg) |
+ dh_md5sums -p$(dbgpkg) |
+ dh_builddeb -p$(dbgpkg) |
+ |
+ # Hokay...here's where we do a little twiddling... |
+ # Renaming the debug package prevents it from getting into |
+ # the primary archive, and therefore prevents this very large |
+ # package from being mirrored. It is instead, through some |
+ # archive admin hackery, copied to http://ddebs.ubuntu.com. |
+ # |
+ mv ../$(dbgpkg)_$(release)-$(revision)_$(arch).deb \ |
+ ../$(dbgpkg)_$(release)-$(revision)_$(arch).ddeb |
+ grep -v '^$(dbgpkg)_.*$$' debian/files > debian/files.new |
+ mv debian/files.new debian/files |
+ # Now, the package wont get into the archive, but it will get put |
+ # into the debug system. |
+endif |
+ |
+$(stampdir)/stamp-flavours: |
+ @echo $(flavours) > $@ |
+ |
+binary-debs: $(stampdir)/stamp-flavours $(addprefix binary-,$(flavours)) \ |
+ binary-arch-headers |
+ |
+build-arch: $(addprefix build-,$(flavours)) |
+ |
+binary-arch-deps = binary-debs |
+ifeq ($(AUTOBUILD),) |
+binary-arch-deps += binary-udebs |
+endif |
+binary-arch: $(binary-arch-deps) |