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 = config.c \
22 dirs.c \
23 fcgi.c \
24 gmid.c \
25 iri.c \
26 log.c \
27 logger.c \
28 mime.c \
29 proxy.c \
30 puny.c \
31 sandbox.c \
32 server.c \
33 utf8.c \
34 utils.c \
35 y.tab.c \
37 GMID_OBJS = ${GMID_SRCS:.c=.o} ${COBJS}
39 GE_SRCS = config.c \
40 dirs.c \
41 fcgi.c \
42 ge.c \
43 iri.c \
44 log.c \
45 logger.c \
46 mime.c \
47 proxy.c \
48 puny.c \
49 sandbox.c \
50 server.c \
51 utf8.c \
52 utils.c
54 GE_OBJS = ${GE_SRCS:.c=.o} ${COBJS}
56 GG_SRCS = gg.c \
57 iri.c \
58 utf8.c
60 GG_OBJS = ${GG_SRCS:.c=.o} ${COBJS}
62 SRCS = gmid.h \
63 log.h \
64 logger.h \
65 parse.y \
66 ${GMID_SRCS} \
67 ${GE_SRCS} \
68 ${GG_SRCS}
70 DISTNAME = gmid-${VERSION}
72 all: Makefile.local gmid ge gg
73 .PHONY: all tags static clean cleanall test regress install
75 Makefile.local config.h: configure
76 @echo "$@ is out of date; please run ./configure"
77 @exit 1
79 include Makefile.local
80 include Makefile.depend
82 tags:
83 ctags ${SRCS}
85 y.tab.c: parse.y
86 ${YACC} -b y parse.y
88 gmid: ${GMID_OBJS}
89 ${CC} ${GMID_OBJS} -o $@ ${LDFLAGS}
91 ge: ${GE_OBJS}
92 ${CC} ${GE_OBJS} -o $@ ${LDFLAGS}
94 gg: ${GG_OBJS}
95 ${CC} ${GG_OBJS} -o $@ ${LDFLAGS}
97 static: ${GMID_OBJS} ${GE_OBJS} ${GG_OBJS}
98 ${CC} ${GMID_OBJS} -o gmid ${LDFLAGS} ${STATIC}
99 ${CC} ${GG_OBJS} -o ge ${LDFLAGS} ${STATIC}
100 ${CC} ${GG_OBJS} -o gg ${LDFLAGS} ${STATIC}
102 clean:
103 rm -f *.o compat/*.o y.tab.c y.tab.h y.output gmid ge gg
104 rm -f compile_flags.txt
105 ${MAKE} -C regress clean
107 distclean: clean
108 rm -f Makefile.local config.h config.h.old config.log config.log.old
110 test: regress
111 regress: all
112 ${MAKE} 'TESTS=${TESTS}' -C regress all
114 install: gmid gg ge
115 mkdir -p ${DESTDIR}${BINDIR}
116 mkdir -p ${DESTDIR}${MANDIR}/man1
117 mkdir -p ${DESTDIR}${MANDIR}/man5
118 mkdir -p ${DESTDIR}${MANDIR}/man8
119 ${INSTALL_PROGRAM} gmid ${DESTDIR}${BINDIR}
120 ${INSTALL_PROGRAM} gg ${DESTDIR}${BINDIR}
121 ${INSTALL_PROGRAM} ge ${DESTDIR}${BINDIR}
122 ${INSTALL_MAN} gmid.8 ${DESTDIR}${MANDIR}/man8
123 ${INSTALL_MAN} gmid.conf.5 ${DESTDIR}${MANDIR}/man5
124 ${INSTALL_MAN} ge.1 ${DESTDIR}${MANDIR}/man1
125 ${INSTALL_MAN} gg.1 ${DESTDIR}${MANDIR}/man1
127 uninstall:
128 rm ${DESTDIR}${BINDIR}/ge
129 rm ${DESTDIR}${BINDIR}/gg
130 rm ${DESTDIR}${BINDIR}/gmid
131 rm ${DESTDIR}${MANDIR}/man1/ge.1
132 rm ${DESTDIR}${MANDIR}/man1/gg.1
133 rm ${DESTDIR}${MANDIR}/man5/gmid.conf.5
134 rm ${DESTDIR}${MANDIR}/man8/gmid.8
136 # make sure we pass -o to ${CC}. OpenBSD default suffix rule doesn't
137 .SUFFIXES: .c .o
138 .c.o:
139 ${CC} ${CFLAGS} -c $< -o $@
141 # -- maintainer targets --
143 DISTFILES = .cirrus.yml \
144 .dockerignore \
145 .gitignore \
146 ChangeLog \
147 LICENSE \
148 Makefile \
149 Makefile.depend \
150 README.md \
151 configure \
152 configure.local.example \
153 dirs.c \
154 fcgi.c \
155 ge.1 \
156 ge.c \
157 gg.1 \
158 gg.c \
159 gmid.8 \
160 gmid.c \
161 gmid.conf.5 \
162 gmid.h \
163 iri.c \
164 log.c \
165 log.h \
166 logger.c \
167 mime.c \
168 parse.y \
169 proxy.c \
170 puny.c \
171 sandbox.c \
172 server.c \
173 utf8.c \
174 utils.c \
175 y.tab.c
177 depend: config.h y.tab.c
178 mkdep -f Makefile.tmp1 ${CFLAGS} ${GE_SRCS} ${GG_SRCS} ${GMID_SRCS} \
179 ${COBJSx:.o=.c}
180 perl -e 'undef $$/; $$_ = <>; s|/usr/include/\S+||g; \
181 s|\\\n||g; s| +| |g; s| $$||mg; print;' \
182 Makefile.tmp1 > Makefile.tmp2
183 rm Makefile.tmp1
184 mv Makefile.tmp2 Makefile.depend
186 dist: ${DISTNAME}.sha256
188 ${DISTNAME}.sha256: ${DISTNAME}.tar.gz
190 ${DISTNAME}.tar.gz: ${DISTFILES}
191 mkdir -p .dist/${DISTNAME}/
192 ${INSTALL} -m 0644 ${DISTFILES} .dist/${DISTNAME}/
193 cd .dist/${DISTNAME} && chmod 755 configure
194 ${MAKE} -C compat DESTDIR=${PWD}/.dist/${DISTNAME}/compat dist
195 ${MAKE} -C contrib DESTDIR=${PWD}/.dist/${DISTNAME}/contrib dist
196 ${MAKE} -C have DESTDIR=${PWD}/.dist/${DISTNAME}/have dist
197 ${MAKE} -C regress DESTDIR=${PWD}/.dist/${DISTNAME}/regress dist
198 cd .dist/ && tar zcf ../$@ ${DISTNAME}
199 rm -rf .dist/