]> git.armaanb.net Git - opendoas.git/blob - bsd.prog.mk
Add configure script
[opendoas.git] / bsd.prog.mk
1 # Copyright 2015 Nathan Holstein
2
3 default: ${PROG}
4
5 include config.mk
6
7 OPENBSD:=$(addprefix libopenbsd/,${OPENBSD:.c=.o})
8 libopenbsd.a: ${OPENBSD}
9         ${AR} -r $@ $?
10
11 CFLAGS:=${CFLAGS} -I${CURDIR}/libopenbsd ${COPTS} -MD -MP
12
13 OBJS:=${SRCS:.y=.c}
14 OBJS:=${OBJS:.c=.o}
15
16 ${PROG}: ${OBJS} libopenbsd.a
17         ${CC} ${CFLAGS} ${LDFLAGS} $^ -o $@
18
19 .%.chmod: %
20         cp $< $@
21         chown ${BINOWN}:${BINGRP} $@
22         chmod ${BINMODE} $@
23
24 ${DESTRDIR}${BINDIR} ${DESTRDIR}${PAMDIR}:
25         mkdir -pm 0755 $@
26
27 ${DESTDIR}${BINDIR}/${PROG}: .${PROG}.chmod ${BINDIR}
28         mv $< $@
29
30 ${DESTDIR}${PAMDIR}/doas: ${PAM_DOAS}
31         cp $< $@
32
33 VERSION:=\#define VERSION "$(shell git describe --dirty --tags --long --always)"
34 OLDVERSION:=$(shell [ -f version.h ] && cat version.h)
35 version.h: ; @echo '$(VERSION)' > $@
36 ifneq ($(VERSION),$(OLDVERSION))
37 .PHONY: version.h
38 endif
39
40 MAN:=$(join $(addprefix ${DESTDIR}${MANDIR}/man,$(patsubst .%,%/,$(suffix ${MAN}))),${MAN})
41 $(foreach M,${MAN},$(eval $M: $(notdir $M); cp $$< $$@))
42
43 install: ${DESTDIR}${BINDIR}/${PROG} ${DESTDIR}${PAMDIR}/doas ${MAN}
44
45 clean:
46         rm -f version.h
47         rm -f libopenbsd.a
48         rm -f ${OPENBSD}
49         rm -f ${OPENBSD:.o=.d}
50         rm -f ${OBJS}
51         rm -f ${OBJS:.o=.d}
52         rm -f ${PROG}
53
54 -include ${objs:.o=.d} ${OPENBSD:.o=.d}
55
56 .PHONY: default clean install man
57 .INTERMEDIATE: .${PROG}.chmod