diff options
author | Omar Polo <op@omarpolo.com> | 2022-07-04 13:44:38 +0000 |
---|---|---|
committer | Omar Polo <op@omarpolo.com> | 2022-07-04 13:44:38 +0000 |
commit | 96e3c013146396d02318685d79ed7025a09ffb43 (patch) | |
tree | fdb040515936bd940668a29f5ce986200b076815 /Makefile | |
parent | 225686d7fdf2e39c2152afc7561234c0f9de034b (diff) |
refactor the makefile / configure
steal more (good) stuff from mandoc-portable :)
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 173 |
1 files changed, 166 insertions, 7 deletions
@@ -1,13 +1,140 @@ +# Copyright (c) 2022 Omar Polo <op@omarpolo.com> +# Copyright (c) 2011, 2013-2022 Ingo Schwarze <schwarze@openbsd.org> +# Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv> +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + # tests to run as a port of the regression suite. Leave empty to run # all. TESTS= -.PHONY: all static clean cleanall test regress install +TESTSRCS = have/err.c \ + have/explicit_bzero.c \ + have/freezero.c \ + have/getdtablecount.c \ + have/getdtablesize.c \ + have/getprogname.c \ + have/imsg.c \ + have/landlock.c \ + have/libevent.c \ + have/libevent2.c \ + have/libtls.c \ + have/noop.c \ + have/noop.d \ + have/openssl.c \ + have/pr_set_name.c \ + have/program_invocation_short_name.c \ + have/queue_h.c \ + have/reallocarray.c \ + have/recallocarray.c \ + have/setproctitle.c \ + have/strlcat.c \ + have/strlcpy.c \ + have/strtonum.c \ + have/tree_h.c \ + have/vasprintf.c + +COMPATS = compat/err.c \ + compat/explicit_bzero.c \ + compat/freezero.c \ + compat/getdtablecount.c \ + compat/getdtablesize.c \ + compat/getprogname.c \ + compat/imsg-buffer.c \ + compat/imsg.c \ + compat/imsg.h \ + compat/queue.h \ + compat/reallocarray.c \ + compat/recallocarray.c \ + compat/setproctitle.c \ + compat/strlcat.c \ + compat/strlcpy.c \ + compat/strtonum.c \ + compat/tree.h \ + compat/vasprintf.c + +GMID_SRCS = dirs.c \ + ex.c \ + fcgi.c \ + gmid.c \ + iri.c \ + log.c \ + mime.c \ + proxy.c \ + puny.c \ + sandbox.c \ + server.c \ + utf8.c \ + utils.c \ + y.tab.c \ + +GMID_OBJS = ${GMID_SRCS:.c=.o} ${COBJS} + +GG_SRCS = gg.c \ + iri.c \ + utf8.c + +GG_OBJS = ${GG_SRCS:.c=.o} ${COBJS} + +SRCS = gmid.h \ + landlock_shim.h \ + parse.y \ + ${GMID_SRCS} \ + ${GG_SRCS} + +REGRESSFILES = regress/Makefile \ + regress/env \ + regress/err \ + regress/example.mime.types \ + regress/fcgi-test.c \ + regress/fill-file.c \ + regress/hello \ + regress/invalid \ + regress/iri_test.c \ + regress/lib.sh \ + regress/max-length-reply \ + regress/puny-test.c \ + regress/regress \ + regress/serve-bigfile \ + regress/sha \ + regress/slow \ + regress/tests.sh \ + regress/valid.ext + +EXTRAS = ChangeLog \ + LICENSE \ + Makefile \ + Makefile.depend \ + README.md \ + configure \ + configure.local.example \ + gmid.1 \ + gmid.conf.5 + +DISTFILES = ${EXTRAS} \ + ${COMPATS} \ + ${REGRESSFILES} \ + ${SRCS} \ + ${TESTSRCS} + +DISTNAME = gmid-${VERSION} all: Makefile.local gmid gg +.PHONY: all static clean cleanall test regress install -Makefile.local: configure - ./configure +Makefile.local config.h: configure ${TESTSRCS} + @echo "$@ is out of date; please run ./configure" + @exit 1 include Makefile.local @@ -27,10 +154,11 @@ static: ${GMID_OBJS} ${GG_OBJS} clean: rm -f *.o compat/*.o y.tab.c y.tab.h y.output gmid gg rm -f compile_flags.txt - -cleanall: clean ${MAKE} -C regress clean +distclean: clean + rm -f Makefile.local config.h config.h.old config.log config.log.old + test: regress regress: all ${MAKE} 'TESTS=${TESTS}' -C regress all @@ -45,10 +173,41 @@ install: gmid gg ${INSTALL_MAN} gmid.conf.5 ${DESTDIR}${MANDIR}/man5 ${INSTALL_MAN} gg.1 ${DESTDIR}${MANDIR}/man1 -compile_flags.txt: - printf "%s\n" ${CFLAGS} > compile_flags.txt +uninstall: + rm ${DESTDIR}${BINDIR}/gg + rm ${DESTDIR}${BINDIR}/gmid + rm ${DESTDIR}${MANDIR}/man1/gg.1 + rm ${DESTDIR}${MANDIR}/man1/gmid.1 + rm ${DESTDIR}${MANDIR}/man5/gmid.conf.5 # make sure we pass -o to ${CC}. OpenBSD default suffix rule doesn't .SUFFIXES: .c .o .c.o: ${CC} ${CFLAGS} -c $< -o $@ + +depend: config.h y.tab.c + mkdep -f Makefile.tmp1 ${CFLAGS} ${GMID_SRCS} ${GG_SRCS} ${COBJSx:.o=.c} + perl -e 'undef $$/; $$_ = <>; s|/usr/include/\S+||g; \ + s|\\\n||g; s| +| |g; s| $$||mg; print;' \ + Makefile.tmp1 > Makefile.tmp2 + rm Makefile.tmp1 + mv Makefile.tmp2 Makefile.depend + +dist: ${DISTNAME}.sha256 + +${DISTNAME}.sha256: ${DISTNAME}.tar.gz + +${DISTNAME}.tar.gz: ${DISTFILES} + mkdir -p .dist/${DISTNAME}/ + ${INSTALL} -m 0644 ${SRCS} ${EXTRAS} .dist/${DISTNAME} + cd .dist/${DISTNAME} && chmod 755 configure + mkdir -p .dist/${DISTNAME}/compat + ${INSTALL} -m 0644 ${COMPATS} .dist/${DISTNAME}/compat + mkdir -p .dist/${DISTNAME}/have + ${INSTALL} -m 0644 ${TESTSRCS} .dist/${DISTNAME}/have + mkdir -p .dist/${DISTNAME}/regress + ${INSTALL} -m 0644 ${REGRESSFILES} .dist/${DISTNAME}/regress + cd .dist/${DISTNAME}/regress && chmod 755 env err hello invalid \ + max-length-reply regress sha slow + cd .dist/ && tar zcf ../$@ ${DISTNAME} + rm -rf .dist/ |