1#!/bin/sh 2# 3# $Id: configure,v 1.66 2018/07/31 15:34:00 schwarze Exp $ 4# 5# Copyright (c) 2014,2015,2016,2017,2018 Ingo Schwarze <schwarze@openbsd.org> 6# 7# Permission to use, copy, modify, and distribute this software for any 8# purpose with or without fee is hereby granted, provided that the above 9# copyright notice and this permission notice appear in all copies. 10# 11# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 12# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 13# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 14# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 15# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 16# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 17# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 18 19set -e 20 21[ -w config.log ] && mv config.log config.log.old 22[ -w config.h ] && mv config.h config.h.old 23 24# Output file descriptor usage: 25# 1 (stdout): config.h, Makefile.local 26# 2 (stderr): original stderr, usually to the console 27# 3: config.log 28 29exec 3> config.log 30echo "file config.log: writing..." 31 32# --- default settings ------------------------------------------------- 33# Initialize all variables here, 34# such that nothing can leak in from the environment. 35 36SOURCEDIR=`dirname "$0"` 37 38MANPATH_BASE="/usr/share/man:/usr/X11R6/man" 39MANPATH_DEFAULT="/usr/share/man:/usr/X11R6/man:/usr/local/man" 40OSNAME= 41UTF8_LOCALE= 42 43CC=`printf "all:\\n\\t@echo \\\$(CC)\\n" | env -i make -sf -` 44CFLAGS= 45LDADD= 46LDFLAGS= 47LD_NANOSLEEP= 48LD_OHASH= 49LD_RECVMSG= 50STATIC= 51 52BUILD_CGI=0 53BUILD_CATMAN=0 54INSTALL_LIBMANDOC=0 55 56HAVE_CMSG= 57HAVE_CMSG_XPG42=0 58HAVE_DIRENT_NAMLEN= 59HAVE_EFTYPE= 60HAVE_ENDIAN= 61HAVE_ERR= 62HAVE_FTS= 63HAVE_FTS_COMPARE_CONST= 64HAVE_GETLINE= 65HAVE_GETSUBOPT= 66HAVE_ISBLANK= 67HAVE_MKDTEMP= 68HAVE_NANOSLEEP= 69HAVE_NTOHL= 70HAVE_O_DIRECTORY= 71HAVE_OHASH= 72HAVE_PATH_MAX= 73HAVE_PLEDGE= 74HAVE_PROGNAME= 75HAVE_REALLOCARRAY= 76HAVE_RECALLOCARRAY= 77HAVE_RECVMSG= 78HAVE_REWB_BSD= 79HAVE_REWB_SYSV= 80HAVE_SANDBOX_INIT= 81HAVE_STRCASESTR= 82HAVE_STRINGLIST= 83HAVE_STRLCAT= 84HAVE_STRLCPY= 85HAVE_STRNDUP= 86HAVE_STRPTIME= 87HAVE_STRSEP= 88HAVE_STRTONUM= 89HAVE_SYS_ENDIAN= 90HAVE_VASPRINTF= 91HAVE_WCHAR= 92 93PREFIX="/usr/local" 94BINDIR= 95SBINDIR= 96BIN_FROM_SBIN= 97INCLUDEDIR= 98LIBDIR= 99MANDIR= 100HOMEBREWDIR= 101 102WWWPREFIX="/var/www" 103HTDOCDIR= 104CGIBINDIR= 105 106BINM_APROPOS="apropos" 107BINM_CATMAN="catman" 108BINM_MAKEWHATIS="makewhatis" 109BINM_MAN="man" 110BINM_SOELIM="soelim" 111BINM_WHATIS="whatis" 112MANM_MAN="man" 113MANM_MANCONF="man.conf" 114MANM_MDOC="mdoc" 115MANM_ROFF="roff" 116MANM_EQN="eqn" 117MANM_TBL="tbl" 118 119INSTALL="install" 120INSTALL_PROGRAM= 121INSTALL_LIB= 122INSTALL_MAN= 123INSTALL_DATA= 124LN="ln -f" 125 126# --- manual settings from configure.local ----------------------------- 127 128if [ -r ./configure.local ]; then 129 echo "file configure.local: reading..." 1>&2 130 echo "file configure.local: reading..." 1>&3 131 cat ./configure.local 1>&3 132 . ./configure.local 133else 134 echo "file configure.local: no (fully automatic configuration)" 1>&2 135 echo "file configure.local: no (fully automatic configuration)" 1>&3 136fi 137echo 1>&3 138 139# --- tests functions -------------------------------------------------- 140 141# Check whether this HAVE_ setting is manually overridden. 142# If yes, use the override, if no, do not decide anything yet. 143# Arguments: test file name, test var name, manual value 144ismanual() { 145 [ -z "${3}" ] && return 1 146 echo "tested ${1}: HAVE_${2}=${3} (manual)" 1>&2 147 echo "tested ${1}: HAVE_${2}=${3} (manual)" 1>&3 148 echo 1>&3 149 return 0 150} 151 152# Run a single autoconfiguration test. 153# In case of success, enable the feature. 154# In case of failure, do not decide anything yet. 155# Arguments: test file name, test var name, additional CFLAGS 156singletest() { 157 cat 1>&3 << __HEREDOC__ 158testing ${1}${3} ... 159${COMP} -o test-${1} test-${1}.c ${3} 160__HEREDOC__ 161 162 if ${COMP} -o "test-${1}" "${SOURCEDIR}/test-${1}.c" ${3} 1>&3 2>&3 163 then 164 echo "partial result of ${1}${3}: ${CC} succeeded" 1>&3 165 else 166 echo "result of ${1}${3}: ${CC} failed with exit status $?" 1>&3 167 echo "result of compiling ${1}${3}: no" 1>&3 168 echo 1>&3 169 return 1 170 fi 171 172 if ./test-${1} 1>&3 2>&3; then 173 echo "tested ${1}${3}: yes" 1>&2 174 echo "result of running ${1}${3}: yes" 1>&3 175 echo 1>&3 176 eval HAVE_${2}=1 177 rm "test-${1}" 178 return 0 179 else 180 echo "result of ${1}${3}: execution failed with exit status $?" 1>&3 181 echo "result of running ${1}${3}: no" 1>&3 182 echo 1>&3 183 rm "test-${1}" 184 return 1 185 fi 186} 187 188# Run a complete autoconfiguration test, including the check for 189# a manual override and disabling the feature on failure. 190# Arguments: test file name, test var name, additional CFLAGS 191runtest() { 192 eval _manual=\${HAVE_${2}} 193 ismanual "${1}" "${2}" "${_manual}" && return 0 194 singletest "${1}" "${2}" "${3}" && return 0 195 echo "tested ${1}${3}: no" 1>&2 196 eval HAVE_${2}=0 197 return 1 198} 199 200# Select a UTF-8 locale. 201get_locale() { 202 [ -n "${HAVE_WCHAR}" ] && [ "${HAVE_WCHAR}" -eq 0 ] && return 0 203 ismanual UTF8_LOCALE UTF8_LOCALE "$UTF8_LOCALE" && return 0 204 echo "testing UTF8_LOCALE ..." 1>&3 205 UTF8_LOCALE=`locale -a | grep -i '^en_US\.UTF-*8$' | head -n 1` 206 if [ -z "${UTF8_LOCALE}" ]; then 207 UTF8_LOCALE=`locale -a | grep -i '\.UTF-*8' | head -n 1` 208 [ -n "${UTF8_LOCALE}" ] || return 1 209 fi 210 echo "selected UTF8_LOCALE=${UTF8_LOCALE}" 1>&2 211 echo "selected UTF8_LOCALE=${UTF8_LOCALE}" 1>&3 212 echo 1>&3 213 return 0; 214} 215 216# --- compiler options ------------------------------------------------- 217 218if [ -n "${CFLAGS}" ]; then 219 COMP="${CC} ${CFLAGS}" 220 echo "selected CFLAGS=\"${CFLAGS}\" (manual)" 1>&2 221 echo "selected CFLAGS=\"${CFLAGS}\" (manual)" 1>&3 222 echo 1>&3 223else 224 CFLAGS="-g -W -Wall -Wmissing-prototypes -Wstrict-prototypes" 225 CFLAGS="${CFLAGS} -Wwrite-strings -Wno-unused-parameter" 226 COMP="${CC} ${CFLAGS} -Wno-unused -Werror" 227 echo -n "tested ${CC} -W: " 1>&2 228 echo -n "testing ${CC} -W: " 1>&3 229 runtest noop WFLAG || true 230 if [ "${HAVE_WFLAG}" -eq 0 ]; then 231 CFLAGS="-g" 232 COMP="${CC} ${CFLAGS}" 233 fi 234 echo "selected CFLAGS=\"${CFLAGS}\"" 1>&2 235 echo "selected CFLAGS=\"${CFLAGS}\"" 1>&3 236 echo 1>&3 237fi 238 239if [ -n "${STATIC}" ]; then 240 echo "selected STATIC=\"${STATIC}\" (manual)" 1>&2 241 echo "selected STATIC=\"${STATIC}\" (manual)" 1>&3 242 echo 1>&3 243else 244 runtest noop STATIC -static || true 245 [ ${HAVE_STATIC} -eq 0 ] || STATIC="-static" 246 echo "selected STATIC=\"${STATIC}\"" 1>&2 247 echo "selected STATIC=\"${STATIC}\"" 1>&3 248 echo 1>&3 249fi 250 251# --- tests for config.h ---------------------------------------------- 252 253# --- library functions --- 254runtest dirent-namlen DIRENT_NAMLEN || true 255runtest be32toh ENDIAN || true 256runtest be32toh SYS_ENDIAN -DSYS_ENDIAN || true 257runtest EFTYPE EFTYPE || true 258runtest err ERR || true 259runtest getline GETLINE || true 260runtest getsubopt GETSUBOPT || true 261runtest isblank ISBLANK || true 262runtest mkdtemp MKDTEMP || true 263runtest ntohl NTOHL || true 264runtest O_DIRECTORY O_DIRECTORY || true 265runtest PATH_MAX PATH_MAX || true 266runtest pledge PLEDGE || true 267runtest sandbox_init SANDBOX_INIT || true 268runtest progname PROGNAME || true 269runtest reallocarray REALLOCARRAY || true 270runtest recallocarray RECALLOCARRAY || true 271runtest rewb-bsd REWB_BSD || true 272runtest rewb-sysv REWB_SYSV || true 273runtest strcasestr STRCASESTR || true 274runtest stringlist STRINGLIST || true 275runtest strlcat STRLCAT || true 276runtest strlcpy STRLCPY || true 277runtest strndup STRNDUP || true 278runtest strptime STRPTIME || true 279runtest strsep STRSEP || true 280runtest strtonum STRTONUM || true 281runtest vasprintf VASPRINTF || true 282 283if [ ${HAVE_ENDIAN} -eq 0 -a \ 284 ${HAVE_SYS_ENDIAN} -eq 0 -a \ 285 ${HAVE_NTOHL} -eq 0 ]; then 286 echo "FATAL: no endian conversion functions found" 1>&2 287 echo "FATAL: no endian conversion functions found" 1>&3 288 exit 1 289fi 290 291if ismanual fts FTS ${HAVE_FTS}; then 292 HAVE_FTS_COMPARE_CONST=0 293elif runtest fts FTS_COMPARE_CONST -DFTS_COMPARE_CONST; then 294 HAVE_FTS=1 295else 296 runtest fts FTS || true 297fi 298 299# --- wide character and locale support --- 300if get_locale; then 301 runtest wchar WCHAR -DUTF8_LOCALE=\"${UTF8_LOCALE}\" || true 302else 303 HAVE_WCHAR=0 304 echo "tested wchar: no (no UTF8_LOCALE)" 1>&2 305 echo "tested wchar: no (no UTF8_LOCALE)" 1>&3 306 echo 1>&3 307fi 308 309# --- nanosleep --- 310if [ -n "${LD_NANOSLEEP}" ]; then 311 runtest nanosleep NANOSLEEP "${LD_NANOSLEEP}" || true 312elif singletest nanosleep NANOSLEEP; then 313 : 314elif runtest nanosleep NANOSLEEP "-lrt"; then 315 LD_NANOSLEEP="-lrt" 316fi 317if [ "${HAVE_NANOSLEEP}" -eq 0 ]; then 318 echo "FATAL: nanosleep: no" 1>&2 319 echo "FATAL: nanosleep: no" 1>&3 320 exit 1 321fi 322 323if [ ${BUILD_CATMAN} -gt 0 ]; then 324 # --- recvmsg --- 325 if [ -n "${LD_RECVMSG}" ]; then 326 runtest recvmsg RECVMSG "${LD_RECVMSG}" || true 327 elif singletest recvmsg RECVMSG; then 328 : 329 elif runtest recvmsg RECVMSG "-lsocket"; then 330 LD_RECVMSG="-lsocket" 331 fi 332 if [ "${HAVE_RECVMSG}" -eq 0 ]; then 333 echo "FATAL: recvmsg: no" 1>&2 334 echo "FATAL: recvmsg: no" 1>&3 335 echo "Without recvmsg(2), you cannot BUILD_CATMAN." 1>&2 336 exit 1 337 fi 338 339 # --- cmsg --- 340 if singletest cmsg CMSG; then 341 : 342 elif runtest cmsg CMSG "-D_XPG4_2"; then 343 HAVE_CMSG_XPG42=1 344 fi 345 if [ "${HAVE_CMSG}" -eq 0 ]; then 346 echo "FATAL: cmsg: no" 1>&2 347 echo "FATAL: cmsg: no" 1>&3 348 echo "Without CMSG_FIRSTHDR(3), you cannot BUILD_CATMAN." 1>&2 349 exit 1 350 fi 351fi 352 353# --- ohash --- 354if ismanual ohash OHASH "${HAVE_OHASH}"; then 355 : 356elif [ -n "${LD_OHASH}" ]; then 357 runtest ohash OHASH "${LD_OHASH}" || true 358elif singletest ohash OHASH; then 359 : 360elif runtest ohash OHASH "-lutil"; then 361 LD_OHASH="-lutil" 362fi 363if [ "${HAVE_OHASH}" -eq 0 ]; then 364 LD_OHASH= 365fi 366 367# --- LDADD --- 368LDADD="${LDADD} ${LD_NANOSLEEP} ${LD_RECVMSG} ${LD_OHASH} -lz" 369echo "selected LDADD=\"${LDADD}\"" 1>&2 370echo "selected LDADD=\"${LDADD}\"" 1>&3 371echo 1>&3 372 373# --- write config.h --- 374 375exec > config.h 376 377cat << __HEREDOC__ 378#ifdef __cplusplus 379#error "Do not use C++. See the INSTALL file." 380#endif 381 382#if !defined(__GNUC__) || (__GNUC__ < 4) 383#define __attribute__(x) 384#endif 385 386#if defined(__linux__) || defined(__MINT__) 387#define _GNU_SOURCE /* See test-*.c what needs this. */ 388#endif 389 390__HEREDOC__ 391 392[ ${HAVE_GETLINE} -eq 0 -o \ 393 ${HAVE_REALLOCARRAY} -eq 0 -o ${HAVE_RECALLOCARRAY} -eq 0 -o \ 394 ${HAVE_STRLCAT} -eq 0 -o ${HAVE_STRLCPY} -eq 0 -o \ 395 ${HAVE_STRNDUP} -eq 0 ] \ 396 && echo "#include <sys/types.h>" 397[ ${HAVE_VASPRINTF} -eq 0 ] && echo "#include <stdarg.h>" 398[ ${HAVE_GETLINE} -eq 0 ] && echo "#include <stdio.h>" 399 400echo 401echo "#define MAN_CONF_FILE \"/etc/${MANM_MANCONF}\"" 402echo "#define MANPATH_BASE \"${MANPATH_BASE}\"" 403echo "#define MANPATH_DEFAULT \"${MANPATH_DEFAULT}\"" 404[ -n "${OSNAME}" ] && echo "#define OSNAME \"${OSNAME}\"" 405[ -n "${UTF8_LOCALE}" ] && echo "#define UTF8_LOCALE \"${UTF8_LOCALE}\"" 406[ -n "${HOMEBREWDIR}" ] && echo "#define HOMEBREWDIR \"${HOMEBREWDIR}\"" 407[ ${HAVE_EFTYPE} -eq 0 ] && echo "#define EFTYPE EINVAL" 408[ ${HAVE_O_DIRECTORY} -eq 0 ] && echo "#define O_DIRECTORY 0" 409[ ${HAVE_PATH_MAX} -eq 0 ] && echo "#define PATH_MAX 4096" 410if [ ${HAVE_ENDIAN} -eq 0 -a ${HAVE_SYS_ENDIAN} -eq 0 ]; then 411 echo "#define be32toh ntohl" 412 echo "#define htobe32 htonl" 413fi 414 415cat << __HEREDOC__ 416#define HAVE_CMSG_XPG42 ${HAVE_CMSG_XPG42} 417#define HAVE_DIRENT_NAMLEN ${HAVE_DIRENT_NAMLEN} 418#define HAVE_ENDIAN ${HAVE_ENDIAN} 419#define HAVE_ERR ${HAVE_ERR} 420#define HAVE_FTS ${HAVE_FTS} 421#define HAVE_FTS_COMPARE_CONST ${HAVE_FTS_COMPARE_CONST} 422#define HAVE_GETLINE ${HAVE_GETLINE} 423#define HAVE_GETSUBOPT ${HAVE_GETSUBOPT} 424#define HAVE_ISBLANK ${HAVE_ISBLANK} 425#define HAVE_MKDTEMP ${HAVE_MKDTEMP} 426#define HAVE_NTOHL ${HAVE_NTOHL} 427#define HAVE_PLEDGE ${HAVE_PLEDGE} 428#define HAVE_PROGNAME ${HAVE_PROGNAME} 429#define HAVE_REALLOCARRAY ${HAVE_REALLOCARRAY} 430#define HAVE_RECALLOCARRAY ${HAVE_RECALLOCARRAY} 431#define HAVE_REWB_BSD ${HAVE_REWB_BSD} 432#define HAVE_REWB_SYSV ${HAVE_REWB_SYSV} 433#define HAVE_SANDBOX_INIT ${HAVE_SANDBOX_INIT} 434#define HAVE_STRCASESTR ${HAVE_STRCASESTR} 435#define HAVE_STRINGLIST ${HAVE_STRINGLIST} 436#define HAVE_STRLCAT ${HAVE_STRLCAT} 437#define HAVE_STRLCPY ${HAVE_STRLCPY} 438#define HAVE_STRNDUP ${HAVE_STRNDUP} 439#define HAVE_STRPTIME ${HAVE_STRPTIME} 440#define HAVE_STRSEP ${HAVE_STRSEP} 441#define HAVE_STRTONUM ${HAVE_STRTONUM} 442#define HAVE_SYS_ENDIAN ${HAVE_SYS_ENDIAN} 443#define HAVE_VASPRINTF ${HAVE_VASPRINTF} 444#define HAVE_WCHAR ${HAVE_WCHAR} 445#define HAVE_OHASH ${HAVE_OHASH} 446 447#define BINM_APROPOS "${BINM_APROPOS}" 448#define BINM_CATMAN "${BINM_CATMAN}" 449#define BINM_MAKEWHATIS "${BINM_MAKEWHATIS}" 450#define BINM_MAN "${BINM_MAN}" 451#define BINM_SOELIM "${BINM_SOELIM}" 452#define BINM_WHATIS "${BINM_WHATIS}" 453 454__HEREDOC__ 455 456if [ ${HAVE_ERR} -eq 0 ]; then 457 echo "extern void err(int, const char *, ...);" 458 echo "extern void errx(int, const char *, ...);" 459 echo "extern void warn(const char *, ...);" 460 echo "extern void warnx(const char *, ...);" 461fi 462 463[ ${HAVE_GETLINE} -eq 0 ] && \ 464 echo "extern ssize_t getline(char **, size_t *, FILE *);" 465 466[ ${HAVE_GETSUBOPT} -eq 0 ] && \ 467 echo "extern int getsubopt(char **, char * const *, char **);" 468 469[ ${HAVE_ISBLANK} -eq 0 ] && \ 470 echo "extern int isblank(int);" 471 472[ ${HAVE_MKDTEMP} -eq 0 ] && \ 473 echo "extern char *mkdtemp(char *);" 474 475if [ ${HAVE_PROGNAME} -eq 0 ]; then 476 echo "extern const char *getprogname(void);" 477 echo "extern void setprogname(const char *);" 478fi 479 480[ ${HAVE_REALLOCARRAY} -eq 0 ] && \ 481 echo "extern void *reallocarray(void *, size_t, size_t);" 482 483[ ${HAVE_RECALLOCARRAY} -eq 0 ] && \ 484 echo "extern void *recallocarray(void *, size_t, size_t, size_t);" 485 486[ ${HAVE_STRCASESTR} -eq 0 ] && \ 487 echo "extern char *strcasestr(const char *, const char *);" 488 489[ ${HAVE_STRLCAT} -eq 0 ] && \ 490 echo "extern size_t strlcat(char *, const char *, size_t);" 491 492[ ${HAVE_STRLCPY} -eq 0 ] && \ 493 echo "extern size_t strlcpy(char *, const char *, size_t);" 494 495[ ${HAVE_STRNDUP} -eq 0 ] && \ 496 echo "extern char *strndup(const char *, size_t);" 497 498[ ${HAVE_STRSEP} -eq 0 ] && \ 499 echo "extern char *strsep(char **, const char *);" 500 501[ ${HAVE_STRTONUM} -eq 0 ] && \ 502 echo "extern long long strtonum(const char *, long long, long long, const char **);" 503 504[ ${HAVE_VASPRINTF} -eq 0 ] && \ 505 echo "extern int vasprintf(char **, const char *, va_list);" 506 507echo "file config.h: written" 1>&2 508echo "file config.h: written" 1>&3 509 510# --- tests for Makefile.local ----------------------------------------- 511 512exec > Makefile.local 513 514[ -z "${BINDIR}" ] && BINDIR="${PREFIX}/bin" 515[ -z "${SBINDIR}" ] && SBINDIR="${PREFIX}/sbin" 516[ -z "${BIN_FROM_SBIN}" ] && BIN_FROM_SBIN="../bin" 517[ -z "${INCLUDEDIR}" ] && INCLUDEDIR="${PREFIX}/include/mandoc" 518[ -z "${LIBDIR}" ] && LIBDIR="${PREFIX}/lib/mandoc" 519[ -z "${MANDIR}" ] && MANDIR="${PREFIX}/man" 520 521[ -z "${HTDOCDIR}" ] && HTDOCDIR="${WWWPREFIX}/htdocs" 522[ -z "${CGIBINDIR}" ] && CGIBINDIR="${WWWPREFIX}/cgi-bin" 523 524[ -z "${INSTALL_PROGRAM}" ] && INSTALL_PROGRAM="${INSTALL} -m 0555" 525[ -z "${INSTALL_LIB}" ] && INSTALL_LIB="${INSTALL} -m 0444" 526[ -z "${INSTALL_MAN}" ] && INSTALL_MAN="${INSTALL} -m 0444" 527[ -z "${INSTALL_DATA}" ] && INSTALL_DATA="${INSTALL} -m 0444" 528 529BUILD_TARGETS= 530[ ${BUILD_CGI} -gt 0 ] && BUILD_TARGETS="man.cgi" 531[ ${BUILD_CATMAN} -gt 0 ] && \ 532 BUILD_TARGETS="${BUILD_TARGETS} mandocd catman" 533INSTALL_TARGETS= 534[ ${INSTALL_LIBMANDOC} -gt 0 ] && INSTALL_TARGETS="lib-install" 535[ ${BUILD_CGI} -gt 0 ] && INSTALL_TARGETS="${INSTALL_TARGETS} cgi-install" 536[ ${BUILD_CATMAN} -gt 0 ] && \ 537 INSTALL_TARGETS="${INSTALL_TARGETS} catman-install" 538 539cat << __HEREDOC__ 540BUILD_TARGETS = ${BUILD_TARGETS} 541INSTALL_TARGETS = ${INSTALL_TARGETS} 542CC = ${CC} 543CFLAGS = ${CFLAGS} 544LDADD = ${LDADD} 545LDFLAGS = ${LDFLAGS} 546STATIC = ${STATIC} 547PREFIX = ${PREFIX} 548BINDIR = ${BINDIR} 549SBINDIR = ${SBINDIR} 550BIN_FROM_SBIN = ${BIN_FROM_SBIN} 551INCLUDEDIR = ${INCLUDEDIR} 552LIBDIR = ${LIBDIR} 553MANDIR = ${MANDIR} 554WWWPREFIX = ${WWWPREFIX} 555HTDOCDIR = ${HTDOCDIR} 556CGIBINDIR = ${CGIBINDIR} 557BINM_APROPOS = ${BINM_APROPOS} 558BINM_CATMAN = ${BINM_CATMAN} 559BINM_MAKEWHATIS = ${BINM_MAKEWHATIS} 560BINM_MAN = ${BINM_MAN} 561BINM_SOELIM = ${BINM_SOELIM} 562BINM_WHATIS = ${BINM_WHATIS} 563MANM_MAN = ${MANM_MAN} 564MANM_MANCONF = ${MANM_MANCONF} 565MANM_MDOC = ${MANM_MDOC} 566MANM_ROFF = ${MANM_ROFF} 567MANM_EQN = ${MANM_EQN} 568MANM_TBL = ${MANM_TBL} 569INSTALL = ${INSTALL} 570INSTALL_PROGRAM = ${INSTALL_PROGRAM} 571INSTALL_LIB = ${INSTALL_LIB} 572INSTALL_MAN = ${INSTALL_MAN} 573INSTALL_DATA = ${INSTALL_DATA} 574LN = ${LN} 575__HEREDOC__ 576 577echo "file Makefile.local: written" 1>&2 578echo "file Makefile.local: written" 1>&3 579 580exit 0 581