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