Blame


1 f36fd90a 2022-07-09 op #! /bin/sh
2 f36fd90a 2022-07-09 op #
3 f36fd90a 2022-07-09 op # Copyright (c) 2014, 2015, 2016 Ingo Schwarze <schwarze@openbsd.org>
4 f36fd90a 2022-07-09 op # Copyright (c) 2017, 2018 Kristaps Dzonsons <kristaps@bsd.lv>
5 34674849 2023-03-23 op # Copyright (c) 2022, 2023 Omar Polo <op@omarpolo.com>
6 f36fd90a 2022-07-09 op #
7 f36fd90a 2022-07-09 op # Permission to use, copy, modify, and distribute this software for any
8 f36fd90a 2022-07-09 op # purpose with or without fee is hereby granted, provided that the above
9 f36fd90a 2022-07-09 op # copyright notice and this permission notice appear in all copies.
10 f36fd90a 2022-07-09 op #
11 f36fd90a 2022-07-09 op # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12 f36fd90a 2022-07-09 op # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13 f36fd90a 2022-07-09 op # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14 f36fd90a 2022-07-09 op # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15 f36fd90a 2022-07-09 op # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16 f36fd90a 2022-07-09 op # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17 f36fd90a 2022-07-09 op # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18 f36fd90a 2022-07-09 op
19 f36fd90a 2022-07-09 op OCONFIGURE_VERSION="0.3.8"
20 f36fd90a 2022-07-09 op
21 f36fd90a 2022-07-09 op #
22 f36fd90a 2022-07-09 op # This script outputs two files: config.h and Makefile.configure.
23 f36fd90a 2022-07-09 op # It tries to read from configure.local, which contains predefined
24 f36fd90a 2022-07-09 op # values we won't autoconfigure.
25 f36fd90a 2022-07-09 op #
26 f36fd90a 2022-07-09 op # If you want to use configure with your project, have your GNUmakefile
27 f36fd90a 2022-07-09 op # or BSDmakefile---whichever---try to import/include Makefile.configure
28 f36fd90a 2022-07-09 op # at the beginning of the file.
29 f36fd90a 2022-07-09 op #
30 f36fd90a 2022-07-09 op # Like so (note no quotes, no period, etc.):
31 f36fd90a 2022-07-09 op #
32 f36fd90a 2022-07-09 op # include Makefile.configure
33 f36fd90a 2022-07-09 op #
34 f36fd90a 2022-07-09 op # If it exists, configure was run; otherwise, it wasn't.
35 f36fd90a 2022-07-09 op #
36 f36fd90a 2022-07-09 op # You'll probably want to change parts of this file. I've noted the
37 f36fd90a 2022-07-09 op # parts that you'll probably change in the section documentation.
38 f36fd90a 2022-07-09 op #
39 f36fd90a 2022-07-09 op # See https://github.com/kristapsdz/oconfigure for more.
40 f36fd90a 2022-07-09 op
41 f36fd90a 2022-07-09 op set -e
42 f36fd90a 2022-07-09 op
43 f36fd90a 2022-07-09 op # try to be helpful
44 f36fd90a 2022-07-09 op case "$1" in
45 f36fd90a 2022-07-09 op --help|-h)
46 f36fd90a 2022-07-09 op cat <<EOF
47 f36fd90a 2022-07-09 op \`configure' configures amused to adapt to many kinds of systems.
48 f36fd90a 2022-07-09 op
49 f36fd90a 2022-07-09 op Usage: $0 [-h] [--prefix=path] [VAR=VALUE]...
50 f36fd90a 2022-07-09 op
51 f36fd90a 2022-07-09 op The options are as follows:
52 f36fd90a 2022-07-09 op
53 f36fd90a 2022-07-09 op -h, --help print this help message
54 f36fd90a 2022-07-09 op
55 19ee7f3a 2022-08-13 op --prefix=path equivalent to specify the PREFIX variable, supported
56 f36fd90a 2022-07-09 op for compatibility with other common "configure" scripts.
57 f36fd90a 2022-07-09 op
58 34674849 2023-03-23 op --backend=name equivalent to specify the BACKEND variable, can be either
59 34674849 2023-03-23 op "sndio" or "alsa".
60 34674849 2023-03-23 op
61 f36fd90a 2022-07-09 op Variables available:
62 f36fd90a 2022-07-09 op
63 d1705aab 2023-10-07 op BACKEND audio backend to use; can be "sndio", "ao" or "alsa"
64 82556d5b 2023-09-07 op CC C compiler
65 82556d5b 2023-09-07 op CFLAGS generic C compiler flags
66 82556d5b 2023-09-07 op CPPFLAGS C preprocessors flags
67 f36fd90a 2022-07-09 op LDADD generic linker flags
68 d1705aab 2023-10-07 op LDADD_LIB_AO linker flags for libao
69 82556d5b 2023-09-07 op LDADD_LIB_ASOUND linker flags for libasound
70 82556d5b 2023-09-07 op LDADD_LIB_FLAC linker flags for libflac
71 82556d5b 2023-09-07 op LDADD_LIB_IMSG linker flags for libimsg
72 56de3111 2023-09-07 op LDADD_LIB_MD linker flags for libmd
73 82556d5b 2023-09-07 op LDADD_LIB_MPG123 linker flags for libmpg123
74 d1705aab 2023-10-07 op LDADD_LIB_PTHREAD linker flags for pthread
75 82556d5b 2023-09-07 op LDADD_LIB_OPUSFILE linker flags for libopusfile
76 82556d5b 2023-09-07 op LDADD_LIB_SNDIO linker flags for libsndio
77 82556d5b 2023-09-07 op LDADD_LIB_SOCKET linker flags for libsocket
78 82556d5b 2023-09-07 op LDADD_LIB_VORBISFILE linker flags for libvorbisfile
79 f36fd90a 2022-07-09 op LDFLAGS extra linker flags
80 f36fd90a 2022-07-09 op DESTDIR destination directory
81 f36fd90a 2022-07-09 op PREFIX where to install files
82 f36fd90a 2022-07-09 op MANDIR where to install man pages (PREFIX/man)
83 f36fd90a 2022-07-09 op LIBDIR where to install libraries (PREFIX/lib)
84 f36fd90a 2022-07-09 op BINDIR where to install executables (PREFIX/bin)
85 f36fd90a 2022-07-09 op SHAREDIR where to install misc files (PREFIX/share)
86 f36fd90a 2022-07-09 op SBINDIR where to install system executables (PREFIX/sbin)
87 f36fd90a 2022-07-09 op INCLUDEDIR where to install header files (PREFIX/include)
88 19ee7f3a 2022-08-13 op PKG_CONFIG pkg-config program, \`false' to disable (pkg-config)
89 f36fd90a 2022-07-09 op
90 cac555b6 2022-07-13 op Additionally, the following environment variables are used if set:
91 cac555b6 2022-07-13 op
92 cac555b6 2022-07-13 op CC the C compiler to use (defaults to cc, clang or gcc)
93 cac555b6 2022-07-13 op CFLAGS generic C compiler flags
94 cac555b6 2022-07-13 op
95 f36fd90a 2022-07-09 op EOF
96 f36fd90a 2022-07-09 op exit 0 ;;
97 f36fd90a 2022-07-09 op esac
98 f36fd90a 2022-07-09 op
99 f36fd90a 2022-07-09 op #----------------------------------------------------------------------
100 f36fd90a 2022-07-09 op # Prepare for running: move aside previous configure runs.
101 f36fd90a 2022-07-09 op # Output file descriptor usage:
102 f36fd90a 2022-07-09 op # 1 (stdout): config.h or Makefile.configure
103 f36fd90a 2022-07-09 op # 2 (stderr): original stderr, usually to the console
104 f36fd90a 2022-07-09 op # 3: config.log
105 f36fd90a 2022-07-09 op # You DO NOT want to change this.
106 f36fd90a 2022-07-09 op #----------------------------------------------------------------------
107 f36fd90a 2022-07-09 op
108 f36fd90a 2022-07-09 op [ -w config.log ] && mv config.log config.log.old
109 f36fd90a 2022-07-09 op [ -w config.h ] && mv config.h config.h.old
110 f36fd90a 2022-07-09 op
111 f36fd90a 2022-07-09 op exec 3> config.log
112 f36fd90a 2022-07-09 op echo "config.log: writing..."
113 f36fd90a 2022-07-09 op
114 f36fd90a 2022-07-09 op # GNU submake prints different output if invoked recursively, which
115 f36fd90a 2022-07-09 op # messes up CC and CFLAGS detection. Pass --no-print-directory if
116 f36fd90a 2022-07-09 op # we have a MAKELEVEL (GNU and FreeBSD make) and the argument is
117 f36fd90a 2022-07-09 op # allowed.
118 f36fd90a 2022-07-09 op
119 f36fd90a 2022-07-09 op MAKE_FLAGS=""
120 f36fd90a 2022-07-09 op
121 f36fd90a 2022-07-09 op if [ -n "${MAKELEVEL}" ]; then
122 f36fd90a 2022-07-09 op if [ "${MAKELEVEL}" -gt 0 ] ; then
123 f36fd90a 2022-07-09 op MAKE_FLAGS="--no-print-directory"
124 f36fd90a 2022-07-09 op echo "all:" | make ${MAKE_FLAGS} -sf - 2>/dev/null || MAKE_FLAGS=""
125 f36fd90a 2022-07-09 op fi
126 f36fd90a 2022-07-09 op fi
127 f36fd90a 2022-07-09 op
128 f36fd90a 2022-07-09 op if [ -n "$MAKE_FLAGS" ]; then
129 f36fd90a 2022-07-09 op echo "GNU submake detected: using --no-print-directory" 1>&2
130 f36fd90a 2022-07-09 op echo "GNU submake detected: using --no-print-directory" 1>&3
131 f36fd90a 2022-07-09 op fi
132 f36fd90a 2022-07-09 op
133 f36fd90a 2022-07-09 op #----------------------------------------------------------------------
134 f36fd90a 2022-07-09 op # Initialize all variables here such that nothing can leak in from the
135 f36fd90a 2022-07-09 op # environment except for CC and CFLAGS, which we might have passed in.
136 f36fd90a 2022-07-09 op #----------------------------------------------------------------------
137 f36fd90a 2022-07-09 op
138 34674849 2023-03-23 op BACKEND=auto
139 f36fd90a 2022-07-09 op CC=`printf "all:\\n\\t@echo \\\$(CC)\\n" | make ${MAKE_FLAGS} -sf -`
140 c2297fa3 2023-12-10 op CXX=`printf "all:\\n\\t@echo \\\$(CXX)\\n" | make ${MAKE_FLAGS} -sf -`
141 f36fd90a 2022-07-09 op CFLAGS=`printf "all:\\n\\t@echo \\\$(CFLAGS)\\n" | make ${MAKE_FLAGS} -sf -`
142 b817795c 2023-01-08 op CFLAGS="${CFLAGS} -g -W -Wall -Wextra -Wmissing-prototypes"
143 b817795c 2023-01-08 op CFLAGS="${CFLAGS} -Wstrict-prototypes -Wmissing-declarations"
144 f6086a9b 2023-09-07 op CFLAGS="${CFLAGS} -Wno-unused-parameter -Wno-sign-compare -Wno-pointer-sign"
145 c2297fa3 2023-12-10 op CXXFLAGS=`printf "all:\\n\\t@echo \\\$(CXXFLAGS)\\n" | make ${MAKE_FLAGS} -sf -`
146 c2297fa3 2023-12-10 op CXXFLAGS="${CXXFLAGS} -g -W -Wall -Wextra -Wno-unused-parameter"
147 f36fd90a 2022-07-09 op LDADD=
148 d1705aab 2023-10-07 op LDADD_LIB_AO=
149 82556d5b 2023-09-07 op LDADD_LIB_ASOUND=
150 f36fd90a 2022-07-09 op LDADD_LIB_FLAC=
151 82556d5b 2023-09-07 op LDADD_LIB_IMSG=
152 82556d5b 2023-09-07 op LDADD_LIB_MD=
153 f36fd90a 2022-07-09 op LDADD_LIB_MPG123=
154 d1705aab 2023-10-07 op LDADD_LIB_PTHREAD=
155 82556d5b 2023-09-07 op LDADD_LIB_OPUSFILE=
156 f36fd90a 2022-07-09 op LDADD_LIB_SNDIO=
157 f36fd90a 2022-07-09 op LDADD_LIB_SOCKET=
158 82556d5b 2023-09-07 op LDADD_LIB_VORBISFILE=
159 f36fd90a 2022-07-09 op LDADD_STATIC=
160 f36fd90a 2022-07-09 op CPPFLAGS=
161 f36fd90a 2022-07-09 op LDFLAGS=
162 f36fd90a 2022-07-09 op DESTDIR=
163 f36fd90a 2022-07-09 op PREFIX="/usr/local"
164 f36fd90a 2022-07-09 op BINDIR=
165 f36fd90a 2022-07-09 op SBINDIR=
166 f36fd90a 2022-07-09 op INCLUDEDIR=
167 f36fd90a 2022-07-09 op LIBDIR=
168 f36fd90a 2022-07-09 op MANDIR=
169 f36fd90a 2022-07-09 op SHAREDIR=
170 f36fd90a 2022-07-09 op INSTALL="install"
171 f36fd90a 2022-07-09 op INSTALL_PROGRAM=
172 f36fd90a 2022-07-09 op INSTALL_LIB=
173 f36fd90a 2022-07-09 op INSTALL_MAN=
174 f36fd90a 2022-07-09 op INSTALL_DATA=
175 f36fd90a 2022-07-09 op PKG_CONFIG=
176 f36fd90a 2022-07-09 op
177 f36fd90a 2022-07-09 op # SunOS sets "cc", but this doesn't exist.
178 f36fd90a 2022-07-09 op # It does have gcc, so try that instead.
179 f36fd90a 2022-07-09 op # Prefer clang, though.
180 f36fd90a 2022-07-09 op
181 f36fd90a 2022-07-09 op command -v ${CC} 2>/dev/null 1>&2 || {
182 f36fd90a 2022-07-09 op echo "${CC} not found: trying clang" 1>&2
183 f36fd90a 2022-07-09 op echo "${CC} not found: trying clang" 1>&3
184 f36fd90a 2022-07-09 op CC=clang
185 f36fd90a 2022-07-09 op command -v ${CC} 2>/dev/null 1>&2 || {
186 f36fd90a 2022-07-09 op echo "${CC} not found: trying gcc" 1>&2
187 f36fd90a 2022-07-09 op echo "${CC} not found: trying gcc" 1>&3
188 f36fd90a 2022-07-09 op CC=gcc
189 f36fd90a 2022-07-09 op command -v ${CC} 2>/dev/null 1>&2 || {
190 f36fd90a 2022-07-09 op echo "gcc not found: giving up" 1>&2
191 f36fd90a 2022-07-09 op echo "gcc not found: giving up" 1>&3
192 f36fd90a 2022-07-09 op exit 1
193 f36fd90a 2022-07-09 op }
194 f36fd90a 2022-07-09 op }
195 f36fd90a 2022-07-09 op }
196 f36fd90a 2022-07-09 op
197 f36fd90a 2022-07-09 op command -v pkg-config 2>/dev/null 1>&2 && {
198 f36fd90a 2022-07-09 op PKG_CONFIG=pkg-config
199 f36fd90a 2022-07-09 op echo "pkg-config found" 1>&2
200 f36fd90a 2022-07-09 op echo "pkg-config found" 1>&3
201 f36fd90a 2022-07-09 op } || {
202 f36fd90a 2022-07-09 op echo "pkg-config not found" 1>&2
203 f36fd90a 2022-07-09 op echo "pkg-config not found" 1>&3
204 f36fd90a 2022-07-09 op }
205 f36fd90a 2022-07-09 op
206 f36fd90a 2022-07-09 op #----------------------------------------------------------------------
207 82556d5b 2023-09-07 op # These are the values that will be pushed into config.h after we test
208 82556d5b 2023-09-07 op # for whether they're supported or not.
209 82556d5b 2023-09-07 op # Each of these must have a runtest(), below.
210 82556d5b 2023-09-07 op # Please sort by alpha, for clarity.
211 82556d5b 2023-09-07 op # You WANT to change this.
212 82556d5b 2023-09-07 op #----------------------------------------------------------------------
213 82556d5b 2023-09-07 op
214 82556d5b 2023-09-07 op HAVE_CAPSICUM=
215 4c1ef99c 2023-10-08 op HAVE_ENDIAN_H=
216 82556d5b 2023-09-07 op HAVE_ERR=
217 82556d5b 2023-09-07 op HAVE_EXPLICIT_BZERO=
218 82556d5b 2023-09-07 op HAVE_FLOCK=
219 82556d5b 2023-09-07 op HAVE_FREEZERO=
220 82556d5b 2023-09-07 op HAVE_GETDTABLECOUNT=
221 4e457e62 2023-12-10 op HAVE_GETDTABLESIZE=
222 82556d5b 2023-09-07 op HAVE_GETEXECNAME=
223 82556d5b 2023-09-07 op HAVE_GETPROGNAME=
224 82556d5b 2023-09-07 op HAVE_INFTIM=
225 82556d5b 2023-09-07 op HAVE_LANDLOCK=
226 82556d5b 2023-09-07 op HAVE_LIB_ASOUND=
227 82556d5b 2023-09-07 op HAVE_LIB_FLAC=
228 82556d5b 2023-09-07 op HAVE_LIB_IMSG=
229 82556d5b 2023-09-07 op HAVE_LIB_MD=
230 82556d5b 2023-09-07 op HAVE_LIB_MPG123=
231 82556d5b 2023-09-07 op HAVE_LIB_OPUSFILE=
232 82556d5b 2023-09-07 op HAVE_LIB_SNDIO=
233 82556d5b 2023-09-07 op HAVE_LIB_SOCKET=
234 82556d5b 2023-09-07 op HAVE_LIB_VORBISFILE=
235 82556d5b 2023-09-07 op HAVE_MEMMEM=
236 82556d5b 2023-09-07 op HAVE_MEMRCHR=
237 82556d5b 2023-09-07 op HAVE_MEMSET_S=
238 82556d5b 2023-09-07 op HAVE_OPTRESET=
239 82556d5b 2023-09-07 op HAVE_PATH_MAX=
240 82556d5b 2023-09-07 op HAVE_PLEDGE=
241 82556d5b 2023-09-07 op HAVE_PROGRAM_INVOCATION_SHORT_NAME=
242 82556d5b 2023-09-07 op HAVE_PR_SET_NAME=
243 82556d5b 2023-09-07 op HAVE_REALLOCARRAY=
244 82556d5b 2023-09-07 op HAVE_RECALLOCARRAY=
245 82556d5b 2023-09-07 op HAVE_SANDBOX_INIT=
246 82556d5b 2023-09-07 op HAVE_SETPROCTITLE=
247 82556d5b 2023-09-07 op HAVE_SIO_FLUSH=
248 82556d5b 2023-09-07 op HAVE_SOCK_NONBLOCK=
249 82556d5b 2023-09-07 op HAVE_STRLCAT=
250 82556d5b 2023-09-07 op HAVE_STRLCPY=
251 82556d5b 2023-09-07 op HAVE_STRNDUP=
252 82556d5b 2023-09-07 op HAVE_STRNLEN=
253 82556d5b 2023-09-07 op HAVE_STRTONUM=
254 4c1ef99c 2023-10-08 op HAVE_SYS_ENDIAN_H=
255 82556d5b 2023-09-07 op HAVE_SYS_FILE=
256 82556d5b 2023-09-07 op HAVE_SYS_QUEUE=
257 82556d5b 2023-09-07 op HAVE_SYSTRACE=0
258 31e12e67 2023-09-07 op HAVE_TIMESPECSUB=
259 82556d5b 2023-09-07 op HAVE_UNVEIL=
260 82556d5b 2023-09-07 op HAVE___PROGNAME=
261 82556d5b 2023-09-07 op
262 82556d5b 2023-09-07 op #----------------------------------------------------------------------
263 f36fd90a 2022-07-09 op # Allow certain variables to be overriden on the command line.
264 f36fd90a 2022-07-09 op #----------------------------------------------------------------------
265 f36fd90a 2022-07-09 op
266 f36fd90a 2022-07-09 op while [ $# -gt 0 ]; do
267 f36fd90a 2022-07-09 op key=${1%%=*}
268 f36fd90a 2022-07-09 op val=${1#*=}
269 f36fd90a 2022-07-09 op
270 f36fd90a 2022-07-09 op if [ "$key" = "--prefix" ]; then
271 f36fd90a 2022-07-09 op key=PREFIX
272 f36fd90a 2022-07-09 op if [ "$1" = "--prefix" ]; then
273 f36fd90a 2022-07-09 op if ! shift 2>&1 >/dev/null; then
274 f36fd90a 2022-07-09 op echo "$0: missing value for --prefix" 1>&2
275 34674849 2023-03-23 op exit 1
276 34674849 2023-03-23 op fi
277 34674849 2023-03-23 op val="$1"
278 34674849 2023-03-23 op fi
279 34674849 2023-03-23 op fi
280 34674849 2023-03-23 op
281 34674849 2023-03-23 op if [ "$key" = "--backend" ]; then
282 34674849 2023-03-23 op key=BACKEND
283 34674849 2023-03-23 op if [ "$1" = "--backend" ]; then
284 34674849 2023-03-23 op if ! shift 2>&1 >/dev/null; then
285 34674849 2023-03-23 op echo "$0 missing value for --backend" 1>&2
286 f36fd90a 2022-07-09 op exit 1
287 f36fd90a 2022-07-09 op fi
288 f36fd90a 2022-07-09 op val="$1"
289 f36fd90a 2022-07-09 op fi
290 f36fd90a 2022-07-09 op fi
291 f36fd90a 2022-07-09 op
292 f36fd90a 2022-07-09 op if [ "$1" = "$key" ]; then
293 f36fd90a 2022-07-09 op echo "$0: invalid key-value: $1" 1>&2
294 f36fd90a 2022-07-09 op exit 1
295 f36fd90a 2022-07-09 op fi
296 f36fd90a 2022-07-09 op
297 f36fd90a 2022-07-09 op shift
298 f36fd90a 2022-07-09 op
299 f36fd90a 2022-07-09 op case "$key" in
300 34674849 2023-03-23 op BACKEND)
301 34674849 2023-03-23 op case "$val" in
302 34674849 2023-03-23 op alsa) BACKEND=alsa ;;
303 d1705aab 2023-10-07 op ao) BACKEND=ao ;;
304 c2297fa3 2023-12-10 op oboe) BACKEND=oboe ;;
305 34674849 2023-03-23 op sndio) BACKEND=sndio ;;
306 34674849 2023-03-23 op *)
307 34674849 2023-03-23 op echo "unknown audio backend: $val" 1>&2
308 34674849 2023-03-23 op exit 1
309 34674849 2023-03-23 op esac ;;
310 82556d5b 2023-09-07 op CC)
311 82556d5b 2023-09-07 op CC="$val" ;;
312 82556d5b 2023-09-07 op CFLAGS)
313 82556d5b 2023-09-07 op CFLAGS="$val" ;;
314 c2297fa3 2023-12-10 op CXXFLAGS)
315 c2297fa3 2023-12-10 op CXXFLAGS="$val" ;;
316 f36fd90a 2022-07-09 op LDADD)
317 f36fd90a 2022-07-09 op LDADD="$val" ;;
318 d1705aab 2023-10-07 op LDADD_LIB_AO)
319 d1705aab 2023-10-07 op LDADD_LIB_AO="$val"
320 d1705aab 2023-10-07 op HAVE_LIB_AO=1
321 d1705aab 2023-10-07 op BACKEND=ao
322 d1705aab 2023-10-07 op ;;
323 82556d5b 2023-09-07 op LDADD_LIB_ASOUND)
324 82556d5b 2023-09-07 op LDADD_LIB_ASOUND="$val"
325 82556d5b 2023-09-07 op HAVE_LIB_ASOUND=1
326 82556d5b 2023-09-07 op BACKEND=alsa
327 82556d5b 2023-09-07 op ;;
328 82556d5b 2023-09-07 op LDADD_LIB_FLAC)
329 82556d5b 2023-09-07 op LDADD_LIB_FLAC="$val"
330 82556d5b 2023-09-07 op HAVE_LIB_FLAC=1
331 82556d5b 2023-09-07 op ;;
332 82556d5b 2023-09-07 op LDADD_LIB_IMSG)
333 82556d5b 2023-09-07 op LDADD_LIB_IMSG="$val"
334 82556d5b 2023-09-07 op HAVE_LIB_IMSG=1
335 82556d5b 2023-09-07 op ;;
336 56de3111 2023-09-07 op LDADD_LIB_MD)
337 82556d5b 2023-09-07 op LDADD_LIB_MD="$val"
338 82556d5b 2023-09-07 op HAVE_LIB_MD=1
339 82556d5b 2023-09-07 op ;;
340 82556d5b 2023-09-07 op LDADD_LIB_MPG123)
341 82556d5b 2023-09-07 op LDADD_LIB_MPG123="$val"
342 82556d5b 2023-09-07 op HAVE_LIB_MPG123=1
343 82556d5b 2023-09-07 op ;;
344 d1705aab 2023-10-07 op LDADD_LIB_PTHREAD)
345 d1705aab 2023-10-07 op LDADD_LIB_PTHREAD="$val"
346 d1705aab 2023-10-07 op HAVE_LIB_PTHREAD=1
347 d1705aab 2023-10-07 op ;;
348 82556d5b 2023-09-07 op LDADD_LIB_OPUSFILE)
349 82556d5b 2023-09-07 op LDADD_LIB_OPUSFILE="$val"
350 82556d5b 2023-09-07 op HAVE_LIB_OPUSFILE=1
351 82556d5b 2023-09-07 op ;;
352 82556d5b 2023-09-07 op LDADD_LIB_SNDIO)
353 82556d5b 2023-09-07 op LDADD_LIB_SNDIO="$val"
354 82556d5b 2023-09-07 op HAVE_LIB_SNDIO=1
355 82556d5b 2023-09-07 op BACKEND=sndio
356 82556d5b 2023-09-07 op ;;
357 82556d5b 2023-09-07 op LDADD_LIB_SOCKET)
358 82556d5b 2023-09-07 op LDADD_LIB_SOCKET="$val"
359 82556d5b 2023-09-07 op HAVE_LIB_SOCKET=1
360 82556d5b 2023-09-07 op ;;
361 82556d5b 2023-09-07 op LDADD_LIB_VORBISFILE)
362 82556d5b 2023-09-07 op LDADD_LIB_VORBISFILE="$val"
363 82556d5b 2023-09-07 op HAVE_LIB_VORBISFILE=1
364 82556d5b 2023-09-07 op ;;
365 f36fd90a 2022-07-09 op LDFLAGS)
366 f36fd90a 2022-07-09 op LDFLAGS="$val" ;;
367 f36fd90a 2022-07-09 op CPPFLAGS)
368 f36fd90a 2022-07-09 op CPPFLAGS="$val" ;;
369 f36fd90a 2022-07-09 op DESTDIR)
370 f36fd90a 2022-07-09 op DESTDIR="$val" ;;
371 f36fd90a 2022-07-09 op PREFIX)
372 f36fd90a 2022-07-09 op PREFIX="$val" ;;
373 f36fd90a 2022-07-09 op MANDIR)
374 f36fd90a 2022-07-09 op MANDIR="$val" ;;
375 f36fd90a 2022-07-09 op LIBDIR)
376 f36fd90a 2022-07-09 op LIBDIR="$val" ;;
377 f36fd90a 2022-07-09 op BINDIR)
378 f36fd90a 2022-07-09 op BINDIR="$val" ;;
379 f36fd90a 2022-07-09 op SHAREDIR)
380 f36fd90a 2022-07-09 op SHAREDIR="$val" ;;
381 f36fd90a 2022-07-09 op SBINDIR)
382 f36fd90a 2022-07-09 op SBINDIR="$val" ;;
383 f36fd90a 2022-07-09 op INCLUDEDIR)
384 f36fd90a 2022-07-09 op INCLUDEDIR="$val" ;;
385 f36fd90a 2022-07-09 op PKG_CONFIG)
386 f36fd90a 2022-07-09 op PKG_CONFIG="$val" ;;
387 f36fd90a 2022-07-09 op *)
388 f36fd90a 2022-07-09 op echo "$0: invalid key: $key" 1>&2
389 f36fd90a 2022-07-09 op exit 1
390 f36fd90a 2022-07-09 op esac
391 f36fd90a 2022-07-09 op done
392 f36fd90a 2022-07-09 op
393 f36fd90a 2022-07-09 op #----------------------------------------------------------------------
394 f36fd90a 2022-07-09 op # Allow configure.local to override all variables, default settings,
395 f36fd90a 2022-07-09 op # command-line arguments, and tested features, above.
396 f36fd90a 2022-07-09 op # You PROBABLY DO NOT want to change this.
397 f36fd90a 2022-07-09 op #----------------------------------------------------------------------
398 f36fd90a 2022-07-09 op
399 f36fd90a 2022-07-09 op if [ -r ./configure.local ]; then
400 f36fd90a 2022-07-09 op echo "configure.local: reading..." 1>&2
401 f36fd90a 2022-07-09 op echo "configure.local: reading..." 1>&3
402 f36fd90a 2022-07-09 op cat ./configure.local 1>&3
403 f36fd90a 2022-07-09 op . ./configure.local
404 f36fd90a 2022-07-09 op else
405 f36fd90a 2022-07-09 op echo "configure.local: no (fully automatic configuration)" 1>&2
406 f36fd90a 2022-07-09 op echo "configure.local: no (fully automatic configuration)" 1>&3
407 f36fd90a 2022-07-09 op fi
408 f36fd90a 2022-07-09 op
409 f36fd90a 2022-07-09 op echo 1>&3
410 f36fd90a 2022-07-09 op
411 f36fd90a 2022-07-09 op #----------------------------------------------------------------------
412 f36fd90a 2022-07-09 op # Infrastructure for running tests.
413 f36fd90a 2022-07-09 op # These consists of a series of functions that will attempt to run the
414 f36fd90a 2022-07-09 op # given test file and record its exit into a HAVE_xxx variable.
415 f36fd90a 2022-07-09 op # You DO NOT want to change this.
416 f36fd90a 2022-07-09 op #----------------------------------------------------------------------
417 f36fd90a 2022-07-09 op
418 f36fd90a 2022-07-09 op COMP="${CC} ${CFLAGS} ${CPPFLAGS} -Wno-unused -Werror"
419 f36fd90a 2022-07-09 op
420 f36fd90a 2022-07-09 op # Check whether this HAVE_ setting is manually overridden.
421 f36fd90a 2022-07-09 op # If yes, use the override, if no, do not decide anything yet.
422 f36fd90a 2022-07-09 op # Arguments: lower-case test name, manual value
423 f36fd90a 2022-07-09 op
424 f36fd90a 2022-07-09 op ismanual() {
425 82556d5b 2023-09-07 op eval _manual=\${LDADD_${2}}
426 82556d5b 2023-09-07 op if [ -z "$_manual" ]; then
427 82556d5b 2023-09-07 op eval _manual=\${HAVE_${2}}
428 82556d5b 2023-09-07 op fi
429 82556d5b 2023-09-07 op
430 82556d5b 2023-09-07 op [ -z "${_manual}" ] && return 1
431 82556d5b 2023-09-07 op echo "${1}: manual (${_manual})" 1>&2
432 82556d5b 2023-09-07 op echo "${1}: manual (${_manual})" 1>&3
433 f36fd90a 2022-07-09 op echo 1>&3
434 f36fd90a 2022-07-09 op return 0
435 f36fd90a 2022-07-09 op }
436 f36fd90a 2022-07-09 op
437 f36fd90a 2022-07-09 op # Run a single autoconfiguration test.
438 f36fd90a 2022-07-09 op # In case of success, enable the feature.
439 f36fd90a 2022-07-09 op # In case of failure, do not decide anything yet.
440 f36fd90a 2022-07-09 op # Arguments: lower-case test name, upper-case test name, additional
441 f36fd90a 2022-07-09 op # CFLAGS, additional LIBS.
442 f36fd90a 2022-07-09 op
443 f36fd90a 2022-07-09 op singletest() {
444 f36fd90a 2022-07-09 op extralib=""
445 f36fd90a 2022-07-09 op pkgcfs=""
446 f36fd90a 2022-07-09 op pkglib=""
447 f36fd90a 2022-07-09 op
448 f36fd90a 2022-07-09 op cat 1>&3 << __HEREDOC__
449 f36fd90a 2022-07-09 op ${1}: testing...
450 f36fd90a 2022-07-09 op ${COMP} -DTEST_${2} ${3} -o test-${1} tests.c ${LDFLAGS} ${4}
451 f36fd90a 2022-07-09 op __HEREDOC__
452 f36fd90a 2022-07-09 op if ${COMP} -DTEST_${2} ${3} -o "test-${1}" tests.c ${LDFLAGS} ${4} 1>&3 2>&3; then
453 f36fd90a 2022-07-09 op echo "${1}: ${CC} succeeded" 1>&3
454 f36fd90a 2022-07-09 op else
455 f36fd90a 2022-07-09 op if [ -n "${5}" ] ; then
456 f36fd90a 2022-07-09 op echo "${1}: ${CC} failed with $? (retrying)" 1>&3
457 f36fd90a 2022-07-09 op cat 1>&3 << __HEREDOC__
458 f36fd90a 2022-07-09 op ${1}: testing...
459 f36fd90a 2022-07-09 op ${COMP} -DTEST_${2} ${3} -o test-${1} tests.c ${LDFLAGS} ${5}
460 f36fd90a 2022-07-09 op __HEREDOC__
461 f36fd90a 2022-07-09 op if ${COMP} -DTEST_${2} ${3} -o "test-${1}" tests.c ${LDFLAGS} ${5} 1>&3 2>&3; then
462 f36fd90a 2022-07-09 op echo "${1}: ${CC} succeeded" 1>&3
463 f36fd90a 2022-07-09 op extralib="(with ${5})"
464 f36fd90a 2022-07-09 op else
465 f36fd90a 2022-07-09 op test -n "${PKG_CONFIG}" -a -n "${6}" && ${PKG_CONFIG} "$6"
466 f36fd90a 2022-07-09 op if [ $? -eq 0 ]; then
467 f36fd90a 2022-07-09 op echo "${1}: ${CC} failed with $? (retrying)" 1>&3
468 f36fd90a 2022-07-09 op pkgcfs=$($PKG_CONFIG --cflags "${6}")
469 f36fd90a 2022-07-09 op pkglib=$($PKG_CONFIG --libs "${6}")
470 f36fd90a 2022-07-09 op cat 1>&3 << __HEREDOC__
471 f36fd90a 2022-07-09 op ${1}: testing...
472 f36fd90a 2022-07-09 op ${COMP} -DTEST_${2} ${3} ${pkgcfs} -o test-${1} tests.c ${LDFLAGS} ${pkglib}
473 f36fd90a 2022-07-09 op __HEREDOC__
474 f36fd90a 2022-07-09 op if ${COMP} -DTEST_${2} ${3} ${pkgcfs} -o test-${1} tests.c ${LDFLAGS} ${pkglib} 1>&3 2>&3; then
475 f36fd90a 2022-07-09 op echo "${1}: ${CC} succeeded" 1>&3
476 f36fd90a 2022-07-09 op extralib="(with ${pkgcfs} ${pkglib})"
477 f36fd90a 2022-07-09 op else
478 f36fd90a 2022-07-09 op echo "${1}: ${CC} failed with $?" 1>&3
479 f36fd90a 2022-07-09 op echo 1>&3
480 f36fd90a 2022-07-09 op return 1
481 f36fd90a 2022-07-09 op fi
482 f36fd90a 2022-07-09 op else
483 f36fd90a 2022-07-09 op echo "${1}: ${CC} failed with $?" 1>&3
484 f36fd90a 2022-07-09 op echo 1>&3
485 f36fd90a 2022-07-09 op return 1
486 f36fd90a 2022-07-09 op fi
487 f36fd90a 2022-07-09 op fi
488 f36fd90a 2022-07-09 op else
489 f36fd90a 2022-07-09 op echo "${1}: ${CC} failed with $?" 1>&3
490 f36fd90a 2022-07-09 op echo 1>&3
491 f36fd90a 2022-07-09 op return 1
492 f36fd90a 2022-07-09 op fi
493 f36fd90a 2022-07-09 op fi
494 1c53767e 2022-07-13 op
495 1c53767e 2022-07-13 op rm -f test-${1}.d
496 f36fd90a 2022-07-09 op
497 8ac3fb61 2023-09-07 op if [ -n "${pkgcfs}" -o -n "${pkglib}" ]; then
498 f36fd90a 2022-07-09 op CFLAGS="${CFLAGS} ${pkgcfs}"
499 f36fd90a 2022-07-09 op eval "LDADD_${2}=\"${pkglib}\""
500 8ac3fb61 2023-09-07 op elif [ -n "${extralib}" ]; then
501 f36fd90a 2022-07-09 op eval "LDADD_${2}=\"${5}\""
502 8ac3fb61 2023-09-07 op elif [ -n "${4}" ]; then
503 f36fd90a 2022-07-09 op eval "LDADD_${2}=\"${4}\""
504 f36fd90a 2022-07-09 op fi
505 f36fd90a 2022-07-09 op
506 f36fd90a 2022-07-09 op echo "${1}: yes ${extralib}" 1>&2
507 f36fd90a 2022-07-09 op echo "${1}: yes ${extralib}" 1>&3
508 f36fd90a 2022-07-09 op echo 1>&3
509 f36fd90a 2022-07-09 op eval HAVE_${2}=1
510 f36fd90a 2022-07-09 op rm "test-${1}"
511 f36fd90a 2022-07-09 op return 0
512 f36fd90a 2022-07-09 op }
513 f36fd90a 2022-07-09 op
514 f36fd90a 2022-07-09 op # Run a complete autoconfiguration test, including the check for
515 f36fd90a 2022-07-09 op # a manual override and disabling the feature on failure.
516 f36fd90a 2022-07-09 op # Arguments: lower case name, upper case name, additional CFLAGS,
517 f36fd90a 2022-07-09 op # additional LDADD, alternative LDADD, pkg-config name.
518 f36fd90a 2022-07-09 op
519 f36fd90a 2022-07-09 op runtest() {
520 82556d5b 2023-09-07 op ismanual "${1}" "${2}" && return 0
521 f36fd90a 2022-07-09 op singletest "${1}" "${2}" "${3}" "${4}" "${5}" "${6}" && return 0
522 f36fd90a 2022-07-09 op echo "${1}: no" 1>&2
523 f36fd90a 2022-07-09 op eval HAVE_${2}=0
524 f36fd90a 2022-07-09 op return 1
525 f36fd90a 2022-07-09 op }
526 f36fd90a 2022-07-09 op
527 f36fd90a 2022-07-09 op #----------------------------------------------------------------------
528 f36fd90a 2022-07-09 op # Begin running the tests themselves.
529 f36fd90a 2022-07-09 op # All of your tests must be defined here.
530 f36fd90a 2022-07-09 op # Please sort as the HAVE_xxxx values were defined.
531 f36fd90a 2022-07-09 op # You WANT to change this.
532 f36fd90a 2022-07-09 op # It consists of the following columns:
533 f36fd90a 2022-07-09 op # runtest
534 f36fd90a 2022-07-09 op # (1) test file
535 f36fd90a 2022-07-09 op # (2) macro to set
536 f36fd90a 2022-07-09 op # (3) argument to cc *before* -o
537 f36fd90a 2022-07-09 op # (4) argument to cc *after*
538 f36fd90a 2022-07-09 op # (5) alternative argument to cc *after*
539 f36fd90a 2022-07-09 op # (6) name for pkg-config auto-discovery
540 f36fd90a 2022-07-09 op #----------------------------------------------------------------------
541 f36fd90a 2022-07-09 op
542 f36fd90a 2022-07-09 op if runtest -MMD _MMD -MMD; then
543 f36fd90a 2022-07-09 op CFLAGS="${CFLAGS} -MMD"
544 c2297fa3 2023-12-10 op CXXFLAGS="${CXXFLAGS} -MMD"
545 c2297fa3 2023-12-10 op echo "adding -MMD to CFLAGS and CXXFLAGS" 1>&2
546 c2297fa3 2023-12-10 op echo "adding -MMD to CFLAGS and CXXFLAGS" 1>&3
547 f36fd90a 2022-07-09 op fi
548 f36fd90a 2022-07-09 op
549 f36fd90a 2022-07-09 op runtest capsicum CAPSICUM || true
550 4c1ef99c 2023-10-08 op runtest endian_h ENDIAN_H || true
551 f36fd90a 2022-07-09 op runtest err ERR || true
552 f36fd90a 2022-07-09 op runtest explicit_bzero EXPLICIT_BZERO || true
553 f36fd90a 2022-07-09 op runtest flock FLOCK || true
554 f36fd90a 2022-07-09 op runtest freezero FREEZERO || true
555 f36fd90a 2022-07-09 op runtest getdtablecount GETDTABLECOUNT || true
556 4e457e62 2023-12-10 op runtest getdtablesize GETDTABLESIZE || true
557 f36fd90a 2022-07-09 op runtest getexecname GETEXECNAME || true
558 f36fd90a 2022-07-09 op runtest getprogname GETPROGNAME || true
559 f36fd90a 2022-07-09 op runtest INFTIM INFTIM || true
560 f36fd90a 2022-07-09 op runtest landlock LANDLOCK || true
561 82556d5b 2023-09-07 op
562 82556d5b 2023-09-07 op runtest lib_imsg LIB_IMSG "" "" "-lutil" || true
563 82556d5b 2023-09-07 op runtest lib_md LIB_MD "" "" "-lmd" "libmd" || true
564 82556d5b 2023-09-07 op runtest lib_socket LIB_SOCKET "" "" "-lsocket -lnsl" || true
565 f36fd90a 2022-07-09 op
566 f36fd90a 2022-07-09 op runtest lib_flac LIB_FLAC "" "" "-lFLAC" "flac" || true
567 f36fd90a 2022-07-09 op runtest lib_mpg123 LIB_MPG123 "" "" "-lmpg123" "libmpg123" || true
568 f36fd90a 2022-07-09 op runtest lib_opusfile LIB_OPUSFILE "" "" "-lopusfile" "opusfile" || true
569 f36fd90a 2022-07-09 op runtest lib_vorbisfile LIB_VORBISFILE "" "" "-lvorbisfile" "vorbisfile" || true
570 f36fd90a 2022-07-09 op
571 f36fd90a 2022-07-09 op runtest memmem MEMMEM || true
572 f36fd90a 2022-07-09 op runtest memrchr MEMRCHR || true
573 f36fd90a 2022-07-09 op runtest memset_s MEMSET_S || true
574 f36fd90a 2022-07-09 op runtest optreset OPTRESET || true
575 f36fd90a 2022-07-09 op runtest PATH_MAX PATH_MAX || true
576 f36fd90a 2022-07-09 op runtest pledge PLEDGE || true
577 f36fd90a 2022-07-09 op runtest program_invocation_short_name PROGRAM_INVOCATION_SHORT_NAME || true
578 f36fd90a 2022-07-09 op runtest PR_SET_NAME PR_SET_NAME || true
579 f36fd90a 2022-07-09 op runtest reallocarray REALLOCARRAY || true
580 f36fd90a 2022-07-09 op runtest recallocarray RECALLOCARRAY || true
581 f36fd90a 2022-07-09 op runtest sandbox_init SANDBOX_INIT "-Wno-deprecated" || true
582 f36fd90a 2022-07-09 op runtest setproctitle SETPROCTITLE || true
583 f36fd90a 2022-07-09 op runtest SOCK_NONBLOCK SOCK_NONBLOCK || true
584 f36fd90a 2022-07-09 op runtest static STATIC "" "-static" || true
585 f36fd90a 2022-07-09 op runtest strlcat STRLCAT || true
586 f36fd90a 2022-07-09 op runtest strlcpy STRLCPY || true
587 f36fd90a 2022-07-09 op runtest strndup STRNDUP || true
588 f36fd90a 2022-07-09 op runtest strnlen STRNLEN || true
589 f36fd90a 2022-07-09 op runtest strtonum STRTONUM || true
590 f36fd90a 2022-07-09 op runtest sys_queue SYS_QUEUE || true
591 4c1ef99c 2023-10-08 op runtest sys_endian_h SYS_ENDIAN_H || true
592 f36fd90a 2022-07-09 op runtest sys_file SYS_FILE || true
593 31e12e67 2023-09-07 op runtest timespecsub TIMESPECSUB || true
594 f36fd90a 2022-07-09 op runtest unveil UNVEIL || true
595 f36fd90a 2022-07-09 op runtest __progname __PROGNAME || true
596 34674849 2023-03-23 op
597 d1705aab 2023-10-07 op if [ $BACKEND = auto -o $BACKEND = sndio ]; then
598 34674849 2023-03-23 op runtest lib_sndio LIB_SNDIO "" "" "-lsndio" "sndio" || true
599 34674849 2023-03-23 op runtest sio_flush SIO_FLUSH "" "" "${LDADD_LIB_SNDIO}" || true
600 34674849 2023-03-23 op
601 34674849 2023-03-23 op if [ "${HAVE_LIB_SNDIO}" -eq 0 ]; then
602 34674849 2023-03-23 op if [ $BACKEND = sndio ]; then
603 34674849 2023-03-23 op echo "Fatal: missing libsndio" 1>&2
604 34674849 2023-03-23 op echo "Fatal: missing libsndio" 1>&3
605 34674849 2023-03-23 op exit 1
606 34674849 2023-03-23 op fi
607 34674849 2023-03-23 op else
608 34674849 2023-03-23 op BACKEND=sndio
609 34674849 2023-03-23 op fi
610 e89b829a 2023-05-12 op else
611 e89b829a 2023-05-12 op HAVE_SIO_FLUSH=0
612 34674849 2023-03-23 op fi
613 f36fd90a 2022-07-09 op
614 d1705aab 2023-10-07 op if [ $BACKEND = auto -o $BACKEND = alsa ]; then
615 34674849 2023-03-23 op runtest lib_asound LIB_ASOUND "" "" "-lasound" "alsa" || true
616 34674849 2023-03-23 op if [ "${HAVE_LIB_ASOUND}" -eq 0 ]; then
617 34674849 2023-03-23 op if [ $BACKEND = alsa ]; then
618 34674849 2023-03-23 op echo "Fatal: missing libasound" 1>&2
619 34674849 2023-03-23 op echo "Fatal: missing libasound" 1>&3
620 d1705aab 2023-10-07 op exit 1
621 34674849 2023-03-23 op fi
622 34674849 2023-03-23 op fi
623 34674849 2023-03-23 op BACKEND=alsa
624 f36fd90a 2022-07-09 op fi
625 f36fd90a 2022-07-09 op
626 d1705aab 2023-10-07 op if [ $BACKEND = auto -o $BACKEND = ao ]; then
627 d1705aab 2023-10-07 op runtest lib_ao LIB_AO "" "" "-lao" "ao" || true
628 d1705aab 2023-10-07 op if [ "${HAVE_LIB_AO}" -eq 0 ]; then
629 d1705aab 2023-10-07 op if [ $BACKEND = ao ]; then
630 d1705aab 2023-10-07 op echo "Fatal: missing libao" 1>&2
631 d1705aab 2023-10-07 op echo "Fatal: missing libao" 1>&3
632 d1705aab 2023-10-07 op else
633 d1705aab 2023-10-07 op echo "Fatal: missing libasound, libao or libsndio" 1>&2
634 d1705aab 2023-10-07 op echo "Fatal: missing libasound, libao or libsndio" 1>&3
635 d1705aab 2023-10-07 op fi
636 d1705aab 2023-10-07 op exit 1
637 d1705aab 2023-10-07 op fi
638 d1705aab 2023-10-07 op BACKEND=ao
639 d1705aab 2023-10-07 op
640 d1705aab 2023-10-07 op runtest pthread LIB_PTHREAD "" "-pthread" || true
641 d1705aab 2023-10-07 op if [ "${HAVE_LIB_PTHREAD}" -eq 0 ]; then
642 d1705aab 2023-10-07 op echo "Fatal: missing pthread" 1>&2
643 d1705aab 2023-10-07 op echo "Fatal: missing pthread" 1>&3
644 d1705aab 2023-10-07 op exit 1
645 d1705aab 2023-10-07 op fi
646 d1705aab 2023-10-07 op CFLAGS="${CFLAGS} -pthread"
647 b8792547 2023-10-09 op fi
648 b8792547 2023-10-09 op
649 c2297fa3 2023-12-10 op if [ $BACKEND = auto -o $BACKEND = oboe ]; then
650 c2297fa3 2023-12-10 op runtest pthread LIB_PTHREAD "" "-pthread" || true
651 c2297fa3 2023-12-10 op if [ "${HAVE_LIB_PTHREAD}" -eq 0 ]; then
652 c2297fa3 2023-12-10 op echo "Fatal: missing pthread" 1>&2
653 c2297fa3 2023-12-10 op echo "Fatal: missing pthread" 1>&3
654 c2297fa3 2023-12-10 op exit 1
655 c2297fa3 2023-12-10 op fi
656 c2297fa3 2023-12-10 op CFLAGS="${CFLAGS} -pthread"
657 c2297fa3 2023-12-10 op
658 c2297fa3 2023-12-10 op LDADD="${LDADD} -lstdc++ -lm -llog -lOpenSLES"
659 c2297fa3 2023-12-10 op fi
660 c2297fa3 2023-12-10 op
661 b8792547 2023-10-09 op if [ "${HAVE_ENDIAN_H}" -eq 0 ]; then
662 b8792547 2023-10-09 op CFLAGS="${CFLAGS} -I."
663 d1705aab 2023-10-07 op fi
664 d1705aab 2023-10-07 op
665 f36fd90a 2022-07-09 op if [ "${HAVE_LIB_FLAC}" -eq 0 -o \
666 f36fd90a 2022-07-09 op "${HAVE_LIB_MPG123}" -eq 0 -o \
667 f36fd90a 2022-07-09 op "${HAVE_LIB_OPUSFILE}" -eq 0 -o \
668 f36fd90a 2022-07-09 op "${HAVE_LIB_VORBISFILE}" -eq 0 ]; then
669 f36fd90a 2022-07-09 op echo "Fatal: missing required audio libraries" 1>&2
670 f36fd90a 2022-07-09 op echo "Fatal: missing required audio libraries" 1>&3
671 f36fd90a 2022-07-09 op exit 1
672 f36fd90a 2022-07-09 op fi
673 f36fd90a 2022-07-09 op
674 f36fd90a 2022-07-09 op #----------------------------------------------------------------------
675 f36fd90a 2022-07-09 op # Output writing: generate the config.h file.
676 f36fd90a 2022-07-09 op # This file contains all of the HAVE_xxxx variables necessary for
677 f36fd90a 2022-07-09 op # compiling your source.
678 f36fd90a 2022-07-09 op # You must include "config.h" BEFORE any other variables.
679 f36fd90a 2022-07-09 op # You WANT to change this.
680 f36fd90a 2022-07-09 op #----------------------------------------------------------------------
681 f36fd90a 2022-07-09 op
682 f36fd90a 2022-07-09 op exec > config.h
683 f36fd90a 2022-07-09 op
684 f36fd90a 2022-07-09 op # Start with prologue.
685 f36fd90a 2022-07-09 op
686 f36fd90a 2022-07-09 op cat << __HEREDOC__
687 f36fd90a 2022-07-09 op #ifndef OCONFIGURE_CONFIG_H
688 f36fd90a 2022-07-09 op #define OCONFIGURE_CONFIG_H
689 f36fd90a 2022-07-09 op
690 c2297fa3 2023-12-10 op /* the oboe (android) backend uses c++ */
691 c2297fa3 2023-12-10 op #ifndef __ANDROID__
692 f36fd90a 2022-07-09 op #ifdef __cplusplus
693 f36fd90a 2022-07-09 op # error "Do not use C++: this is a C application."
694 f36fd90a 2022-07-09 op #endif
695 c2297fa3 2023-12-10 op #endif /* __ANDROID__ */
696 f36fd90a 2022-07-09 op #if !defined(__GNUC__) || (__GNUC__ < 4)
697 f36fd90a 2022-07-09 op # define __attribute__(x)
698 f36fd90a 2022-07-09 op #endif
699 f36fd90a 2022-07-09 op #if defined(__linux__) || defined(__MINT__)
700 c2297fa3 2023-12-10 op # ifndef __ANDROID__
701 c2297fa3 2023-12-10 op # define _GNU_SOURCE /* memmem, memrchr, setresuid... */
702 c2297fa3 2023-12-10 op # endif
703 f36fd90a 2022-07-09 op # define _DEFAULT_SOURCE /* le32toh, crypt, ... */
704 f36fd90a 2022-07-09 op #endif
705 f36fd90a 2022-07-09 op #if defined(__NetBSD__)
706 f36fd90a 2022-07-09 op # define _OPENBSD_SOURCE /* reallocarray, etc. */
707 f36fd90a 2022-07-09 op #endif
708 f36fd90a 2022-07-09 op #if defined(__sun)
709 f36fd90a 2022-07-09 op # ifndef _XOPEN_SOURCE /* SunOS already defines */
710 f36fd90a 2022-07-09 op # define _XOPEN_SOURCE /* XPGx */
711 f36fd90a 2022-07-09 op # endif
712 f36fd90a 2022-07-09 op # define _XOPEN_SOURCE_EXTENDED 1 /* XPG4v2 */
713 f36fd90a 2022-07-09 op # ifndef __EXTENSIONS__ /* SunOS already defines */
714 f36fd90a 2022-07-09 op # define __EXTENSIONS__ /* reallocarray, etc. */
715 f36fd90a 2022-07-09 op # endif
716 f36fd90a 2022-07-09 op #endif
717 f36fd90a 2022-07-09 op #if !defined(__BEGIN_DECLS)
718 f36fd90a 2022-07-09 op # define __BEGIN_DECLS
719 f36fd90a 2022-07-09 op #endif
720 f36fd90a 2022-07-09 op #if !defined(__END_DECLS)
721 f36fd90a 2022-07-09 op # define __END_DECLS
722 f36fd90a 2022-07-09 op #endif
723 f36fd90a 2022-07-09 op
724 f36fd90a 2022-07-09 op __HEREDOC__
725 f36fd90a 2022-07-09 op
726 f36fd90a 2022-07-09 op # This is just for size_t, mode_t, and dev_t.
727 f36fd90a 2022-07-09 op # Most of these functions, in the real world, pull in <string.h> or
728 f36fd90a 2022-07-09 op # someting that pulls in support for size_t.
729 f36fd90a 2022-07-09 op # Our function declarations are standalone, so specify them here.
730 f36fd90a 2022-07-09 op
731 82556d5b 2023-09-07 op if [ ${HAVE_LIB_IMSG} -eq 0 -o \
732 f36fd90a 2022-07-09 op ${HAVE_MEMMEM} -eq 0 -o \
733 f36fd90a 2022-07-09 op ${HAVE_MEMRCHR} -eq 0 -o \
734 f36fd90a 2022-07-09 op ${HAVE_REALLOCARRAY} -eq 0 -o \
735 f36fd90a 2022-07-09 op ${HAVE_RECALLOCARRAY} -eq 0 -o \
736 f36fd90a 2022-07-09 op ${HAVE_STRLCAT} -eq 0 -o \
737 f36fd90a 2022-07-09 op ${HAVE_STRLCPY} -eq 0 -o \
738 f36fd90a 2022-07-09 op ${HAVE_STRNDUP} -eq 0 -o \
739 f36fd90a 2022-07-09 op ${HAVE_STRNLEN} -eq 0 ]
740 f36fd90a 2022-07-09 op then
741 f36fd90a 2022-07-09 op echo "#include <sys/types.h> /* size_t, mode_t, dev_t */ "
742 f36fd90a 2022-07-09 op echo
743 f36fd90a 2022-07-09 op fi
744 f36fd90a 2022-07-09 op
745 f36fd90a 2022-07-09 op if [ ${HAVE_FLOCK} -eq 0 ]; then
746 f36fd90a 2022-07-09 op if [ ${HAVE_SYS_FILE} -eq 0 ]; then
747 f36fd90a 2022-07-09 op HAVE_FLOCK=1
748 f36fd90a 2022-07-09 op echo "#include <sys/file.h>"
749 f36fd90a 2022-07-09 op echo
750 f36fd90a 2022-07-09 op else
751 f36fd90a 2022-07-09 op echo "int flock(int, int);"
752 f36fd90a 2022-07-09 op echo "#define LOCK_SH 0x1"
753 f36fd90a 2022-07-09 op echo "#define LOCK_EX 0x2"
754 f36fd90a 2022-07-09 op echo "#define LOCK_NB 0x4"
755 f36fd90a 2022-07-09 op echo
756 f36fd90a 2022-07-09 op fi
757 f36fd90a 2022-07-09 op fi
758 f36fd90a 2022-07-09 op
759 f36fd90a 2022-07-09 op if [ ${HAVE_ERR} -eq 0 ]; then
760 f36fd90a 2022-07-09 op echo "#include <stdarg.h> /* err(3) */"
761 f36fd90a 2022-07-09 op echo
762 f36fd90a 2022-07-09 op else
763 f36fd90a 2022-07-09 op echo "#include <err.h>"
764 f36fd90a 2022-07-09 op echo
765 f36fd90a 2022-07-09 op fi
766 f36fd90a 2022-07-09 op
767 f36fd90a 2022-07-09 op if [ ${HAVE_PLEDGE} -eq 0 ]; then
768 f36fd90a 2022-07-09 op echo "#define pledge(p, e) (0)"
769 f36fd90a 2022-07-09 op echo
770 f36fd90a 2022-07-09 op else
771 f36fd90a 2022-07-09 op echo "#include <unistd.h>"
772 f36fd90a 2022-07-09 op echo
773 f36fd90a 2022-07-09 op fi
774 f36fd90a 2022-07-09 op
775 f36fd90a 2022-07-09 op # Now we handle our HAVE_xxxx values.
776 f36fd90a 2022-07-09 op # Most will just be defined as 0 or 1.
777 f36fd90a 2022-07-09 op
778 f36fd90a 2022-07-09 op if [ ${HAVE_PATH_MAX} -eq 0 ]
779 f36fd90a 2022-07-09 op then
780 f36fd90a 2022-07-09 op echo "#define PATH_MAX 4096"
781 f36fd90a 2022-07-09 op echo
782 f36fd90a 2022-07-09 op fi
783 f36fd90a 2022-07-09 op
784 f36fd90a 2022-07-09 op if [ ${HAVE_INFTIM} -eq 0 ]
785 f36fd90a 2022-07-09 op then
786 f36fd90a 2022-07-09 op echo "#define INFTIM (-1) /* poll.h */"
787 f36fd90a 2022-07-09 op echo
788 f36fd90a 2022-07-09 op fi
789 f36fd90a 2022-07-09 op
790 f36fd90a 2022-07-09 op cat << __HEREDOC__
791 f36fd90a 2022-07-09 op /*
792 f36fd90a 2022-07-09 op * Results of configuration feature-testing.
793 f36fd90a 2022-07-09 op */
794 f36fd90a 2022-07-09 op #define HAVE_CAPSICUM ${HAVE_CAPSICUM}
795 4c1ef99c 2023-10-08 op #define HAVE_ENDIAN_H ${HAVE_ENDIAN_H}
796 f36fd90a 2022-07-09 op #define HAVE_ERR ${HAVE_ERR}
797 f36fd90a 2022-07-09 op #define HAVE_EXPLICIT_BZERO ${HAVE_EXPLICIT_BZERO}
798 f36fd90a 2022-07-09 op #define HAVE_FLOCK ${HAVE_FLOCK}
799 f36fd90a 2022-07-09 op #define HAVE_FREEZERO ${HAVE_FREEZERO}
800 f36fd90a 2022-07-09 op #define HAVE_GETDTABLECOUNT ${HAVE_GETDTABLECOUNT}
801 4e457e62 2023-12-10 op #define HAVE_GETDTABLESIZE ${HAVE_GETDTABLESIZE}
802 f36fd90a 2022-07-09 op #define HAVE_GETEXECNAME ${HAVE_GETEXECNAME}
803 f36fd90a 2022-07-09 op #define HAVE_GETPROGNAME ${HAVE_GETPROGNAME}
804 82556d5b 2023-09-07 op #define HAVE_LIB_IMSG ${HAVE_LIB_IMSG}
805 f36fd90a 2022-07-09 op #define HAVE_INFTIM ${HAVE_INFTIM}
806 f36fd90a 2022-07-09 op #define HAVE_LANDLOCK ${HAVE_LANDLOCK}
807 f36fd90a 2022-07-09 op #define HAVE_MEMMEM ${HAVE_MEMMEM}
808 f36fd90a 2022-07-09 op #define HAVE_MEMRCHR ${HAVE_MEMRCHR}
809 f36fd90a 2022-07-09 op #define HAVE_MEMSET_S ${HAVE_MEMSET_S}
810 f36fd90a 2022-07-09 op #define HAVE_OPTRESET ${HAVE_OPTRESET}
811 f36fd90a 2022-07-09 op #define HAVE_PATH_MAX ${HAVE_PATH_MAX}
812 f36fd90a 2022-07-09 op #define HAVE_PLEDGE ${HAVE_PLEDGE}
813 f36fd90a 2022-07-09 op #define HAVE_PROGRAM_INVOCATION_SHORT_NAME ${HAVE_PROGRAM_INVOCATION_SHORT_NAME}
814 f36fd90a 2022-07-09 op #define HAVE_PR_SET_NAME ${HAVE_PR_SET_NAME}
815 f36fd90a 2022-07-09 op #define HAVE_REALLOCARRAY ${HAVE_REALLOCARRAY}
816 f36fd90a 2022-07-09 op #define HAVE_RECALLOCARRAY ${HAVE_RECALLOCARRAY}
817 f36fd90a 2022-07-09 op #define HAVE_SANDBOX_INIT ${HAVE_SANDBOX_INIT}
818 f36fd90a 2022-07-09 op #define HAVE_SETPROCTITLE ${HAVE_SETPROCTITLE}
819 f36fd90a 2022-07-09 op #define HAVE_SIO_FLUSH ${HAVE_SIO_FLUSH}
820 f36fd90a 2022-07-09 op #define HAVE_SOCK_NONBLOCK ${HAVE_SOCK_NONBLOCK}
821 f36fd90a 2022-07-09 op #define HAVE_STRLCAT ${HAVE_STRLCAT}
822 f36fd90a 2022-07-09 op #define HAVE_STRLCPY ${HAVE_STRLCPY}
823 f36fd90a 2022-07-09 op #define HAVE_STRNDUP ${HAVE_STRNDUP}
824 f36fd90a 2022-07-09 op #define HAVE_STRNLEN ${HAVE_STRNLEN}
825 f36fd90a 2022-07-09 op #define HAVE_STRTONUM ${HAVE_STRTONUM}
826 4c1ef99c 2023-10-08 op #define HAVE_SYS_ENDIAN_H ${HAVE_SYS_ENDIAN_H}
827 f36fd90a 2022-07-09 op #define HAVE_SYS_FILE ${HAVE_SYS_FILE}
828 f36fd90a 2022-07-09 op #define HAVE_SYS_QUEUE ${HAVE_SYS_QUEUE}
829 f36fd90a 2022-07-09 op #define HAVE_SYSTRACE ${HAVE_SYSTRACE}
830 31e12e67 2023-09-07 op #define HAVE_TIMESPECSUB ${HAVE_TIMESPECSUB}
831 f36fd90a 2022-07-09 op #define HAVE_UNVEIL ${HAVE_UNVEIL}
832 f36fd90a 2022-07-09 op #define HAVE___PROGNAME ${HAVE___PROGNAME}
833 f36fd90a 2022-07-09 op
834 f36fd90a 2022-07-09 op __HEREDOC__
835 f36fd90a 2022-07-09 op
836 f36fd90a 2022-07-09 op # Now we do our function declarations for missing functions.
837 f36fd90a 2022-07-09 op
838 f36fd90a 2022-07-09 op [ ${HAVE_ERR} -eq 0 ] && \
839 f36fd90a 2022-07-09 op cat << __HEREDOC__
840 f36fd90a 2022-07-09 op /*
841 f36fd90a 2022-07-09 op * Compatibility functions for err(3).
842 f36fd90a 2022-07-09 op */
843 f36fd90a 2022-07-09 op extern void err(int, const char *, ...) __attribute__((noreturn));
844 f36fd90a 2022-07-09 op extern void errc(int, int, const char *, ...) __attribute__((noreturn));
845 f36fd90a 2022-07-09 op extern void errx(int, const char *, ...) __attribute__((noreturn));
846 f36fd90a 2022-07-09 op extern void verr(int, const char *, va_list) __attribute__((noreturn));
847 f36fd90a 2022-07-09 op extern void verrc(int, int, const char *, va_list) __attribute__((noreturn));
848 f36fd90a 2022-07-09 op extern void verrx(int, const char *, va_list) __attribute__((noreturn));
849 f36fd90a 2022-07-09 op extern void warn(const char *, ...);
850 f36fd90a 2022-07-09 op extern void warnx(const char *, ...);
851 f36fd90a 2022-07-09 op extern void warnc(int, const char *, ...);
852 f36fd90a 2022-07-09 op extern void vwarn(const char *, va_list);
853 f36fd90a 2022-07-09 op extern void vwarnc(int, const char *, va_list);
854 f36fd90a 2022-07-09 op extern void vwarnx(const char *, va_list);
855 f36fd90a 2022-07-09 op __HEREDOC__
856 f36fd90a 2022-07-09 op
857 f36fd90a 2022-07-09 op [ ${HAVE_EXPLICIT_BZERO} -eq 0 ] && \
858 f36fd90a 2022-07-09 op cat << __HEREDOC__
859 f36fd90a 2022-07-09 op /*
860 f36fd90a 2022-07-09 op * Compatibility for explicit_bzero(3).
861 f36fd90a 2022-07-09 op */
862 f36fd90a 2022-07-09 op extern void explicit_bzero(void *, size_t);
863 f36fd90a 2022-07-09 op
864 f36fd90a 2022-07-09 op __HEREDOC__
865 f36fd90a 2022-07-09 op
866 f36fd90a 2022-07-09 op [ ${HAVE_FREEZERO} -eq 0 ] && \
867 f36fd90a 2022-07-09 op cat << __HEREDOC__
868 f36fd90a 2022-07-09 op /*
869 f36fd90a 2022-07-09 op * Compatibility for freezero(3).
870 f36fd90a 2022-07-09 op */
871 f36fd90a 2022-07-09 op extern void freezero(void *, size_t);
872 f36fd90a 2022-07-09 op
873 f36fd90a 2022-07-09 op __HEREDOC__
874 f36fd90a 2022-07-09 op
875 f36fd90a 2022-07-09 op [ ${HAVE_MEMMEM} -eq 0 ] && \
876 f36fd90a 2022-07-09 op cat << __HEREDOC__
877 f36fd90a 2022-07-09 op /*
878 f36fd90a 2022-07-09 op * Compatibility for memmem(3).
879 f36fd90a 2022-07-09 op */
880 f36fd90a 2022-07-09 op void *memmem(const void *, size_t, const void *, size_t);
881 f36fd90a 2022-07-09 op
882 f36fd90a 2022-07-09 op __HEREDOC__
883 f36fd90a 2022-07-09 op
884 f36fd90a 2022-07-09 op [ ${HAVE_MEMRCHR} -eq 0 ] && \
885 f36fd90a 2022-07-09 op cat << __HEREDOC__
886 f36fd90a 2022-07-09 op /*
887 f36fd90a 2022-07-09 op * Compatibility for memrchr(3).
888 f36fd90a 2022-07-09 op */
889 f36fd90a 2022-07-09 op void *memrchr(const void *b, int, size_t);
890 f36fd90a 2022-07-09 op
891 f36fd90a 2022-07-09 op __HEREDOC__
892 f36fd90a 2022-07-09 op
893 f36fd90a 2022-07-09 op [ ${HAVE_GETPROGNAME} -eq 0 ] && \
894 f36fd90a 2022-07-09 op cat << __HEREDOC__
895 f36fd90a 2022-07-09 op /*
896 f36fd90a 2022-07-09 op * Compatibility for getprogname(3).
897 f36fd90a 2022-07-09 op */
898 f36fd90a 2022-07-09 op extern const char *getprogname(void);
899 f36fd90a 2022-07-09 op
900 f36fd90a 2022-07-09 op __HEREDOC__
901 f36fd90a 2022-07-09 op
902 f36fd90a 2022-07-09 op [ ${HAVE_REALLOCARRAY} -eq 0 ] && \
903 f36fd90a 2022-07-09 op cat << __HEREDOC__
904 f36fd90a 2022-07-09 op /*
905 f36fd90a 2022-07-09 op * Compatibility for reallocarray(3).
906 f36fd90a 2022-07-09 op */
907 f36fd90a 2022-07-09 op extern void *reallocarray(void *, size_t, size_t);
908 f36fd90a 2022-07-09 op
909 f36fd90a 2022-07-09 op __HEREDOC__
910 f36fd90a 2022-07-09 op
911 f36fd90a 2022-07-09 op [ ${HAVE_RECALLOCARRAY} -eq 0 ] && \
912 f36fd90a 2022-07-09 op cat << __HEREDOC__
913 f36fd90a 2022-07-09 op /*
914 f36fd90a 2022-07-09 op * Compatibility for recallocarray(3).
915 f36fd90a 2022-07-09 op */
916 f36fd90a 2022-07-09 op extern void *recallocarray(void *, size_t, size_t, size_t);
917 f36fd90a 2022-07-09 op
918 f36fd90a 2022-07-09 op __HEREDOC__
919 f36fd90a 2022-07-09 op
920 f36fd90a 2022-07-09 op [ ${HAVE_SETPROCTITLE} -eq 0 ] && \
921 f36fd90a 2022-07-09 op cat << __HEREDOC__
922 f36fd90a 2022-07-09 op /*
923 f36fd90a 2022-07-09 op * Compatibility for setproctitle(3).
924 f36fd90a 2022-07-09 op */
925 f36fd90a 2022-07-09 op extern void setproctitle(const char *, ...);
926 f36fd90a 2022-07-09 op
927 f36fd90a 2022-07-09 op __HEREDOC__
928 f36fd90a 2022-07-09 op
929 f36fd90a 2022-07-09 op [ ${HAVE_STRLCAT} -eq 0 ] && \
930 f36fd90a 2022-07-09 op cat << __HEREDOC__
931 f36fd90a 2022-07-09 op /*
932 f36fd90a 2022-07-09 op * Compatibility for strlcat(3).
933 f36fd90a 2022-07-09 op */
934 f36fd90a 2022-07-09 op extern size_t strlcat(char *, const char *, size_t);
935 f36fd90a 2022-07-09 op
936 f36fd90a 2022-07-09 op __HEREDOC__
937 f36fd90a 2022-07-09 op
938 f36fd90a 2022-07-09 op [ ${HAVE_STRLCPY} -eq 0 ] && \
939 f36fd90a 2022-07-09 op cat << __HEREDOC__
940 f36fd90a 2022-07-09 op /*
941 f36fd90a 2022-07-09 op * Compatibility for strlcpy(3).
942 f36fd90a 2022-07-09 op */
943 f36fd90a 2022-07-09 op extern size_t strlcpy(char *, const char *, size_t);
944 f36fd90a 2022-07-09 op
945 f36fd90a 2022-07-09 op __HEREDOC__
946 f36fd90a 2022-07-09 op
947 f36fd90a 2022-07-09 op [ ${HAVE_STRNDUP} -eq 0 ] && \
948 f36fd90a 2022-07-09 op cat << __HEREDOC__
949 f36fd90a 2022-07-09 op /*
950 f36fd90a 2022-07-09 op * Compatibility for strndup(3).
951 f36fd90a 2022-07-09 op */
952 f36fd90a 2022-07-09 op extern char *strndup(const char *, size_t);
953 f36fd90a 2022-07-09 op
954 f36fd90a 2022-07-09 op __HEREDOC__
955 f36fd90a 2022-07-09 op
956 f36fd90a 2022-07-09 op [ ${HAVE_STRNLEN} -eq 0 ] && \
957 f36fd90a 2022-07-09 op cat << __HEREDOC__
958 f36fd90a 2022-07-09 op /*
959 f36fd90a 2022-07-09 op * Compatibility for strnlen(3).
960 f36fd90a 2022-07-09 op */
961 f36fd90a 2022-07-09 op extern size_t strnlen(const char *, size_t);
962 f36fd90a 2022-07-09 op
963 f36fd90a 2022-07-09 op __HEREDOC__
964 f36fd90a 2022-07-09 op
965 f36fd90a 2022-07-09 op [ ${HAVE_STRTONUM} -eq 0 ] && \
966 f36fd90a 2022-07-09 op cat << __HEREDOC__
967 f36fd90a 2022-07-09 op /*
968 f36fd90a 2022-07-09 op * Compatibility for strotnum(3).
969 f36fd90a 2022-07-09 op */
970 f36fd90a 2022-07-09 op extern long long strtonum(const char *, long long, long long, const char **);
971 f36fd90a 2022-07-09 op
972 f36fd90a 2022-07-09 op __HEREDOC__
973 f36fd90a 2022-07-09 op
974 f36fd90a 2022-07-09 op if [ ${HAVE_SYS_QUEUE} -eq 0 ]; then
975 f36fd90a 2022-07-09 op cat << __HEREDOC__
976 f36fd90a 2022-07-09 op #include "queue.h"
977 f36fd90a 2022-07-09 op __HEREDOC__
978 f36fd90a 2022-07-09 op else
979 f36fd90a 2022-07-09 op echo "#include <sys/queue.h>"
980 f36fd90a 2022-07-09 op echo
981 f36fd90a 2022-07-09 op fi
982 f36fd90a 2022-07-09 op
983 f36fd90a 2022-07-09 op echo "#include <sys/uio.h>"
984 f36fd90a 2022-07-09 op echo "#include <stdint.h>"
985 82556d5b 2023-09-07 op if [ ${HAVE_LIB_IMSG} -eq 0 ]; then
986 f36fd90a 2022-07-09 op echo "#include \"imsg.h\""
987 f36fd90a 2022-07-09 op else
988 f36fd90a 2022-07-09 op echo "#include <imsg.h>"
989 f36fd90a 2022-07-09 op fi
990 f36fd90a 2022-07-09 op echo
991 f36fd90a 2022-07-09 op
992 f36fd90a 2022-07-09 op cat << __HEREDOC__
993 f36fd90a 2022-07-09 op #ifndef __dead
994 f36fd90a 2022-07-09 op # define __dead __attribute__((noreturn))
995 f36fd90a 2022-07-09 op #endif
996 f36fd90a 2022-07-09 op
997 f36fd90a 2022-07-09 op #if !HAVE_SIO_FLUSH
998 f36fd90a 2022-07-09 op #define sio_flush(hdl) (sio_stop(hdl))
999 f36fd90a 2022-07-09 op #endif
1000 f36fd90a 2022-07-09 op
1001 f36fd90a 2022-07-09 op #if !HAVE_GETDTABLECOUNT
1002 f36fd90a 2022-07-09 op /* XXX: on linux it should be possible to inspect /proc/self/fd/ */
1003 f36fd90a 2022-07-09 op #define getdtablecount() (0)
1004 f36fd90a 2022-07-09 op #endif
1005 f36fd90a 2022-07-09 op
1006 4e457e62 2023-12-10 op #if !HAVE_GETDTABLESIZE
1007 4e457e62 2023-12-10 op int getdtablesize(void);
1008 4e457e62 2023-12-10 op #endif
1009 4e457e62 2023-12-10 op
1010 f36fd90a 2022-07-09 op #if !HAVE_OPTRESET
1011 f36fd90a 2022-07-09 op /* replace host' getopt with OpenBSD' one */
1012 f36fd90a 2022-07-09 op #define opterr BSDopterr
1013 f36fd90a 2022-07-09 op #define optind BSDoptind
1014 f36fd90a 2022-07-09 op #define optopt BSDoptopt
1015 f36fd90a 2022-07-09 op #define optreset BSDoptreset
1016 f36fd90a 2022-07-09 op #define optarg BSDoptarg
1017 f36fd90a 2022-07-09 op #define getopt BSDgetopt
1018 f36fd90a 2022-07-09 op
1019 f36fd90a 2022-07-09 op extern int BSDopterr, BSDoptind, BSDoptopt, BSDoptreset;
1020 f36fd90a 2022-07-09 op extern char *BSDoptarg;
1021 31e12e67 2023-09-07 op #endif
1022 31e12e67 2023-09-07 op
1023 31e12e67 2023-09-07 op #if !HAVE_TIMESPECSUB
1024 31e12e67 2023-09-07 op struct timespec;
1025 31e12e67 2023-09-07 op void timespecsub(struct timespec *, struct timespec *, struct timespec *);
1026 f36fd90a 2022-07-09 op #endif
1027 f36fd90a 2022-07-09 op
1028 f36fd90a 2022-07-09 op #endif /*!OCONFIGURE_CONFIG_H*/
1029 f36fd90a 2022-07-09 op __HEREDOC__
1030 f36fd90a 2022-07-09 op
1031 f36fd90a 2022-07-09 op echo "config.h: written" 1>&2
1032 f36fd90a 2022-07-09 op echo "config.h: written" 1>&3
1033 f36fd90a 2022-07-09 op
1034 f36fd90a 2022-07-09 op #----------------------------------------------------------------------
1035 f36fd90a 2022-07-09 op # Now we go to generate our Makefile.configure.
1036 f36fd90a 2022-07-09 op # This file is simply a bunch of Makefile variables.
1037 f36fd90a 2022-07-09 op # They'll work in both GNUmakefile and BSDmakefile.
1038 f36fd90a 2022-07-09 op # You MIGHT want to change this.
1039 f36fd90a 2022-07-09 op #----------------------------------------------------------------------
1040 f36fd90a 2022-07-09 op
1041 f36fd90a 2022-07-09 op exec > Makefile.configure
1042 f36fd90a 2022-07-09 op
1043 f36fd90a 2022-07-09 op [ -z "${BINDIR}" ] && BINDIR="${PREFIX}/bin"
1044 f36fd90a 2022-07-09 op [ -z "${SBINDIR}" ] && SBINDIR="${PREFIX}/sbin"
1045 f36fd90a 2022-07-09 op [ -z "${INCLUDEDIR}" ] && INCLUDEDIR="${PREFIX}/include"
1046 f36fd90a 2022-07-09 op [ -z "${LIBDIR}" ] && LIBDIR="${PREFIX}/lib"
1047 f36fd90a 2022-07-09 op [ -z "${MANDIR}" ] && MANDIR="${PREFIX}/man"
1048 f36fd90a 2022-07-09 op [ -z "${SHAREDIR}" ] && SHAREDIR="${PREFIX}/share"
1049 f36fd90a 2022-07-09 op
1050 f36fd90a 2022-07-09 op [ -z "${INSTALL_PROGRAM}" ] && INSTALL_PROGRAM="${INSTALL} -m 0555"
1051 f36fd90a 2022-07-09 op [ -z "${INSTALL_LIB}" ] && INSTALL_LIB="${INSTALL} -m 0444"
1052 f36fd90a 2022-07-09 op [ -z "${INSTALL_MAN}" ] && INSTALL_MAN="${INSTALL} -m 0444"
1053 f36fd90a 2022-07-09 op [ -z "${INSTALL_DATA}" ] && INSTALL_DATA="${INSTALL} -m 0444"
1054 f36fd90a 2022-07-09 op
1055 f36fd90a 2022-07-09 op cat << __HEREDOC__
1056 34674849 2023-03-23 op BACKEND = ${BACKEND}
1057 f36fd90a 2022-07-09 op CC = ${CC}
1058 f36fd90a 2022-07-09 op CFLAGS = ${CFLAGS}
1059 c2297fa3 2023-12-10 op CXXFLAGS = ${CXXFLAGS}
1060 f36fd90a 2022-07-09 op CPPFLAGS = ${CPPFLAGS}
1061 3a60c277 2023-08-25 op LDADD = ${LDADD}
1062 82556d5b 2023-09-07 op LDADD_LIB_IMSG = ${LDADD_LIB_IMSG}
1063 3a60c277 2023-08-25 op LDADD_DECODERS = ${LDADD_LIB_FLAC} ${LDADD_LIB_MPG123} ${LDADD_LIB_OPUSFILE} \
1064 3a60c277 2023-08-25 op ${LDADD_LIB_VORBISFILE}
1065 56de3111 2023-09-07 op LDADD_LIB_MD = ${LDADD_LIB_MD}
1066 3a60c277 2023-08-25 op LDADD_LIB_SOCKET = ${LDADD_LIB_SOCKET}
1067 d1705aab 2023-10-07 op LDADD_BACKEND = ${LDADD_LIB_SNDIO} ${LDADD_LIB_ASOUND} ${LDADD_LIB_AO} \
1068 d1705aab 2023-10-07 op ${LDADD_LIB_PTHREAD}
1069 f36fd90a 2022-07-09 op LDADD_STATIC = ${LDADD_STATIC}
1070 f36fd90a 2022-07-09 op LDFLAGS = ${LDFLAGS}
1071 f36fd90a 2022-07-09 op STATIC = ${STATIC}
1072 f36fd90a 2022-07-09 op PREFIX = ${PREFIX}
1073 f36fd90a 2022-07-09 op BINDIR = ${BINDIR}
1074 f36fd90a 2022-07-09 op SHAREDIR = ${SHAREDIR}
1075 f36fd90a 2022-07-09 op SBINDIR = ${SBINDIR}
1076 f36fd90a 2022-07-09 op INCLUDEDIR = ${INCLUDEDIR}
1077 f36fd90a 2022-07-09 op LIBDIR = ${LIBDIR}
1078 f36fd90a 2022-07-09 op MANDIR = ${MANDIR}
1079 f36fd90a 2022-07-09 op INSTALL = ${INSTALL}
1080 f36fd90a 2022-07-09 op INSTALL_PROGRAM = ${INSTALL_PROGRAM}
1081 f36fd90a 2022-07-09 op INSTALL_LIB = ${INSTALL_LIB}
1082 f36fd90a 2022-07-09 op INSTALL_MAN = ${INSTALL_MAN}
1083 f36fd90a 2022-07-09 op INSTALL_DATA = ${INSTALL_DATA}
1084 f36fd90a 2022-07-09 op __HEREDOC__
1085 f36fd90a 2022-07-09 op
1086 f36fd90a 2022-07-09 op echo "Makefile.configure: written" 1>&2
1087 f36fd90a 2022-07-09 op echo "Makefile.configure: written" 1>&3
1088 f36fd90a 2022-07-09 op
1089 f36fd90a 2022-07-09 op exit 0