Annotation of embedaddon/php/configure.in, revision 1.1.1.1
1.1 misho 1: ## $Id: configure.in 323027 2012-02-02 17:29:58Z johannes $ -*- autoconf -*-
2: dnl ## Process this file with autoconf to produce a configure script.
3:
4: divert(6006001)
5:
6: dnl ## Diversion 1 is the autoconf + automake setup phase. We also
7: dnl ## set the PHP version, deal with platform-specific compile
8: dnl ## options and check for the basic compile tools.
9:
10: dnl ## Diversion 2 is the initial checking of OS features, programs,
11: dnl ## libraries and so on.
12:
13: dnl ## In diversion 3 we check for compile-time options to the PHP
14: dnl ## core and how to deal with different system dependencies.
15: dnl ## This includes whether debugging or short tags are enabled
16: dnl ## and the default behaviour of php.ini options.
17: dnl ## This is also where an SAPI interface is selected (choosing between
18: dnl ## Apache module, CGI etc.)
19:
20: dnl ## In diversion 4 we check user-configurable general settings.
21:
22: dnl ## In diversion 5 we check which extensions should be compiled.
23: dnl ## All of these are normally in the extension directories.
24: dnl ## Diversion 5 is the last one. Here we generate files and clean up.
25:
26: dnl include Zend specific macro definitions first
27: dnl -------------------------------------------------------------------------
28: sinclude(Zend/acinclude.m4)
29:
30: dnl Basic autoconf + automake initialization, generation of config.nice.
31: dnl -------------------------------------------------------------------------
32:
33: AC_PREREQ(2.13)
34: AC_INIT(README.SVN-RULES)
35:
36: PHP_CONFIG_NICE(config.nice)
37:
38: PHP_CANONICAL_HOST_TARGET
39:
40: AC_CONFIG_HEADER(main/php_config.h)
41:
42: PHP_MAJOR_VERSION=5
43: PHP_MINOR_VERSION=3
44: PHP_RELEASE_VERSION=10
45: PHP_EXTRA_VERSION=""
46: PHP_VERSION="$PHP_MAJOR_VERSION.$PHP_MINOR_VERSION.$PHP_RELEASE_VERSION$PHP_EXTRA_VERSION"
47: PHP_VERSION_ID=`expr [$]PHP_MAJOR_VERSION \* 10000 + [$]PHP_MINOR_VERSION \* 100 + [$]PHP_RELEASE_VERSION`
48:
49: dnl Allow version values to be used in Makefile
50: PHP_SUBST(PHP_MAJOR_VERSION)
51: PHP_SUBST(PHP_MINOR_VERSION)
52: PHP_SUBST(PHP_RELEASE_VERSION)
53: PHP_SUBST(PHP_EXTRA_VERSION)
54:
55: dnl Define where extension directories are located in the configure context
56: AC_DEFUN([PHP_EXT_BUILDDIR],[ext/$1])dnl
57: AC_DEFUN([PHP_EXT_DIR],[ext/$1])dnl
58: AC_DEFUN([PHP_EXT_SRCDIR],[$abs_srcdir/ext/$1])dnl
59: AC_DEFUN([PHP_ALWAYS_SHARED],[])dnl
60:
61: dnl Setting up the PHP version based on the information above.
62: dnl -------------------------------------------------------------------------
63:
64: echo "/* automatically generated by configure */" > php_version.h.new
65: echo "/* edit configure.in to change version number */" >> php_version.h.new
66: echo "#define PHP_MAJOR_VERSION $PHP_MAJOR_VERSION" >> php_version.h.new
67: echo "#define PHP_MINOR_VERSION $PHP_MINOR_VERSION" >> php_version.h.new
68: echo "#define PHP_RELEASE_VERSION $PHP_RELEASE_VERSION" >> php_version.h.new
69: echo "#define PHP_EXTRA_VERSION \"$PHP_EXTRA_VERSION\"" >> php_version.h.new
70: echo "#define PHP_VERSION \"$PHP_VERSION\"" >> php_version.h.new
71: echo "#define PHP_VERSION_ID $PHP_VERSION_ID" >> php_version.h.new
72: cmp php_version.h.new $srcdir/main/php_version.h >/dev/null 2>&1
73: if test $? -ne 0 ; then
74: rm -f $srcdir/main/php_version.h && mv php_version.h.new $srcdir/main/php_version.h && \
75: echo 'Updated main/php_version.h'
76: else
77: rm -f php_version.h.new
78: fi
79:
80:
81: dnl Catch common errors here to save a few seconds of our users' time
82: dnl -------------------------------------------------------------------------
83:
84: if test "$with_shared_apache" != "no" && test -n "$with_shared_apache" ; then
85: AC_MSG_ERROR([--with-shared-apache is not supported. Please refer to the documentation for using APXS])
86: fi
87:
88: if test -n "$with_apache" && test -n "$with_apxs"; then
89: AC_MSG_ERROR([--with-apache and --with-apxs cannot be used together])
90: fi
91:
92: if test -n "$with_apxs2filter" && test -n "$with_apxs2"; then
93: AC_MSG_ERROR([--with-apxs2filter and --with-apxs2 cannot be used together])
94: fi
95:
96:
97: dnl Settings we want to make before the checks.
98: dnl -------------------------------------------------------------------------
99:
100: cwd=`pwd`
101:
102: php_shtool=$srcdir/build/shtool
103: T_MD=`$php_shtool echo -n -e %B`
104: T_ME=`$php_shtool echo -n -e %b`
105:
106: PHP_INIT_BUILD_SYSTEM
107:
108: dnl We want this one before the checks, so the checks can modify CFLAGS.
109: test -z "$CFLAGS" && auto_cflags=1
110:
111: abs_srcdir=`(cd $srcdir; pwd)`
112: abs_builddir=`pwd`
113:
114: php_abs_top_srcdir=$abs_srcdir
115: php_abs_top_builddir=$abs_builddir
116:
117: dnl Because ``make install'' is often performed by the superuser,
118: dnl we create the libs subdirectory as the user who configures PHP.
119: dnl Otherwise, the current user will not be able to delete libs
120: dnl or the contents of libs.
121:
122: $php_shtool mkdir -p libs
123: rm -f libs/*
124:
125: dnl Checks for programs.
126: dnl -------------------------------------------------------------------------
127:
128: AC_PROG_CC([cc gcc])
129: PHP_DETECT_ICC
130: PHP_DETECT_SUNCC
131: AC_PROG_CC_C_O
132: dnl Change to AC_PROG_CC_STDC when we start requiring a post-2.13 autoconf
133: dnl AC_PROG_CC_STDC
134: AC_PROG_CPP
135: AC_AIX
136: AC_PROG_LN_S
137:
138: dnl Support systems with system libraries in e.g. /usr/lib64
139: PHP_ARG_WITH(libdir, for system library directory,
140: [ --with-libdir=NAME Look for libraries in .../NAME rather than .../lib],lib,no)
141:
142: PHP_ARG_ENABLE(rpath, whether to enable runpaths,
143: [ --disable-rpath Disable passing additional runtime library
144: search paths], yes, no)
145:
146: dnl check for -R, etc. switch
147: PHP_RUNPATH_SWITCH
148:
149: dnl Checks for some support/generator progs
150: PHP_PROG_AWK
151: PHP_PROG_BISON
152: PHP_PROG_RE2C
153:
154: dnl Check if bison generated files exist when bison does not..
155: case $php_cv_bison_version in
156: ""|invalid[)]
157: if ! test -f "$abs_srcdir/Zend/zend_language_parser.h" || ! test -f "$abs_srcdir/Zend/zend_language_parser.c" ; then
158: AC_MSG_ERROR([bison is required to build PHP/Zend when building a SVN checkout!])
159: fi
160: ;;
161: esac
162:
163: PHP_ARG_ENABLE(re2c-cgoto, whether to enable computed goto gcc extension with re2c,
164: [ --enable-re2c-cgoto Enable -g flag to re2c to use computed goto gcc extension], no, no)
165:
166: if test "$PHP_RE2C_CGOTO" = "no"; then
167: RE2C_FLAGS=""
168: else
169: AC_MSG_CHECKING([whether re2c -g works])
170: AC_TRY_COMPILE([],[
171: int main(int argc, const char **argv)
172: {
173: argc = argc;
174: argv = argv;
175: label1:
176: label2:
177: static void *adr[] = { &&label1, &&label2};
178: goto *adr[0];
179: return 0;
180: }
181: ],[
182: RE2C_FLAGS=""
183: AC_MSG_RESULT([no])
184: ],[
185: RE2C_FLAGS="-g"
186: AC_MSG_RESULT([yes])
187: ])
188: fi
189: PHP_SUBST(RE2C_FLAGS)
190:
191: dnl Platform-specific compile settings.
192: dnl -------------------------------------------------------------------------
193:
194: dnl See bug #28605
195: case $host_cpu in
196: alpha*)
197: if test "$GCC" = "yes"; then
198: CFLAGS="$CFLAGS -mieee"
199: else
200: CFLAGS="$CFLAGS -ieee"
201: fi
202: ;;
203: sparc*)
204: if test "$SUNCC" = "yes"; then
205: CFLAGS="$CFLAGS -xmemalign=8s"
206: fi
207: ;;
208: esac
209:
210: dnl activate some gcc specific optimizations for gcc >= 4
211: if test "$GCC" = "yes"; then
212: case $host_alias in
213: *darwin*)
214: GCC_MAJOR_VERSION=`$CC -dumpversion | /usr/bin/sed -nE '1s/([[0-9]]+)\.[[0-9]]+\..*/\1/;1p'`
215: ;;
216: *)
217: GCC_MAJOR_VERSION=`$CC --version | $SED -n '1s/[[^0-9]]*//;1s/\..*//;1p'`
218: ;;
219: esac
220: if test $GCC_MAJOR_VERSION -ge 4; then
221: CFLAGS="$CFLAGS -fvisibility=hidden"
222: fi
223: fi
224:
225: case $host_alias in
226: *solaris*)
227: CPPFLAGS="$CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS"
228: if test "${enable_libgcc+set}" != "set" && test "$GCC" = "yes"; then
229: enable_libgcc=yes
230: fi
231: ;;
232: *dgux*)
233: CPPFLAGS="$CPPFLAGS -D_BSD_TIMEOFDAY_FLAVOR"
234: ;;
235: *darwin*|*rhapsody*)
236: if test -n "$GCC"; then
237: PHP_CHECK_GCC_ARG(-no-cpp-precomp, gcc_no_cpp_precomp=yes)
238: if test "$gcc_no_cpp_precomp" = "yes"; then
239: CPPFLAGS="$CPPFLAGS -no-cpp-precomp"
240: fi
241: fi
242: php_multiple_shlib_versions_ok=yes
243: ;;
244: *beos*)
245: beos_threads=1
246: LIBS="$LIBS -lbe -lroot"
247: ;;
248: *mips*)
249: CPPFLAGS="$CPPFLAGS -D_XPG_IV"
250: ;;
251: *hpux*)
252: if test "$GCC" = "yes"; then
253: CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
254: fi
255: ;;
256: *netware*)
257: PHP_BUILD_PROGRAM
258: PHP_ADD_SOURCES(/main, internal_functions.c,,PHP_GLOBAL_OBJS)
259: PHP_ADD_SOURCES(win32, sendmail.c, -I$CFLAGS, PHP_GLOBAL_OBJS)
260: PHP5LIB_SHARED_LIBADD=\$\(EXTRA_LIBS\)
261: EXTENSION_DIR=sys:/php$PHP_MAJOR_VERSION/ext
262: PHP_SUBST(PHP5LIB_SHARED_LIBADD)
263: PHP_SHARED_MODULE(php5lib, PHP_GLOBAL_OBJS, netware)
264: ;;
265: esac
266:
267: # Disable PIC mode by default where it is known to be safe to do so,
268: # to avoid the performance hit from the lost register
269: AC_MSG_CHECKING([whether to force non-PIC code in shared modules])
270: case $host_alias in
271: i?86-*-linux*|i?86-*-freebsd*)
272: if test "${with_pic+set}" != "set" || test "$with_pic" = "no"; then
273: with_pic=no
274: AC_MSG_RESULT(yes)
275: else
276: AC_MSG_RESULT(no)
277: fi
278: ;;
279: *)
280: AC_MSG_RESULT(no)
281: ;;
282: esac
283:
284:
285: dnl Include Zend and TSRM configurations.
286: dnl -------------------------------------------------------------------------
287:
288: sinclude(Zend/Zend.m4)
289: sinclude(TSRM/threads.m4)
290: sinclude(TSRM/tsrm.m4)
291:
292: sinclude(main/suhosin_patch.m4)
293:
294: divert(6006002)
295:
296: dnl ## Diversion 2 is where we set PHP-specific options and come up
297: dnl ## with reasonable default values for them. We check for pthreads here
298: dnl ## because the information is needed by the SAPI configuration.
299: dnl ## This is also where an SAPI interface is selected (choosing between
300: dnl ## Apache module, CGI etc.)
301:
302: dnl .
303: dnl -------------------------------------------------------------------------
304:
305: PHP_HELP_SEPARATOR([SAPI modules:])
306: PHP_SHLIB_SUFFIX_NAMES
307: PHP_SAPI=default
308: PHP_BUILD_PROGRAM
309:
310:
311: dnl SAPI configuration.
312: dnl -------------------------------------------------------------------------
313:
314: dnl paths to the targets are relative to the build directory
315: SAPI_SHARED=libs/libphp[]$PHP_MAJOR_VERSION[.]$SHLIB_DL_SUFFIX_NAME
316: SAPI_STATIC=libs/libphp[]$PHP_MAJOR_VERSION[.a]
317: SAPI_LIBTOOL=libphp[]$PHP_MAJOR_VERSION[.la]
318:
319: PHP_CONFIGURE_PART(Configuring SAPI modules)
320:
321: esyscmd(./build/config-stubs sapi)
322:
323: dnl Show which main SAPI was selected
324: AC_MSG_CHECKING([for chosen SAPI module])
325: AC_MSG_RESULT([$PHP_SAPI])
326:
327: if test "$enable_maintainer_zts" = "yes"; then
328: PTHREADS_ASSIGN_VARS
329: fi
330:
331: divert(6006003)
332:
333: dnl ## In diversion 3 we check for compile-time options to the PHP
334: dnl ## core and how to deal with different system dependencies.
335: dnl ## This includes whether debugging or short tags are enabled
336: dnl ## and the default behaviour of php.ini options.
337:
338: dnl Starting system checks.
339: dnl -------------------------------------------------------------------------
340:
341: PHP_CONFIGURE_PART(Running system checks)
342:
343: dnl Find sendmail binary
344: PHP_PROG_SENDMAIL
345:
346: dnl Check whether the system uses EBCDIC (not ASCII) as its native codeset
347: PHP_EBCDIC
348:
349: dnl Check whether the system byte ordering is bigendian
350: PHP_C_BIGENDIAN
351:
352: dnl Check whether writing to stdout works
353: PHP_TEST_WRITE_STDOUT
354:
355: dnl Check for /usr/pkg/{lib,include} which is where NetBSD puts binary
356: dnl and source packages. This should be harmless on other OSs.
357: if test -d /usr/pkg/include -a -d /usr/pkg/lib ; then
358: CPPFLAGS="$CPPFLAGS -I/usr/pkg/include"
359: LDFLAGS="$LDFLAGS -L/usr/pkg/lib"
360: fi
361: test -d /usr/ucblib && PHP_ADD_LIBPATH(/usr/ucblib)
362:
363:
364: dnl First, library checks.
365: dnl -------------------------------------------------------------------------
366:
367: dnl Some systems (OpenServer 5) dislike -lsocket -lnsl, so we try
368: dnl to avoid -lnsl checks, if we already have the functions which
369: dnl are usually in libnsl
370: dnl Also, uClibc will bark at linking with glibc's libnsl.
371:
372: PHP_CHECK_FUNC(socket, socket)
373: PHP_CHECK_FUNC(socketpair, socket)
374: PHP_CHECK_FUNC(htonl, socket)
375: PHP_CHECK_FUNC(gethostname, nsl)
376: PHP_CHECK_FUNC(gethostbyaddr, nsl)
377: PHP_CHECK_FUNC(yp_get_default_domain, nsl)
378:
379: PHP_CHECK_FUNC(dlopen, dl)
380: if test "$ac_cv_func_dlopen" = "yes"; then
381: AC_DEFINE(HAVE_LIBDL, 1, [ ])
382: fi
383: AC_CHECK_LIB(m, sin)
384:
385: dnl Check for inet_aton
386: dnl in -lc, -lbind and -lresolv
387: PHP_CHECK_FUNC(inet_aton, resolv, bind)
388:
389: dnl Then headers.
390: dnl -------------------------------------------------------------------------
391:
392: dnl Checks for header files.
393: AC_HEADER_STDC
394: AC_HEADER_DIRENT
395:
396: dnl QNX requires unix.h to allow functions in libunix to work properly
397: AC_CHECK_HEADERS([ \
398: inttypes.h \
399: stdint.h \
400: dirent.h \
401: ApplicationServices/ApplicationServices.h \
402: sys/param.h \
403: sys/types.h \
404: sys/time.h \
405: netinet/in.h \
406: alloca.h \
407: arpa/inet.h \
408: arpa/nameser.h \
409: assert.h \
410: crypt.h \
411: dns.h \
412: fcntl.h \
413: grp.h \
414: ieeefp.h \
415: langinfo.h \
416: limits.h \
417: locale.h \
418: monetary.h \
419: netdb.h \
420: pwd.h \
421: resolv.h \
422: signal.h \
423: stdarg.h \
424: stdlib.h \
425: string.h \
426: syslog.h \
427: sysexits.h \
428: sys/ioctl.h \
429: sys/file.h \
430: sys/mman.h \
431: sys/mount.h \
432: sys/poll.h \
433: sys/resource.h \
434: sys/select.h \
435: sys/socket.h \
436: sys/stat.h \
437: sys/statfs.h \
438: sys/statvfs.h \
439: sys/vfs.h \
440: sys/sysexits.h \
441: sys/varargs.h \
442: sys/wait.h \
443: sys/loadavg.h \
444: termios.h \
445: unistd.h \
446: unix.h \
447: utime.h \
448: sys/utsname.h \
449: sys/ipc.h \
450: dlfcn.h \
451: assert.h
452: ],[],[],[
453: #ifdef HAVE_SYS_PARAM_H
454: #include <sys/param.h>
455: #endif
456: #ifdef HAVE_SYS_TYPES_H
457: #include <sys/types.h>
458: #endif
459: #ifdef HAVE_SYS_TIME_H
460: #include <sys/time.h>
461: #endif
462: #ifdef HAVE_NETINET_IN_H
463: #include <netinet/in.h>
464: #endif
465: #ifdef HAVE_ARPA_NAMESER_H
466: #include <arpa/nameser.h>
467: #endif
468: ])
469:
470: PHP_FOPENCOOKIE
471: PHP_BROKEN_GETCWD
472: PHP_BROKEN_GLIBC_FOPEN_APPEND
473:
474: dnl Checks for typedefs, structures, and compiler characteristics.
475: dnl -------------------------------------------------------------------------
476:
477: AC_STRUCT_TM
478: AC_STRUCT_TIMEZONE
479:
480: PHP_MISSING_TIME_R_DECL
481: PHP_MISSING_FCLOSE_DECL
482:
483: PHP_TM_GMTOFF
484: PHP_STRUCT_FLOCK
485: PHP_SOCKLEN_T
486:
487: AC_CHECK_SIZEOF(size_t, 8)
488: AC_CHECK_SIZEOF(long long, 8)
489: AC_CHECK_SIZEOF(long long int, 8)
490: AC_CHECK_SIZEOF(long, 8)
491: AC_CHECK_SIZEOF(int, 4)
492:
493: dnl These are defined elsewhere than stdio.h
494: PHP_CHECK_SIZEOF(intmax_t, 0)
495: PHP_CHECK_SIZEOF(ssize_t, 8)
496: PHP_CHECK_SIZEOF(ptrdiff_t, 8)
497:
498: dnl Check for members of the stat structure
499: AC_STRUCT_ST_BLKSIZE
500: dnl AC_STRUCT_ST_BLOCKS will screw QNX because fileblocks.o does not exists
501: dnl The WARNING_LEVEL required because cc in QNX hates -w option without an argument
502: if test "`uname -s 2>/dev/null`" != "QNX"; then
503: AC_STRUCT_ST_BLOCKS
504: else
505: AC_MSG_WARN([warnings level for cc set to 0])
506: WARNING_LEVEL=0
507: fi
508: AC_STRUCT_ST_RDEV
509:
510: dnl Checks for types
511: AC_TYPE_SIZE_T
512: AC_TYPE_UID_T
513:
514: dnl Checks for sockaddr_storage and sockaddr.sa_len
515: PHP_SOCKADDR_CHECKS
516:
517: dnl Check for IPv6 support
518: AC_CACHE_CHECK([for IPv6 support], ac_cv_ipv6_support,
519: [AC_TRY_LINK([ #include <sys/types.h>
520: #include <sys/socket.h>
521: #include <netinet/in.h>], [struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0;],
522: [ac_cv_ipv6_support=yes], [ac_cv_ipv6_support=no])])
523:
524: dnl Checks for library functions.
525: dnl -------------------------------------------------------------------------
526:
527: AC_FUNC_VPRINTF
528: AC_CHECK_FUNCS(
529: alphasort \
530: asctime_r \
531: chroot \
532: ctime_r \
533: cuserid \
534: crypt \
535: flock \
536: ftok \
537: funopen \
538: gai_strerror \
539: gcvt \
540: getloadavg \
541: getlogin \
542: getprotobyname \
543: getprotobynumber \
544: getservbyname \
545: getservbyport \
546: gethostname \
547: getrusage \
548: gettimeofday \
549: gmtime_r \
550: getpwnam_r \
551: getgrnam_r \
552: getpwuid_r \
553: grantpt \
554: inet_ntoa \
555: inet_ntop \
556: inet_pton \
557: isascii \
558: link \
559: localtime_r \
560: lockf \
561: lchown \
562: lrand48 \
563: memcpy \
564: memmove \
565: mkstemp \
566: mmap \
567: nl_langinfo \
568: perror \
569: poll \
570: ptsname \
571: putenv \
572: realpath \
573: random \
574: rand_r \
575: scandir \
576: setitimer \
577: setlocale \
578: localeconv \
579: setenv \
580: setpgid \
581: setsockopt \
582: setvbuf \
583: shutdown \
584: sin \
585: snprintf \
586: srand48 \
587: srandom \
588: statfs \
589: statvfs \
590: std_syslog \
591: strcasecmp \
592: strcoll \
593: strdup \
594: strerror \
595: strftime \
596: strnlen \
597: strptime \
598: strstr \
599: strtok_r \
600: symlink \
601: tempnam \
602: tzset \
603: unlockpt \
604: unsetenv \
605: usleep \
606: utime \
607: vsnprintf \
608: vasprintf \
609: asprintf \
610: nanosleep \
611: )
612:
613: dnl Some systems (like OpenSolaris) do not have nanosleep in libc
614: PHP_CHECK_FUNC(nanosleep, rt)
615:
616: dnl Check for getaddrinfo, should be a better way, but...
617: dnl Also check for working getaddrinfo
618: AC_CACHE_CHECK([for getaddrinfo], ac_cv_func_getaddrinfo,
619: [AC_TRY_LINK([#include <netdb.h>],
620: [struct addrinfo *g,h;g=&h;getaddrinfo("","",g,&g);],
621: AC_TRY_RUN([
622: #include <netdb.h>
623: #include <sys/types.h>
624: #ifndef AF_INET
625: # include <sys/socket.h>
626: #endif
627: int main(void) {
628: struct addrinfo *ai, *pai, hints;
629:
630: memset(&hints, 0, sizeof(hints));
631: hints.ai_flags = AI_NUMERICHOST;
632:
633: if (getaddrinfo("127.0.0.1", 0, &hints, &ai) < 0) {
634: exit(1);
635: }
636:
637: if (ai == 0) {
638: exit(1);
639: }
640:
641: pai = ai;
642:
643: while (pai) {
644: if (pai->ai_family != AF_INET) {
645: /* 127.0.0.1/NUMERICHOST should only resolve ONE way */
646: exit(1);
647: }
648: if (pai->ai_addr->sa_family != AF_INET) {
649: /* 127.0.0.1/NUMERICHOST should only resolve ONE way */
650: exit(1);
651: }
652: pai = pai->ai_next;
653: }
654: freeaddrinfo(ai);
655: exit(0);
656: }
657: ],ac_cv_func_getaddrinfo=yes, ac_cv_func_getaddrinfo=no, ac_cv_func_getaddrinfo=no),
658: ac_cv_func_getaddrinfo=no)])
659: if test "$ac_cv_func_getaddrinfo" = yes; then
660: AC_DEFINE(HAVE_GETADDRINFO,1,[Define if you have the getaddrinfo function])
661: fi
662:
663: dnl Check for the __sync_fetch_and_add builtin
664: AC_CACHE_CHECK([for __sync_fetch_and_add], ac_cv_func_sync_fetch_and_add,
665: [AC_TRY_LINK([],[int x;__sync_fetch_and_add(&x,1);],ac_cv_func_sync_fetch_and_add=yes,ac_cv_func_sync_fetch_and_add=no)])
666: if test "$ac_cv_func_sync_fetch_and_add" = yes; then
667: AC_DEFINE(HAVE_SYNC_FETCH_AND_ADD,1,[Define if you have the __sync_fetch_and_add function])
668: fi
669:
670: AC_REPLACE_FUNCS(strlcat strlcpy getopt)
671: AC_FUNC_UTIME_NULL
672: AC_FUNC_ALLOCA
673: dnl PHP_AC_BROKEN_SPRINTF
674: dnl PHP_AC_BROKEN_SNPRINTF
675: PHP_DECLARED_TIMEZONE
676: PHP_TIME_R_TYPE
677: PHP_READDIR_R_TYPE
678: PHP_CHECK_IN_ADDR_T
679:
680: AC_CHECK_FUNCS(crypt_r, [ php_crypt_r="1" ], [ php_crypt_r="0" ])
681: if test "x$php_crypt_r" = "x1"; then
682: PHP_CRYPT_R_STYLE
683: fi
684:
685: divert(6006004)
686:
687: dnl ## In diversion 4 we check user-configurable general settings.
688:
689: dnl General settings.
690: dnl -------------------------------------------------------------------------
691: PHP_CONFIGURE_PART(General settings)
692:
693: PHP_HELP_SEPARATOR([General settings:])
694:
695: PHP_ARG_ENABLE(gcov, whether to include gcov symbols,
696: [ --enable-gcov Enable GCOV code coverage (requires LTP) - FOR DEVELOPERS ONLY!!], no, no)
697:
698: if test "$PHP_GCOV" = "yes"; then
699:
700: if test "$GCC" != "yes"; then
701: AC_MSG_ERROR([GCC is required for --enable-gcov])
702: fi
703:
704: dnl Check if ccache is being used
705: case `$php_shtool path $CC` in
706: *ccache*[)] gcc_ccache=yes;;
707: *[)] gcc_ccache=no;;
708: esac
709:
710: if test "$gcc_ccache" = "yes" && (test -z "$CCACHE_DISABLE" || test "$CCACHE_DISABLE" != "1"); then
711: AC_MSG_ERROR([ccache must be disabled when --enable-gcov option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1.])
712: fi
713:
714: ltp_version_list="1.5 1.6 1.7"
715:
716: AC_CHECK_PROG(LTP, lcov, lcov)
717: AC_CHECK_PROG(LTP_GENHTML, genhtml, genhtml)
718: PHP_SUBST(LTP)
719: PHP_SUBST(LTP_GENHTML)
720:
721: if test "$LTP"; then
722: AC_CACHE_CHECK([for ltp version], php_cv_ltp_version, [
723: php_cv_ltp_version=invalid
724: ltp_version=`$LTP -v 2>/dev/null | $SED -e 's/^.* //'`
725: for ltp_check_version in $ltp_version_list; do
726: if test "$ltp_version" = "$ltp_check_version"; then
727: php_cv_ltp_version="$ltp_check_version (ok)"
728: fi
729: done
730: ])
731: else
732: ltp_msg="To enable code coverage reporting you must have one of the following LTP versions installed: $ltp_version_list"
733: AC_MSG_ERROR([$ltp_msg])
734: fi
735:
736: case $php_cv_ltp_version in
737: ""|invalid[)]
738: ltp_msg="You must have one of the following versions of LTP: $ltp_version_list (found: $ltp_version)."
739: AC_MSG_ERROR([$ltp_msg])
740: LTP="exit 0;"
741: ;;
742: esac
743:
744: if test -z "$LTP_GENHTML"; then
745: AC_MSG_ERROR([Could not find genhtml from the LTP package])
746: fi
747:
748: AC_DEFINE(HAVE_GCOV, 1, [Whether you have gcov])
749: PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/Makefile.gcov, $abs_srcdir)
750:
751: dnl Remove all optimization flags from CFLAGS
752: changequote({,})
753: CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9s]*//g'`
754: CXXFLAGS=`echo "$CXXFLAGS" | $SED -e 's/-O[0-9s]*//g'`
755: changequote([,])
756:
757: dnl Add the special gcc flags
758: CFLAGS="$CFLAGS -O0 -fprofile-arcs -ftest-coverage"
759: CXXFLAGS="$CXXFLAGS -O0 -fprofile-arcs -ftest-coverage"
760: fi
761:
762: PHP_ARG_ENABLE(debug, whether to include debugging symbols,
763: [ --enable-debug Compile with debugging symbols], no, no)
764:
765: if test "$PHP_DEBUG" = "yes"; then
766: PHP_DEBUG=1
767: ZEND_DEBUG=yes
768: changequote({,})
769: CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9s]*//g'`
770: CXXFLAGS=`echo "$CXXFLAGS" | $SED -e 's/-O[0-9s]*//g'`
771: changequote([,])
772: dnl add -O0 only if GCC or ICC is used
773: if test "$GCC" = "yes" || test "$ICC" = "yes"; then
774: CFLAGS="$CFLAGS -O0"
775: CXXFLAGS="$CXXFLAGS -g -O0"
776: fi
777: if test "$SUNCC" = "yes"; then
778: if test -n "$auto_cflags"; then
779: CFLAGS="-g"
780: CXXFLAGS="-g"
781: else
782: CFLAGS="$CFLAGS -g"
783: CXXFLAGS="$CFLAGS -g"
784: fi
785: fi
786: else
787: PHP_DEBUG=0
788: ZEND_DEBUG=no
789: fi
790:
791: PHP_ARG_WITH(layout, layout of installed files,
792: [ --with-layout=TYPE Set how installed files will be laid out. Type can
793: be either PHP or GNU [PHP]], PHP, no)
794:
795: case $PHP_LAYOUT in
796: GNU)
797: oldstyleextdir=no
798: ;;
799: *)
800: oldstyleextdir=yes
801: ;;
802: esac
803:
804: PHP_ARG_WITH(config-file-path, path to configuration file,
805: [ --with-config-file-path=PATH
806: Set the path in which to look for php.ini [PREFIX/lib]], DEFAULT, no)
807:
808: if test "$PHP_CONFIG_FILE_PATH" = "DEFAULT"; then
809: case $PHP_LAYOUT in
810: GNU)
811: PHP_CONFIG_FILE_PATH=$sysconfdir
812: ;;
813: *)
814: PHP_CONFIG_FILE_PATH=$libdir
815: ;;
816: esac
817: fi
818:
819: AC_MSG_CHECKING([where to scan for configuration files])
820: PHP_ARG_WITH(config-file-scan-dir,,
821: [ --with-config-file-scan-dir=PATH
822: Set the path where to scan for configuration files], DEFAULT, no)
823: if test "$PHP_CONFIG_FILE_SCAN_DIR" = "DEFAULT"; then
824: PHP_CONFIG_FILE_SCAN_DIR=
825: fi
826: AC_MSG_RESULT([$PHP_CONFIG_FILE_SCAN_DIR])
827:
828: test -n "$DEBUG_CFLAGS" && CFLAGS="$CFLAGS $DEBUG_CFLAGS"
829:
830: PHP_ARG_ENABLE(safe-mode, whether to enable safe mode by default,
831: [ --enable-safe-mode Enable safe mode by default], no, no)
832:
833: if test "$PHP_SAFE_MODE" = "yes"; then
834: AC_DEFINE(PHP_SAFE_MODE,1,[ ])
835: else
836: AC_DEFINE(PHP_SAFE_MODE,0,[ ])
837: fi
838:
839: AC_MSG_CHECKING([for safe mode exec dir])
840: PHP_ARG_WITH(exec-dir,,
841: [ --with-exec-dir[=DIR] Only allow executables in DIR under safe-mode
842: [/usr/local/php/bin]], no, no)
843:
844: if test "$PHP_EXEC_DIR" != "no" && test "$PHP_EXEC_DIR" != "yes" ; then
845: AC_DEFINE_UNQUOTED(PHP_SAFE_MODE_EXEC_DIR, "$PHP_EXEC_DIR", [ ])
846: AC_MSG_RESULT([$PHP_EXEC_DIR])
847: else
848: AC_DEFINE(PHP_SAFE_MODE_EXEC_DIR, "/usr/local/php/bin", [ ])
849: AC_MSG_RESULT([/usr/local/php/bin])
850: fi
851:
852: PHP_ARG_ENABLE(sigchild, whether to enable PHP's own SIGCHLD handler,
853: [ --enable-sigchild Enable PHP's own SIGCHLD handler], no, no)
854:
855: if test "$PHP_SIGCHILD" = "yes"; then
856: AC_DEFINE(PHP_SIGCHILD, 1, [ ])
857: else
858: AC_DEFINE(PHP_SIGCHILD, 0, [ ])
859: fi
860:
861: PHP_ARG_ENABLE(magic-quotes, whether to enable magic quotes by default,
862: [ --enable-magic-quotes Enable magic quotes by default.], no, no)
863:
864: if test "$PHP_MAGIC_QUOTES" = "yes"; then
865: AC_DEFINE(MAGIC_QUOTES, 1, [ ])
866: else
867: AC_DEFINE(MAGIC_QUOTES, 0, [ ])
868: fi
869:
870: PHP_ARG_ENABLE(libgcc, whether to explicitly link against libgcc,
871: [ --enable-libgcc Enable explicitly linking against libgcc], no, no)
872:
873: if test "$PHP_LIBGCC" = "yes"; then
874: PHP_LIBGCC_LIBPATH(gcc)
875: if test -z "$libgcc_libpath"; then
876: AC_MSG_ERROR([Cannot locate libgcc. Make sure that gcc is in your path])
877: fi
878: PHP_ADD_LIBPATH($libgcc_libpath)
879: PHP_ADD_LIBRARY(gcc, yes)
880: fi
881:
882: PHP_ARG_ENABLE(short-tags, whether to enable short tags by default,
883: [ --disable-short-tags Disable the short-form <? start tag by default], yes, no)
884:
885: if test "$PHP_SHORT_TAGS" = "yes"; then
886: AC_DEFINE(DEFAULT_SHORT_OPEN_TAG, "1", [ ])
887: else
888: AC_DEFINE(DEFAULT_SHORT_OPEN_TAG, "0", [ ])
889: fi
890:
891: PHP_ARG_ENABLE(dmalloc, whether to enable dmalloc,
892: [ --enable-dmalloc Enable dmalloc], no, no)
893:
894: if test "$PHP_DMALLOC" = "yes"; then
895: AC_CHECK_LIB(dmalloc, dmalloc_error, [
896: PHP_ADD_LIBRARY(dmalloc)
897: AC_DEFINE(HAVE_DMALLOC,1,[Whether you have dmalloc])
898: CPPFLAGS="$CPPFLAGS -DDMALLOC_FUNC_CHECK"
899: ], [
900: AC_MSG_ERROR([Problem with enabling dmalloc. Please check config.log for details.])
901: ])
902: fi
903:
904: PHP_ARG_ENABLE(ipv6, whether to enable IPv6 support,
905: [ --disable-ipv6 Disable IPv6 support], yes, no)
906:
907: if test "$PHP_IPV6" != "no" && test "$ac_cv_ipv6_support" = yes; then
908: AC_DEFINE(HAVE_IPV6, 1, [Whether to enable IPv6 support])
909: fi
910:
911: AC_MSG_CHECKING([how big to make fd sets])
912: PHP_ARG_ENABLE(fd-setsize,,
913: [ --enable-fd-setsize Set size of descriptor sets], no, no)
914:
915: if test "$PHP_FD_SETSIZE" != "no"; then
916: if test "0$PHP_FD_SETSIZE" -gt 0 2>/dev/null; then
917: CPPFLAGS="$CPPFLAGS -DFD_SETSIZE=$PHP_FD_SETSIZE"
918: AC_MSG_RESULT([using $PHP_FD_SETSIZE])
919: else
920: AC_MSG_ERROR([Invalid value passed to --enable-fd-setsize!])
921: fi
922: else
923: AC_MSG_RESULT([using system default])
924: fi
925:
926: divert(6006005)
927:
928: dnl ## In diversion 5 we check which extensions should be compiled.
929: dnl ## All of these are normally in the extension directories.
930:
931: dnl Extension configuration.
932: dnl -------------------------------------------------------------------------
933:
934: PHP_HELP_SEPARATOR([Extensions:
935:
936: --with-EXTENSION=[shared[,PATH]]
937:
938: NOTE: Not all extensions can be build as 'shared'.
939:
940: Example: --with-foobar=shared,/usr/local/foobar/
941:
942: o Builds the foobar extension as shared extension.
943: o foobar package install prefix is /usr/local/foobar/
944: ])
945:
946: PHP_CONFIGURE_PART(Configuring extensions)
947:
948: dnl
949: dnl Check if all enabled by default extensions should be disabled
950: dnl
951:
952: AC_ARG_ENABLE(all,
953: [ --disable-all Disable all extensions which are enabled by default
954: ], [
955: PHP_ENABLE_ALL=$enableval
956: ])
957:
958: # reading config stubs
959: esyscmd(./build/config-stubs ext)
960:
961: dnl Extensions post-config
962: dnl -------------------------------------------------------------------------
963:
964: enable_shared=yes
965: enable_static=yes
966:
967: case $php_build_target in
968: program|static)
969: standard_libtool_flag='-prefer-non-pic -static'
970: if test -z "$PHP_MODULES" && test -z "$PHP_ZEND_EX"; then
971: enable_shared=no
972: fi
973: ;;
974: shared)
975: enable_static=no
976: case $with_pic in
977: yes)
978: standard_libtool_flag='-prefer-pic'
979: ;;
980: no)
981: standard_libtool_flag='-prefer-non-pic'
982: ;;
983: esac
984: EXTRA_LDFLAGS="$EXTRA_LDFLAGS -avoid-version -module"
985: ;;
986: esac
987:
988: EXTRA_LIBS="$EXTRA_LIBS $DLIBS $LIBS"
989:
990: dnl this has to be here to prevent the openssl crypt() from
991: dnl overriding the system provided crypt().
992: if test "$ac_cv_lib_crypt_crypt" = "yes"; then
993: EXTRA_LIBS="-lcrypt $EXTRA_LIBS -lcrypt"
994: fi
995:
996: unset LIBS LDFLAGS
997:
998: dnl PEAR
999: dnl -------------------------------------------------------------------------
1000:
1001: PHP_HELP_SEPARATOR([PEAR:])
1002: PHP_CONFIGURE_PART(Configuring PEAR)
1003:
1004: # compatibility
1005: if test -z "$with_pear" && test "$enable_pear" = "no"; then
1006: with_pear=no
1007: fi
1008:
1009: # If CLI is disabled -> disable PEAR
1010: if test "$PHP_CLI" = "no"; then
1011: with_pear=no
1012: fi
1013:
1014: PHP_ARG_WITH(pear, [whether to install PEAR],
1015: [ --with-pear=DIR Install PEAR in DIR [PREFIX/lib/php]
1016: --without-pear Do not install PEAR], DEFAULT, yes)
1017:
1018: if test "$PHP_PEAR" != "no"; then
1019:
1020: dnl
1021: dnl PEAR dependancies
1022: dnl
1023: if test "$PHP_XML" = "no"; then
1024: pear_error_msg="$pear_error_msg
1025: PEAR requires XML to be enabled. Add --enable-xml to the configure line. (or --without-pear)"
1026: fi
1027:
1028: dnl
1029: dnl if test "$PHP_XMLRPC" = "no"; then
1030: dnl pear_error_msg="$pear_error_msg
1031: dnl PEAR requires XML-RPC to be enabled. Add --with-xmlrpc to the configure line. (or --without-pear)"
1032: dnl fi
1033: dnl
1034:
1035: if test "$pear_error_msg"; then
1036: AC_MSG_ERROR([$pear_error_msg])
1037: fi
1038:
1039: install_pear="install-pear"
1040: PEAR_INSTALLDIR=$PHP_PEAR
1041:
1042: if test "$PHP_PEAR" = "DEFAULT" || test "$PHP_PEAR" = "yes"; then
1043: case $PHP_LAYOUT in
1044: GNU) PEAR_INSTALLDIR=$datadir/pear;;
1045: *) PEAR_INSTALLDIR=$libdir/php;;
1046: esac
1047: fi
1048:
1049: PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/pear/Makefile.frag,$abs_srcdir/pear,pear)
1050: fi
1051:
1052:
1053: dnl Configuring Zend and TSRM.
1054: dnl -------------------------------------------------------------------------
1055:
1056: PHP_HELP_SEPARATOR([Zend:])
1057: PHP_CONFIGURE_PART(Configuring Zend)
1058:
1059: LIBZEND_BASIC_CHECKS
1060: LIBZEND_DLSYM_CHECK
1061: LIBZEND_OTHER_CHECKS
1062:
1063: if test "$ZEND_MAINTAINER_ZTS" = "yes"; then
1064: AC_DEFINE(ZTS,1,[ ])
1065: PHP_THREAD_SAFETY=yes
1066: else
1067: PHP_THREAD_SAFETY=no
1068: fi
1069:
1070: INCLUDES="$INCLUDES -I\$(top_builddir)/TSRM"
1071: INCLUDES="$INCLUDES -I\$(top_builddir)/Zend"
1072:
1073: if test "$abs_srcdir" != "$abs_builddir"; then
1074: INCLUDES="$INCLUDES -I\$(top_srcdir)/main -I\$(top_srcdir)/Zend"
1075: INCLUDES="$INCLUDES -I\$(top_srcdir)/TSRM -I\$(top_builddir)/"
1076: fi
1077:
1078: ZEND_EXTRA_LIBS="$LIBS"
1079: unset LIBS LDFLAGS
1080:
1081: PHP_HELP_SEPARATOR([TSRM:])
1082: PHP_CONFIGURE_PART(Configuring TSRM)
1083: TSRM_BASIC_CHECKS
1084: if test "$PHP_THREAD_SAFETY" = "yes"; then
1085: TSRM_THREADS_CHECKS
1086: fi
1087:
1088: EXTRA_LDFLAGS="$EXTRA_LDFLAGS $LDFLAGS"
1089: EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $LDFLAGS"
1090: EXTRA_LIBS="$EXTRA_LIBS $LIBS"
1091: unset LIBS LDFLAGS
1092:
1093: test "$prefix" = "NONE" && prefix=/usr/local
1094: test "$exec_prefix" = "NONE" && exec_prefix='${prefix}'
1095: test "$program_prefix" = "NONE" && program_prefix=
1096: test "$program_suffix" = "NONE" && program_suffix=
1097:
1098: case $libdir in
1099: '${exec_prefix}/lib')
1100: libdir=$libdir/php
1101: ;;
1102: esac
1103: case $datadir in
1104: '${prefix}/share')
1105: datadir=$datadir/php
1106: ;;
1107: esac
1108:
1109: phplibdir=`pwd`/modules
1110: $php_shtool mkdir -p $phplibdir
1111: phptempdir=`pwd`/libs
1112:
1113: old_exec_prefix=$exec_prefix
1114: old_libdir=$libdir
1115: old_datadir=$datadir
1116: exec_prefix=`eval echo $exec_prefix`
1117: libdir=`eval echo $libdir`
1118: datadir=`eval echo $datadir`
1119:
1120: dnl Build extension directory path
1121:
1122: ZEND_MODULE_API_NO=`$EGREP '#define ZEND_MODULE_API_NO ' $srcdir/Zend/zend_modules.h|$SED 's/#define ZEND_MODULE_API_NO //'`
1123:
1124: if test -z "$EXTENSION_DIR"; then
1125: extbasedir=$ZEND_MODULE_API_NO
1126: if test "$oldstyleextdir" = "yes"; then
1127: if test "$PHP_DEBUG" = "1"; then
1128: part1=debug
1129: else
1130: part1=no-debug
1131: fi
1132: if test "$enable_maintainer_zts" = "yes"; then
1133: part2=zts
1134: else
1135: part2=non-zts
1136: fi
1137: extbasedir=$part1-$part2-$extbasedir
1138: EXTENSION_DIR=$libdir/extensions/$extbasedir
1139: else
1140: if test "$enable_maintainer_zts" = "yes"; then
1141: extbasedir=$extbasedir-zts
1142: fi
1143:
1144: if test "$PHP_DEBUG" = "1"; then
1145: extbasedir=$extbasedir-debug
1146: fi
1147: EXTENSION_DIR=$libdir/$extbasedir
1148: fi
1149: fi
1150:
1151: case $PHP_LAYOUT in
1152: GNU)
1153: datarootdir=$prefix/share
1154: ;;
1155: *)
1156: datarootdir=$prefix/php
1157: ;;
1158: esac
1159:
1160: dnl Expand all directory names for use in macros/constants
1161: EXPANDED_PEAR_INSTALLDIR=`eval echo $PEAR_INSTALLDIR`
1162: EXPANDED_EXTENSION_DIR=`eval echo $EXTENSION_DIR`
1163: EXPANDED_LOCALSTATEDIR=`eval echo $localstatedir`
1164: EXPANDED_BINDIR=`eval echo $bindir`
1165: EXPANDED_SBINDIR=`eval echo $sbindir`
1166: EXPANDED_MANDIR=`eval echo $mandir`
1167: EXPANDED_LIBDIR=$libdir
1168: EXPANDED_SYSCONFDIR=`eval echo $sysconfdir`
1169: EXPANDED_DATADIR=$datadir
1170: EXPANDED_PHP_CONFIG_FILE_PATH=`eval echo "$PHP_CONFIG_FILE_PATH"`
1171: EXPANDED_PHP_CONFIG_FILE_SCAN_DIR=`eval echo "$PHP_CONFIG_FILE_SCAN_DIR"`
1172: INCLUDE_PATH=.:${prefix}/share/pear
1173:
1174: exec_prefix=$old_exec_prefix
1175: libdir=$old_libdir
1176: datadir=$old_datadir
1177:
1178: AC_SUBST(INCLUDE_PATH)
1179: AC_SUBST(EXPANDED_PEAR_INSTALLDIR)
1180: AC_SUBST(EXPANDED_EXTENSION_DIR)
1181: AC_SUBST(EXPANDED_BINDIR)
1182: AC_SUBST(EXPANDED_SBINDIR)
1183: AC_SUBST(EXPANDED_MANDIR)
1184: AC_SUBST(EXPANDED_LIBDIR)
1185: AC_SUBST(EXPANDED_DATADIR)
1186: AC_SUBST(EXPANDED_SYSCONFDIR)
1187: AC_SUBST(EXPANDED_LOCALSTATEDIR)
1188: AC_SUBST(EXPANDED_PHP_CONFIG_FILE_PATH)
1189: AC_SUBST(EXPANDED_PHP_CONFIG_FILE_SCAN_DIR)
1190:
1191: if test -n "$php_ldflags_add_usr_lib"; then
1192: PHP_RPATHS="$PHP_RPATHS /usr/lib"
1193: fi
1194:
1195: PHP_UTILIZE_RPATHS
1196:
1197: if test -z "$php_ldflags_add_usr_lib"; then
1198: PHP_REMOVE_USR_LIB(PHP_LDFLAGS)
1199: PHP_REMOVE_USR_LIB(LDFLAGS)
1200: fi
1201:
1202: EXTRA_LDFLAGS="$EXTRA_LDFLAGS $PHP_LDFLAGS"
1203: EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $PHP_LDFLAGS"
1204:
1205: PHP_BUILD_DATE=`date '+%Y-%m-%d'`
1206: AC_DEFINE_UNQUOTED(PHP_BUILD_DATE,"$PHP_BUILD_DATE",[PHP build date])
1207:
1208: case $host_alias in
1209: *netware*)
1210: PHP_OS="NetWare"
1211: PHP_UNAME="NetWare"
1212: AC_DEFINE_UNQUOTED(PHP_OS,"$PHP_OS",[hardcode for each of the cross compiler host])
1213: AC_DEFINE_UNQUOTED(PHP_UNAME,"$PHP_UNAME",[hardcode for each of the cross compiler host])
1214: ;;
1215: *)
1216: PHP_UNAME=`uname -a | xargs`
1217: AC_DEFINE_UNQUOTED(PHP_UNAME,"$PHP_UNAME",[uname -a output])
1218: PHP_OS=`uname | xargs`
1219: AC_DEFINE_UNQUOTED(PHP_OS,"$PHP_OS",[uname output])
1220: ;;
1221: esac
1222:
1223: if test "$PHP_CLI" != "no"; then
1224: PHP_CLI_TARGET="\$(SAPI_CLI_PATH)"
1225: PHP_INSTALL_CLI_TARGET="install-cli"
1226: PHP_ADD_SOURCES(sapi/cli, php_cli.c php_cli_readline.c,, cli)
1227: PHP_INSTALLED_SAPIS="cli $PHP_SAPI"
1228: PHP_EXECUTABLE="\$(top_builddir)/\$(SAPI_CLI_PATH)"
1229: else
1230: PHP_INSTALLED_SAPIS="$PHP_SAPI"
1231: fi
1232:
1233: PHP_SUBST_OLD(PHP_INSTALLED_SAPIS)
1234:
1235: PHP_SUBST(PHP_EXECUTABLE)
1236: PHP_SUBST(PHP_CLI_TARGET)
1237: PHP_SUBST(PHP_SAPI_OBJS)
1238: PHP_SUBST(PHP_CLI_OBJS)
1239: PHP_SUBST(PHP_GLOBAL_OBJS)
1240:
1241: PHP_SUBST(PHP_MODULES)
1242: PHP_SUBST(PHP_ZEND_EX)
1243:
1244: PHP_SUBST(EXT_LIBS)
1245:
1246: PHP_SUBST_OLD(abs_builddir)
1247: PHP_SUBST_OLD(abs_srcdir)
1248: PHP_SUBST_OLD(php_abs_top_builddir)
1249: PHP_SUBST_OLD(php_abs_top_srcdir)
1250:
1251: PHP_SUBST(bindir)
1252: PHP_SUBST(sbindir)
1253: PHP_SUBST(exec_prefix)
1254: PHP_SUBST_OLD(program_prefix)
1255: PHP_SUBST_OLD(program_suffix)
1256: PHP_SUBST(includedir)
1257: PHP_SUBST(libdir)
1258: PHP_SUBST(mandir)
1259: PHP_SUBST(phplibdir)
1260: PHP_SUBST(phptempdir)
1261: PHP_SUBST(prefix)
1262: PHP_SUBST(localstatedir)
1263: PHP_SUBST(datadir)
1264: PHP_SUBST(datarootdir)
1265: PHP_SUBST(sysconfdir)
1266:
1267: PHP_SUBST(EXEEXT)
1268: PHP_SUBST(CC)
1269: PHP_SUBST(CFLAGS)
1270: PHP_SUBST(CFLAGS_CLEAN)
1271: PHP_SUBST(CPP)
1272: PHP_SUBST(CPPFLAGS)
1273: PHP_SUBST(CXX)
1274: PHP_SUBST(CXXFLAGS)
1275: PHP_SUBST(CXXFLAGS_CLEAN)
1276: PHP_SUBST_OLD(DEBUG_CFLAGS)
1277: PHP_SUBST_OLD(EXTENSION_DIR)
1278: PHP_SUBST_OLD(EXTRA_LDFLAGS)
1279: PHP_SUBST_OLD(EXTRA_LDFLAGS_PROGRAM)
1280: PHP_SUBST_OLD(EXTRA_LIBS)
1281: PHP_SUBST_OLD(ZEND_EXTRA_LIBS)
1282: PHP_SUBST_OLD(INCLUDES)
1283: PHP_SUBST_OLD(EXTRA_INCLUDES)
1284: PHP_SUBST_OLD(INCLUDE_PATH)
1285: PHP_SUBST_OLD(INSTALL_IT)
1286: PHP_SUBST(LFLAGS)
1287: PHP_SUBST(LIBTOOL)
1288: PHP_SUBST(LN_S)
1289: PHP_SUBST_OLD(NATIVE_RPATHS)
1290: PHP_SUBST_OLD(PEAR_INSTALLDIR)
1291: PHP_SUBST(PHP_BUILD_DATE)
1292: PHP_SUBST_OLD(PHP_LDFLAGS)
1293: PHP_SUBST_OLD(PHP_LIBS)
1294: PHP_SUBST(OVERALL_TARGET)
1295: PHP_SUBST(PHP_RPATHS)
1296: PHP_SUBST(PHP_SAPI)
1297: PHP_SUBST_OLD(PHP_VERSION)
1298: PHP_SUBST_OLD(PHP_VERSION_ID)
1299: PHP_SUBST(SHELL)
1300: PHP_SUBST(SHARED_LIBTOOL)
1301: PHP_SUBST(WARNING_LEVEL)
1302: PHP_SUBST(PHP_FRAMEWORKS)
1303: PHP_SUBST(PHP_FRAMEWORKPATH)
1304: PHP_SUBST(INSTALL_HEADERS)
1305:
1306: old_CC=$CC
1307:
1308: if test "$PHP_THREAD_SAFETY" = "yes" && test -n "$ac_cv_pthreads_cflags"; then
1309: CXXFLAGS="$CXXFLAGS $ac_cv_pthreads_cflags"
1310: INLINE_CFLAGS="$INLINE_CFLAGS $ac_cv_pthreads_cflags"
1311: cat >meta_ccld<<EOF
1312: #! /bin/sh
1313: exec $CC $ac_cv_pthreads_cflags \$@
1314: EOF
1315: CC="$abs_builddir/meta_ccld"
1316: chmod +x meta_ccld
1317: fi
1318:
1319: dnl This will go away, if we have a facility to run per-extension code
1320: dnl after the thread_safety decision was done
1321: if test "$PHP_THREAD_SAFETY" = "yes" && test "$PHP_MYSQL" = "yes"; then
1322: CPPFLAGS="$CPPFLAGS -DTHREAD=1"
1323: fi
1324:
1325: ZEND_EXT_TYPE="zend_extension"
1326: PHP_SUBST(ZEND_EXT_TYPE)
1327:
1328: dnl
1329: dnl Libtool creation
1330: dnl
1331:
1332: PHP_HELP_SEPARATOR([Libtool:])
1333: PHP_CONFIGURE_PART(Configuring libtool)
1334:
1335: LDFLAGS="$LDFLAGS $PHP_AIX_LDFLAGS"
1336:
1337: dnl Autoconf 2.13's libtool checks go slightly nuts on Mac OS X 10.5 and 10.6.
1338: dnl This hack works around it. Ugly.
1339: case $host_alias in
1340: *darwin9*|*darwin10*)
1341: ac_cv_exeext=
1342: ;;
1343: esac
1344:
1345: dnl Only allow AC_PROG_CXX and AC_PROG_CXXCPP if they are explicitly called (by PHP_REQUIRE_CXX).
1346: dnl Otherwise AC_PROG_LIBTOOL fails if there is no working C++ compiler.
1347: AC_PROVIDE_IFELSE([PHP_REQUIRE_CXX], [], [
1348: undefine([AC_PROG_CXX])
1349: AC_DEFUN([AC_PROG_CXX], [])
1350: undefine([AC_PROG_CXXCPP])
1351: AC_DEFUN([AC_PROG_CXXCPP], [php_prog_cxxcpp=disabled])
1352: ])
1353: AC_PROG_LIBTOOL
1354:
1355: if test "$enable_debug" != "yes"; then
1356: PHP_SET_LIBTOOL_VARIABLE([--silent])
1357: fi
1358:
1359: dnl libtool 1.4.3 needs this.
1360: PHP_SET_LIBTOOL_VARIABLE([--preserve-dup-deps])
1361:
1362: test -z "$PHP_COMPILE" && PHP_COMPILE='$(LIBTOOL) --mode=compile $(COMPILE) -c $<'
1363: test -z "$CXX_PHP_COMPILE" && CXX_PHP_COMPILE='$(LIBTOOL) --mode=compile $(CXX_COMPILE) -c $<'
1364: SHARED_LIBTOOL='$(LIBTOOL)'
1365:
1366: CC=$old_CC
1367:
1368: PHP_CONFIGURE_PART(Generating files)
1369:
1370: CXXFLAGS_CLEAN=$CXXFLAGS
1371: CFLAGS_CLEAN=$CFLAGS
1372: CFLAGS="\$(CFLAGS_CLEAN) $standard_libtool_flag"
1373: INLINE_CFLAGS="$INLINE_CFLAGS $standard_libtool_flag"
1374: CXXFLAGS="$CXXFLAGS $standard_libtool_flag"
1375:
1376: if test "$PHP_PHAR" != "no" && test "$PHP_CLI" != "no"; then
1377: pharcmd=pharcmd
1378: pharcmd_install=install-pharcmd
1379: else
1380: pharcmd=
1381: pharcmd_install=
1382: fi;
1383:
1384: all_targets="$lcov_target \$(OVERALL_TARGET) \$(PHP_MODULES) \$(PHP_ZEND_EX) \$(PHP_CLI_TARGET) \$(PHP_CGI_TARGET) \$(PHP_FPM_TARGET) $pharcmd"
1385: install_targets="$PHP_INSTALL_CLI_TARGET $PHP_INSTALL_CGI_TARGET $install_modules install-build install-headers install-programs $install_pear $pharcmd_install"
1386:
1387: case $PHP_SAPI in
1388: apache|apache2handler|apache2filter)
1389: install_targets="install-sapi $install_targets"
1390: ;;
1391: esac
1392:
1393: PHP_SUBST(all_targets)
1394: PHP_SUBST(install_targets)
1395:
1396: PHP_INSTALL_HEADERS([Zend/ TSRM/ main/ main/streams/])
1397:
1398: PHP_ADD_SOURCES(TSRM, TSRM.c tsrm_strtok_r.c tsrm_virtual_cwd.c)
1399:
1400: PHP_ADD_SOURCES(main, main.c snprintf.c spprintf.c php_sprintf.c \
1401: safe_mode.c fopen_wrappers.c alloca.c php_scandir.c \
1402: php_ini.c SAPI.c rfc1867.c php_content_types.c strlcpy.c \
1403: strlcat.c mergesort.c reentrancy.c php_variables.c php_ticks.c \
1404: network.c php_open_temporary_file.c php_logos.c \
1405: output.c getopt.c suhosin_patch.c )
1406:
1407: PHP_ADD_SOURCES(main/streams, streams.c cast.c memory.c filter.c \
1408: plain_wrapper.c userspace.c transports.c xp_socket.c mmap.c \
1409: glob_wrapper.c)
1410:
1411: PHP_ADD_SOURCES(/main, internal_functions.c,, sapi)
1412:
1413: case $host_alias in
1414: *netware*)
1415: PHP_ADD_BUILD_DIR(win32)
1416: PHP_ADD_BUILD_DIR(netware)
1417: ;;
1418: *)
1419: PHP_ADD_SOURCES(/main, internal_functions_cli.c,, cli)
1420: ;;
1421: esac
1422:
1423: PHP_ADD_SOURCES(Zend, \
1424: zend_language_parser.c zend_language_scanner.c \
1425: zend_ini_parser.c zend_ini_scanner.c \
1426: zend_alloc.c zend_compile.c zend_constants.c zend_dynamic_array.c \
1427: zend_execute_API.c zend_highlight.c zend_llist.c \
1428: zend_opcode.c zend_operators.c zend_ptr_stack.c zend_stack.c \
1429: zend_variables.c zend.c zend_API.c zend_extensions.c zend_hash.c \
1430: zend_list.c zend_indent.c zend_builtin_functions.c zend_sprintf.c \
1431: zend_ini.c zend_qsort.c zend_multibyte.c zend_ts_hash.c zend_stream.c \
1432: zend_iterators.c zend_interfaces.c zend_exceptions.c zend_strtod.c zend_gc.c \
1433: zend_closures.c zend_float.c zend_canary.c zend_alloc_canary.c )
1434:
1435: if test -r "$abs_srcdir/Zend/zend_objects.c"; then
1436: PHP_ADD_SOURCES(Zend, zend_objects.c zend_object_handlers.c zend_objects_API.c zend_default_classes.c)
1437: fi
1438:
1439: dnl Selectively disable optimization due to high RAM usage during
1440: dnl compiling the executor.
1441: if test -n "$GCC" && test "$ZEND_INLINE_OPTIMIZATION" != "yes"; then
1442: flag=-O0
1443: else
1444: flag=
1445: fi
1446:
1447: PHP_ADD_SOURCES_X(Zend, zend_execute.c,,PHP_GLOBAL_OBJS,,$flag)
1448:
1449: PHP_ADD_BUILD_DIR(main main/streams)
1450: PHP_ADD_BUILD_DIR(sapi/$PHP_SAPI sapi/cli)
1451: PHP_ADD_BUILD_DIR(TSRM)
1452: PHP_ADD_BUILD_DIR(Zend)
1453:
1454: PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/scripts/Makefile.frag,$abs_srcdir/scripts,scripts)
1455: PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/Makefile.frag,$abs_srcdir/Zend,Zend)
1456: PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/Zend/Makefile.frag,$abs_srcdir/Zend,Zend)
1457:
1458: PHP_GEN_BUILD_DIRS
1459: PHP_GEN_GLOBAL_MAKEFILE
1460:
1461: AC_DEFINE([HAVE_BUILD_DEFS_H], 1, [ ])
1462:
1463: $php_shtool mkdir -p pear/scripts
1464: $php_shtool mkdir -p scripts
1465: $php_shtool mkdir -p scripts/man1
1466:
1467: ALL_OUTPUT_FILES="php5.spec main/build-defs.h \
1468: scripts/phpize scripts/man1/phpize.1 \
1469: scripts/php-config scripts/man1/php-config.1 \
1470: $PHP_OUTPUT_FILES"
1471:
1472: dnl
1473: dnl Check for unknown configure options
1474: dnl
1475: PHP_CHECK_CONFIGURE_OPTIONS
1476:
1477: dnl
1478: dnl Generate build files
1479: dnl
1480: AC_OUTPUT($ALL_OUTPUT_FILES, [], [
1481:
1482: if test "\$CONFIG_FILES" = "$ALL_OUTPUT_FILES" || test "\$CONFIG_FILES" = " $ALL_OUTPUT_FILES" || test -z "\$CONFIG_FILES"; then
1483: REDO_ALL=yes
1484: fi
1485:
1486: ################################################################
1487: # Create configuration headers
1488: #
1489:
1490: test -d TSRM || $php_shtool mkdir TSRM
1491: echo '#include <../main/php_config.h>' > TSRM/tsrm_config.h
1492:
1493: test -d Zend || $php_shtool mkdir Zend
1494:
1495: cat >Zend/zend_config.h <<FEO
1496: #include <../main/php_config.h>
1497: #if defined(APACHE) && defined(PHP_API_VERSION)
1498: #undef HAVE_DLFCN_H
1499: #endif
1500: FEO
1501:
1502: # run this only when generating all the files?
1503: if test -n "\$REDO_ALL"; then
1504: # Hacking while airborne considered harmful.
1505: #
1506: echo "creating main/internal_functions.c"
1507: extensions="$EXT_STATIC"
1508: dnl mv -f main/internal_functions.c main/internal_functions.c.old 2>/dev/null
1509: sh $srcdir/build/genif.sh $srcdir/main/internal_functions.c.in $srcdir "$EXTRA_MODULE_PTRS" $AWK \$extensions > main/internal_functions.c
1510:
1511: echo "creating main/internal_functions_cli.c"
1512: cli_extensions="$EXT_CLI_STATIC"
1513: sh $srcdir/build/genif.sh $srcdir/main/internal_functions.c.in $srcdir "$EXTRA_MODULE_PTRS" $AWK \$cli_extensions > main/internal_functions_cli.c
1514:
1515: if test "$UNAME" = "FreeBSD" && test "$PHP_SAPI" = "apache2filter" && test "$TSRM_PTH" != "pth-config" ; then
1516: echo "+--------------------------------------------------------------------+"
1517: echo "| *** WARNING *** |"
1518: echo "| |"
1519: echo "| In order to build PHP as a Apache2 module on FreeBSD, you have to |"
1520: echo "| add --with-tsrm-pth to your ./configure line. Therefore you need |"
1521: echo "| to install gnu-pth from /usr/ports/devel/pth. |"
1522: fi
1523:
1524: if test -n "$PHP_APXS_BROKEN"; then
1525: echo "+--------------------------------------------------------------------+"
1526: echo "| WARNING: Your $APXS script is most likely broken."
1527: echo "| |"
1528: echo "| Please go read http://www.php.net/faq.build#faq.build.apxs |"
1529: echo "| and make the changes described there and try again. |"
1530: fi
1531:
1532: if test -n "$DEBUG_LOG"; then
1533: rm -f config.cache
1534: cat <<X
1535: +--------------------------------------------------------------------+
1536: | *** ATTENTION *** |
1537: | |
1538: | Something is likely to be messed up here, because the configure |
1539: | script was not able to detect a simple feature on your platform. |
1540: | This is often caused by incorrect configuration parameters. Please |
1541: | see the file debug.log for error messages. |
1542: | |
1543: | If you are unable to fix this, send the file debug.log to the |
1544: | php-install@lists.php.net mailing list and include appropiate |
1545: | information about your setup. |
1546: X
1547: fi
1548:
1549: # Warn about linking Apache with libpthread if oci8 extension is enabled on linux.
1550: if test "$PHP_OCI8" != "no"; then
1551: if test "$PHP_SAPI" = "apache"; then
1552: if test `uname` = "Linux"; then
1553: cat <<X
1554: +--------------------------------------------------------------------+
1555: | *** WARNING *** |
1556: | |
1557: | Please check that your Apache (httpd) is linked with libpthread. |
1558: | If not, you have to recompile Apache with pthread. For more |
1559: | details, see this page: http://www.php.net/manual/ref.oci8.php |
1560: X
1561: fi
1562: fi
1563:
1564: if test "$PHP_SIGCHILD" != "yes"; then
1565: if test "$PHP_OCI8_INSTANT_CLIENT" = "no"; then
1566: cat <<X
1567: +--------------------------------------------------------------------+
1568: | Notice: |
1569: | If you encounter <defunc> processes when using a local Oracle |
1570: | database, set the value BEQUEATH_DETACH=YES in Oracle Net's |
1571: | sqlnet.ora file on the PHP host, or set the environment variable |
1572: | BEQUEATH_DETACH to YES before starting Apache. If the problem |
1573: | still occurs, then recompile PHP and specify --enable-sigchild |
1574: | when configuring. |
1575: X
1576: fi
1577: fi
1578: fi
1579:
1580: cat <<X
1581: +--------------------------------------------------------------------+
1582: | License: |
1583: | This software is subject to the PHP License, available in this |
1584: | distribution in the file LICENSE. By continuing this installation |
1585: | process, you are bound by the terms of this license agreement. |
1586: | If you do not agree with the terms of this license, you must abort |
1587: | the installation process at this point. |
1588: +--------------------------------------------------------------------+
1589:
1590: Thank you for using PHP.
1591:
1592: X
1593:
1594: # Output unknown configure options
1595: if test "$PHP_UNKNOWN_CONFIGURE_OPTIONS"; then
1596: echo "Notice: Following unknown configure options were used:
1597: $PHP_UNKNOWN_CONFIGURE_OPTIONS
1598:
1599: Check '[$]0 --help' for available options
1600: "
1601: fi
1602:
1603: fi
1604: ])
1605:
1606: dnl ## Local Variables:
1607: dnl ## tab-width: 4
1608: dnl ## End:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>