]> git.armaanb.net Git - opendoas.git/blobdiff - bsd.prog.mk
timestamp: error out if fstat and lstat st_ino and st_dev are not the same
[opendoas.git] / bsd.prog.mk
index d2caff42d7d94a8e6d2891a8167e4dacd90c71e7..df8f51461be9ed6968433e3a7b582047d6c75589 100644 (file)
@@ -2,56 +2,48 @@
 
 default: ${PROG}
 
+CFLAGS  += -I${CURDIR}/libopenbsd ${COPTS} -MD -MP -Wno-unused-result
+
 include config.mk
 
-OPENBSD:=$(addprefix libopenbsd/,${OPENBSD:.c=.o})
+OPENBSD := $(addprefix libopenbsd/,${OPENBSD})
+OBJS    := ${SRCS:.y=.c}
+OBJS    := ${OBJS:.c=.o}
+
 libopenbsd.a: ${OPENBSD}
        ${AR} -r $@ $?
 
-CFLAGS:=${CFLAGS} -I${CURDIR}/libopenbsd ${COPTS} -MD -MP
-
-OBJS:=${SRCS:.y=.c}
-OBJS:=${OBJS:.c=.o}
-
 ${PROG}: ${OBJS} libopenbsd.a
-       ${CC} ${CFLAGS} ${LDFLAGS} $^ -o $@
-
-.%.chmod: %
-       cp $< $@
-       chown ${BINOWN}:${BINGRP} $@
-       chmod ${BINMODE} $@
-
-${DESTDIR}${BINDIR} ${DESTDIR}${PAMDIR}:
-       mkdir -pm 0755 $@
-
-${DESTDIR}${BINDIR}/${PROG}: .${PROG}.chmod ${BINDIR}
-       mv $< $@
-
-${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: ${DESTDIR}${BINDIR}/${PROG} ${DESTDIR}${PAMDIR}/doas ${MAN}
+       ${CC} ${CFLAGS} $^ -o $@ ${LDFLAGS}
+
+install: ${PROG} ${PAM_DOAS} ${MAN}
+       mkdir -p -m 0755 ${DESTDIR}${BINDIR}
+       [ -n "${PAM_DOAS}" ] && mkdir -p -m 0755 ${DESTDIR}${PAMDIR} || true
+       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}
+       [ -n "${PAM_DOAS}" ] && cp ${PAM_DOAS} ${DESTDIR}${PAMDIR}/doas || true
+       [ -n "${PAM_DOAS}" ] && chmod 0644 ${DESTDIR}${PAMDIR}/doas || true
+       cp -f doas.1 ${DESTDIR}${MANDIR}/man1
+       cp -f doas.conf.5 ${DESTDIR}${MANDIR}/man5
+
+uninstall:
+       rm -f ${DESTDIR}${BINDIR}/${PROG}
+       rm -f ${DESTDIR}${PAMDIR}/doas
+       rm -f ${DESTDIR}${MANDIR}/man1/doas.1
+       rm -f ${DESTDIR}${MANDIR}/man5/doas.conf.5
 
 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}
+       rm -f parse.c
 
--include ${objs:.o=.d} ${OPENBSD:.o=.d}
+-include ${OBJS:.o=.d} ${OPENBSD:.o=.d}
 
-.PHONY: default clean install man
-.INTERMEDIATE: .${PROG}.chmod
+.PHONY: default clean install uninstall