summaryrefslogtreecommitdiff
path: root/Makefile
blob: 7cfdda60dc9446f08f7acb965a15c4b0e0f18fd2 (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
69
70
#
# SPDX-License-Identifier: GPL-3.0-or-later

V=$(shell git describe --exact-match)

INSTALL_FILES=$(wildcard parabolaiso/initcpio/install/*)
HOOKS_FILES=$(wildcard parabolaiso/initcpio/hooks/*)
SCRIPT_FILES=$(wildcard parabolaiso/initcpio/script/*)

INSTALL_DIR=$(DESTDIR)/usr/lib/initcpio/install
HOOKS_DIR=$(DESTDIR)/usr/lib/initcpio/hooks
SCRIPT_DIR=$(DESTDIR)/usr/lib/initcpio

DOC_FILES=$(wildcard docs/*) $(wildcard *.rst)

DOC_DIR=$(DESTDIR)/usr/share/doc/parabolaiso


all:

check: lint

lint:
	shellcheck -s bash parabolaiso/mkparabolaiso \
	                   scripts/run_parabolaiso.sh \
	                   $(INSTALL_FILES) \
	                   $(wildcard configs/*/build.sh) \
	                   configs/releng/airootfs/root/.automated_script.sh \
	                   configs/releng/airootfs/usr/local/bin/choose-mirror \
	                   configs/releng-openrc/airootfs/root/.automated_script.sh \
	                   configs/releng-openrc/airootfs/etc/local.d/pacman-init.start \
	                   configs/releng-openrc/airootfs/etc/NetworkManager/dispatcher.d/reflector \
	                   configs/lxde-openrc/airootfs/root/.automated_script.sh \
	                   configs/lxde-openrc/airootfs/root/.keymap.sh \
	                   configs/lxde-openrc/airootfs/root/.language.sh \
	                   configs/lxde-openrc/airootfs/etc/local.d/pacman-init.start \
	                   configs/lxde-openrc/airootfs/etc/NetworkManager/dispatcher.d/reflector \
	                   configs/talkingparabola/airootfs/root/.automated_script.sh \
	                   configs/talkingparabola/airootfs/usr/bin/livecd-alsa-unmuter \
	                   configs/talkingparabola/airootfs/usr/bin/pick-a-card \
	                   configs/talkingparabola/airootfs/usr/bin/talk-to-me
	shellcheck -s dash $(HOOKS_FILES) $(SCRIPT_FILES)

install: install-program install-examples install-doc

install-program:
	install -vDm 755 parabolaiso/mkparabolaiso -t "$(DESTDIR)/usr/bin/"
	install -vDm 755 scripts/run_parabolaiso.sh "$(DESTDIR)/usr/bin/run_parabolaiso"

install-initcpio:
	install -d $(SCRIPT_DIR) $(HOOKS_DIR) $(INSTALL_DIR)
	install -m 755 -t $(SCRIPT_DIR) $(SCRIPT_FILES)
	install -m 644 -t $(HOOKS_DIR) $(HOOKS_FILES)
	install -m 644 -t $(INSTALL_DIR) $(INSTALL_FILES)

install-examples:
	install -d -m 755 $(DESTDIR)/usr/share/parabolaiso/
	cp -a --no-preserve=ownership configs $(DESTDIR)/usr/share/parabolaiso/

install-doc:
	install -vDm 644 $(DOC_FILES) -t $(DOC_DIR)

dist:
	git archive --format=tar --prefix=parabolaiso-$(V)/ $(V) | gzip -9 > parabolaiso-$(V).tar.gz
	gpg --detach-sign --use-agent parabolaiso-$(V).tar.gz

upload:
	scp parabolaiso-$(V).tar.gz parabolaiso-$(V).tar.gz.sig repo.parabola.nu:/srv/repo/main/other/parabolaiso

.PHONY: check install install-program install-initcpio install-examples install-doc lint dist upload