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"