6 CFLAGS += -pipe -fPIE -fdiagnostics-color -Wno-unknown-warning-option -Wpedantic
7 CFLAGS += -Wall -Werror-implicit-function-declaration -Wno-format-truncation
8 CFLAGS += -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations
9 CFLAGS += -Wshadow -Wpointer-arith -Wcast-qual -Wsign-compare
10 CFLAGS += -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Werror=format-security
11 LDADD = -Wl,-z,now -Wl,-z,relro -pie -lssl -lcrypto -lpthread
14 OBJS = twind.o gemini.o log.o request.o mime.o util.o
19 SBIN ?= $(PREFIX)/sbin
21 GEMINIDIR ?= /var/twind
29 $(INSTALL) -d -m 755 -o root $(MAN)/man8
30 $(INSTALL) -d -m 750 -o root $(CONFDIR)
31 $(INSTALL) -d -m 755 -o root $(GEMINIDIR)
32 $(INSTALL) -d -m 755 -o _twind -g _twind $(GEMINIDIR)/logs
33 $(INSTALL) -m 644 -o root twind.8 $(MAN)/man8
34 $(INSTALL) -m 755 -o root twind $(SBIN)
37 @useradd -d $(GEMINIDIR) -s /sbin/nologin -u $(UID) _twind
40 @openssl req -x509 -newkey rsa:4096 -sha256 -days 365 -nodes -keyout $(CONFDIR)/twind.key.pem -new -subj /CN=$(HN) -out $(CONFDIR)/twind.cert.pem -addext subjectAltName=DNS:$(HN)
43 $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDADD)
46 $(CC) $(CFLAGS) -o $@ -c $<