X-Git-Url: https://git.armaanb.net/?p=opendoas.git;a=blobdiff_plain;f=bsd.prog.mk;h=df8f51461be9ed6968433e3a7b582047d6c75589;hp=80d32319ef8be84a463c520201ed9df8fd7d6bb1;hb=fe5ec5717fe414e9f1e12bbdf0794c18af3238fb;hpb=610e74190352a5c8c1f1746a272fc7364cb2bac3 diff --git a/bsd.prog.mk b/bsd.prog.mk index 80d3231..df8f514 100644 --- a/bsd.prog.mk +++ b/bsd.prog.mk @@ -1,57 +1,49 @@ # 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 -OPENBSD:=$(addprefix libopenbsd/,${OPENBSD:.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 $< $@ - chmod ${BINMODE} $@ - chown ${BINOWN}:${BINGRP} $@ - -${BINDIR}: - mkdir -pm 0755 $@ +CFLAGS += -I${CURDIR}/libopenbsd ${COPTS} -MD -MP -Wno-unused-result -${BINDIR}/${PROG}: .${PROG}.chmod ${BINDIR} - mv $< $@ +include config.mk -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 +OPENBSD := $(addprefix libopenbsd/,${OPENBSD}) +OBJS := ${SRCS:.y=.c} +OBJS := ${OBJS:.c=.o} -MAN:=$(join $(addprefix ${MANDIR}/man,$(patsubst .%,%/,$(suffix ${MAN}))),${MAN}) -$(foreach M,${MAN},$(eval $M: $(notdir $M); cp $$< $$@)) +libopenbsd.a: ${OPENBSD} + ${AR} -r $@ $? -install: ${BINDIR}/${PROG} ${MAN} +${PROG}: ${OBJS} libopenbsd.a + ${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