Blob


1 # Copyright (c) 2022 Omar Polo <op@omarpolo.com>
2 # Copyright (c) 2011, 2013-2022 Ingo Schwarze <schwarze@openbsd.org>
3 # Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
4 #
5 # Permission to use, copy, modify, and distribute this software for any
6 # purpose with or without fee is hereby granted, provided that the above
7 # copyright notice and this permission notice appear in all copies.
8 #
9 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 PROG = mymenu
18 SRCS = mymenu.c
19 OBJS = ${SRCS:.c=.o}
20 COBJS = ${COBJ:.c=.o}
22 COMPATSRC = compat_err.c \
23 compat_getprogname.c \
24 compat_reallocarray.c \
25 compat_recallocarray.c \
26 compat_strtonum.c
28 TESTSRCS = test-__progname.c \
29 test-capsicum.c \
30 test-err.c \
31 test-getexecname.c \
32 test-getprogname.c \
33 test-landlock.c \
34 test-pledge.c \
35 test-program_invocation_short_name.c \
36 test-reallocarray.c \
37 test-recallocarray.c \
38 test-static.c \
39 test-strtonum.c \
40 test-x11.c
42 DISTFILES = LICENSE \
43 Makefile \
44 NEWS \
45 configure \
46 configure.local.example \
47 mymenu.1 \
48 screen-alt.png \
49 screen.png \
50 scripts/mpd.sh \
51 scripts/mru.pl \
52 ${SRCS} \
53 ${COMPATSRC} \
54 ${TESTSRCS}
56 all: Makefile.configure ${PROG}
57 .PHONY: clean distclean install uninstall
59 Makefile.configure config.h: configure ${TESTSRCS}
60 @echo "$@ is out of date; please run ./configure"
61 @exit 1
63 include Makefile.configure
65 ${PROG}: ${OBJS} ${COBJS}
66 ${CC} -o $@ ${OBJS} ${COBJS} ${LDFLAGS} ${LDADD} ${LDADD_LIB_X11}
68 clean:
69 rm -f ${OBJS} ${COBJS} ${PROG}
71 distclean: clean
72 rm -f Makefile.configure config.h config.h.old config.log config.log.old
74 install:
75 mkdir -p ${DESTDIR}${BINDIR}
76 mkdir -p ${DESTDIR}${MANDIR}/man1
77 ${INSTALL_PROGRAM} ${PROG} ${DESTDIR}/${BINDIR}
78 ${INSTALL_MAN} mymenu.1 ${DESTDIR}${MANDIR}/man1
80 install-local:
81 mkdir -p ${HOME}/bin
82 ${INSTALL_PROGRAM} ${PROG} ${HOME}/bin/
84 uninstall:
85 rm ${DESTDIR}${BINDIR}/${PROG}
86 rm ${DESTDIR}${MANDIR}/man1/mymenu.1
88 # --- maintainer targets ---
90 dist: mymenu-${VERSION}.sha256
92 mymenu-${VERSION}.sha256: mymenu-${VERSION}.tar.gz
93 sha256 mymenu-${VERSION}.tar.gz > $@
95 mymenu-${VERSION}.tar.gz: ${DISTFILES}
96 mkdir -p .dist/mymenu-${VERSION}/
97 ${INSTALL} -m 0644 ${DISTFILES} .dist/mymenu-${VERSION}
98 chmod 755 .dist/mymenu-${VERSION}/configure
99 (cd .dist/ && tar zcf ../$@ mymenu-${VERSION})
100 rm -rf .dist/
102 mymenu.1.md: mymenu.1
103 mandoc -T markdown mymenu.1 > mymenu.1.md