build: Fix the caching mechanisms
The debootstrap tarball and the rootfs image caching
routines weren't functioning right and would cause
multiple debootstrap invocations, as well as causing
a total overwrite of the rootfs.img.
Change-Id: Ib55e2df1c5b113ef20d2a26817dbd548752b7faf
diff --git a/debootstrap.mk b/debootstrap.mk
index d43eb71..0aa21f2 100644
--- a/debootstrap.mk
+++ b/debootstrap.mk
@@ -7,27 +7,21 @@
DEBOOTSTRAP_TARBALL_REVISION ?= latest
DEBOOTSTRAP_FETCH_TARBALL ?= true
-validate-bootstrap-tarball:
ifeq ($(DEBOOTSTRAP_FETCH_TARBALL),true)
- make -f $(ROOTDIR)/build/debootstrap.mk fetch-bootstrap-tarball
+validate-bootstrap-tarball: fetch-bootstrap-tarball
else
- make -f $(ROOTDIR)/build/debootstrap.mk make-bootstrap-tarball
+validate-bootstrap-tarball: $(DEBOOTSTRAP_TARBALL)
endif
cd $(ROOTDIR)/cache && \
sha256sum -c $(DEBOOTSTRAP_TARBALL_SHA256)
-fetch-bootstrap-tarball:
+fetch-bootstrap-tarball: $(TARBALL_FETCH_ROOT_DIRECTORY)/$(DEBOOTSTRAP_TARBALL_REVISION)/debootstrap.tgz
mkdir -p $(ROOTDIR)/cache
- cp \
- $(TARBALL_FETCH_ROOT_DIRECTORY)/$(DEBOOTSTRAP_TARBALL_REVISION)/debootstrap.tgz \
- $(TARBALL_FETCH_ROOT_DIRECTORY)/$(DEBOOTSTRAP_TARBALL_REVISION)/debootstrap.tgz.sha256sum
- $(ROOTDIR)/cache
+ cp $< $<.sha256sum $(ROOTDIR)/cache
-make-bootstrap-sha256sum: $(DEBOOTSTRAP_TARBALL)
- cd $(ROOTDIR)/cache && \
- sha256sum $(notdir $(DEBOOTSTRAP_TARBALL)) > $(DEBOOTSTRAP_TARBALL_SHA256)
+make-bootstrap-tarball: $(DEBOOTSTRAP_TARBALL)
-make-bootstrap-tarball: $(ROOTDIR)/build/debootstrap.mk $(ROOTDIR)/build/preamble.mk
+$(DEBOOTSTRAP_TARBALL): $(ROOTDIR)/build/debootstrap.mk $(ROOTDIR)/build/preamble.mk
mkdir -p $(PRODUCT_OUT)/obj/DEBOOTSTRAP
mkdir -p $(ROOTDIR)/cache
/usr/sbin/debootstrap \
@@ -37,6 +31,10 @@
stretch $(PRODUCT_OUT)/obj/DEBOOTSTRAP
+make -f $(ROOTDIR)/build/debootstrap.mk make-bootstrap-sha256sum
+make-bootstrap-sha256sum: $(DEBOOTSTRAP_TARBALL)
+ cd $(ROOTDIR)/cache && \
+ sha256sum $(notdir $(DEBOOTSTRAP_TARBALL)) > $(DEBOOTSTRAP_TARBALL_SHA256)
+
targets::
@echo "validate-bootstrap-tarball - validates the bootstrap tarball matches the SHA-256 sums"
@echo "make-bootstrap-tarball - makes the debootstrap tarball for faster rootfs building"
diff --git a/rootfs.mk b/rootfs.mk
index db5421d..e1e0475 100644
--- a/rootfs.mk
+++ b/rootfs.mk
@@ -28,7 +28,12 @@
video
rootfs: $(PRODUCT_OUT)/rootfs.img
-rootfs_raw: $(ROOTFS_RAW_IMG)
+
+ifeq ($(ROOTFS_FETCH_TARBALL),true)
+rootfs_raw: fetch-rootfs
+else
+rootfs_raw: build-rootfs
+endif
gpu:
sudo rsync -rl $(GPU_DIR)/gpu-core/ $(ROOTFS_DIR)
@@ -64,14 +69,9 @@
sudo $(ROOTDIR)/build/fix_permissions.sh -p $(ROOTDIR)/build/permissions.txt -t $(ROOTFS_DIR)
-$(ROOTFS_RAW_IMG): $(ROOTDIR)/build/debootstrap.mk $(ROOTDIR)/build/preamble.mk
-ifeq ($(ROOTFS_FETCH_TARBALL),true)
- make -f $(ROOTDIR)/build/rootfs.mk fetch-rootfs
-else
- make -f $(ROOTDIR)/build/rootfs.mk build-rootfs
-endif
+build-rootfs: $(ROOTFS_RAW_IMG)
-build-rootfs: $(DEBOOTSTRAP_TARBALL) $(ROOTDIR)/build/debootstrap.mk $(ROOTDIR)/build/preamble.mk
+$(ROOTFS_RAW_IMG): $(ROOTDIR)/build/debootstrap.mk $(ROOTDIR)/build/preamble.mk $(ROOTDIR)/build/rootfs.mk $(DEBOOTSTRAP_TARBALL)
+make -f $(ROOTDIR)/build/debootstrap.mk validate-bootstrap-tarball
mkdir -p $(ROOTFS_DIR)
rm -f $(ROOTFS_RAW_IMG)
@@ -90,7 +90,11 @@
sudo chown ${USER} $(ROOTFS_RAW_IMG)
sha256sum $(ROOTFS_RAW_IMG) > $(ROOTFS_RAW_IMG).sha256sum
+ifeq ($(ROOTFS_FETCH_TARBALL),true)
+$(ROOTFS_PATCHED_IMG): fetch-rootfs
+else
$(ROOTFS_PATCHED_IMG): $(ROOTFS_RAW_IMG)
+endif
cp -r $(ROOTFS_RAW_IMG) $(ROOTFS_PATCHED_IMG)
mkdir -p $(ROOTFS_DIR)
-sudo umount $(ROOTFS_DIR)
@@ -109,12 +113,9 @@
$(PRODUCT_OUT)/rootfs.img: $(HOST_OUT)/bin/img2simg $(ROOTFS_PATCHED_IMG)
$(HOST_OUT)/bin/img2simg $(ROOTFS_PATCHED_IMG) $(PRODUCT_OUT)/rootfs.img
-fetch-rootfs:
+fetch-rootfs: $(TARBALL_FETCH_ROOT_DIRECTORY)/$(ROOTFS_REVISION)/rootfs.raw.img
mkdir -p $(dir $(ROOTFS_RAW_IMG))
- cp \
- $(TARBALL_FETCH_ROOT_DIRECTORY)/$(ROOTFS_REVISION)/rootfs.raw.img \
- $(TARBALL_FETCH_ROOT_DIRECTORY)/$(ROOTFS_REVISION)/rootfs.raw.img.sha256sum \
- $(dir $(ROOTFS_RAW_IMG))
+ cp $< $<.sha256sum $(dir $(ROOTFS_RAW_IMG))
clean::
if mount |grep -q $(ROOTFS_DIR); then sudo umount -R $(ROOTFS_DIR); fi