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