]> git.armaanb.net Git - opendoas.git/blobdiff - Makefile
Handle empty argv
[opendoas.git] / Makefile
index 345b8f2ba1f3aab3f86d6d27c723aa5d5bf08888..d3c131f6d66bd61311cd71e2e80a25b39a947e1c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,52 +1,39 @@
-#      $OpenBSD: Makefile,v 1.9 2014/01/13 01:41:00 tedu Exp $
-#
-# Copyright 2015 Nathan Holstein
+PROG = doas
+MAN = doas.1 doas.conf.5
 
-SRCS=  parse.y doas.c
+SRCS = parse.y doas.c env.c
 
-PROG=  doas
-MAN=   doas.1 doas.conf.5
+include config.mk
 
-BINOWN= root
-BINGRP= wheel
-BINMODE=4511
+CFLAGS := -I. -Ilibopenbsd -O2 -Wall -Wextra -std=c99 ${OS_CFLAGS} ${CFLAGS}
 
-COPTS+= -Wall -Wextra -Werror -pedantic -std=c11
-CFLAGS+= -I${CURDIR} -I${CURDIR}/libopenbsd ${COPTS}
-LDFLAGS+= -lpam
+all: ${PROG}
 
-BINDIR?=/usr/bin
-MANDIR?=/usr/share/man
+OBJS := ${SRCS:.y=.c}
+OBJS := ${OBJS:.c=.o}
 
-default: ${PROG}
+${PROG}: ${OBJS}
+       @[ -f ./libopenbsd/strlcat.o ] && mv libopenbsd/*.o . || true
+       ${CC} ${CFLAGS} *.o -o $@ ${LDFLAGS} ${LDLIBS}
 
-OPENBSD:=reallocarray.c strtonum.c execvpe.c setresuid.c \
-       auth_userokay.c setusercontext.c explicit_bzero.c
-OPENBSD:=$(addprefix libopenbsd/,${OPENBSD:.c=.o})
-libopenbsd.a: ${OPENBSD}
-       ${AR} -r $@ $?
+install: ${PROG} ${MAN}
+       mkdir -p -m 0755 ${DESTDIR}${BINDIR}
+       mkdir -p -m 0755 ${DESTDIR}${MANDIR}/man1
+       mkdir -p -m 0755 ${DESTDIR}${MANDIR}/man5
+       cp -f ${PROG} ${DESTDIR}${BINDIR}
+       chown ${BINOWN}:${BINGRP} ${DESTDIR}${BINDIR}/${PROG}
+       chmod ${BINMODE} ${DESTDIR}${BINDIR}/${PROG}
+       cp -f doas.1 ${DESTDIR}${MANDIR}/man1
+       cp -f doas.conf.5 ${DESTDIR}${MANDIR}/man5
 
-OBJS:=${SRCS:.y=.c}
-OBJS:=${OBJS:.c=.o}
-
-${PROG}: ${OBJS} libopenbsd.a
-       ${CC} ${CFLAGS} ${LDFLAGS} $^ -o $@
-
-.%.chmod: %
-       cp $< $@
-       chmod ${BINMODE} $@
-       chown ${BINOWN}:${BINGRP} $@
-
-${BINDIR}/${PROG}: .${PROG}.chmod
-       mv $< $@
-
-install: ${BINDIR}/${PROG}
+uninstall:
+       rm -f ${DESTDIR}${BINDIR}/${PROG}
+       rm -f ${DESTDIR}${MANDIR}/man1/doas.1
+       rm -f ${DESTDIR}${MANDIR}/man5/doas.conf.5
 
 clean:
-       rm -f libopenbsd.a
-       rm -f ${OPENBSD}
-       rm -f ${OBJS}
-       rm -f ${PROG}
+       rm -f ${PROG} ${OBJS} ${OBJS:.o=.d} parse.c
+
+-include ${OBJS:.o=.d}
 
-.PHONY: default clean install
-.INTERMEDIATE: .${PROG}.chmod
+.PHONY: all clean install uninstall