Makefile (1082B)
1 .POSIX: 2 3 PREFIX = /usr/local 4 MANPREFIX = $(PREFIX)/share/man 5 6 CC = cc 7 CFLAGS = -std=c11 -march=native -O3 -Icompat -D_GNU_SOURCE -D 'DEF_WEAK(n)=_Static_assert(1, "")' 8 LDFLAGS = -s -static 9 10 SRC = doas.c env.c persist.c y.tab.c\ 11 compat/readpassphrase.c\ 12 compat/reallocarray.c\ 13 compat/setprogname.c\ 14 compat/strtonum.c 15 OBJ = $(SRC:.c=.o) 16 17 all: doas 18 19 .c.o: 20 $(CC) $(CFLAGS) -o $@ -c $< 21 22 y.tab.c: 23 yacc parse.y 24 25 clean: 26 rm -f *.o compat/*.o doas y.tab.c 27 28 doas: $(OBJ) 29 $(CC) -o $@ $(OBJ) $(LDFLAGS) 30 31 install: doas 32 mkdir -p $(DESTDIR)$(PREFIX)/bin 33 cp -f doas $(DESTDIR)$(PREFIX)/bin 34 chmod 4555 $(DESTDIR)$(PREFIX)/bin/doas 35 mkdir -p $(DESTDIR)$(MANPREFIX)/man1 36 cp doas.1 $(DESTDIR)$(MANPREFIX)/man1/ 37 chmod 644 $(DESTDIR)$(MANPREFIX)/man1/doas.1 38 mkdir -p $(DESTDIR)$(MANPREFIX)/man5 39 cp doas.conf.5 $(DESTDIR)$(MANPREFIX)/man5/ 40 chmod 644 $(DESTDIR)$(MANPREFIX)/man5/doas.conf.5 41 42 uninstall: 43 rm -f $(DESTDIR)$(PREFIX)/bin/doas 44 rm -f $(DESTDIR)$(MANPREFIX)/man1/doas.1 45 rm -f $(DESTDIR)$(MANPREFIX)/man5/doas.conf.5 46 47 .PHONY: all clean install uninstall