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
41 DISTFILES = LICENSE \
42 Makefile \
43 configure \
44 configure.local.example \
45 mymenu.1 \
46 screen-alt.png \
47 screen.png \
48 scripts/mpd.sh \
49 scripts/mru.pl \
50 ${SRCS} \
51 ${COMPATSRC} \
52 ${TESTSRCS}
54 all: Makefile.configure ${PROG}
55 .PHONY: clean distclean install uninstall
57 Makefile.configure config.h: configure ${TESTSRCS}
58 @echo "$@ is out of date; please run ./configure"
59 @exit 1
61 include Makefile.configure
63 ${PROG}: ${OBJS} ${COBJS}
64 ${CC} -o $@ ${OBJS} ${COBJS} ${LDFLAGS} ${LDADD} ${LDADD_LIB_X11}
66 clean:
67 rm -f ${OBJS} ${COBJS} ${PROG}
69 distclean: clean
70 rm -f Makefile.configure config.h config.h.old config.log config.log.old
72 install:
73 mkdir -p ${DESTDIR}${BINDIR}
74 mkdir -p ${DESTDIR}${MANDIR}/man1
75 ${INSTALL_PROGRAM} ${PROG} ${DESTDIR}/${BINDIR}
76 ${INSTALL_MAN} mymenu.1 ${DESTDIR}${MANDIR}/man1
78 install-local:
79 mkdir -p ${HOME}/bin
80 ${INSTALL_PROGRAM} ${PROG} ${HOME}/bin/
82 uninstall:
83 rm ${DESTDIR}${BINDIR}/${PROG}
84 rm ${DESTDIR}${MANDIR}/man1/mymenu.1
86 # --- maintainer targets ---
88 dist: mymenu-${VERSION}.sha256
90 mymenu-${VERSION}.sha256: mymenu-${VERSION}.tar.gz
91 sha256 mymenu-${VERSION}.tar.gz > $@
93 mymenu-${VERSION}.tar.gz: ${DISTFILES}
94 mkdir -p .dist/mymenu-${VERSION}/
95 ${INSTALL} -m 0644 ${DISTFILES} .dist/mymenu-${VERSION}
96 chmod 755 .dist/mymenu-${VERSION}/configure
97 (cd .dist/ && tar zcf ../$@ mymenu-${VERSION})
98 rm -rf .dist/
100 mymenu.1.md: mymenu.1
101 mandoc -T markdown mymenu.1 > mymenu.1.md