Pbuilder tweaks, and first set of packages
- Move the bind mount of $ROOTDIR in docker to /rootdir. Pbuilder uses
/build as its directory, and mounting over that doesn't seem like the
best idea.
- As part of the make-pbuilder-package-target, append the target name to
a list of targets. That list gets added to the packages target
- Add another argument to make-pbuilder-package-target, that points to
the source repository. This folder, as well as the debian metadata will
be staged in a different directory, where pdebuild runs. This gives
clean source packages that can be rebuilt outside of our source tree.
Change-Id: I38a1d75bdb3f15660a391c13d7a6b912ce66e774
diff --git a/docker.mk b/docker.mk
index 8470a9d..b8d93f8 100644
--- a/docker.mk
+++ b/docker.mk
@@ -42,12 +42,12 @@
docker load -i $(ROOTDIR)/cache/aiy-board-builder.tar
docker run --rm --privileged --tty \
-v /dev\:/dev \
- -v $(ROOTDIR)\:/build \
+ -v $(ROOTDIR)\:/rootdir \
-v $(TARBALL_FETCH_ROOT_DIRECTORY)\:/tarballs \
-v $(PREBUILT_DOCKER_ROOT)\:/docker \
-v $(PREBUILT_MODULES_ROOT)\:/modules \
-v $(FETCH_PBUILDER_DIRECTORY)\:/pbuilder \
- -w /build \
+ -w /rootdir \
-e "DEBOOTSTRAP_FETCH_TARBALL=$(DEBOOTSTRAP_FETCH_TARBALL)" \
-e "ROOTFS_FETCH_TARBALL=$(ROOTFS_FETCH_TARBALL)" \
-e "ARM64_BUILDER_FETCH_TARBALL=$(ARM64_BUILDER_FETCH_TARBALL)" \
diff --git a/packages.mk b/packages.mk
index 370280a..9fc941f 100644
--- a/packages.mk
+++ b/packages.mk
@@ -63,14 +63,22 @@
--extrapackages debhelper
endif
+# $1: package name
+# $2: source location (relative to ROOTDIR)
+# $3: space separated list of dependencies (may be empty)
define make-pbuilder-package-target
$1: $(PRODUCT_OUT)/.$1-pbuilder
+PBUILDER_TARGETS += $1
$(PRODUCT_OUT)/.$1-pbuilder: \
- $(foreach package,$2,$(PRODUCT_OUT)/.$(package)-pbuilder) \
+ $(foreach package,$3,$(PRODUCT_OUT)/.$(package)-pbuilder) \
$(shell find $(ROOTDIR)/packages/$1 -type f) \
| $(ROOTDIR)/cache/base.tgz
- mkdir -p $(PRODUCT_OUT)
- cd $(ROOTDIR)/packages/$1; pdebuild \
+
+ mkdir -p $(PRODUCT_OUT)/obj/$1
+ rsync -rl --exclude .git/ $(ROOTDIR)/$2/* $(PRODUCT_OUT)/obj/$1
+ cp -r $(ROOTDIR)/packages/$1/debian $(PRODUCT_OUT)/obj/$1
+
+ cd $(PRODUCT_OUT)/obj/$1; pdebuild \
--buildresult $(PRODUCT_OUT) -- \
--basetgz $(ROOTDIR)/cache/base.tgz
sudo touch $(PRODUCT_OUT)/.$1-pbuilder
@@ -86,6 +94,11 @@
# Generate EQUIVS targets
$(foreach package,$(EQUIVS_PACKAGE_NAMES),$(eval $(call make-equivs-package-target,$(package))))
-packages:: $(foreach package,$(ALL_PACKAGE_NAMES),$(PRODUCT_OUT)/.$(package))
+$(eval $(call make-pbuilder-package-target,imx-atf,imx-atf))
+$(eval $(call make-pbuilder-package-target,imx-firmware,imx-firmware))
+$(eval $(call make-pbuilder-package-target,imx-mkimage,tools/imx-mkimage))
+$(eval $(call make-pbuilder-package-target,uboot-imx,uboot-imx,imx-atf imx-firmware imx-mkimage))
+
+packages:: $(foreach package,$(ALL_PACKAGE_NAMES),$(PRODUCT_OUT)/.$(package)) $(PBUILDER_TARGETS)
.PHONY:: packages
diff --git a/pbuilderrc b/pbuilderrc
index 9ca29a6..8d7db21 100644
--- a/pbuilderrc
+++ b/pbuilderrc
@@ -8,4 +8,4 @@
PBUILDERSATISFYDEPENDSCMD=/usr/lib/pbuilder/pbuilder-satisfydepends-apt
HOOKDIR="/var/cache/pbuilder/hooks"
export DEPSBASE=$PRODUCT_OUT
-BINDMOUNTS=$DEPSBASE
+BINDMOUNTS="$DEPSBASE $ROOTDIR"