1dnl Process this file with autoconf to produce a configure script. 2dnl 3dnl Written by and Copyright (C) 2001-2021 the 4dnl Privoxy team. https://www.privoxy.org/ 5dnl 6dnl Based on the Internet Junkbuster originally written 7dnl by and Copyright (C) 1997 Anonymous Coders and 8dnl Junkbusters Corporation. http://www.junkbusters.com 9dnl 10dnl This program is free software; you can redistribute it 11dnl and/or modify it under the terms of the GNU General 12dnl Public License as published by the Free Software 13dnl Foundation; either version 2 of the License, or (at 14dnl your option) any later version. 15dnl 16dnl This program is distributed in the hope that it will 17dnl be useful, but WITHOUT ANY WARRANTY; without even the 18dnl implied warranty of MERCHANTABILITY or FITNESS FOR A 19dnl PARTICULAR PURPOSE. See the GNU General Public 20dnl License for more details. 21dnl 22dnl The GNU General Public License should be included with 23dnl this file. If not, you can view it at 24dnl http://www.gnu.org/copyleft/gpl.html 25dnl or write to the Free Software Foundation, Inc., 59 26dnl Temple Place - Suite 330, Boston, MA 02111-1307, USA. 27dnl 28 29dnl ================================================================= 30dnl AutoConf Initialization 31dnl ================================================================= 32 33AC_REVISION($Revision: 1.213 $) 34AC_INIT(jcc.c) 35 36if test ! -f config.h.in; then 37 echo "You need to run autoheader first. " 38 echo -n "Shall I do this for you now? (y/n) " 39 read answer 40 if test "$answer" != "y"; then 41 exit 1 42 else 43 autoheader 44 fi 45fi 46 47AC_CONFIG_HEADER([config.h]) 48AC_CANONICAL_HOST 49 50dodk=auto 51DKPREFIX=none 52AC_ARG_WITH(docbook, dnl 53 --with-docbook=[[yes|no|directory]] 54 Enable docbook documentation creation 55 (default = yes, for gnu and linux),[dnl 56case "$with_docbook" in 57yes) dodk=yes;; 58no) dodk=no;; 59*) 60 dodk=yes 61 DKPREFIX=$withval 62 ;; 63esac 64]) 65DB2HTML=false 66AC_ARG_WITH(db2html, dnl 67 --with-db2html=<path/executable> 68 Set the location of the docbook to html converter 69 (default = search),[dnl 70DB2HTML=$withval 71]) 72 73dnl ================================================================= 74dnl Application version number 75dnl ================================================================= 76dnl CODE_STATUS can be "alpha", "beta", "stable" or "UNRELEASED", 77dnl and will be used for CGI output. Increment version number and 78dnl set status to "UNRELEASED" whenever git differs from the last 79dnl release and no new release is near. 80 81VERSION_MAJOR=3 82VERSION_MINOR=0 83VERSION_POINT=33 84CODE_STATUS="stable" 85 86dnl Timestamp (date +%s) used by the mtree-spec target. 87dnl Should be updated before releases but forgetting it isn't critical. 88SOURCE_DATE_EPOCH=1636218132 89 90dnl ================================================================= 91dnl Substitute the version numbers 92dnl ================================================================= 93 94AC_SUBST(VERSION_MAJOR) 95AC_SUBST(VERSION_MINOR) 96AC_SUBST(VERSION_POINT) 97AC_SUBST(CODE_STATUS) 98AC_SUBST(SOURCE_DATE_EPOCH) 99 100dnl 101AC_DEFINE_UNQUOTED(VERSION_MAJOR,${VERSION_MAJOR}) 102AC_DEFINE_UNQUOTED(VERSION_MINOR,${VERSION_MINOR}) 103AC_DEFINE_UNQUOTED(VERSION_POINT,${VERSION_POINT}) 104AC_DEFINE_UNQUOTED(VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_POINT}") 105AC_DEFINE_UNQUOTED(CODE_STATUS,"${CODE_STATUS}") 106 107dnl ================================================================= 108dnl Checks for programs needed to build. 109dnl ================================================================= 110 111dnl Keep AC_PROG_CC from setting its own defaults: 112if test "X$CFLAGS" = "X"; then 113 CFLAGS=" " 114fi 115 116AC_PROG_CC 117AC_PROG_CPP 118AC_PROG_INSTALL 119AC_PROG_LN_S 120AC_PROG_MAKE_SET 121AC_PROG_AWK 122 123AC_CHECK_PROG(GDB,gdb,yes,no) 124AC_PATH_PROG(BGROUPS,groups,no,$PATH:/bin:/usr/bin:/usr/local/bin) 125AC_PATH_PROG(ID,id,no,$PATH:/bin:/usr/bin:/usr/local/bin) 126AC_SUBST(ID) 127AC_SUBST(BGROUPS) 128 129dnl ================================================================= 130dnl debug, gcc and gdb support 131dnl ================================================================= 132 133AC_ARG_WITH(debug, 134 [ --with-debug Enable debug mode], 135 [ 136 if test "x$withval" != "xno" ; then 137 if test $ac_cv_prog_cc_g = yes; then 138 if test "$GCC" = yes; then 139 if test "$GDB"; then 140 CFLAGS="$CFLAGS -ggdb" 141 else 142 CFLAGS="$CFLAGS -g" 143 fi 144 CFLAGS="$CFLAGS -Wshadow -Wconversion" 145 else 146 CFLAGS="$CFLAGS -g" 147 fi 148 fi 149 fi 150 ], 151 [ 152 if test "X$CFLAGS" = "X "; then # if CFLAGS were unset (see above) 153 if test "$GCC" = yes; then 154 CFLAGS="-O2" 155 fi 156 fi 157 ] 158) 159 160AC_ARG_WITH(assertions, [ --with-assertions Enable assertions]) 161if test "x$with_assertions" != "xyes"; then 162 CFLAGS="$CFLAGS -DNDEBUG" 163fi 164 165AC_ARG_WITH(asan, [ --with-asan Enable AddressSanitizer. Requires compiler support.]) 166if test "x$with_asan" = "xyes"; then 167 CFLAGS="$CFLAGS -fsanitize=address" 168 LDFLAGS="$LDFLAGS -fsanitize=address" 169fi 170 171AC_ARG_WITH(asan, [ --with-msan Enable MemorySanitizer. Requires compiler support.]) 172if test "x$with_msan" = "xyes"; then 173 CFLAGS="$CFLAGS -fsanitize=memory" 174 LDFLAGS="$LDFLAGS -fsanitize=memory" 175fi 176 177AC_ARG_WITH(usan, [ --with-usan Enable UndefinedBehaviorSanitizer. Requires compiler support.]) 178if test "x$with_usan" = "xyes"; then 179 CFLAGS="$CFLAGS -fsanitize=undefined" 180 LDFLAGS="$LDFLAGS -fsanitize=undefined" 181fi 182 183dnl ================================================================= 184dnl Check for user and group validity 185dnl ================================================================= 186 187 188if test "$host_os" = haiku; then 189 echo "Skipping user and group validity stuff."; 190 191else 192 193 $ID privoxy >/dev/null 2>/dev/null 194 if test $? -ne 0 ; then 195 AC_MSG_WARN(There is no user 'privoxy' on this system) 196 fi 197 AC_MSG_CHECKING([for user]) 198 AC_ARG_WITH(user, 199 [ --with-user=privoxy Set user under which privoxy will run], 200 [ 201 if test "x$withval" != "xyes"; then 202 if test $ID = no ; then 203 AC_MSG_ERROR(There is no 'id' program on this system) 204 else 205 AC_MSG_RESULT($with_user) 206 $ID $with_user 2>/dev/null >/dev/null 207 if test $? -eq 0 ; then 208 USER=$with_user; 209 else 210 AC_MSG_ERROR(There is no user '$with_user' on this system) 211 fi 212 fi 213 else 214 AC_MSG_ERROR(We need a user if you give me this parameter) 215 fi 216 ], 217 [ 218 if test $ID = no ; then 219 AC_MSG_ERROR(There is no 'id' programm on this system) 220 else 221 AC_MSG_RESULT(none specified) 222 USER=$with_user 223 fi 224 ] 225 ) 226 AC_SUBST(USER) 227 228 AC_MSG_CHECKING([for group]) 229 AC_ARG_WITH(group, 230 [ --with-group=privoxy Set group for privoxy], 231 [ 232 if test "x$withval" != "xyes"; then 233 if test $BGROUPS = no ; then 234 AC_MSG_ERROR(There is no 'groups' program on this system) 235 else 236 AC_MSG_RESULT($with_group) 237 $BGROUPS $USER >/dev/null 238 if test $? -eq 0 ; then 239 for i in `$BGROUPS $USER | sed 's/.*: //' 2>/dev/null`; do 240 if test "x$i" = "x$with_group" ; then 241 GROUP=$with_group 242 break 243 fi 244 done 245 if test "x$GROUP" != "x$with_group" ; then 246 AC_MSG_ERROR(The given value '$withval' does not match group entry) 247 fi 248 else 249 AC_MSG_ERROR(There is no group entry for user '$USER') 250 fi 251 fi 252 else 253 AC_MSG_ERROR(We need a group if you give me this parameter) 254 fi 255 ], 256 [ 257 if test $BGROUPS = no ; then 258 AC_MSG_ERROR(There is no 'groups' programm on this system) 259 else 260 AC_MSG_RESULT(none specified) 261 GROUP=$with_group; 262 fi 263 ] 264 ) 265 AC_SUBST(GROUP) 266 267fi 268 269dnl ================================================================= 270dnl additional gcc flags 271dnl ================================================================= 272dnl 273if test "$GCC"; then 274 if test "$host" != "powerpc-unknown-amigaos"; then 275 CFLAGS="-pipe $CFLAGS" 276 fi 277fi 278 279 280dnl ================================================================= 281dnl Build type 282dnl ================================================================= 283dnl 284dnl Must do this first. 285dnl 286dnl Reason: This sets CFLAGS in order to switch the Cygwin compiler 287dnl into Cygwin or MinGW32 modes. Depending on the mode selected, 288dnl the compiler will use completely different sets of library 289dnl and include files. 290dnl 291dnl ================================================================= 292 293AC_MINGW32 294AC_CYGWIN 295 296if test "$MINGW32" = "yes"; then 297 target_type=mingw 298else 299 if test "$CYGWIN" = "yes"; then 300 target_type=cygwin 301 else 302 target_type=unix 303 fi 304fi 305 306if test $dodk = auto; then 307 dodk=no 308 if test $target_type = unix; then 309 case "$host_os" in 310 linux* | gnu* | *bsd*) 311 dodk=yes 312 ;; 313 esac 314 fi 315fi 316 317dnl Decide what to do based on target_type 318dnl Note: PTHREAD_LIB is always set, even if pthread is disabled. 319dnl This is because we don't know yet whether pthread is enabled. 320 321AC_ARG_ENABLE(mingw32, 322[ --enable-mingw32 Use mingw32 for a Windows GUI], 323[if test $enableval = yes; then 324 target_type=mingw 325fi]) 326 327if test $target_type = mingw; then 328 WIN_ONLY= 329 CFLAGS="$CFLAGS -DWINVER=0x501" 330 SPECIAL_CFLAGS="-mwindows" 331dnl from the cygwin FAQ: The regular setup allows you to use the -mwindows option 332dnl to include a set of the basic libraries user32, gdi32 and comdlg32. 333dnl (and also make your program a GUI program instead of a console program) 334 PTHREAD_LIB=-lpthread 335 echo "Using mingw32 (Win32 GUI)" 336else 337 WIN_ONLY=# 338 if test $target_type = cygwin; then 339 SPECIAL_CFLAGS="-mno-win32" 340 PTHREAD_LIB= 341 echo "Using Cygnus (Win32 command line)" 342 else 343 SPECIAL_CFLAGS= 344 PTHREAD_LIB=-lpthread 345 fi 346fi 347AC_SUBST(WIN_ONLY) 348 349if test $dodk != no; then 350 AC_CHECK_PROGS(W3M, w3m, false) 351 if test "$W3M" = false; then 352 AC_MSG_WARN(You need w3m to build text documentation.) 353 fi 354 if test $DB2HTML = false; then 355 dnl We need to clean the variable, otherwise AC_CHECK_PROGS 356 dnl will fail 357 DB2HTML="" 358 AC_CHECK_PROGS(DB2HTML,db2html docbook2html,false) 359 fi 360fi 361AC_SUBST(W3M) 362AC_SUBST(DB2HTML) 363 364dnl prefer openjade to jade 365dnl Check for jade, so we can build the documentation 366AC_CHECK_PROGS(JADEBIN,openjade jade,false) 367AC_SUBST(JADEBIN) 368 369dnl Prefer OpenSP to SP 370dnl ref: https://lists.privoxy.org/pipermail/privoxy-devel/2018-November/000293.html 371AC_CHECK_PROGS(NSGMLS,onsgmls nsgmls,false) 372AC_SUBST(NSGMLS) 373 374dnl Check for man2html for docs. 375AC_CHECK_PROGS(MAN2HTML,man2html,false) 376AC_SUBST(MAN2HTML) 377 378dnl Set doc status flag for conditional content inclusions 379DOC_STATUS=p-not-stable 380if test $CODE_STATUS = stable; then 381 DOC_STATUS="p-stable" 382fi 383AC_SUBST(DOC_STATUS) 384 385dnl Checking for the docbook.dsl stylesheet file 386dnl It is still not portable (directory slash) 387JADECAT="" 388if test $dodk = yes; then 389 if test $DKPREFIX = none; then 390 for i in /usr/share/sgml/docbook/dsssl-stylesheets \ 391 /usr/share/sgml/docbkdsl /usr/share/sgml/docbook-dsssl \ 392 /usr/local/share/sgml/docbook/dsssl/modular \ 393 /usr/share/sgml/docbook/stylesheet/dsssl/modular/ \ 394 ; do 395dnl echo -n does not fly with /bin/sh. 396dnl echo -n "checking for $i/html/docbook.dsl..." 397 AC_MSG_CHECKING([for $i]) 398 if test -f $i/html/docbook.dsl; then 399 echo "yes" 400 DKPREFIX=$i 401 break 402 else 403 echo "no" 404 fi 405 done 406# where are the catalogs? 407 for i in /usr/share/sgml/CATALOG.docbk30 \ 408 /usr/share/sgml/CATALOG.docbk31 \ 409 /usr/share/sgml/CATALOG.docbk31 \ 410 /usr/local/share/sgml/docbook/2.4.1/docbook.cat \ 411 /usr/local/share/sgml/docbook/3.0/docbook.cat \ 412 /usr/local/share/sgml/docbook/3.1/docbook.cat \ 413 /usr/share/sgml/docbook/dtd/3.1/docbook.cat \ 414 ; do 415dnl echo -n "checking for $i..." 416 AC_MSG_CHECKING([for $i]) 417 if test -f $i; then 418 echo "yes" 419 JADECAT="$JADECAT -c $i" 420 else 421 echo "no" 422 fi 423 done 424 fi 425fi 426AC_SUBST(JADECAT) 427AC_SUBST(DKPREFIX) 428 429AC_ARG_ENABLE(large-file-support, 430[ --enable-large-file-support Define _LARGE_FILES and friends. 431 Required by some systems to support files larger then 2GB.], 432[if test $enableval = yes; then 433 CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D_LARGEFILE_SOURCE=1" 434fi]) 435 436AC_ARG_ENABLE(static-linking, 437[ --enable-static-linking Use static linking instead of dynamic linking (ie. LDFLAGS=-static)], 438[ if test $enableval = yes; then LDFLAGS="$LDFLAGS -static"; use_static_pcre="yes"; fi ]) 439 440dnl Save old CFLAGS so we can restore them later, then add SPECIAL_CFLAGS 441old_CFLAGS_nospecial=$CFLAGS 442CFLAGS="$CFLAGS $SPECIAL_CFLAGS" 443 444# Hack to force AutoConf to use the CFLAGS we just set 445dnl Warning: This may break with a future version of Autoconf 446dnl Tested with autoconf 2.13 447ac_cpp='$CPP $CPPFLAGS $SPECIAL_CFLAGS' 448ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' 449ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' 450 451 452dnl ================================================================= 453dnl Thread support 454dnl ================================================================= 455 456AC_CHECK_HEADER(pthread.h, [have_pthread=yes], [have_pthread=no]) 457 458AC_ARG_ENABLE(pthread, 459[ --disable-pthread Don't use POSIX threads (pthreads)], 460[if test $enableval = no; then 461 # Disable pthreads 462 if test $have_pthread = yes -a $target_type != mingw; then 463 AC_MSG_WARN([pthreads seem to be available but you are using --disable-pthread.]) 464 AC_MSG_WARN([This is almost always a mistake and can render Privoxy unacceptable slow.]) 465 AC_MSG_WARN([Also various Privoxy features only work when using threads and won't even compile without them.]) 466 fi 467 have_pthread=no 468fi]) 469 470if test $have_pthread = yes; then 471 PTHREAD_ONLY= 472 AC_DEFINE(FEATURE_PTHREAD) 473 echo Using POSIX threads 474 if test "$GCC" = "yes"; then 475 # Set a GCC specific switch: 476 if test "$target_type" = "unix"; then 477 ac_jgf_save_CFLAGS=$CFLAGS 478 CFLAGS="$CFLAGS -pthread" 479 AC_TRY_LINK([#include <pthread.h>], 480 [void *p = pthread_create;], 481 [ 482 # This compiler switch makes GCC on Linux thread-safe 483 # However, it's not supported on most other OS. 484 PTHREAD_LIB= 485 SPECIAL_CFLAGS="-pthread" 486 ]) 487 CFLAGS=$ac_jgf_save_CFLAGS 488 fi 489 fi 490else 491 PTHREAD_ONLY=# 492 echo Using native threads 493fi 494 495AC_SUBST(PTHREAD_ONLY) 496 497dnl ================================================================= 498dnl On most platforms select() does not support fd numbers above 499dnl FD_SETSIZE, as a result Privoxy can't handle more than 500dnl approximately FD_SETSIZE/2 client connections. 501dnl On some platforms the value can be changed at compile time, 502dnl on others it's hardcoded and requires recompilation of the OS. 503dnl Only relevant if select() is actually being used. 504dnl ================================================================= 505AC_ARG_WITH(fdsetsize, 506 [ --with-fdsetsize=n Optimistically redefine FD_SETSIZE with the intend to change the number of connections Privoxy can handle. Dangerous if the platform doesn't support this. Pointless if Privoxy can use poll() instead of select().], 507 [ 508 if test "x$withval" != "xyes"; then 509 AC_DEFINE_UNQUOTED(FD_SETSIZE,$with_fdsetsize,[Relevant for select(). Not honoured by all OS.]) 510 echo "Redefining FD_SETSIZE to $with_fdsetsize." 511 AC_MSG_WARN(On platforms that don't support FD_SETSIZE redefinition it may cause memory corruption.) 512 else 513 AC_MSG_ERROR(--with-fdsetsize used without value) 514 fi 515 ] 516) 517 518dnl ================================================================= 519dnl Support for thread-safe versions of gethostbyaddr, gethostbyname, 520dnl gmtime and localtime 521dnl ================================================================= 522 523dnl Next line needed to find the gethost*_r functions on Solaris 524AC_CHECK_LIB(nsl, gethostbyname) 525 526AC_CHECK_FUNC(gethostbyaddr_r, [ 527 AC_MSG_CHECKING([signature of gethostbyaddr_r]) 528 AC_TRY_COMPILE([ 529# include <netdb.h> 530 ], [ 531 struct hostent *h, *hp; 532 char *a, *b; 533 int l, bl, t, e; 534 (void) gethostbyaddr_r(a, l, t, h, b, bl, &hp, &e) 535 ], [ 536 AC_DEFINE(HAVE_GETHOSTBYADDR_R_8_ARGS) 537 AC_MSG_RESULT([8 args]) 538 ], [ 539 AC_TRY_COMPILE([ 540# include <netdb.h> 541 ], [ 542 struct hostent *h; 543 char *a, *b; 544 int l, bl, t, e; 545 (void) gethostbyaddr_r(a, l, t, h, b, bl, &e) 546 ], [ 547 AC_DEFINE(HAVE_GETHOSTBYADDR_R_7_ARGS) 548 AC_MSG_RESULT([7 args]) 549 ], [ 550 AC_TRY_COMPILE([ 551# include <netdb.h> 552 ], [ 553 struct hostent_data *d; 554 struct hostent *h; 555 char a, 556 int l, t; 557 (void) gethostbyaddr_r(a, l, t, h, d) 558 ], [ 559 AC_DEFINE(HAVE_GETHOSTBYADDR_R_5_ARGS) 560 AC_MSG_RESULT([5 args]) 561 ], [ 562 AC_MSG_RESULT(unrecognised) 563 ]) 564 ]) 565 ]) 566], [ 567 AC_MSG_RESULT(no) 568]) 569 570AC_CHECK_FUNC(gethostbyname_r, [ 571 AC_MSG_CHECKING([signature of gethostbyname_r]) 572 AC_TRY_COMPILE([ 573# include <netdb.h> 574 ], [ 575 struct hostent *h, *r; 576 char *n, *b; 577 int bl, e; 578 (void) gethostbyname_r(n, h, b, bl, &r, &e) 579 ], [ 580 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARGS) 581 AC_MSG_RESULT([6 args]) 582 ], [ 583 AC_TRY_COMPILE([ 584# include <netdb.h> 585 ], [ 586 struct hostent *h; 587 char *n, *b; 588 int bl, e; 589 (void) gethostbyname_r(n, h, b, bl, &e) 590 ], [ 591 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARGS) 592 AC_MSG_RESULT([5 args]) 593 ], [ 594 AC_TRY_COMPILE([ 595# include <netdb.h> 596 ], [ 597 struct hostent_data *d; 598 struct hostent *h; 599 char *n, 600 (void) gethostbyname_r(n, h, d) 601 ], [ 602 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARGS) 603 AC_MSG_RESULT([3 args]) 604 ], [ 605 AC_MSG_RESULT(unrecognised) 606 ]) 607 ]) 608 ]) 609], [ 610 AC_MSG_RESULT(no) 611]) 612 613AC_CHECK_FUNC(gmtime_r, [ 614 AC_MSG_CHECKING([signature of gmtime_r]) 615 AC_TRY_COMPILE([ 616# include <time.h> 617 ], [ 618 struct time *t; 619 struct tm *tm; 620 (void) gmtime_r(t, tm) 621 ], [ 622 AC_MSG_RESULT(ok) 623 AC_DEFINE(HAVE_GMTIME_R) 624 ], [ 625 AC_MSG_RESULT(unrecognised) 626 ]) 627], [ 628 AC_MSG_RESULT(no) 629]) 630 631AC_CHECK_FUNC(localtime_r, [ 632 AC_MSG_CHECKING([signature of localtime_r]) 633 AC_TRY_COMPILE([ 634# include <time.h> 635 ], [ 636 struct time *t; 637 struct tm *tm; 638 (void) localtime_r(t, tm) 639 ], [ 640 AC_MSG_RESULT(ok) 641 AC_DEFINE(HAVE_LOCALTIME_R) 642 ], [ 643 AC_MSG_RESULT(unrecognised) 644 ]) 645], [ 646 AC_MSG_RESULT(no) 647]) 648 649dnl ================================================================= 650dnl Solaris specific 651dnl FIXME: Not tested on Solaris yet... 652dnl ISFIXED: Have tested it on Solaris, but there are other ways to 653dnl make these checks generic, e.g.: 654dnl AC_CHECK_FUNC(getsockopt, , AC_CHECK_LIB(socket, getsockopt)) 655dnl (Moritz Barsnick <moritz@barsnick.net>) 656dnl ================================================================= 657 658 659SOCKET_LIB= 660 661case "$host" in 662*-solaris*) SOCKET_LIB="-lsocket -lnsl" 663 AC_DEFINE(__EXTENSIONS__) 664 if test "$GCC" = "yes"; then 665 # Set a GCC specific switch: 666 # This compiler switch makes Solaris thread-safe 667 PTHREAD_LIB= 668 SPECIAL_CFLAGS="-pthreads" 669 else 670 # What do we do without GCC? Guess this: 671 SPECIAL_CFLAGS="-D_REENTRANT" 672 fi 673;; 674esac 675 676AC_SUBST(SOCKET_LIB) 677 678dnl ================================================================= 679dnl Solaris problem, and others perhaps (socklen_t is undefined) 680dnl ================================================================= 681 682if test $target_type != mingw; then 683# i686-w64-mingw32-gcc gets socklen_t define from ws2tcpip.h 684 685AC_MSG_CHECKING([for socklen_t]) 686AC_EGREP_HEADER(socklen_t, sys/socket.h, AC_MSG_RESULT([yes]), 687 AC_MSG_RESULT([no]) 688 AC_DEFINE(socklen_t,int, 689 [ Define to 'int' if <sys/socket.h> doesn't have it. ])) 690 691fi 692 693dnl ================================================================= 694dnl Mac OSX specific 695dnl ================================================================= 696 697case "$host" in 698*-apple-darwin*) SPECIAL_CFLAGS="-Dunix" 699;; 700esac 701 702dnl ================================================================= 703dnl OpenBSD specific 704dnl ================================================================= 705 706case "$host" in 707*-openbsd*) SPECIAL_CFLAGS="$SPECIAL_CFLAGS -Dunix" 708;; 709esac 710 711dnl ================================================================= 712dnl Haiku specific 713dnl ================================================================= 714 715if test "$host_os" = haiku; then 716 # Omit the "-pthread" flag to gcc, even when building with gcc 2.95 717 SPECIAL_CFLAGS= 718 719 # Haiku's pthreads implementation exists in its system library, 720 # libroot, not in a separate pthreads library 721 PTHREAD_LIB= 722 723 # Networking code exists in libnetwork 724 SOCKET_LIB=-lnetwork 725 726 # Search Haiku's common-library folder to find its pcre and 727 # pcreposix libraries 728 LIBS="-L/boot/common/lib $LIBS" 729fi 730 731dnl ================================================================= 732dnl Check for standard compiler stuff 733dnl ================================================================= 734 735AC_EXEEXT 736AC_OBJEXT 737AC_HEADER_STDC 738AC_HEADER_DIRENT 739AC_C_CONST 740AC_TYPE_SIZE_T 741AC_TYPE_PID_T 742AC_HEADER_TIME 743AC_STRUCT_TM 744AC_CHECK_SIZEOF(int, 4) 745AC_CHECK_SIZEOF(char *, 4) 746AC_CHECK_SIZEOF(long, 4) 747AC_CHECK_SIZEOF(long long, 8) 748AC_CHECK_SIZEOF(size_t, 4) 749AC_CHECK_SIZEOF(time_t, 8) 750 751dnl Checks for header files. 752AC_CHECK_HEADERS([ \ 753 OS.h \ 754 arpa/inet.h \ 755 errno.h \ 756 fcntl.h \ 757 limits.h \ 758 locale.h \ 759 netdb.h \ 760 netinet/in.h \ 761 stddef.h \ 762 stdlib.h \ 763 string.h \ 764 sys/ioctl.h \ 765 sys/socket.h \ 766 sys/time.h \ 767 sys/timeb.h \ 768 sys/wait.h \ 769 unistd.h \ 770]) 771 772dnl Checks for library functions. 773AC_PROG_GCC_TRADITIONAL 774AC_TYPE_SIGNAL 775AC_CHECK_FUNCS([ \ 776 access \ 777 arc4random \ 778 atexit \ 779 calloc \ 780 getcwd \ 781 gethostbyaddr \ 782 gethostbyaddr_r \ 783 gethostbyname \ 784 gethostbyname_r \ 785 gettimeofday \ 786 inet_ntoa \ 787 memchr \ 788 memmove \ 789 memset \ 790 nanosleep \ 791 poll \ 792 putenv \ 793 random \ 794 regcomp \ 795 select \ 796 setlocale \ 797 shutdown \ 798 snprintf \ 799 socket \ 800 strchr \ 801 strdup \ 802 strerror \ 803 strftime \ 804 strlcat \ 805 strlcpy \ 806 strptime \ 807 strtoul \ 808 timegm \ 809 tzset \ 810]) 811 812dnl Checks for RFC 2553 resolver and socket functions 813AC_ARG_ENABLE(ipv6-support, 814[ --disable-ipv6-support Disable IPv6 support and other RFC-2554-related improvements], 815[if test $enableval = yes; then 816 enable_ipv6_support=yes 817fi], enable_ipv6_support=yes) 818 819if test $enable_ipv6_support != yes; then 820 AC_MSG_WARN([Skipping checks for IPv6 support and other RFC-2554-related improvements. 821 Due to lock contention, this may result in slower DNS resolution for IPv4 setups, too.]) 822elif test $target_type = mingw; then 823 AC_CHECK_LIB(ws2_32, main) 824 825 AC_MSG_CHECKING(getaddrinfo in ws2_32) 826 AC_TRY_LINK( 827 [ 828 #include<winsock2.h> 829 #include<windows.h> 830 #include<ws2tcpip.h> 831 ], 832 [getaddrinfo(0,0,0,0)], 833 have_ws2_32_getaddrinfo=yes 834 ) 835 AC_MSG_RESULT($have_ws2_32_getaddrinfo) 836 837 AC_MSG_CHECKING(getnameinfo in ws2_32) 838 AC_TRY_LINK( 839 [ 840 #include<winsock2.h> 841 #include<windows.h> 842 #include<ws2tcpip.h> 843 ], 844 [getnameinfo(0,0,0,0,0,0,0)], 845 have_ws2_32_getnameinfo=yes 846 ) 847 AC_MSG_RESULT($have_ws2_32_getnameinfo) 848 849 if test $have_ws2_32_getaddrinfo ; then 850 if test $have_ws2_32_getnameinfo ; then 851 AC_DEFINE([HAVE_RFC2553], [1], 852 [Define if RFC 2553 resolver functions like getaddrinfo(3) and 853 getnameinfo(3) present]) 854 fi 855 fi 856else 857 AC_CHECK_FUNC([getaddrinfo], 858 [AC_CHECK_FUNC([getnameinfo], 859 [AC_DEFINE([HAVE_RFC2553], [1], 860 [Define if RFC 2553 resolver functions like getaddrinfo(3) and 861 getnameinfo(3) present]) 862 ]) 863 ]) 864fi 865 866dnl ================================================================= 867dnl Checks for libraries. 868dnl ================================================================= 869dnl Note: Some systems may have the library but not the system header 870dnl file, so we must check for both. 871dnl Also check for correct version 872AC_CHECK_LIB(pcre, pcre_compile, [ 873 AC_CHECK_HEADER(pcre.h, [ 874 AC_EGREP_HEADER(pcre_fullinfo, pcre.h, [have_pcre=yes], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no]) 875 ], [ 876 AC_CHECK_HEADER(pcre/pcre.h, [ 877 AC_EGREP_HEADER(pcre_fullinfo, pcre/pcre.h, [have_pcre=yes]; [AC_DEFINE(PCRE_H_IN_SUBDIR)], [AC_MSG_WARN([[pcre old version installed]]); have_pcre=no]) 878 ], [have_pcre=no]) 879 ]) 880], [have_pcre=no]) 881 882AC_CHECK_LIB(pcreposix, regcomp, [ 883 AC_CHECK_HEADER(pcreposix.h, [ 884 AC_EGREP_HEADER(pcreposix_regerror, pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes]) 885 ], [ 886 AC_CHECK_HEADER(pcre/pcreposix.h, [ 887 AC_EGREP_HEADER(pcreposix_regerror, pcre/pcreposix.h, [AC_MSG_WARN([[pcreposix old version installed]]); have_pcreposix=no], [have_pcreposix=yes]; [AC_DEFINE(PCREPOSIX_H_IN_SUBDIR)]) 888 ], [have_pcreposix=no]) 889 ]) 890], [have_pcreposix=no], -lpcre) 891 892dnl ================================================================ 893dnl libpcrs is temporarily disabled. 894dnl 895dnl Privoxy's own pcrs version fixes some problems that 896dnl are present in libpcrs 0.3, the last pcrs release we 897dnl know of, and as libpcrs seems to be currently unmaintained 898dnl we can't send these fixes upstream. 899dnl ================================================================ 900dnl 901dnl AC_CHECK_LIB(pcrs, pcrs_compile, [AC_CHECK_HEADER(pcrs.h, [have_pcrs=yes], [have_pcrs=no])], [have_pcrs=no], -lpcre) 902 903dnl ================================================================= 904dnl Always defined 905dnl ================================================================= 906 907AC_DEFINE(__MT__) 908 909dnl ================================================================= 910dnl Features 911dnl ================================================================= 912 913AC_ARG_ENABLE(toggle, 914[ --disable-toggle Don't support temporary disable], 915[if test $enableval = yes; then 916 AC_DEFINE(FEATURE_TOGGLE) 917fi],AC_DEFINE(FEATURE_TOGGLE)) 918 919AC_ARG_ENABLE(force, 920[ --disable-force Don't allow single-page disable], 921[if test $enableval = yes; then 922 AC_DEFINE(FEATURE_FORCE_LOAD) 923fi],AC_DEFINE(FEATURE_FORCE_LOAD)) 924 925AC_ARG_ENABLE(fast-redirects, 926[ --disable-fast-redirects Don't support fast redirects], 927[if test $enableval = yes; then 928 AC_DEFINE(FEATURE_FAST_REDIRECTS) 929fi], AC_DEFINE(FEATURE_FAST_REDIRECTS)) 930 931AC_ARG_ENABLE(stats, 932[ --disable-stats Don't keep statistics], 933[if test $enableval = yes; then 934 AC_DEFINE(FEATURE_STATISTICS) 935fi],AC_DEFINE(FEATURE_STATISTICS)) 936 937AC_ARG_ENABLE(extended-statistics, 938[ --enable-extended-statistics Gather extended statistics.], 939[if test $enableval = yes; then 940 AC_DEFINE(FEATURE_EXTENDED_STATISTICS) 941fi]) 942 943AC_ARG_ENABLE(image-blocking, 944[ --disable-image-blocking Don't try to figure out whether a request is 945 for an image or HTML - assume HTML.], 946[if test $enableval = yes; then 947 AC_DEFINE(FEATURE_IMAGE_BLOCKING) 948fi], 949AC_DEFINE(FEATURE_IMAGE_BLOCKING)) 950 951AC_ARG_ENABLE(acl-support, 952[ --disable-acl-support Prevents the use of ACLs to control access to 953 Privoxy by IP address.], 954[if test $enableval = yes; then 955 AC_DEFINE(FEATURE_ACL) 956fi], 957AC_DEFINE(FEATURE_ACL)) 958 959AC_ARG_ENABLE(trust-files, 960[ --disable-trust-files Prevents the use of trust files.], 961[if test $enableval = yes; then 962 AC_DEFINE(FEATURE_TRUST) 963fi], 964AC_DEFINE(FEATURE_TRUST)) 965 966AC_ARG_ENABLE(editor, 967[ --disable-editor Prevents the use of the web-based actions file 968 editor and web-based temporary disable setting.], 969[if test $enableval = yes; then 970 AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS) 971fi], 972AC_DEFINE(FEATURE_CGI_EDIT_ACTIONS)) 973 974AC_ARG_ENABLE(no-gifs, 975[ --enable-no-gifs Use politically correct PNG format instead of GIF 976 for built-in images. May not work with all browsers.], 977[if test $enableval = yes; then 978 AC_DEFINE(FEATURE_NO_GIFS) 979fi]) 980 981AC_ARG_ENABLE(graceful-termination, 982[ --enable-graceful-termination Allow to shutdown Privoxy through the webinterface.], 983[if test $enableval = yes; then 984 AC_DEFINE(FEATURE_GRACEFUL_TERMINATION) 985fi]) 986 987AC_ARG_ENABLE(pcre-host-patterns, 988[ --enable-pcre-host-patterns Allow to use PCRE syntax in host patterns by prefixing the pattern with 989 "PCRE-HOST-PATTERN:". You can use tools/url-pattern-translator.pl to 990 convert existing action files to use PCRE host patterns.], 991[if test $enableval = yes; then 992 AC_DEFINE(FEATURE_PCRE_HOST_PATTERNS) 993fi]) 994 995AC_ARG_ENABLE(pcre-jit-compilation, 996[ --disable-pcre-jit-compilation Don't let pcrs use pcre JIT compilation even if pcre supports it.], 997[if test $enableval != yes; then 998 AC_DEFINE(DISABLE_PCRE_JIT_COMPILATION) 999fi]) 1000 1001AC_ARG_ENABLE(external-filters, 1002[ --enable-external-filters Allow to filter content with scripts and programs. Experimental.], 1003[if test $enableval = yes; then 1004 AC_DEFINE(FEATURE_EXTERNAL_FILTERS,1,[Define to 1 to allow to filter content with scripts and programs.]) 1005fi]) 1006 1007AC_ARG_ENABLE(accept-filter, 1008[ --enable-accept-filter Try to use accf_http(9) if supported.], 1009[if test $enableval = yes; then 1010 AC_DEFINE(FEATURE_ACCEPT_FILTER) 1011fi]) 1012 1013AC_ARG_ENABLE(strptime-sanity-checks, 1014[ --enable-strptime-sanity-checks Only trust strptime() results if an additional strftime()/strptime() 1015 conversion doesn't change the result. Can be useful if strptime() is 1016 known or suspected to be broken.], 1017[if test $enableval = yes; then 1018 AC_DEFINE(FEATURE_STRPTIME_SANITY_CHECKS) 1019fi]) 1020 1021AC_ARG_ENABLE(client-tags, 1022[ --disable-client-tags Disable support for client-specific tags], 1023[ if test $enableval = "no"; then have_client_tags=no; fi ]) 1024if test "${have_client_tags}" = "no"; then 1025 echo "Disabling support for client-specific tags." 1026 FEATURE_CLIENT_TAGS_ONLY="#" 1027else 1028 echo "Enabling support for client-specific tags." 1029 AC_DEFINE(FEATURE_CLIENT_TAGS,1,[Define to enable support for client-specific tags.]) 1030 FEATURE_CLIENT_TAGS_ONLY="" 1031fi 1032AC_SUBST(FEATURE_CLIENT_TAGS_ONLY) 1033 1034FUZZ_ONLY="#" 1035AC_ARG_ENABLE(fuzz, 1036[ --enable-fuzz Enable code that makes fuzzing more convenient], 1037[if test $enableval = yes; then 1038 FUZZ_ONLY="" 1039 AC_DEFINE(FUZZ,1,[Define to make fuzzing more convenient.]) 1040fi]) 1041AC_SUBST(FUZZ_ONLY) 1042 1043dnl pcre/pcrs is needed for CGI anyway, so 1044dnl the choice is only between static and 1045dnl dynamic: 1046 1047AC_ARG_ENABLE(dynamic-pcre, 1048[ --disable-dynamic-pcre Use the built-in, static pcre, even if libpcre is available], 1049[ if test $enableval = "no"; then have_pcre=no; fi ]) 1050 1051dnl ================================================= 1052dnl libpcrs is temporarily disabled, 1053dnl see comment above for the reason. 1054dnl ================================================= 1055dnl AC_ARG_ENABLE(dynamic-pcrs, 1056dnl [ --disable-dynamic-pcrs Use the built-in, static pcrs, even if libpcrs is available], 1057dnl [ if test $enableval = "no"; then have_pcrs=no; fi ]) 1058 1059 1060dnl ==================================================== 1061dnl This check is incomplete. For mingw32 zlib is found 1062dnl by configure, but not necessarily by the compiler. 1063dnl ==================================================== 1064AC_ARG_ENABLE(zlib, 1065[ --disable-zlib Don't use zlib to decompress data before filtering.], 1066[enableval2=$enableval], 1067[enableval2=yes]) 1068if test $enableval2 = yes; then 1069 AC_CHECK_LIB(z, zlibVersion, [have_zlib="yes"], [have_zlib="no"]) 1070 if test $have_zlib = "yes"; then 1071 LIBS="$LIBS -lz" 1072 AC_DEFINE(FEATURE_ZLIB,1,[Define to 1 to use zlib to decompress data before filtering.]) 1073 else 1074 AC_MSG_WARN([No zlib found. 1075 Privoxy will not be able to filter compressed content. 1076 This may become a fatal error in the future.]) 1077 fi 1078fi 1079 1080AC_ARG_ENABLE(compression, 1081[ --enable-compression Allow Privoxy to compress buffered content if the client supports it. Requires zlib support.], 1082[enableval2=$enableval], 1083[enableval2=no]) 1084if test $enableval2 = yes; then 1085 if test $have_zlib = "yes"; then 1086 echo Enabling compression support. 1087 AC_DEFINE(FEATURE_COMPRESSION,1,[Define to 1 to use compression through the zlib library.]) 1088 else 1089 AC_MSG_WARN([No zlib found. Privoxy will not be able to (re-)compressed buffered content.]) 1090 fi 1091fi 1092 1093 1094# If we have libpcre and either we also have pcreposix or 1095# we don't need pcreposix, then link pcre dynamically; else 1096# build it and link statically 1097# 1098if test $have_pcre = "yes"; then 1099 echo "using libpcre" 1100 STATIC_PCRE_ONLY=# 1101 LIBS="$LIBS -lpcre -lpcreposix" 1102 if test "$use_static_pcre" = "yes"; then 1103 pcre_dyn=no 1104 AC_DEFINE(PCRE_STATIC,1,[Define to statically link to pcre library on Windows.]) 1105# see /usr/i686-w64-mingw32/sys-root/mingw/include/pcre.h line 54 1106# #if defined(_WIN32) && !defined(PCRE_STATIC) 1107# # ifndef PCRE_EXP_DECL 1108# # define PCRE_EXP_DECL extern __declspec(dllimport) 1109# # endif 1110# If you want to statically link a program against a PCRE library in the form of 1111# a non-dll .a file, you must define PCRE_STATIC before including pcre.h or 1112# pcrecpp.h, otherwise the pcre_malloc() and pcre_free() exported functions will 1113# be declared __declspec(dllimport), with unwanted results. 1114 else 1115 pcre_dyn=yes 1116 AC_DEFINE(FEATURE_DYNAMIC_PCRE,1,[Define to dynamically link to pcre.]) 1117 fi 1118else 1119 AC_MSG_ERROR(pcre library not detected.) 1120fi 1121 1122AC_DEFINE(FEATURE_CONNECTION_KEEP_ALIVE) 1123 1124if test $have_pthread = "yes" -o $target_type = "mingw"; then 1125 echo Enabling connection-sharing support. 1126 AC_DEFINE(FEATURE_CONNECTION_SHARING) 1127fi 1128 1129dnl ================================================= 1130dnl libpcrs is temporarily disabled, 1131dnl see comment above for the reason. 1132dnl ================================================= 1133dnl # If we have libpcrs and pcre is linked dynamically 1134dnl # then also link pcrs dynamically, else build and link 1135dnl # pcrs statically 1136dnl 1137dnl if test $have_pcrs = "yes" -a $pcre_dyn = "yes"; then 1138dnl echo "using libpcrs" 1139dnl STATIC_PCRS_ONLY=# 1140dnl LIBS="$LIBS -lpcrs" 1141dnl else 1142dnl echo "using built-in static pcrs" 1143 AC_DEFINE(STATIC_PCRS) 1144 STATIC_PCRS_ONLY= 1145dnl fi 1146 1147AC_SUBST(STATIC_PCRE_ONLY) 1148AC_SUBST(STATIC_PCRS_ONLY) 1149 1150FEATURE_HTTPS_INSPECTION_ONLY=# 1151dnl ======================================================== 1152dnl check for mbedTLS which can be used for https inspection 1153dnl ======================================================== 1154FEATURE_HTTPS_INSPECTION_ONLY_MBEDTLS=# 1155OPT_MBEDTLS=no 1156AC_ARG_WITH(mbedtls,dnl 1157AC_HELP_STRING([--with-mbedtls], [Enable mbedTLS detection for https inspection.]) 1158AC_HELP_STRING([--without-mbedtls], [Disable mbedTLS detection]), 1159 OPT_MBEDTLS=$withval) 1160 1161if test X"$OPT_MBEDTLS" != Xno; then 1162 1163 AC_CHECK_LIB(mbedtls, mbedtls_ssl_init, 1164 [ 1165 AC_DEFINE(FEATURE_HTTPS_INSPECTION, 1, [if SSL/TLS is enabled]) 1166 AC_DEFINE(FEATURE_HTTPS_INSPECTION_MBEDTLS, 1, [if mbedTLS is enabled]) 1167 AC_SUBST(FEATURE_HTTPS_INSPECTION_MBEDTLS, [1]) 1168 FEATURE_HTTPS_INSPECTION_MBEDTLS="yes" 1169 ], [], -lmbedx509 -lmbedcrypto) 1170 1171 if test "x$FEATURE_HTTPS_INSPECTION_MBEDTLS" = "xyes"; then 1172 AC_MSG_NOTICE([Detected mbedTLS. Enabling https inspection.]) 1173 1174 LIBS="-lmbedtls -lmbedx509 -lmbedcrypto $LIBS" 1175 old_CFLAGS_nospecial="-Imbedtls/include $old_CFLAGS_nospecial" 1176 1177 FEATURE_HTTPS_INSPECTION_ONLY= 1178 FEATURE_HTTPS_INSPECTION_ONLY_MBEDTLS= 1179 fi 1180fi 1181AC_SUBST(FEATURE_HTTPS_INSPECTION_ONLY_MBEDTLS) 1182 1183dnl ================================================================= 1184dnl check for OpenSSL/LibreSSL which can be used for https inspection 1185dnl ================================================================= 1186FEATURE_HTTPS_INSPECTION_ONLY_OPENSSL=# 1187OPT_OPENSSL=no 1188AC_ARG_WITH(openssl,dnl 1189AC_HELP_STRING([--with-openssl], [Enable OpenSSL/LibreSSL detection for https inspection.]) 1190AC_HELP_STRING([--without-openssl], [Disable OpenSSL/LibreSSL detection]), 1191 OPT_OPENSSL=$withval) 1192 1193if test X"$OPT_OPENSSL" != Xno; then 1194 if test X"$OPT_MBEDTLS" != Xno; then 1195 AC_MSG_ERROR([OpenSSL and mbedTLS support can't be enabled at the same time]) 1196 fi 1197 1198 if test "$PORTNAME" != "win32"; then 1199 AC_CHECK_LIB(crypto, CRYPTO_new_ex_data, [], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])]) 1200 FOUND_SSL_LIB="no" 1201 AC_CHECK_LIB(ssl, OPENSSL_init_ssl, [FOUND_SSL_LIB="yes"]) 1202 AC_CHECK_LIB(ssl, SSL_library_init, [FOUND_SSL_LIB="yes"]) 1203 AS_IF([test "x$FOUND_SSL_LIB" = xno], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])]) 1204 else 1205 AC_SEARCH_LIBS(CRYPTO_new_ex_data, eay32 crypto, [], [AC_MSG_ERROR([library 'eay32' or 'crypto' is required for OpenSSL])]) 1206 FOUND_SSL_LIB="no" 1207 AC_SEARCH_LIBS(OPENSSL_init_ssl, ssleay32 ssl, [FOUND_SSL_LIB="yes"]) 1208 AC_SEARCH_LIBS(SSL_library_init, ssleay32 ssl, [FOUND_SSL_LIB="yes"]) 1209 AS_IF([test "x$FOUND_SSL_LIB" = xno], [AC_MSG_ERROR([library 'ssleay32' or 'ssl' is required for OpenSSL])]) 1210 fi 1211 1212 if test "x$FOUND_SSL_LIB" = xyes; then 1213 AC_DEFINE(FEATURE_HTTPS_INSPECTION, 1, [if SSL/TLS is enabled]) 1214 AC_DEFINE(FEATURE_HTTPS_INSPECTION_OPENSSL, 1, [if OpenSSL is enabled]) 1215 AC_SUBST(FEATURE_HTTPS_INSPECTION_OPENSSL, [1]) 1216 FEATURE_HTTPS_INSPECTION="yes" 1217 FEATURE_HTTPS_INSPECTION_OPENSSL="yes" 1218 fi 1219 1220 if test "x$FEATURE_HTTPS_INSPECTION_OPENSSL" = "xyes"; then 1221 AC_MSG_NOTICE([Detected OpenSSL. Enabling https inspection.]) 1222 AC_MSG_WARN([If you intend to redistribute Privoxy, please make sure the "special exception" from section 3 of the GPLv2 applies.]) 1223 1224 LIBS="$LIBS -lssl -lcrypto" 1225 old_CFLAGS_nospecial="$old_CFLAGS_nospecial" 1226 1227 FEATURE_HTTPS_INSPECTION_ONLY= 1228 FEATURE_HTTPS_INSPECTION_ONLY_OPENSSL= 1229 fi 1230fi 1231AC_SUBST(FEATURE_HTTPS_INSPECTION_ONLY_OPENSSL) 1232 1233AC_SUBST(FEATURE_HTTPS_INSPECTION_ONLY) 1234 1235dnl ======================================================== 1236dnl Check for Brotli which can be used for decompression 1237dnl ======================================================== 1238WITH_BROTLI=no 1239AC_ARG_WITH(brotli, 1240AC_HELP_STRING([--with-brotli], [Enable Brotli detection]) 1241AC_HELP_STRING([--without-brotli], [Disable Brotli detection]), 1242 WITH_BROTLI=$withval) 1243 1244if test X"$WITH_BROTLI" != Xno; then 1245 1246 LIBS="$LIBS -lbrotlidec" 1247 if test $target_type = mingw; then 1248 # XXX: why does just the mingw build need this??? 1249 LIBS="$LIBS -lbrotlicommon -lbrotlienc" 1250 fi 1251 1252 AC_CHECK_LIB(brotlidec, BrotliDecoderDecompress) 1253 1254 AC_CHECK_HEADERS(brotli/decode.h, 1255 FEATURE_BROTLI=1 1256 AC_DEFINE(FEATURE_BROTLI, 1, [If Brotli is used for decompression]) 1257 AC_SUBST(FEATURE_BROTLI, [1]) 1258 ) 1259fi 1260 1261 1262dnl ================================================================= 1263dnl Final cleanup and output 1264dnl ================================================================= 1265 1266dnl Remove the SPECIAL_CFLAGS stuff from CFLAGS, and add it separately 1267dnl in the Makefile 1268CFLAGS=$old_CFLAGS_nospecial 1269AC_SUBST(SPECIAL_CFLAGS) 1270 1271AC_SUBST(PTHREAD_LIB) 1272 1273AC_OUTPUT(GNUmakefile doc/source/ldp.dsl) 1274