aboutsummaryrefslogtreecommitdiff
path: root/makefile
blob: 1cfe32e6cb5cb5d455db93476dadcf2699f3220b (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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
TL_YEAR?=2024
PREFIX?=/usr/local/texlive/${TL_YEAR}/bin/custom
BINREPO=https://www.ekdosis.org/texlive
TMPDIR!=mktemp -d
OPENBSD_VERSION!=sysctl -n kern.version | awk 'FNR == 1 { print $$2 }' | sed 's/\.//'
TLBINPATH!!=which latex 2>/dev/null | sed 's/\/latex$$//'
TMPSOURCE?=""
UPDATING!=curl -s ${BINREPO}/status.txt | grep updating= | sed 's/.*=//'

DONT_TOUCH_DIRS:=${HOME}/bin /bin /sbin /usr/bin /usr/sbin /usr/X11R6/bin /usr/local/bin /usr/local/sbin


.MAIN: update

fetch:
.if "${UPDATING}" == "yes"
	@echo "The binaries are being updated.  Please re-run this command later."
.else
	curl ${BINREPO}/amd64-openbsd${OPENBSD_VERSION}.tar.xz \
		-o ${TMPDIR}/amd64-openbsd${OPENBSD_VERSION}.tar.xz
	curl ${BINREPO}/amd64-openbsd${OPENBSD_VERSION}.tar.xz.asc \
		-o ${TMPDIR}/amd64-openbsd${OPENBSD_VERSION}.tar.xz.asc
	gpg --verify ${TMPDIR}/amd64-openbsd${OPENBSD_VERSION}.tar.xz.asc
	unxz ${TMPDIR}/amd64-openbsd${OPENBSD_VERSION}.tar.xz
	mkdir ${TMPDIR}/bin \
		&& tar xf ${TMPDIR}/amd64-openbsd${OPENBSD_VERSION}.tar \
		-C ${TMPDIR}/bin
	@echo ""
	@echo "Looks good."
	@echo "Now do this to install TeX Live with custom binaries:"
	@echo "  cd /path/to/install-tl"
	@echo "  ./install-tl --custom-bin=${TMPDIR}/bin"
.endif

update:
.if "${TLBINPATH}" == ""
	@echo "There is nothing to update.  Aborting."
	exit 1
.endif
.if "${UPDATING}" == "yes"
	@echo "The binaries are being updated.  Please re-run this command later."
.else
	curl ${BINREPO}/amd64-openbsd${OPENBSD_VERSION}.tar.xz \
		-o ${TMPDIR}/amd64-openbsd${OPENBSD_VERSION}.tar.xz
	curl ${BINREPO}/amd64-openbsd${OPENBSD_VERSION}.tar.xz.asc \
		-o ${TMPDIR}/amd64-openbsd${OPENBSD_VERSION}.tar.xz.asc
	gpg --verify ${TMPDIR}/amd64-openbsd${OPENBSD_VERSION}.tar.xz.asc
.for DIR in ${DONT_TOUCH_DIRS}
.if "${DIR}" == ${TLBINPATH}
	@echo ""
	@echo "This program will never affect a system directory such as ${TLBINPATH}"
	@echo "To complete the update, you must replace by hand your binaries"
	@echo "with those in ${TMPDIR}/amd64-openbsd${OPENBSD_VERSION}.tar.xz"
	@echo "Exiting now."
	exit 1
.endif
.endfor
.if "${PREFIX}" == ${TLBINPATH}
	@echo ""
	@echo "Looks good."
	@echo "Now do this to update the binaries:"
	@echo "1. Remove the binaries that are currently installed:"
	@echo "   doas rm ${PREFIX}/*"
	@echo "2. Run this command:"
	@echo "   make TMPSOURCE=${TMPDIR} install"
.else
	@echo ""
	@echo "Looks like your TL binaries are in ${TLBINPATH}"
	@echo "instead of the expected ${PREFIX}."
	@echo "To complete the update, you must remove by hand your binaries."
	@echo "******************************************************************************"
	@echo "* CAUTION: You must first ensure that ${TLBINPATH} contains nothing"
	@echo "* but the TeX Live binaries, otherwise you may damage your system permanently."
	@echo "******************************************************************************"
	@echo "Then do:"
	@echo "1.  doas rm ${TLBINPATH}/*"
	@echo "2.  make TMPSOURCE=${TMPDIR} PREFIX=${TLBINPATH} install"
.endif
.endif

install:
	unxz ${TMPSOURCE}/amd64-openbsd${OPENBSD_VERSION}.tar.xz
	doas tar xf ${TMPSOURCE}/amd64-openbsd${OPENBSD_VERSION}.tar -C ${PREFIX}/

.PHONY: fetch update install