Annotation of parser3/configure.in, revision 1.10
1.1 paf 1: dnl Process this file with autoconf to produce a configure script.
2: AC_INIT(README)
3: AM_INIT_AUTOMAKE(parser, 3.0b, nodefine)
4:
1.8 paf 5: dnl expand srcdir
6: P3S=`cd $srcdir ; pwd`
1.1 paf 7: AC_SUBST(P3S)
8:
9: PARSER_VERSION=$VERSION
1.8 paf 10: echo "/* automatically generated by configure */" > $srcdir/src/include/pa_version.h.new
11: echo "/* edit configure.in to change version number */" >> $srcdir/src/include/pa_version.h.new
12: echo "#define PARSER_VERSION \"$PARSER_VERSION\"" >> $srcdir/src/include/pa_version.h.new
13: cmp $srcdir/src/include/pa_version.h.new $srcdir/src/include/pa_version.h >/dev/null 2>&1
1.1 paf 14: if test $? -ne 0 ; then
1.8 paf 15: rm -f $srcdir/src/include/pa_version.h && mv $srcdir/src/include/pa_version.h.new $srcdir/src/include/pa_version.h && \
16: echo Updated $srcdir/src/include/pa_version.h
1.1 paf 17: else
1.8 paf 18: rm -f $srcdir/src/include/pa_version.h.new
1.1 paf 19: fi
20:
21: AC_PROG_INSTALL
22: AC_PROG_CC
23: AC_LANG_C AC_C_INLINE
24: AC_PROG_CXX
25: AC_LANG_CPLUSPLUS
26:
27:
28: dnl Arguments
29:
30: AC_ARG_ENABLE(string-origins, [ --disable-string-origins to switch off string origin tracking],
31: [
32: if test "$enableval" = "no"; then
33: AC_DEFINE(NO_STRING_ORIGIN,,no string origin tracking)
34: fi
35: ]
36: )
37:
1.9 paf 38: AC_ARG_WITH(apache13,[ --with-apache13=D D is the Apache13 source distribution directory
1.1 paf 39: builds library for apache_module using that dir
40: (do not add /src)],
41: APACHE13=$withval
42: if test \! -f "$APACHE13/src/include/httpd.h"; then
43: AC_MSG_ERROR($APACHE13 does not seem to be valid Apache13 source distribution directory)
44: fi
45: )
46: AC_SUBST(APACHE13)
47: AM_CONDITIONAL(COMPILE_APACHE13_MODULE, test -n "$APACHE13")
48:
49:
1.9 paf 50: AC_ARG_WITH(pathlink,[ --with-pathlink=LKEY put dynamic libraries paths to binary
1.1 paf 51: using linker key (-R, -rpath-link)],
52: LD_PATHLINK=$withval
53: )
54:
1.9 paf 55: AC_ARG_WITH(glib-config,[ --with-glib-config=FILE FILE is glib library
56: configuration file (search for glib*-config)],
57: GLIB_CONFIG=$withval
58: )
59:
60: AC_ARG_WITH(gnome-xml,[ --with-gnome-xml=D D is the directory where
1.1 paf 61: Gnome XML libraries are installed],[
62: GNOME_XML=$withval
63: XMLBIN_DIR="$GNOME_XML/bin"
64: XMLINC_DIR="$GNOME_XML/include"
65: XMLLIB_DIR="$GNOME_XML/lib"
66:
67: if test \! -d $XMLBIN_DIR -o \! -d $XMLINC_DIR -o \! -d $XMLLIB_DIR; then
68: AC_MSG_ERROR($GNOME_XML does not seem to be valid Gnome installation directory)
69: fi
70:
71: AC_DEFINE(XML,,xml-abled parser)
72:
73: LIBXML2_SO_NAME=`cd $XMLLIB_DIR ; ls libxml2.?? libxml2.??? 2>/dev/null | grep -v \.la$ | sed 's/lib//' | sed 's/\..*//'`
74: if test -z "$LIBXML2_SO_NAME"; then
75: AC_MSG_ERROR($LIBXML_DIR does not containt XML2 dynamic library)
76: fi
77: LIBGDOME_SO_NAME=`cd $XMLLIB_DIR ; ls libgdome.?? libgdome.??? 2>/dev/null | grep -v \.la$ | sed 's/lib//' | sed 's/\..*//'`
78: if test -z "$LIBGDOME_SO_NAME"; then
79: AC_MSG_ERROR($LIBXML_DIR does not containt GDOME dynamic library)
80: fi
81: LIBXSLT_SO_NAME=`cd $XMLLIB_DIR ; ls libxslt.?? libxslt.??? 2>/dev/null | grep -v \.la$ | sed 's/lib//' | sed 's/\..*//'`
82: if test -z "$LIBXSLT_SO_NAME"; then
83: AC_MSG_ERROR($LIBXML_DIR does not containt XSLT dynamic library)
84: fi
85: LIBEXSLT_SO_NAME=`cd $XMLLIB_DIR ; ls libexslt.?? libexslt.??? 2>/dev/null | grep -v \.la$ | sed 's/lib//' | sed 's/\..*//'`
86: if test -z "$LIBEXSLT_SO_NAME"; then
87: AC_MSG_ERROR($LIBXML_DIR does not containt EXSLT dynamic library)
88: fi
1.9 paf 89:
90: if test -z "$GLIB_CONFIG"; then
91: GLIB_CONFIG=$XMLBIN_DIR/glib-config
92: if test \! -x $GLIB_CONFIG; then
93: GLIB_CONFIG=glib-config
94: fi
1.1 paf 95: fi
96: GLIB_CFLAGS=`$GLIB_CONFIG --cflags`
97: GLIB_LIBS=`$GLIB_CONFIG --libs`
98:
99: XML_INCLUDES="$GLIB_CFLAGS -I$XMLINC_DIR -I$XMLINC_DIR/libgdome -I$XMLINC_DIR/libxml2"
1.9 paf 100: XML_LIBS="$GLIB_LIBS -L$XMLLIB_DIR -l$LIBXML2_SO_NAME -l$LIBGDOME_SO_NAME -l$LIBXSLT_SO_NAME -l$LIBEXSLT_SO_NAME"
1.1 paf 101: if test \! -z "$LD_PATHLINK"; then
102: XML_LIBS="$XML_LIBS -Wl,$LD_PATHLINK -Wl,$XMLLIB_DIR"
103: fi
104: ])
105: AC_SUBST(XML_INCLUDES)
106: AC_SUBST(XML_LIBS)
107:
108: AC_ARG_WITH(db2,[ --with-db2[=D] D is the DB2 installation directory
109: DO NOT FORGET TO COMPILE DB2 WITH EXCEPTIONS SUPPORT!],
110: DB2_INST=$withval
111: if test \! -f "$DB2_INST/include/db.h"; then
112: AC_MSG_ERROR($DB2_INST does not seem to be valid DB2 installation directory)
113: fi
114: if test \! -f "$DB2_INST/lib/libdb.a"; then
115: AC_MSG_ERROR($DB2_INST does not seem to be valid DB2 installation directory)
116: fi
117:
118: AC_MSG_CHECKING(version of LIBDB)
119: AC_TRY_COMPILE(
120: #include <$DB2_INST/include/db.h>
121: ,
122: #ifdef DB_VERSION_MAJOR
123: # if DB_VERSION_MAJOR!=2
124: # error Parser needs LIBDB of 2.x.x version to compile
125: # endif
126: #else
127: # error DB_VERSION_MAJOR not defined
128: #endif
129: ,[
130: AC_MSG_RESULT(ok)
131: DB2=1
132: AC_DEFINE(DB2,,DB2-abled parser)
133: DB2_INCLUDES="-I$DB2_INST/include"
134: DB2_LIBS="-L$DB2_INST/lib -ldb"
135: ],
136: AC_MSG_ERROR(bad, we need 2.x.x version)
137: )
138: )
139: AC_SUBST(DB2_INCLUDES)
140: AC_SUBST(DB2_LIBS)
141:
142: dnl AC_CANONICAL_SYSTEM
143: AC_CANONICAL_HOST
144: AC_SUBST(host_os)
145:
146: dnl Checks for programs.
147: AC_PROG_INSTALL
148: AC_PROG_MAKE_SET
149: AC_PROG_RANLIB
150: AC_PROG_AWK
151:
152: AC_PROG_YACC
153: if test "$YACC" != "bison -y"; then
154: AC_MSG_WARN(to regenerate Parser grammar YOU WOULD NEED BISON)
155: else
156: AC_MSG_CHECKING(bison version)
157: oldIFS=$IFS; IFS=.
158: set `bison -V | sed -e 's/^GNU Bison version //'`
159: IFS=$oldIFS
160: if test "$1" = "1" -a "$2" -lt "25"; then
161: AC_MSG_WARN(Bison 1.25 or newer needed to regenerate Parser compiler (found $1.$2).)
162: fi
163: AC_MSG_RESULT($1.$2 (ok))
164: fi
165:
166: dnl Enable building of the convenience library
167: dnl and set LIBLTDL accordingly
168: AC_LIBLTDL_CONVENIENCE(src/libltdl)
169: dnl Substitute INCLTDL and LIBLTDL in the Makefiles
170: AC_SUBST(INCLTDL)
171: AC_SUBST(LIBLTDL)
172:
173: dnl Configure libltdl
174: AC_CONFIG_SUBDIRS(src/libltdl)
1.10 ! paf 175: dnl moved from src/libltdl/configure.in
! 176: LIBADD_DL=
! 177: AC_CHECK_LIB(dl, dlopen, [AC_DEFINE(HAVE_LIBDL, 1) LIBADD_DL="-ldl"],
! 178: [AC_CHECK_FUNC(dlopen, [AC_DEFINE(HAVE_LIBDL, 1)])])
! 179: AC_CHECK_FUNC(shl_load, [AC_DEFINE(HAVE_SHL_LOAD, 1)],
! 180: [AC_CHECK_LIB(dld, shl_load, [AC_DEFINE(HAVE_SHL_LOAD, 1) LIBADD_DL="$LIBADD_DL -ldld"])])
! 181: AC_CHECK_LIB(dld, dld_link, [AC_DEFINE(HAVE_DLD, 1)dnl
! 182: test "x$ac_cv_lib_dld_shl_load" = yes || LIBADD_DL="$LIBADD_DL -ldld"])
! 183: AC_SUBST(LIBADD_DL)
! 184:
! 185: if test "x$ac_cv_func_dlopen" = xyes || test "x$ac_cv_lib_dl_dlopen" = xyes; then
! 186: LIBS_SAVE="$LIBS"
! 187: LIBS="$LIBS $LIBADD_DL"
! 188: AC_CHECK_FUNCS(dlerror)
! 189: LIBS="$LIBS_SAVE"
! 190: fi
1.1 paf 191:
192: dnl Checks for typedefs, structures, and compiler characteristics.
193:
194: AC_TYPE_SIZE_T
195:
196: dnl Checks for header files.
197:
1.10 ! paf 198: AC_HEADER_TIME
! 199:
1.1 paf 200: AC_CHECK_HEADERS(
201: unistd.h \
202: process.h \
203: stddef.h \
204: stdarg.h \
205: fcntl.h \
206: sys/stat.h \
207: io.h \
208: stdio.h \
209: errno.h \
210: ctype.h \
211: math.h \
1.3 paf 212: time.h sys/time.h \
1.1 paf 213: stdlib.h \
214: string.h \
215: direct.h \
216: setjmp.h \
217: memory.h \
218: new \
219: sys/file.h \
220: sys/locking.h \
1.3 paf 221: sys/types.h \
1.5 paf 222: sys/select.h \
223: sys/resource.h
1.1 paf 224: )
225:
226: dnl Checks for libraries.
227:
228: dnl Some systems (Solaris 2.x) require libnsl (Network Services Library)
229: case "$host" in
230: *-sunos5.6* | *-solaris2.6*)
231: AC_CHECK_LIB(xnet, main)
232: ;;
233: *-sunos5* | *-solaris2*)
234: AC_CHECK_LIB(socket, main)
235: AC_CHECK_LIB(nsl, main)
236: ;;
237: *-nec-sysv4*)
238: AC_CHECK_LIB(nsl, gethostbyname)
239: AC_CHECK_LIB(socket, socket)
240: ;;
241: *-cygwin*)
242: AC_DEFINE(WIN32,,Windows32 target platform)
243: AC_CHECK_LIB(wsock32, socket)
244: ;;
245: esac
246:
247: AC_CHECK_LIB(m, sin)
248:
249: dnl Checks for functions.
250:
251: AC_CHECK_FUNCS(
252: trunc \
253: round \
254: sign \
255: flock \
256: _locking \
1.7 paf 257: fcntl \
1.4 paf 258: lockf \
259: getrusage
1.1 paf 260: )
1.3 paf 261:
262: dnl We require qsort(3) and select(2).
263:
264: AC_CHECK_FUNCS(qsort, , AC_MSG_ERROR([No qsort library function.]))
265: AC_CHECK_FUNCS(select, , AC_MSG_ERROR([No select library function.]))
1.1 paf 266:
267: AC_MSG_CHECKING(whether compiler supports pragma pack)
268: AC_TRY_COMPILE(
269: ,
270: #pragma pack(1)
271: struct must_be_1_byte {
272: char c;
273: };
274: #pragma pack()
275: if(sizeof(must_be_1_byte)!=1)
276: return 1;
277: ,[
278: AC_MSG_RESULT(yes)
279: AC_DEFINE(HAVE_PRAGMA_PACK,,compiler supports pragma pack)
280: ],
281: AC_MSG_RESULT(no)
282: )
283:
284: AC_MSG_CHECKING(for set_new_handler)
285: AC_TRY_COMPILE(
286: #ifdef HAVE_NEW
287: #include <new>
288: #endif
289: void failed_new() {}
290: ,
291: std::set_new_handler(failed_new);
292: ,[
293: AC_MSG_RESULT(yes)
294: AC_DEFINE(HAVE_SET_NEW_HANDLER,,library has set_new_handler func)
295: ],
296: AC_MSG_RESULT(no)
297: )
298:
299:
300: dnl AC_ARG_ENABLE(db, [ --enable-db to enable 'hashfile' parser class],
301: dnl [
302: dnl if test "$enableval" != "no"; then
303: dnl AC_CHECK_HEADERS(db.h)
304: dnl AC_CHECK_LIB(db, __db_open)
305: dnl fi
306: dnl ]
307: dnl )
308:
309: dnl Apache libs
1.10 ! paf 310: APACHE_LIBS="$LIBS $LIBADD_DL"
1.9 paf 311: dnl append stdc++ to libs list commented
312: dnl 1. because binary seem to work without it
313: dnl purpose of this: remove strange name dependance
314: dnl for linker creates reference not for libstc++.xx but
315: dnl for something specific to local system,
316: dnl thus reducing binary compatibility
317: dnl 2. for same reason linker of targets/cgi/parser3 changed to
318: dnl "C" compiler from "C++" compiler
319: dnl AC_CHECK_LIB(stdc++, __builtin_new,
320: dnl APACHE_LIBS="$APACHE_LIBS -lstdc++"
321: dnl )
1.1 paf 322: AC_SUBST(APACHE_LIBS)
323:
324:
325: dnl install directories
326:
327: # expand apostrophed
1.6 paf 328: e_prefix=$prefix
329: test "x$e_prefix" = xNONE && e_prefix=$ac_default_prefix
330:
1.1 paf 331: e_sysconfdir=$sysconfdir
1.6 paf 332: test "$e_sysconfdir" = "\${prefix}/etc" && e_sysconfdir="${e_prefix}/etc"
1.1 paf 333:
334: dnl this is used in targets/cgi/parser3.C to load root config
335:
1.2 paf 336: rootconfigdir=$e_sysconfdir
337: AC_SUBST(rootconfigdir)
1.1 paf 338:
339: dnl these are used to fill in etc/parser3.conf
340:
341: charsetsdir=$e_sysconfdir/parser3.charsets
342: AC_SUBST(charsetsdir)
343:
344: # expand apostrophed
345: e_libdir=$libdir
346: if test "$e_libdir" = "\${exec_prefix}/lib"; then
347:
348: # Let make expand exec_prefix.
349: e_exec_prefix=$exec_prefix
350: test "x$e_exec_prefix" = xNONE && e_exec_prefix=$prefix
351:
352: # expand apostrophed
353: test "$e_libdir" = "\${exec_prefix}/lib" && e_libdir="${e_exec_prefix}/lib"
354: fi
355:
356: sqldriversdir=$e_libdir
357: AC_SUBST(sqldriversdir)
358:
359:
360: dnl Output makefiles
361:
362: AM_CONFIG_HEADER(src/include/pa_config_auto.h)
1.8 paf 363: AC_OUTPUT(Makefile src/Makefile src/libltdl/Makefile src/types/Makefile src/classes/Makefile src/classes/gd/Makefile src/classes/smtp/Makefile src/include/Makefile src/main/Makefile src/sql/Makefile src/patches/Makefile src/pcre/Makefile src/targets/Makefile src/targets/cgi/pa_config_paths.h src/targets/cgi/Makefile src/targets/apache13/Makefile src/targets/apache13/p3runConfigure src/targets/isapi/Makefile etc/parser3.charsets/Makefile etc/parser3.conf etc/Makefile)
1.10 ! paf 364:
! 365:
! 366:
E-mail: