1#!/bin/sh 2#
| 1#!/bin/sh 2#
|
3# Copyright (c) 2014 Ingo Schwarze
| 3# Copyright (c) 2014, 2015 Ingo Schwarze <schwarze@openbsd.org>
|
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. 16 17set -e 18 19[ -e config.log ] && mv config.log config.log.old 20[ -e config.h ] && mv config.h config.h.old 21 22# Output file descriptor usage: 23# 1 (stdout): config.h, Makefile.local 24# 2 (stderr): original stderr, usually to the console 25# 3: config.log 26 27exec 3> config.log 28echo "config.log: writing..." 29 30# --- default settings ------------------------------------------------- 31# Initialize all variables here, 32# such that nothing can leak in from the environment. 33
| 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. 16 17set -e 18 19[ -e config.log ] && mv config.log config.log.old 20[ -e config.h ] && mv config.h config.h.old 21 22# Output file descriptor usage: 23# 1 (stdout): config.h, Makefile.local 24# 2 (stderr): original stderr, usually to the console 25# 3: config.log 26 27exec 3> config.log 28echo "config.log: writing..." 29 30# --- default settings ------------------------------------------------- 31# Initialize all variables here, 32# such that nothing can leak in from the environment. 33
|
34VERSION="1.13.2" 35echo "VERSION=\"${VERSION}\"" 1>&2 36echo "VERSION=\"${VERSION}\"" 1>&3 37
| |
38OSNAME= 39 40CC=`printf "all:\\n\\t@echo \\\$(CC)\\n" | make -f -` 41CFLAGS="-g -W -Wall -Wstrict-prototypes -Wno-unused-parameter -Wwrite-strings" 42DBLIB= 43STATIC="-static" 44 45BUILD_DB=1 46BUILD_CGI=0 47 48HAVE_DIRENT_NAMLEN= 49HAVE_FGETLN= 50HAVE_FTS= 51HAVE_GETSUBOPT= 52HAVE_MMAP= 53HAVE_REALLOCARRAY= 54HAVE_STRCASESTR= 55HAVE_STRLCAT= 56HAVE_STRLCPY= 57HAVE_STRPTIME= 58HAVE_STRSEP=
| 34OSNAME= 35 36CC=`printf "all:\\n\\t@echo \\\$(CC)\\n" | make -f -` 37CFLAGS="-g -W -Wall -Wstrict-prototypes -Wno-unused-parameter -Wwrite-strings" 38DBLIB= 39STATIC="-static" 40 41BUILD_DB=1 42BUILD_CGI=0 43 44HAVE_DIRENT_NAMLEN= 45HAVE_FGETLN= 46HAVE_FTS= 47HAVE_GETSUBOPT= 48HAVE_MMAP= 49HAVE_REALLOCARRAY= 50HAVE_STRCASESTR= 51HAVE_STRLCAT= 52HAVE_STRLCPY= 53HAVE_STRPTIME= 54HAVE_STRSEP=
|
| 55HAVE_STRTONUM=
|
59HAVE_WCHAR= 60 61HAVE_SQLITE3= 62HAVE_SQLITE3_ERRSTR= 63HAVE_OHASH= 64HAVE_MANPATH= 65 66PREFIX="/usr/local" 67BINDIR= 68SBINDIR= 69INCLUDEDIR= 70LIBDIR= 71MANDIR= 72EXAMPLEDIR=
| 56HAVE_WCHAR= 57 58HAVE_SQLITE3= 59HAVE_SQLITE3_ERRSTR= 60HAVE_OHASH= 61HAVE_MANPATH= 62 63PREFIX="/usr/local" 64BINDIR= 65SBINDIR= 66INCLUDEDIR= 67LIBDIR= 68MANDIR= 69EXAMPLEDIR=
|
| 70HOMEBREWDIR=
|
73 74WWWPREFIX="/var/www" 75HTDOCDIR= 76CGIBINDIR= 77 78BINM_APROPOS="apropos" 79BINM_MAN="man" 80BINM_WHATIS="whatis" 81BINM_MAKEWHATIS="makewhatis" 82MANM_MAN="man" 83MANM_MDOC="mdoc" 84MANM_ROFF="roff" 85MANM_EQN="eqn" 86MANM_TBL="tbl" 87 88INSTALL="install" 89INSTALL_PROGRAM= 90INSTALL_LIB= 91INSTALL_MAN= 92INSTALL_DATA= 93 94# --- manual settings from configure.local ----------------------------- 95 96if [ -e ./configure.local ]; then 97 echo "configure.local: reading..." 1>&2 98 echo "configure.local: reading..." 1>&3 99 cat ./configure.local 1>&3 100 . ./configure.local 101else 102 echo "configure.local: no (fully automatic configuration)" 1>&2 103 echo "configure.local: no (fully automatic configuration)" 1>&3 104fi 105echo 1>&3 106 107# --- tests for config.h ---------------------------------------------- 108 109COMP="${CC} ${CFLAGS} -Wno-unused -Werror" 110 111# Check whether this HAVE_ setting is manually overridden. 112# If yes, use the override, if no, do not decide anything yet. 113# Arguments: lower-case test name, manual value 114ismanual() { 115 [ -z "${2}" ] && return 1 116 echo "${1}: manual (${2})" 1>&2 117 echo "${1}: manual (${2})" 1>&3 118 echo 1>&3 119 return 0 120} 121 122# Run a single autoconfiguration test. 123# In case of success, enable the feature. 124# In case of failure, do not decide anything yet. 125# Arguments: lower-case test name, upper-case test name, additional CFLAGS 126singletest() { 127 cat 1>&3 << __HEREDOC__ 128${1}: testing... 129${COMP} ${3} -o test-${1} test-${1}.c 130__HEREDOC__ 131 132 if ${COMP} ${3} -o "test-${1}" "test-${1}.c" 1>&3 2>&3; then 133 echo "${1}: ${CC} succeeded" 1>&3 134 else 135 echo "${1}: ${CC} failed with $?" 1>&3 136 echo 1>&3 137 return 1 138 fi 139 140 if ./test-${1} 1>&3 2>&3; then 141 echo "${1}: yes" 1>&2 142 echo "${1}: yes" 1>&3 143 echo 1>&3 144 eval HAVE_${2}=1 145 rm "test-${1}" 146 return 0 147 else 148 echo "${1}: execution failed with $?" 1>&3 149 echo 1>&3 150 rm "test-${1}" 151 return 1 152 fi 153} 154 155# Run a complete autoconfiguration test, including the check for 156# a manual override and disabling the feature on failure. 157# Arguments: lower case name, upper case name, additional CFLAGS 158runtest() { 159 eval _manual=\${HAVE_${2}} 160 ismanual "${1}" "${_manual}" && return 0 161 singletest "${1}" "${2}" "${3}" && return 0 162 echo "${1}: no" 1>&2 163 eval HAVE_${2}=0 164 return 1 165} 166 167# --- library functions --- 168runtest dirent-namlen DIRENT_NAMLEN || true 169runtest fgetln FGETLN || true 170runtest fts FTS || true 171runtest getsubopt GETSUBOPT || true 172runtest mmap MMAP || true 173runtest reallocarray REALLOCARRAY || true 174runtest strcasestr STRCASESTR || true 175runtest strlcat STRLCAT || true 176runtest strlcpy STRLCPY || true 177runtest strptime STRPTIME || true 178runtest strsep STRSEP || true
| 71 72WWWPREFIX="/var/www" 73HTDOCDIR= 74CGIBINDIR= 75 76BINM_APROPOS="apropos" 77BINM_MAN="man" 78BINM_WHATIS="whatis" 79BINM_MAKEWHATIS="makewhatis" 80MANM_MAN="man" 81MANM_MDOC="mdoc" 82MANM_ROFF="roff" 83MANM_EQN="eqn" 84MANM_TBL="tbl" 85 86INSTALL="install" 87INSTALL_PROGRAM= 88INSTALL_LIB= 89INSTALL_MAN= 90INSTALL_DATA= 91 92# --- manual settings from configure.local ----------------------------- 93 94if [ -e ./configure.local ]; then 95 echo "configure.local: reading..." 1>&2 96 echo "configure.local: reading..." 1>&3 97 cat ./configure.local 1>&3 98 . ./configure.local 99else 100 echo "configure.local: no (fully automatic configuration)" 1>&2 101 echo "configure.local: no (fully automatic configuration)" 1>&3 102fi 103echo 1>&3 104 105# --- tests for config.h ---------------------------------------------- 106 107COMP="${CC} ${CFLAGS} -Wno-unused -Werror" 108 109# Check whether this HAVE_ setting is manually overridden. 110# If yes, use the override, if no, do not decide anything yet. 111# Arguments: lower-case test name, manual value 112ismanual() { 113 [ -z "${2}" ] && return 1 114 echo "${1}: manual (${2})" 1>&2 115 echo "${1}: manual (${2})" 1>&3 116 echo 1>&3 117 return 0 118} 119 120# Run a single autoconfiguration test. 121# In case of success, enable the feature. 122# In case of failure, do not decide anything yet. 123# Arguments: lower-case test name, upper-case test name, additional CFLAGS 124singletest() { 125 cat 1>&3 << __HEREDOC__ 126${1}: testing... 127${COMP} ${3} -o test-${1} test-${1}.c 128__HEREDOC__ 129 130 if ${COMP} ${3} -o "test-${1}" "test-${1}.c" 1>&3 2>&3; then 131 echo "${1}: ${CC} succeeded" 1>&3 132 else 133 echo "${1}: ${CC} failed with $?" 1>&3 134 echo 1>&3 135 return 1 136 fi 137 138 if ./test-${1} 1>&3 2>&3; then 139 echo "${1}: yes" 1>&2 140 echo "${1}: yes" 1>&3 141 echo 1>&3 142 eval HAVE_${2}=1 143 rm "test-${1}" 144 return 0 145 else 146 echo "${1}: execution failed with $?" 1>&3 147 echo 1>&3 148 rm "test-${1}" 149 return 1 150 fi 151} 152 153# Run a complete autoconfiguration test, including the check for 154# a manual override and disabling the feature on failure. 155# Arguments: lower case name, upper case name, additional CFLAGS 156runtest() { 157 eval _manual=\${HAVE_${2}} 158 ismanual "${1}" "${_manual}" && return 0 159 singletest "${1}" "${2}" "${3}" && return 0 160 echo "${1}: no" 1>&2 161 eval HAVE_${2}=0 162 return 1 163} 164 165# --- library functions --- 166runtest dirent-namlen DIRENT_NAMLEN || true 167runtest fgetln FGETLN || true 168runtest fts FTS || true 169runtest getsubopt GETSUBOPT || true 170runtest mmap MMAP || true 171runtest reallocarray REALLOCARRAY || true 172runtest strcasestr STRCASESTR || true 173runtest strlcat STRLCAT || true 174runtest strlcpy STRLCPY || true 175runtest strptime STRPTIME || true 176runtest strsep STRSEP || true
|
| 177runtest strtonum STRTONUM || true
|
179runtest wchar WCHAR || true 180 181# --- sqlite3 --- 182DETECTLIB= 183if [ ${BUILD_DB} -eq 0 ]; then 184 echo "BUILD_DB=0 (manual)" 1>&2 185 echo "BUILD_DB=0 (manual)" 1>&3 186 echo 1>&3 187 HAVE_SQLITE3=0 188elif ismanual sqlite3 "${HAVE_SQLITE3}"; then 189 DETECTLIB="-lsqlite3" 190elif [ -n "${DBLIB}" ]; then 191 runtest sqlite3 SQLITE3 "${DBLIB}" || true 192elif singletest sqlite3 SQLITE3 "-lsqlite3"; then 193 DETECTLIB="-lsqlite3" 194elif runtest sqlite3 SQLITE3 \ 195 "-I/usr/local/include -L/usr/local/lib -lsqlite3"; then 196 DETECTLIB="-L/usr/local/lib -lsqlite3" 197 CFLAGS="${CFLAGS} -I/usr/local/include" 198fi 199if [ ${BUILD_DB} -gt 0 -a ${HAVE_SQLITE3} -eq 0 ]; then 200 echo "BUILD_DB=0 (no sqlite3)" 1>&2 201 echo "BUILD_DB=0 (no sqlite3)" 1>&3 202 echo 1>&3 203 BUILD_DB=0 204fi 205 206# --- sqlite3_errstr --- 207if [ ${BUILD_DB} -eq 0 ]; then 208 HAVE_SQLITE3_ERRSTR=1 209elif ismanual sqlite3_errstr "${HAVE_SQLITE3_ERRSTR}"; then 210 : 211elif [ -n "${DBLIB}" ]; then 212 runtest sqlite3_errstr SQLITE3_ERRSTR "${DBLIB}" || true 213else 214 runtest sqlite3_errstr SQLITE3_ERRSTR "${DETECTLIB}" || true 215fi 216 217# --- ohash --- 218if [ ${BUILD_DB} -eq 0 ]; then 219 HAVE_OHASH=1 220elif ismanual ohash "${HAVE_OHASH}"; then 221 : 222elif [ -n "${DBLIB}" ]; then 223 runtest ohash OHASH "${DBLIB}" || true 224elif singletest ohash OHASH; then 225 : 226elif runtest ohash OHASH "-lutil"; then 227 DETECTLIB="${DETECTLIB} -lutil" 228fi 229 230# --- DBLIB --- 231if [ ${BUILD_DB} -eq 0 ]; then 232 DBLIB= 233elif [ -z "${DBLIB}" ]; then 234 DBLIB="${DETECTLIB}" 235 echo "DBLIB=\"${DBLIB}\"" 1>&2 236 echo "DBLIB=\"${DBLIB}\"" 1>&3 237 echo 1>&3 238fi 239 240# --- manpath --- 241if [ ${BUILD_DB} -eq 0 ]; then 242 HAVE_MANPATH=0 243elif ismanual manpath "${HAVE_MANPATH}"; then 244 : 245elif manpath 1>&3 2>&3; then 246 echo "manpath: yes" 1>&2 247 echo "manpath: yes" 1>&3 248 echo 1>&3 249 HAVE_MANPATH=1 250else 251 echo "manpath: no" 1>&2 252 echo "manpath: no" 1>&3 253 echo 1>&3 254 HAVE_MANPATH=0 255fi 256 257# --- write config.h --- 258 259exec > config.h 260 261cat << __HEREDOC__ 262#ifndef MANDOC_CONFIG_H 263#define MANDOC_CONFIG_H 264 265#if defined(__linux__) || defined(__MINT__) 266#define _GNU_SOURCE /* See test-*.c what needs this. */ 267#endif 268 269__HEREDOC__ 270 271[ ${HAVE_FGETLN} -eq 0 -o ${HAVE_REALLOCARRAY} -eq 0 -o \ 272 ${HAVE_STRLCAT} -eq 0 -o ${HAVE_STRLCPY} -eq 0 ] \ 273 && echo "#include <sys/types.h>" 274[ ${HAVE_FGETLN} -eq 0 ] && echo "#include <stdio.h>" 275 276echo
| 178runtest wchar WCHAR || true 179 180# --- sqlite3 --- 181DETECTLIB= 182if [ ${BUILD_DB} -eq 0 ]; then 183 echo "BUILD_DB=0 (manual)" 1>&2 184 echo "BUILD_DB=0 (manual)" 1>&3 185 echo 1>&3 186 HAVE_SQLITE3=0 187elif ismanual sqlite3 "${HAVE_SQLITE3}"; then 188 DETECTLIB="-lsqlite3" 189elif [ -n "${DBLIB}" ]; then 190 runtest sqlite3 SQLITE3 "${DBLIB}" || true 191elif singletest sqlite3 SQLITE3 "-lsqlite3"; then 192 DETECTLIB="-lsqlite3" 193elif runtest sqlite3 SQLITE3 \ 194 "-I/usr/local/include -L/usr/local/lib -lsqlite3"; then 195 DETECTLIB="-L/usr/local/lib -lsqlite3" 196 CFLAGS="${CFLAGS} -I/usr/local/include" 197fi 198if [ ${BUILD_DB} -gt 0 -a ${HAVE_SQLITE3} -eq 0 ]; then 199 echo "BUILD_DB=0 (no sqlite3)" 1>&2 200 echo "BUILD_DB=0 (no sqlite3)" 1>&3 201 echo 1>&3 202 BUILD_DB=0 203fi 204 205# --- sqlite3_errstr --- 206if [ ${BUILD_DB} -eq 0 ]; then 207 HAVE_SQLITE3_ERRSTR=1 208elif ismanual sqlite3_errstr "${HAVE_SQLITE3_ERRSTR}"; then 209 : 210elif [ -n "${DBLIB}" ]; then 211 runtest sqlite3_errstr SQLITE3_ERRSTR "${DBLIB}" || true 212else 213 runtest sqlite3_errstr SQLITE3_ERRSTR "${DETECTLIB}" || true 214fi 215 216# --- ohash --- 217if [ ${BUILD_DB} -eq 0 ]; then 218 HAVE_OHASH=1 219elif ismanual ohash "${HAVE_OHASH}"; then 220 : 221elif [ -n "${DBLIB}" ]; then 222 runtest ohash OHASH "${DBLIB}" || true 223elif singletest ohash OHASH; then 224 : 225elif runtest ohash OHASH "-lutil"; then 226 DETECTLIB="${DETECTLIB} -lutil" 227fi 228 229# --- DBLIB --- 230if [ ${BUILD_DB} -eq 0 ]; then 231 DBLIB= 232elif [ -z "${DBLIB}" ]; then 233 DBLIB="${DETECTLIB}" 234 echo "DBLIB=\"${DBLIB}\"" 1>&2 235 echo "DBLIB=\"${DBLIB}\"" 1>&3 236 echo 1>&3 237fi 238 239# --- manpath --- 240if [ ${BUILD_DB} -eq 0 ]; then 241 HAVE_MANPATH=0 242elif ismanual manpath "${HAVE_MANPATH}"; then 243 : 244elif manpath 1>&3 2>&3; then 245 echo "manpath: yes" 1>&2 246 echo "manpath: yes" 1>&3 247 echo 1>&3 248 HAVE_MANPATH=1 249else 250 echo "manpath: no" 1>&2 251 echo "manpath: no" 1>&3 252 echo 1>&3 253 HAVE_MANPATH=0 254fi 255 256# --- write config.h --- 257 258exec > config.h 259 260cat << __HEREDOC__ 261#ifndef MANDOC_CONFIG_H 262#define MANDOC_CONFIG_H 263 264#if defined(__linux__) || defined(__MINT__) 265#define _GNU_SOURCE /* See test-*.c what needs this. */ 266#endif 267 268__HEREDOC__ 269 270[ ${HAVE_FGETLN} -eq 0 -o ${HAVE_REALLOCARRAY} -eq 0 -o \ 271 ${HAVE_STRLCAT} -eq 0 -o ${HAVE_STRLCPY} -eq 0 ] \ 272 && echo "#include <sys/types.h>" 273[ ${HAVE_FGETLN} -eq 0 ] && echo "#include <stdio.h>" 274 275echo
|
277echo "#define VERSION \"${VERSION}\""
| |
278[ -n "${OSNAME}" ] && echo "#define OSNAME \"${OSNAME}\""
| 276[ -n "${OSNAME}" ] && echo "#define OSNAME \"${OSNAME}\""
|
| 277[ -n "${HOMEBREWDIR}" ] && echo "#define HOMEBREWDIR \"${HOMEBREWDIR}\""
|
279 280cat << __HEREDOC__ 281#define HAVE_DIRENT_NAMLEN ${HAVE_DIRENT_NAMLEN} 282#define HAVE_FGETLN ${HAVE_FGETLN} 283#define HAVE_FTS ${HAVE_FTS} 284#define HAVE_GETSUBOPT ${HAVE_GETSUBOPT} 285#define HAVE_MMAP ${HAVE_MMAP} 286#define HAVE_REALLOCARRAY ${HAVE_REALLOCARRAY} 287#define HAVE_STRCASESTR ${HAVE_STRCASESTR} 288#define HAVE_STRLCAT ${HAVE_STRLCAT} 289#define HAVE_STRLCPY ${HAVE_STRLCPY} 290#define HAVE_STRPTIME ${HAVE_STRPTIME} 291#define HAVE_STRSEP ${HAVE_STRSEP}
| 278 279cat << __HEREDOC__ 280#define HAVE_DIRENT_NAMLEN ${HAVE_DIRENT_NAMLEN} 281#define HAVE_FGETLN ${HAVE_FGETLN} 282#define HAVE_FTS ${HAVE_FTS} 283#define HAVE_GETSUBOPT ${HAVE_GETSUBOPT} 284#define HAVE_MMAP ${HAVE_MMAP} 285#define HAVE_REALLOCARRAY ${HAVE_REALLOCARRAY} 286#define HAVE_STRCASESTR ${HAVE_STRCASESTR} 287#define HAVE_STRLCAT ${HAVE_STRLCAT} 288#define HAVE_STRLCPY ${HAVE_STRLCPY} 289#define HAVE_STRPTIME ${HAVE_STRPTIME} 290#define HAVE_STRSEP ${HAVE_STRSEP}
|
| 291#define HAVE_STRTONUM ${HAVE_STRTONUM}
|
292#define HAVE_WCHAR ${HAVE_WCHAR} 293#define HAVE_SQLITE3 ${HAVE_SQLITE3} 294#define HAVE_SQLITE3_ERRSTR ${HAVE_SQLITE3_ERRSTR} 295#define HAVE_OHASH ${HAVE_OHASH} 296#define HAVE_MANPATH ${HAVE_MANPATH} 297 298#define BINM_APROPOS "${BINM_APROPOS}" 299#define BINM_MAN "${BINM_MAN}" 300#define BINM_WHATIS "${BINM_WHATIS}" 301#define BINM_MAKEWHATIS "${BINM_MAKEWHATIS}" 302 303#if !defined(__BEGIN_DECLS) 304# ifdef __cplusplus 305# define __BEGIN_DECLS extern "C" { 306# else 307# define __BEGIN_DECLS 308# endif 309#endif 310#if !defined(__END_DECLS) 311# ifdef __cplusplus 312# define __END_DECLS } 313# else 314# define __END_DECLS 315# endif 316#endif 317 318__HEREDOC__ 319 320[ ${HAVE_FGETLN} -eq 0 ] && \ 321 echo "extern char *fgetln(FILE *, size_t *);" 322 323[ ${HAVE_GETSUBOPT} -eq 0 ] && \ 324 echo "extern int getsubopt(char **, char * const *, char **);" 325 326[ ${HAVE_REALLOCARRAY} -eq 0 ] && \ 327 echo "extern void *reallocarray(void *, size_t, size_t);" 328 329[ ${BUILD_DB} -gt 0 -a ${HAVE_SQLITE3_ERRSTR} -eq 0 ] && 330 echo "extern const char *sqlite3_errstr(int);" 331 332[ ${HAVE_STRCASESTR} -eq 0 ] && \ 333 echo "extern char *strcasestr(const char *, const char *);" 334 335[ ${HAVE_STRLCAT} -eq 0 ] && \ 336 echo "extern size_t strlcat(char *, const char *, size_t);" 337 338[ ${HAVE_STRLCPY} -eq 0 ] && \ 339 echo "extern size_t strlcpy(char *, const char *, size_t);" 340 341[ ${HAVE_STRSEP} -eq 0 ] && \ 342 echo "extern char *strsep(char **, const char *);" 343
| 292#define HAVE_WCHAR ${HAVE_WCHAR} 293#define HAVE_SQLITE3 ${HAVE_SQLITE3} 294#define HAVE_SQLITE3_ERRSTR ${HAVE_SQLITE3_ERRSTR} 295#define HAVE_OHASH ${HAVE_OHASH} 296#define HAVE_MANPATH ${HAVE_MANPATH} 297 298#define BINM_APROPOS "${BINM_APROPOS}" 299#define BINM_MAN "${BINM_MAN}" 300#define BINM_WHATIS "${BINM_WHATIS}" 301#define BINM_MAKEWHATIS "${BINM_MAKEWHATIS}" 302 303#if !defined(__BEGIN_DECLS) 304# ifdef __cplusplus 305# define __BEGIN_DECLS extern "C" { 306# else 307# define __BEGIN_DECLS 308# endif 309#endif 310#if !defined(__END_DECLS) 311# ifdef __cplusplus 312# define __END_DECLS } 313# else 314# define __END_DECLS 315# endif 316#endif 317 318__HEREDOC__ 319 320[ ${HAVE_FGETLN} -eq 0 ] && \ 321 echo "extern char *fgetln(FILE *, size_t *);" 322 323[ ${HAVE_GETSUBOPT} -eq 0 ] && \ 324 echo "extern int getsubopt(char **, char * const *, char **);" 325 326[ ${HAVE_REALLOCARRAY} -eq 0 ] && \ 327 echo "extern void *reallocarray(void *, size_t, size_t);" 328 329[ ${BUILD_DB} -gt 0 -a ${HAVE_SQLITE3_ERRSTR} -eq 0 ] && 330 echo "extern const char *sqlite3_errstr(int);" 331 332[ ${HAVE_STRCASESTR} -eq 0 ] && \ 333 echo "extern char *strcasestr(const char *, const char *);" 334 335[ ${HAVE_STRLCAT} -eq 0 ] && \ 336 echo "extern size_t strlcat(char *, const char *, size_t);" 337 338[ ${HAVE_STRLCPY} -eq 0 ] && \ 339 echo "extern size_t strlcpy(char *, const char *, size_t);" 340 341[ ${HAVE_STRSEP} -eq 0 ] && \ 342 echo "extern char *strsep(char **, const char *);" 343
|
| 344[ ${HAVE_STRTONUM} -eq 0 ] && \ 345 echo "extern long long strtonum(const char *, long long, long long, const char **);" 346
|
344echo 345echo "#endif /* MANDOC_CONFIG_H */" 346 347echo "config.h: written" 1>&2 348echo "config.h: written" 1>&3 349 350# --- tests for Makefile.local ----------------------------------------- 351 352exec > Makefile.local 353 354[ -z "${BINDIR}" ] && BINDIR="${PREFIX}/bin" 355[ -z "${SBINDIR}" ] && SBINDIR="${PREFIX}/sbin" 356[ -z "${INCLUDEDIR}" ] && INCLUDEDIR="${PREFIX}/include/mandoc" 357[ -z "${LIBDIR}" ] && LIBDIR="${PREFIX}/lib/mandoc" 358[ -z "${MANDIR}" ] && MANDIR="${PREFIX}/man" 359[ -z "${EXAMPLEDIR}" ] && EXAMPLEDIR="${PREFIX}/share/examples/mandoc" 360 361[ -z "${HTDOCDIR}" ] && HTDOCDIR="${WWWPREFIX}/htdocs" 362[ -z "${CGIBINDIR}" ] && CGIBINDIR="${WWWPREFIX}/cgi-bin" 363 364[ -z "${INSTALL_PROGRAM}" ] && INSTALL_PROGRAM="${INSTALL} -m 0555" 365[ -z "${INSTALL_LIB}" ] && INSTALL_LIB="${INSTALL} -m 0444" 366[ -z "${INSTALL_MAN}" ] && INSTALL_MAN="${INSTALL} -m 0444" 367[ -z "${INSTALL_DATA}" ] && INSTALL_DATA="${INSTALL} -m 0444" 368 369if [ ${BUILD_DB} -eq 0 -a ${BUILD_CGI} -gt 0 ]; then 370 echo "BUILD_CGI=0 (no BUILD_DB)" 1>&2 371 echo "BUILD_CGI=0 (no BUILD_DB)" 1>&3 372 BUILD_CGI=0 373fi 374 375BUILD_TARGETS="base-build" 376[ ${BUILD_CGI} -gt 0 ] && BUILD_TARGETS="${BUILD_TARGETS} cgi-build" 377INSTALL_TARGETS="base-install" 378[ ${BUILD_DB} -gt 0 ] && INSTALL_TARGETS="${INSTALL_TARGETS} db-install" 379[ ${BUILD_CGI} -gt 0 ] && INSTALL_TARGETS="${INSTALL_TARGETS} cgi-install" 380 381cat << __HEREDOC__
| 347echo 348echo "#endif /* MANDOC_CONFIG_H */" 349 350echo "config.h: written" 1>&2 351echo "config.h: written" 1>&3 352 353# --- tests for Makefile.local ----------------------------------------- 354 355exec > Makefile.local 356 357[ -z "${BINDIR}" ] && BINDIR="${PREFIX}/bin" 358[ -z "${SBINDIR}" ] && SBINDIR="${PREFIX}/sbin" 359[ -z "${INCLUDEDIR}" ] && INCLUDEDIR="${PREFIX}/include/mandoc" 360[ -z "${LIBDIR}" ] && LIBDIR="${PREFIX}/lib/mandoc" 361[ -z "${MANDIR}" ] && MANDIR="${PREFIX}/man" 362[ -z "${EXAMPLEDIR}" ] && EXAMPLEDIR="${PREFIX}/share/examples/mandoc" 363 364[ -z "${HTDOCDIR}" ] && HTDOCDIR="${WWWPREFIX}/htdocs" 365[ -z "${CGIBINDIR}" ] && CGIBINDIR="${WWWPREFIX}/cgi-bin" 366 367[ -z "${INSTALL_PROGRAM}" ] && INSTALL_PROGRAM="${INSTALL} -m 0555" 368[ -z "${INSTALL_LIB}" ] && INSTALL_LIB="${INSTALL} -m 0444" 369[ -z "${INSTALL_MAN}" ] && INSTALL_MAN="${INSTALL} -m 0444" 370[ -z "${INSTALL_DATA}" ] && INSTALL_DATA="${INSTALL} -m 0444" 371 372if [ ${BUILD_DB} -eq 0 -a ${BUILD_CGI} -gt 0 ]; then 373 echo "BUILD_CGI=0 (no BUILD_DB)" 1>&2 374 echo "BUILD_CGI=0 (no BUILD_DB)" 1>&3 375 BUILD_CGI=0 376fi 377 378BUILD_TARGETS="base-build" 379[ ${BUILD_CGI} -gt 0 ] && BUILD_TARGETS="${BUILD_TARGETS} cgi-build" 380INSTALL_TARGETS="base-install" 381[ ${BUILD_DB} -gt 0 ] && INSTALL_TARGETS="${INSTALL_TARGETS} db-install" 382[ ${BUILD_CGI} -gt 0 ] && INSTALL_TARGETS="${INSTALL_TARGETS} cgi-install" 383 384cat << __HEREDOC__
|
382VERSION = ${VERSION}
| |
383BUILD_TARGETS = ${BUILD_TARGETS} 384INSTALL_TARGETS = ${INSTALL_TARGETS} 385CFLAGS = ${CFLAGS} 386DBLIB = ${DBLIB} 387STATIC = ${STATIC} 388PREFIX = ${PREFIX} 389BINDIR = ${BINDIR} 390SBINDIR = ${SBINDIR} 391INCLUDEDIR = ${INCLUDEDIR} 392LIBDIR = ${LIBDIR} 393MANDIR = ${MANDIR} 394EXAMPLEDIR = ${EXAMPLEDIR} 395WWWPREFIX = ${WWWPREFIX} 396HTDOCDIR = ${HTDOCDIR} 397CGIBINDIR = ${CGIBINDIR} 398BINM_APROPOS = ${BINM_APROPOS} 399BINM_MAN = ${BINM_MAN} 400BINM_WHATIS = ${BINM_WHATIS} 401BINM_MAKEWHATIS = ${BINM_MAKEWHATIS} 402MANM_MAN = ${MANM_MAN} 403MANM_MDOC = ${MANM_MDOC} 404MANM_ROFF = ${MANM_ROFF} 405MANM_EQN = ${MANM_EQN} 406MANM_TBL = ${MANM_TBL} 407INSTALL = ${INSTALL} 408INSTALL_PROGRAM = ${INSTALL_PROGRAM} 409INSTALL_LIB = ${INSTALL_LIB} 410INSTALL_MAN = ${INSTALL_MAN} 411INSTALL_DATA = ${INSTALL_DATA} 412__HEREDOC__ 413 414[ ${BUILD_DB} -gt 0 ] && \ 415 echo "MAIN_OBJS = \$(BASE_OBJS) \$(DB_OBJS)" 416 417echo "Makefile.local: written" 1>&2 418echo "Makefile.local: written" 1>&3 419 420exit 0
| 385BUILD_TARGETS = ${BUILD_TARGETS} 386INSTALL_TARGETS = ${INSTALL_TARGETS} 387CFLAGS = ${CFLAGS} 388DBLIB = ${DBLIB} 389STATIC = ${STATIC} 390PREFIX = ${PREFIX} 391BINDIR = ${BINDIR} 392SBINDIR = ${SBINDIR} 393INCLUDEDIR = ${INCLUDEDIR} 394LIBDIR = ${LIBDIR} 395MANDIR = ${MANDIR} 396EXAMPLEDIR = ${EXAMPLEDIR} 397WWWPREFIX = ${WWWPREFIX} 398HTDOCDIR = ${HTDOCDIR} 399CGIBINDIR = ${CGIBINDIR} 400BINM_APROPOS = ${BINM_APROPOS} 401BINM_MAN = ${BINM_MAN} 402BINM_WHATIS = ${BINM_WHATIS} 403BINM_MAKEWHATIS = ${BINM_MAKEWHATIS} 404MANM_MAN = ${MANM_MAN} 405MANM_MDOC = ${MANM_MDOC} 406MANM_ROFF = ${MANM_ROFF} 407MANM_EQN = ${MANM_EQN} 408MANM_TBL = ${MANM_TBL} 409INSTALL = ${INSTALL} 410INSTALL_PROGRAM = ${INSTALL_PROGRAM} 411INSTALL_LIB = ${INSTALL_LIB} 412INSTALL_MAN = ${INSTALL_MAN} 413INSTALL_DATA = ${INSTALL_DATA} 414__HEREDOC__ 415 416[ ${BUILD_DB} -gt 0 ] && \ 417 echo "MAIN_OBJS = \$(BASE_OBJS) \$(DB_OBJS)" 418 419echo "Makefile.local: written" 1>&2 420echo "Makefile.local: written" 1>&3 421 422exit 0
|