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 = gmid.c config.c crypto.c dirs.c fcgi.c iri.c log.c \
22 logger.c mime.c proc.c proxy.c puny.c sandbox.c \
23 server.c utf8.c utils.c y.tab.c
25 GMID_OBJS = ${GMID_SRCS:.c=.o} ${COBJS}
27 GE_SRCS = ge.c config.c crypto.c dirs.c fcgi.c iri.c log.c mime.c \
28 proc.c proxy.c puny.c sandbox.c server.c utf8.c utils.c
30 GE_OBJS = ${GE_SRCS:.c=.o} ${COBJS}
32 GG_SRCS = gg.c iri.c utf8.c
34 GG_OBJS = ${GG_SRCS:.c=.o} ${COBJS}
36 SRCS = gmid.h log.h parse.y proc.h \
37 ${GMID_SRCS} ${GE_SRCS} ${GG_SRCS}
39 DISTNAME = gmid-${VERSION}
41 all: Makefile.local gmid ge gg
42 .PHONY: all tags static clean cleanall test regress install
44 Makefile.local config.h: configure
45 @echo "$@ is out of date; please run ./configure"
46 @exit 1
48 include Makefile.local
50 tags:
51 ctags ${SRCS}
53 y.tab.c: parse.y
54 ${YACC} -b y parse.y
56 gmid: ${GMID_OBJS}
57 ${CC} ${GMID_OBJS} -o $@ ${LDFLAGS}
59 ge: ${GE_OBJS}
60 ${CC} ${GE_OBJS} -o $@ ${LDFLAGS}
62 gg: ${GG_OBJS}
63 ${CC} ${GG_OBJS} -o $@ ${LDFLAGS}
65 static: ${GMID_OBJS} ${GE_OBJS} ${GG_OBJS}
66 ${CC} ${GMID_OBJS} -o gmid ${LDFLAGS} ${STATIC}
67 ${CC} ${GG_OBJS} -o ge ${LDFLAGS} ${STATIC}
68 ${CC} ${GG_OBJS} -o gg ${LDFLAGS} ${STATIC}
70 clean:
71 rm -f *.[do] compat/*.[do] y.tab.c y.tab.h y.output gmid ge gg
72 rm -f compile_flags.txt
73 ${MAKE} -C regress clean
75 distclean: clean
76 rm -f Makefile.local config.h config.h.old config.log config.log.old
78 test: regress
79 regress: all
80 ${MAKE} 'TESTS=${TESTS}' -C regress all
82 install: gmid gg ge
83 mkdir -p ${DESTDIR}${BINDIR}
84 mkdir -p ${DESTDIR}${MANDIR}/man1
85 mkdir -p ${DESTDIR}${MANDIR}/man5
86 mkdir -p ${DESTDIR}${MANDIR}/man8
87 ${INSTALL_PROGRAM} gmid ${DESTDIR}${BINDIR}
88 ${INSTALL_PROGRAM} gg ${DESTDIR}${BINDIR}
89 ${INSTALL_PROGRAM} ge ${DESTDIR}${BINDIR}
90 ${INSTALL_MAN} gmid.8 ${DESTDIR}${MANDIR}/man8
91 ${INSTALL_MAN} gmid.conf.5 ${DESTDIR}${MANDIR}/man5
92 ${INSTALL_MAN} ge.1 ${DESTDIR}${MANDIR}/man1
93 ${INSTALL_MAN} gg.1 ${DESTDIR}${MANDIR}/man1
95 uninstall:
96 rm ${DESTDIR}${BINDIR}/ge
97 rm ${DESTDIR}${BINDIR}/gg
98 rm ${DESTDIR}${BINDIR}/gmid
99 rm ${DESTDIR}${MANDIR}/man1/ge.1
100 rm ${DESTDIR}${MANDIR}/man1/gg.1
101 rm ${DESTDIR}${MANDIR}/man5/gmid.conf.5
102 rm ${DESTDIR}${MANDIR}/man8/gmid.8
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 .dockerignore .gitignore ChangeLog LICENSE \
112 Makefile README.md config.c configure configure.local.example \
113 crypto.c dirs.c fcgi.c ge.1 ge.c gg.1 gg.c gmid.8 gmid.c \
114 gmid.conf.5 gmid.h iri.c log.c log.h logger.c mime.c \
115 parse.y proxy.c puny.c sandbox.c server.c utf8.c utils.c \
116 y.tab.c
118 dist: ${DISTNAME}.sha256
120 ${DISTNAME}.sha256: ${DISTNAME}.tar.gz
122 ${DISTNAME}.tar.gz: ${DISTFILES}
123 mkdir -p .dist/${DISTNAME}/
124 ${INSTALL} -m 0644 ${DISTFILES} .dist/${DISTNAME}/
125 cd .dist/${DISTNAME} && chmod 755 configure
126 ${MAKE} -C compat DESTDIR=${PWD}/.dist/${DISTNAME}/compat dist
127 ${MAKE} -C contrib DESTDIR=${PWD}/.dist/${DISTNAME}/contrib dist
128 ${MAKE} -C have DESTDIR=${PWD}/.dist/${DISTNAME}/have dist
129 ${MAKE} -C regress DESTDIR=${PWD}/.dist/${DISTNAME}/regress dist
130 cd .dist/ && tar zcf ../$@ ${DISTNAME}
131 rm -rf .dist/
133 # -- dependencies --
135 -include config.d
136 -include dirs.d
137 -include fcgi.d
138 -include gg.d
139 -include gmid.d
140 -include iri.d
141 -include log.d
142 -include logger.d
143 -include mime.d
144 -include proc.d
145 -include proxy.d
146 -include puny.d
147 -include sandbox.d
148 -include server.d
149 -include utf8.d
150 -include utils.d
151 -include y.tab.d