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>
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.
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
21 TESTSRCS = have/err.c \
22 have/explicit_bzero.c \
24 have/getdtablecount.c \
25 have/getdtablesize.c \
35 have/program_invocation_short_name.c \
38 have/recallocarray.c \
46 COMPATS = compat/err.c \
47 compat/explicit_bzero.c \
49 compat/getdtablecount.c \
50 compat/getdtablesize.c \
51 compat/getprogname.c \
52 compat/imsg-buffer.c \
56 compat/reallocarray.c \
57 compat/recallocarray.c \
58 compat/setproctitle.c \
79 GMID_OBJS = ${GMID_SRCS:.c=.o} ${COBJS}
85 GG_OBJS = ${GG_SRCS:.c=.o} ${COBJS}
93 REGRESSFILES = regress/Makefile \
96 regress/example.mime.types \
103 regress/max-length-reply \
104 regress/puny-test.c \
106 regress/serve-bigfile \
118 configure.local.example \
123 CONTRIB = contrib/Dockerfile \
125 contrib/gmid.service \
126 contrib/gmid.sysusers \
129 contrib/renew-certs \
130 contrib/vim/ftdetect/gmid.vim \
131 contrib/vim/ftplugin/gmid.vim \
132 contrib/vim/indent/gmid.vim \
133 contrib/vim/syntax_checkers/gmid/gmid.vim \
134 contrib/vim/syntax/gmid.vim
136 DISTFILES = ${EXTRAS} \
143 DISTNAME = gmid-${VERSION}
145 all: Makefile.local gmid gg
146 .PHONY: all static clean cleanall test regress install
148 Makefile.local config.h: configure ${TESTSRCS}
149 @echo "$@ is out of date; please run ./configure"
152 include Makefile.local
153 include Makefile.depend
159 ${CC} ${GMID_OBJS} -o $@ ${LDFLAGS}
162 ${CC} ${GG_OBJS} -o $@ ${LDFLAGS}
164 static: ${GMID_OBJS} ${GG_OBJS}
165 ${CC} ${GMID_OBJS} -o gmid ${LDFLAGS} ${STATIC}
166 ${CC} ${GG_OBJS} -o gg ${LDFLAGS} ${STATIC}
169 rm -f *.o compat/*.o y.tab.c y.tab.h y.output gmid gg
170 rm -f compile_flags.txt
171 ${MAKE} -C regress clean
174 rm -f Makefile.local config.h config.h.old config.log config.log.old
178 ${MAKE} 'TESTS=${TESTS}' -C regress all
181 mkdir -p ${DESTDIR}${BINDIR}
182 mkdir -p ${DESTDIR}${MANDIR}/man1
183 mkdir -p ${DESTDIR}${MANDIR}/man5
184 ${INSTALL_PROGRAM} gmid ${DESTDIR}${BINDIR}
185 ${INSTALL_PROGRAM} gg ${DESTDIR}${BINDIR}
186 ${INSTALL_MAN} gmid.1 ${DESTDIR}${MANDIR}/man1
187 ${INSTALL_MAN} gmid.conf.5 ${DESTDIR}${MANDIR}/man5
188 ${INSTALL_MAN} gg.1 ${DESTDIR}${MANDIR}/man1
191 rm ${DESTDIR}${BINDIR}/gg
192 rm ${DESTDIR}${BINDIR}/gmid
193 rm ${DESTDIR}${MANDIR}/man1/gg.1
194 rm ${DESTDIR}${MANDIR}/man1/gmid.1
195 rm ${DESTDIR}${MANDIR}/man5/gmid.conf.5
197 # make sure we pass -o to ${CC}. OpenBSD default suffix rule doesn't
200 ${CC} ${CFLAGS} -c $< -o $@
202 depend: config.h y.tab.c
203 mkdep -f Makefile.tmp1 ${CFLAGS} ${GMID_SRCS} ${GG_SRCS} ${COBJSx:.o=.c}
204 perl -e 'undef $$/; $$_ = <>; s|/usr/include/\S+||g; \
205 s|\\\n||g; s| +| |g; s| $$||mg; print;' \
206 Makefile.tmp1 > Makefile.tmp2
208 mv Makefile.tmp2 Makefile.depend
210 dist: ${DISTNAME}.sha256
212 ${DISTNAME}.sha256: ${DISTNAME}.tar.gz
214 ${DISTNAME}.tar.gz: ${DISTFILES}
215 mkdir -p .dist/${DISTNAME}/
216 ${INSTALL} -m 0644 ${SRCS} ${EXTRAS} .dist/${DISTNAME}
217 cd .dist/${DISTNAME} && chmod 755 configure
218 mkdir -p .dist/${DISTNAME}/contrib
219 ${INSTALL} -m 0644 ${CONTRIB} .dist/${DISTNAME}/contrib
220 cd .dist/${DISTNAME}/contrib && chmod 755 gencert renew-certs
221 mkdir -p .dist/${DISTNAME}/compat
222 ${INSTALL} -m 0644 ${COMPATS} .dist/${DISTNAME}/compat
223 mkdir -p .dist/${DISTNAME}/have
224 ${INSTALL} -m 0644 ${TESTSRCS} .dist/${DISTNAME}/have
225 mkdir -p .dist/${DISTNAME}/regress
226 ${INSTALL} -m 0644 ${REGRESSFILES} .dist/${DISTNAME}/regress
227 cd .dist/${DISTNAME}/regress && chmod 755 env err hello invalid \
228 max-length-reply regress sha slow
229 cd .dist/ && tar zcf ../$@ ${DISTNAME}