]> git.armaanb.net Git - opendoas.git/blob - Makefile
Restrict read permissions of doas binary.
[opendoas.git] / Makefile
1 #       $OpenBSD: Makefile,v 1.9 2014/01/13 01:41:00 tedu Exp $
2 #
3 # Copyright 2015 Nathan Holstein
4
5 SRCS=   parse.y doas.c
6
7 PROG=   doas
8 MAN=    doas.1 doas.conf.5
9
10 BINOWN= root
11 BINGRP= wheel
12 BINMODE=4511
13
14 COPTS+= -Wall -Wextra -Werror -pedantic -std=c11
15 CFLAGS+= -I${CURDIR} -I${CURDIR}/libopenbsd ${COPTS}
16
17 BINDIR?=/usr/bin
18 MANDIR?=/usr/share/man
19
20 default: ${PROG}
21
22 OPENBSD:=reallocarray.c strtonum.c execvpe.c setresuid.c \
23         auth_userokay.c setusercontext.c
24 OPENBSD:=$(addprefix libopenbsd/,${OPENBSD:.c=.o})
25 libopenbsd.a: ${OPENBSD}
26         ${AR} -r $@ $?
27
28 OBJS:=${SRCS:.y=.c}
29 OBJS:=${OBJS:.c=.o}
30
31 ${PROG}: ${OBJS} libopenbsd.a
32         ${CC} ${CFLAGS} ${LDFLAGS} $^ -o $@
33
34 .%.chmod: %
35         cp $< $@
36         chmod ${BINMODE} $@
37         chown ${BINOWN}:${BINGRP} $@
38
39 ${BINDIR}/${PROG}: .${PROG}.chmod
40         mv $< $@
41
42 install: ${BINDIR}/${PROG}
43
44 clean:
45         rm -f libopenbsd.a
46         rm -f ${OPENBSD}
47         rm -f ${OBJS}
48         rm -f ${PROG}
49
50 .PHONY: default clean install
51 .INTERMEDIATE: .${PROG}.chmod