summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorGordon GECOS <u@adam>2023-11-22 16:07:32 -0500
committerGordon GECOS <u@adam>2023-11-22 16:14:17 -0500
commite015b8cbe957a1913f178dc5e4ba166972f79320 (patch)
treeb11b5af7586d05d2bd064ea3b4c14612897b6e02 /Makefile
parent81fdd7a90cc0dfdc2bc2744d41a346c0d255a6af (diff)
build system cleanup
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile52
1 files changed, 30 insertions, 22 deletions
diff --git a/Makefile b/Makefile
index ce0e826..8cd7130 100644
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,11 @@
1prefix?=/usr/local 1prefix?=/usr/local
2bindir = $(prefix)/bin
3initrd_bindir = $(prefix)/lib/samizdat/initrd/bin
2 4
3cc_files=wait_for_files samizdat-pinentry krng-add-entropy samizdat-ficlonerange 5cc_files=wait_for_files samizdat-pinentry krng-add-entropy samizdat-ficlonerange
4cpp_files=dynmenu 6cpp_files=dynmenu
5 7
6compiled_programs=${cc_files} ${cpp_files} 8compiled_programs = $(addprefix _build/, ${cc_files} ${cpp_files})
7 9
8CC=gcc -std=gnu99 10CC=gcc -std=gnu99
9CFLAGS=-Os 11CFLAGS=-Os
@@ -18,7 +20,7 @@ all: ${compiled_programs} ${SUBMODULES}
18install-stack: 20install-stack:
19 curl -sSL https://get.haskellstack.org/ | sh 21 curl -sSL https://get.haskellstack.org/ | sh
20stack: 22stack:
21 @which stack >/dev/null || make install-stack 23 @command -v stack >/dev/null || make install-stack
22 24
23build-deps: build-deps-stamp 25build-deps: build-deps-stamp
24build-deps-stamp: build-deps.control 26build-deps-stamp: build-deps.control
@@ -26,25 +28,27 @@ build-deps-stamp: build-deps.control
26 sudo ./src/mk-build-deps --root-cmd sudo build-deps.control --install --remove 28 sudo ./src/mk-build-deps --root-cmd sudo build-deps.control --install --remove
27 touch $@ 29 touch $@
28 30
29dynmenu: src/dynmenu.cpp | build-deps 31_build/dynmenu: src/dynmenu.cpp | build-deps
30 $(CXX) $(CFLAGS) $< -o $@ -lcurses 32 $(CXX) $(CFLAGS) $< -o $@ -lcurses
31samizdat-pinentry: src/samizdat-pinentry.c | build-deps 33_build/samizdat-pinentry: src/samizdat-pinentry.c | build-deps
32 $(CC) $(CFLAGS) $< -o $@ -lcurses 34 $(CC) $(CFLAGS) $< -o $@ -lcurses
33krng-add-entropy: src/krng-add-entropy.c | build-deps 35_build/krng-add-entropy: src/krng-add-entropy.c | build-deps
34 $(CC) $(CFLAGS) $< -o $@ 36 $(CC) $(CFLAGS) $< -o $@
35wait_for_files: src/wait_for_files.c | build-deps 37_build/wait_for_files: src/wait_for_files.c | build-deps
36 $(CC) $(CFLAGS) $< -o $@ 38 $(CC) $(CFLAGS) $< -o $@
37%: src/%.c | build-deps 39_build/%: src/%.c | build-deps
38 $(CC) $(CFLAGS) $< -o $@ 40 $(CC) $(CFLAGS) $< -o $@
39 41
40src_bin_programs = btrfs-functions.sh var.sh usb partvi 42src_bin_programs = btrfs-functions.sh var.sh usb partvi
41 43
42bin_programs=$(addprefix src/, $(src_bin_programs)) ${cc_files} ${btrfs_utils} 44bin_programs=$(addprefix src/, $(src_bin_programs)) ${btrfs_utils}
43 45
44btrfs_utils=$(addprefix src/btrfs-utils/, btarfs with-btrfs-seed) 46btrfs_utils=$(addprefix src/btrfs-utils/, btarfs with-btrfs-seed)
45 47
46initrd_files:=$(wildcard src/initrd/*) dynmenu wait_for_files 48initrd_files = $(addprefix src/initrd/,btrfs-create.sh common.sh firstboot.service grok-block \
47initramfs_conf_files:=$(wildcard initramfs-tools/*) 49loop-layer.sh make-total-destroy mdadm-dup.sh menu-select patchroot.sh)
50
51initrd_files += $(addprefix _build/, dynmenu wait_for_files)
48 52
49isolinux_files:=$(wildcard isolinux/*) 53isolinux_files:=$(wildcard isolinux/*)
50 54
@@ -203,7 +207,7 @@ rootfs/seed.iso: $(rootfs) $(if $(VERITY),$(addprefix $(rootfs),.verity .verity.
203 207
204.PHONY: install 208.PHONY: install
205install: 209install:
206 $(SUDO_MAKE) install-stamp 210 $(SUDO_MAKE) install-stamp initrd-install-stamp
207 211
208build-submodules-stamp: build-submodules 212build-submodules-stamp: build-submodules
209 touch $@ 213 touch $@
@@ -211,28 +215,32 @@ build-submodules-stamp: build-submodules
211install-submodules-stamp: install-submodules 215install-submodules-stamp: install-submodules
212 touch $@ 216 touch $@
213 217
214bindir = /usr/local/bin 218initrd_deps = $(initrd_conf_files) $(initrd_files)
219
220initrd-stamp: initrd-install-stamp
221 sudo update-initramfs -u
222 touch $@
215 223
216install-bin-programs: ${bin_programs} 224initrd-install-stamp: $(initrd_deps)
217 install -D -p -t ${instdir}${bindir} ${bin_programs} 225 install -D -t $(initrd_bindir) -- $(initrd_files)
226 install -D -t /etc/initramfs-tools/hooks -- initramfs-tools/hooks/samizdat
227 install -D -t /etc/initramfs-tools/scripts -- initramfs-tools/scripts/samizdat
228 touch $@
218 229
219CP=cp --preserve=timestamps -r 230conf_files = conf/bookworm.list conf/eschew-unstable.pref conf/grub.default
231initrd_conf_files = initramfs-tools/hooks/samizdat initramfs-tools/scripts/samizdat
220 232
221defaults_conf_files = conf/grub.default 233install-stamp: $(conf_files) ${bin_programs}
222initramfs_conf_files = $(addprefix initramfs-tools/,hooks/samizdat scripts/samizdat) 234 install -D -p -t ${instdir}${bindir} -- ${bin_programs}
223install-stamp: install-bin-programs ${compiled_programs}
224 rm -f /etc/apt/apt.conf.d/default-release 235 rm -f /etc/apt/apt.conf.d/default-release
225 install -m644 -t /etc/apt/preferences.d -- conf/eschew-unstable.pref 236 install -m644 -t /etc/apt/preferences.d -- conf/eschew-unstable.pref
226 install -m644 -t /etc/apt/sources.list.d -- conf/bookworm.list 237 install -m644 -t /etc/apt/sources.list.d -- conf/bookworm.list
227 install -m644 --backup=t -T -- conf/grub.default /etc/default/grub 238 install -m644 --backup=t -T -- conf/grub.default /etc/default/grub
228 install -t /etc/initramfs-tools/hooks -- initramfs-tools/hooks/samizdat
229 install -t /etc/initramfs-tools/scripts -- initramfs-tools/scripts/samizdat
230 touch $@ 239 touch $@
231 240
232.PHONY: update upgrade up upgrade-key initrd 241.PHONY: update upgrade up upgrade-key initrd
233 242
234initrd: install 243initrd: initrd-stamp
235 sudo update-initramfs -u
236 244
237update: apt-get-update-stamp 245update: apt-get-update-stamp
238 git pull --ff-only --recurse-submodules 246 git pull --ff-only --recurse-submodules