summaryrefslogtreecommitdiff
path: root/Makefile
blob: 1d67aa70d6b6fb57c7b3de6a2b526f04aa3d2c82 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
prefix?=/usr/local

cc_files=wait_for_files samizdat-pinentry
cpp_files=dynmenu

compiled_programs=${cc_files} ${cpp_files}

CC=gcc -std=gnu99
CFLAGS=-Os

all: samizdat-paths.sh ${compiled_programs}

dynmenu: src/dynmenu.cpp
	$(CXX) $(CFLAGS) $< -o $@ -lcurses
samizdat-pinentry: src/samizdat-pinentry.c
	$(CC) $(CFLAGS)  $< -o $@ -lcurses
wait_for_files: src/wait_for_files.c
	$(CC) $(CFLAGS)  $< -o $@

bin_programs=$(addprefix src/, xorriso-usb.sh btrfs-functions.sh btrfs-receive-root.sh btrfs-send-root.sh var.sh grub-efi.sh keygen.sh initrd.sh qemu.sh dnsmasq-dhcp-script.sh samizdat-password-agent samizdat-gpg-agent publish-ip.sh selfstrap) samizdat-paths.sh ${cc_files} ${btrfs_utils}

btrfs_utils=$(addprefix src/btrfs-utils/, btarfs btrfs-shrink with-btrfs-seed)

initrd_files:=$(wildcard src/initrd/*) dynmenu samizdat-pinentry wait_for_files
initramfs_conf_files:=$(wildcard initramfs-tools/*)

isolinux_files:=$(wildcard isolinux/*)

clean:
	rm -f samizdat-paths.sh ${compiled_programs}

.PHONY: samizdat-paths.sh all clean
samizdat-paths.sh: src/samizdat-paths.in
	@sed -e "s?PREFIX?$(prefix)?g" $< > $@
include samizdat-paths.sh

install-configuration:
ifndef instdir
	$(error "You must specify instdir, for safety.")
else
	install -DT  conf/dnsmasq.conf              ${instdir}/etc/dnsmasq.conf
	install -DT  conf/interfaces.d_eth0         ${instdir}/etc/network/interfaces.d/eth0
	install -DT  conf/network_if-up.d_samizdat  ${instdir}/etc/network/if-up.d/samizdat
	install -DT  conf/postfix_main.cf           ${instdir}/etc/postfix/main.cf
	install -DT  conf/torrc                     ${instdir}/etc/tor/torrc
	ln -sf /var/cache/kiki/config/tor/hostname  ${instdir}/etc/mailname
	ln -sf /var/cache/kiki/config/tor/hostname  ${instdir}/etc/hostname
endif

fsmgr := $(shell which fsmgr)

rootfs:
	cd fsmgr/samizdat && sudo $(fsmgr) build samizdat

boot: rootfs
	sudo qemu.sh

install: ${bin_programs} samizdat-paths.sh ${compiled_programs}
	install ${bin_programs} ${instdir}${samizdat_bindir}
	mkdir -p ${instdir}${samizdat_initrd_files_dir}
	mkdir -p ${instdir}${samizdat_child_dir}
	mkdir -p ${instdir}${samizdat_grub_efi_dir}
	mkdir -p ${instdir}${samizdat_initramfs_conf_dir}
	mkdir -p ${instdir}${samizdat_isolinux_dir}
	mkdir -p ${instdir}${samizdat_linux_dir}
	cp -r ${initrd_files} ${instdir}${samizdat_initrd_files_dir}
	cp -r ${initramfs_conf_files} ${instdir}${samizdat_initramfs_conf_dir}
	cp -r ${isolinux_files} ${instdir}${samizdat_isolinux_dir}