]> git.armaanb.net Git - opendoas.git/blobdiff - bsd.prog.mk
Fix typos and configure pledge detection
[opendoas.git] / bsd.prog.mk
index 197455a2e897edff5095035c08591fed0f11f354..d2caff42d7d94a8e6d2891a8167e4dacd90c71e7 100644 (file)
@@ -1,17 +1,14 @@
 # Copyright 2015 Nathan Holstein
 
-BINDIR?=/usr/bin
-MANDIR?=/usr/share/man
-
 default: ${PROG}
 
-OPENBSD:=reallocarray.c strtonum.c execvpe.c setresuid.c \
-       auth_userokay.c setusercontext.c explicit_bzero.c
+include config.mk
+
 OPENBSD:=$(addprefix libopenbsd/,${OPENBSD:.c=.o})
 libopenbsd.a: ${OPENBSD}
        ${AR} -r $@ $?
 
-CFLAGS:=${CFLAGS} -I${CURDIR}/libopenbsd ${COPTS}
+CFLAGS:=${CFLAGS} -I${CURDIR}/libopenbsd ${COPTS} -MD -MP
 
 OBJS:=${SRCS:.y=.c}
 OBJS:=${OBJS:.c=.o}
@@ -21,25 +18,40 @@ ${PROG}: ${OBJS} libopenbsd.a
 
 .%.chmod: %
        cp $< $@
-       chmod ${BINMODE} $@
        chown ${BINOWN}:${BINGRP} $@
+       chmod ${BINMODE} $@
 
-${BINDIR}:
+${DESTDIR}${BINDIR} ${DESTDIR}${PAMDIR}:
        mkdir -pm 0755 $@
 
-${BINDIR}/${PROG}: .${PROG}.chmod ${BINDIR}
+${DESTDIR}${BINDIR}/${PROG}: .${PROG}.chmod ${BINDIR}
        mv $< $@
 
-MAN:=$(join $(addprefix ${MANDIR}/man,$(patsubst .%,%/,$(suffix ${MAN}))),${MAN})
+${DESTDIR}${PAMDIR}/doas: ${PAM_DOAS}
+       cp $< $@
+
+VERSION:=\#define VERSION "$(shell git describe --dirty --tags --long --always)"
+OLDVERSION:=$(shell [ -f version.h ] && cat version.h)
+version.h: ; @echo '$(VERSION)' > $@
+ifneq ($(VERSION),$(OLDVERSION))
+.PHONY: version.h
+endif
+
+MAN:=$(join $(addprefix ${DESTDIR}${MANDIR}/man,$(patsubst .%,%/,$(suffix ${MAN}))),${MAN})
 $(foreach M,${MAN},$(eval $M: $(notdir $M); cp $$< $$@))
 
-install: ${BINDIR}/${PROG} ${MAN}
+install: ${DESTDIR}${BINDIR}/${PROG} ${DESTDIR}${PAMDIR}/doas ${MAN}
 
 clean:
+       rm -f version.h
        rm -f libopenbsd.a
        rm -f ${OPENBSD}
+       rm -f ${OPENBSD:.o=.d}
        rm -f ${OBJS}
+       rm -f ${OBJS:.o=.d}
        rm -f ${PROG}
 
+-include ${objs:.o=.d} ${OPENBSD:.o=.d}
+
 .PHONY: default clean install man
 .INTERMEDIATE: .${PROG}.chmod