diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 32 |
1 files changed, 18 insertions, 14 deletions
@@ -118,9 +118,10 @@ update-submodules: | |||
118 | install-submodules: cmd=install | 118 | install-submodules: cmd=install |
119 | install-submodules: update-submodules $(INSTALL_SUBMODULES) | 119 | install-submodules: update-submodules $(INSTALL_SUBMODULES) |
120 | 120 | ||
121 | rootfs = rootfs/_filesystem/samizdat.seed.btrfs | 121 | rootfsdir = rootfs/_filesystem |
122 | patchfs = $(patsubst %.seed.btrfs,%.patch.btrfs,$(rootfs)) | 122 | rootfs = $(rootfsdir)/samizdat.seed.btrfs |
123 | rootfs_verity = $(addsuffix .verity,$(rootfs) $(patchfs)) | 123 | patchfs = $(rootfsdir)/samizdat.patch.btrfs |
124 | rootfs_verity = $(addprefix _build/,$(addsuffix .verity,$(notdir $(rootfs) $(patchfs)))) | ||
124 | 125 | ||
125 | .PHONY: rootfs rootfs-deps | 126 | .PHONY: rootfs rootfs-deps |
126 | rootfs-deps: | 127 | rootfs-deps: |
@@ -129,7 +130,7 @@ rootfs-deps: | |||
129 | 130 | ||
130 | btrfs_images = $(rootfs) $(patchfs) | 131 | btrfs_images = $(rootfs) $(patchfs) |
131 | rootfs-clean: | 132 | rootfs-clean: |
132 | make -C rootfs clean all | 133 | make -C rootfs clean |
133 | 134 | ||
134 | rootfs: rootfs-deps $(btrfs_images) $(rootfs_verity) | 135 | rootfs: rootfs-deps $(btrfs_images) $(rootfs_verity) |
135 | sudo mkdir -p /srv/nbd | 136 | sudo mkdir -p /srv/nbd |
@@ -138,9 +139,8 @@ ifneq (,$(patchfs)) | |||
138 | sudo ln -sf "$$PWD"/$(patchfs) /srv/nbd/samizdat.patch.btrfs | 139 | sudo ln -sf "$$PWD"/$(patchfs) /srv/nbd/samizdat.patch.btrfs |
139 | endif | 140 | endif |
140 | 141 | ||
141 | FORCE: | 142 | rootfs/%.btrfs: |
142 | $(btrfs_images): FORCE | 143 | $(MAKE) -C rootfs $(@:rootfs/%=%) |
143 | $(MAKE) -C rootfs $(notdir $@) | ||
144 | 144 | ||
145 | boot: rootfs | 145 | boot: rootfs |
146 | sudo update-initramfs -u | 146 | sudo update-initramfs -u |
@@ -154,8 +154,10 @@ get_min_size="$$(btrfs inspect-internal min-dev-size --id 1 $@.mnt | (read b _; | |||
154 | 154 | ||
155 | verity_root_hash = $(shell sed -ne 's/^Root hash:[ \t]*//p' $<) | 155 | verity_root_hash = $(shell sed -ne 's/^Root hash:[ \t]*//p' $<) |
156 | 156 | ||
157 | %.verity.log: %.verity | 157 | _build: |
158 | %.verity: % | 158 | mkdir $@ |
159 | |||
160 | _build/%.verity: rootfs/_filesystem/% | _build | ||
159 | rm -f $@~tmp | 161 | rm -f $@~tmp |
160 | sudo veritysetup format $^ $@~tmp > $@.log~tmp | 162 | sudo veritysetup format $^ $@~tmp > $@.log~tmp |
161 | sudo chmod 644 $@~tmp | 163 | sudo chmod 644 $@~tmp |
@@ -164,16 +166,13 @@ verity_root_hash = $(shell sed -ne 's/^Root hash:[ \t]*//p' $<) | |||
164 | 166 | ||
165 | root_hash = $(shell sed -ne 's/^Root hash: *//p' < $<.log) | 167 | root_hash = $(shell sed -ne 's/^Root hash: *//p' < $<.log) |
166 | 168 | ||
167 | veritymount: $(rootfs).verity.log | 169 | veritymount: _build/$(notdir $(rootfs)).verity.log |
168 | @sudo veritysetup remove samizverity >/dev/null 2>&1 || true | 170 | @sudo veritysetup remove samizverity >/dev/null 2>&1 || true |
169 | sudo veritysetup create samizverity $(basename $(basename $<)) \ | 171 | sudo veritysetup create samizverity $(basename $(basename $<)) \ |
170 | $(basename $<) \ | 172 | $(basename $<) \ |
171 | $(verity_root_hash) | 173 | $(verity_root_hash) |
172 | sudo veritysetup remove samizverity | 174 | sudo veritysetup remove samizverity |
173 | 175 | ||
174 | rootfs/%.btrfs: | ||
175 | $(SUDO_MAKE) -C rootfs $(notdir $@) | ||
176 | |||
177 | debian_dist := $(shell . /etc/os-release && printf %s $$VERSION_CODENAME) | 176 | debian_dist := $(shell . /etc/os-release && printf %s $$VERSION_CODENAME) |
178 | 177 | ||
179 | stale = [ ! -e $@ ] || [ $$(( $$(date +%s) - $$(date -r $@ +%s) )) -gt 36000 ] | 178 | stale = [ ! -e $@ ] || [ $$(( $$(date +%s) - $$(date -r $@ +%s) )) -gt 36000 ] |
@@ -182,7 +181,12 @@ apt = $(shell which apt || which apt-get) | |||
182 | 181 | ||
183 | .PHONY: apt-get-update-stamp | 182 | .PHONY: apt-get-update-stamp |
184 | apt-get-update-stamp: | 183 | apt-get-update-stamp: |
185 | @if $(stale); then set -x; sudo $(apt) update && touch $@; fi | 184 | @if $(stale) \ |
185 | then \ | ||
186 | set -x; \ | ||
187 | sudo dpkg --add-architecture i386; \ | ||
188 | sudo $(apt) update && touch $@; \ | ||
189 | fi | ||
186 | 190 | ||
187 | rootfs/seed.iso: $(rootfs) $(if $(VERITY),$(addprefix $(rootfs),.verity .verity.log)) | 191 | rootfs/seed.iso: $(rootfs) $(if $(VERITY),$(addprefix $(rootfs),.verity .verity.log)) |
188 | rm -f $@~tmp | 192 | rm -f $@~tmp |