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 # tests to run as a port of the regression suite. Leave empty to run
18 # all.
19 TESTS=
21 GMID_SRCS = dirs.c \
22 ex.c \
23 fcgi.c \
24 gmid.c \
25 iri.c \
26 log.c \
27 mime.c \
28 proxy.c \
29 puny.c \
30 sandbox.c \
31 server.c \
32 utf8.c \
33 utils.c \
34 y.tab.c \
36 GMID_OBJS = ${GMID_SRCS:.c=.o} ${COBJS}
38 GG_SRCS = gg.c \
39 iri.c \
40 utf8.c
42 GG_OBJS = ${GG_SRCS:.c=.o} ${COBJS}
44 SRCS = gmid.h \
45 landlock_shim.h \
46 parse.y \
47 ${GMID_SRCS} \
48 ${GG_SRCS}
50 DISTNAME = gmid-${VERSION}
52 all: Makefile.local gmid gg
53 .PHONY: all static clean cleanall test regress install
55 Makefile.local config.h: configure
56 @echo "$@ is out of date; please run ./configure"
57 @exit 1
59 include Makefile.local
60 include Makefile.depend
62 y.tab.c: parse.y
63 ${YACC} -b y parse.y
65 gmid: ${GMID_OBJS}
66 ${CC} ${GMID_OBJS} -o $@ ${LDFLAGS}
68 gg: ${GG_OBJS}
69 ${CC} ${GG_OBJS} -o $@ ${LDFLAGS}
71 static: ${GMID_OBJS} ${GG_OBJS}
72 ${CC} ${GMID_OBJS} -o gmid ${LDFLAGS} ${STATIC}
73 ${CC} ${GG_OBJS} -o gg ${LDFLAGS} ${STATIC}
75 clean:
76 rm -f *.o compat/*.o y.tab.c y.tab.h y.output gmid gg
77 rm -f compile_flags.txt
78 ${MAKE} -C regress clean
80 distclean: clean
81 rm -f Makefile.local config.h config.h.old config.log config.log.old
83 test: regress
84 regress: all
85 ${MAKE} 'TESTS=${TESTS}' -C regress all
87 install: gmid gg
88 mkdir -p ${DESTDIR}${BINDIR}
89 mkdir -p ${DESTDIR}${MANDIR}/man1
90 mkdir -p ${DESTDIR}${MANDIR}/man5
91 ${INSTALL_PROGRAM} gmid ${DESTDIR}${BINDIR}
92 ${INSTALL_PROGRAM} gg ${DESTDIR}${BINDIR}
93 ${INSTALL_MAN} gmid.1 ${DESTDIR}${MANDIR}/man1
94 ${INSTALL_MAN} gmid.conf.5 ${DESTDIR}${MANDIR}/man5
95 ${INSTALL_MAN} gg.1 ${DESTDIR}${MANDIR}/man1
97 uninstall:
98 rm ${DESTDIR}${BINDIR}/gg
99 rm ${DESTDIR}${BINDIR}/gmid
100 rm ${DESTDIR}${MANDIR}/man1/gg.1
101 rm ${DESTDIR}${MANDIR}/man1/gmid.1
102 rm ${DESTDIR}${MANDIR}/man5/gmid.conf.5
104 # make sure we pass -o to ${CC}. OpenBSD default suffix rule doesn't
105 .SUFFIXES: .c .o
106 .c.o:
107 ${CC} ${CFLAGS} -c $< -o $@
109 # -- maintainer targets --
111 DISTFILES = .cirrus.yml \
112 .dockerignore \
113 .gitignore \
114 ChangeLog \
115 LICENSE \
116 Makefile \
117 Makefile.depend \
118 README.md \
119 configure \
120 configure.local.example \
121 dirs.c \
122 ex.c \
123 fcgi.c \
124 gg.1 \
125 gg.c \
126 gmid.1 \
127 gmid.c \
128 gmid.conf.5 \
129 gmid.h \
130 iri.c \
131 landlock_shim.h \
132 log.c \
133 mime.c \
134 parse.y \
135 proxy.c \
136 puny.c \
137 sandbox.c \
138 server.c \
139 utf8.c \
140 utils.c \
141 y.tab.c
143 depend: config.h y.tab.c
144 mkdep -f Makefile.tmp1 ${CFLAGS} ${GMID_SRCS} ${GG_SRCS} ${COBJSx:.o=.c}
145 perl -e 'undef $$/; $$_ = <>; s|/usr/include/\S+||g; \
146 s|\\\n||g; s| +| |g; s| $$||mg; print;' \
147 Makefile.tmp1 > Makefile.tmp2
148 rm Makefile.tmp1
149 mv Makefile.tmp2 Makefile.depend
151 dist: ${DISTNAME}.sha256
153 ${DISTNAME}.sha256: ${DISTNAME}.tar.gz
155 ${DISTNAME}.tar.gz: ${DISTFILES}
156 mkdir -p .dist/${DISTNAME}/
157 ${INSTALL} -m 0644 ${DISTFILES} .dist/${DISTNAME}/
158 cd .dist/${DISTNAME} && chmod 755 configure
159 ${MAKE} -C compat DESTDIR=${PWD}/.dist/${DISTNAME}/compat dist
160 ${MAKE} -C contrib DESTDIR=${PWD}/.dist/${DISTNAME}/contrib dist
161 ${MAKE} -C have DESTDIR=${PWD}/.dist/${DISTNAME}/have dist
162 ${MAKE} -C regress DESTDIR=${PWD}/.dist/${DISTNAME}/regress dist
163 cd .dist/ && tar zcf ../$@ ${DISTNAME}
164 rm -rf .dist/