File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / config.m4
Revision 1.1.1.3 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Mon Oct 14 08:02:34 2013 UTC (10 years, 9 months ago) by misho
Branches: php, MAIN
CVS tags: v5_4_29p0, v5_4_29, v5_4_20p0, v5_4_20, HEAD
v 5.4.20

    1: dnl $Id: config.m4,v 1.1.1.3 2013/10/14 08:02:34 misho Exp $ -*- autoconf -*-
    2: 
    3: dnl
    4: dnl Check if flush should be called explicitly after buffered io
    5: dnl
    6: AC_CACHE_CHECK([whether flush should be called explicitly after a buffered io], ac_cv_flush_io,[
    7: AC_TRY_RUN( [
    8: #include <stdio.h>
    9: #include <stdlib.h>
   10: 
   11: int main(int argc, char **argv)
   12: {
   13: 	char *filename = tmpnam(NULL);
   14: 	char buffer[64];
   15: 	int result = 0;
   16: 	
   17: 	FILE *fp = fopen(filename, "wb");
   18: 	if (NULL == fp)
   19: 		return 0;
   20: 	fputs("line 1\n", fp);
   21: 	fputs("line 2\n", fp);
   22: 	fclose(fp);
   23: 	
   24: 	fp = fopen(filename, "rb+");
   25: 	if (NULL == fp)
   26: 		return 0;
   27: 	fgets(buffer, sizeof(buffer), fp);
   28: 	fputs("line 3\n", fp);
   29: 	rewind(fp);
   30: 	fgets(buffer, sizeof(buffer), fp);
   31: 	if (0 != strcmp(buffer, "line 1\n"))
   32: 		result = 1;
   33: 	fgets(buffer, sizeof(buffer), fp);
   34: 	if (0 != strcmp(buffer, "line 3\n"))
   35: 		result = 1;
   36: 	fclose(fp);
   37: 	unlink(filename);
   38: 
   39: 	exit(result);
   40: }
   41: ],[
   42:   ac_cv_flush_io=no
   43: ],[
   44:   ac_cv_flush_io=yes
   45: ],[
   46:   ac_cv_flush_io=no
   47: ])])
   48: if test "$ac_cv_flush_io" = "yes"; then
   49:   AC_DEFINE(HAVE_FLUSHIO, 1, [Define if flush should be called explicitly after a buffered io.])
   50: fi
   51: 
   52: dnl
   53: dnl Check for crypt() capabilities
   54: dnl
   55: if test "$ac_cv_func_crypt" = "no"; then
   56:   AC_CHECK_LIB(crypt, crypt, [
   57:     LIBS="-lcrypt $LIBS -lcrypt"
   58:     AC_DEFINE(HAVE_CRYPT, 1, [ ])
   59:   ])
   60: fi
   61:   
   62: AC_CACHE_CHECK(for standard DES crypt, ac_cv_crypt_des,[
   63:   AC_TRY_RUN([
   64: #if HAVE_UNISTD_H
   65: #include <unistd.h>
   66: #endif
   67: 
   68: #if HAVE_CRYPT_H
   69: #include <crypt.h>
   70: #endif
   71: 
   72: main() {
   73: #if HAVE_CRYPT
   74:     exit (strcmp((char *)crypt("rasmuslerdorf","rl"),"rl.3StKT.4T8M"));
   75: #else
   76: 	exit(0);
   77: #endif
   78: }],[
   79:   ac_cv_crypt_des=yes
   80: ],[
   81:   ac_cv_crypt_des=no
   82: ],[
   83:   ac_cv_crypt_des=yes
   84: ])])
   85: 
   86: AC_CACHE_CHECK(for extended DES crypt, ac_cv_crypt_ext_des,[
   87:   AC_TRY_RUN([
   88: #if HAVE_UNISTD_H
   89: #include <unistd.h>
   90: #endif
   91: 
   92: #if HAVE_CRYPT_H
   93: #include <crypt.h>
   94: #endif
   95: 
   96: main() {
   97: #if HAVE_CRYPT
   98:   exit (strcmp((char *)crypt("rasmuslerdorf","_J9..rasm"),"_J9..rasmBYk8r9AiWNc"));
   99: #else
  100:   exit(0);
  101: #endif
  102: }],[
  103:   ac_cv_crypt_ext_des=yes
  104: ],[
  105:   ac_cv_crypt_ext_des=no
  106: ],[
  107:   ac_cv_crypt_ext_des=no
  108: ])])
  109: 
  110: AC_CACHE_CHECK(for MD5 crypt, ac_cv_crypt_md5,[
  111: AC_TRY_RUN([
  112: #if HAVE_UNISTD_H
  113: #include <unistd.h>
  114: #endif
  115: 
  116: #if HAVE_CRYPT_H
  117: #include <crypt.h>
  118: #endif
  119: 
  120: main() {
  121: #if HAVE_CRYPT
  122:     char salt[15], answer[40];
  123: 
  124:     salt[0]='$'; salt[1]='1'; salt[2]='$'; 
  125:     salt[3]='r'; salt[4]='a'; salt[5]='s';
  126:     salt[6]='m'; salt[7]='u'; salt[8]='s';
  127:     salt[9]='l'; salt[10]='e'; salt[11]='$';
  128:     salt[12]='\0';
  129:     strcpy(answer,salt);
  130:     strcat(answer,"rISCgZzpwk3UhDidwXvin0");
  131:     exit (strcmp((char *)crypt("rasmuslerdorf",salt),answer));
  132: #else
  133: 	exit(0);
  134: #endif
  135: }],[
  136:   ac_cv_crypt_md5=yes
  137: ],[
  138:   ac_cv_crypt_md5=no
  139: ],[
  140:   ac_cv_crypt_md5=no
  141: ])])
  142: 
  143: AC_CACHE_CHECK(for Blowfish crypt, ac_cv_crypt_blowfish,[
  144: AC_TRY_RUN([
  145: #if HAVE_UNISTD_H
  146: #include <unistd.h>
  147: #endif
  148: 
  149: #if HAVE_CRYPT_H
  150: #include <crypt.h>
  151: #endif
  152: 
  153: main() {
  154: #if HAVE_CRYPT
  155:     char salt[30], answer[70];
  156:     
  157:     salt[0]='$'; salt[1]='2'; salt[2]='a'; salt[3]='$'; salt[4]='0'; salt[5]='7'; salt[6]='$'; salt[7]='\0';
  158:     strcat(salt,"rasmuslerd............");
  159:     strcpy(answer,salt);
  160:     strcpy(&answer[29],"nIdrcHdxcUxWomQX9j6kvERCFjTg7Ra");
  161:     exit (strcmp((char *)crypt("rasmuslerdorf",salt),answer));
  162: #else
  163: 	exit(0);
  164: #endif
  165: }],[
  166:   ac_cv_crypt_blowfish=yes
  167: ],[
  168:   ac_cv_crypt_blowfish=no
  169: ],[
  170:   ac_cv_crypt_blowfish=no
  171: ])])
  172: 
  173: AC_CACHE_CHECK(for SHA512 crypt, ac_cv_crypt_SHA512,[
  174: AC_TRY_RUN([
  175: #if HAVE_UNISTD_H
  176: #include <unistd.h>
  177: #endif
  178: 
  179: #if HAVE_CRYPT_H
  180: #include <crypt.h>
  181: #endif
  182: 
  183: main() {
  184: #if HAVE_CRYPT
  185:     char salt[30], answer[80];
  186:     
  187:     salt[0]='$'; salt[1]='6'; salt[2]='$'; salt[3]='$'; salt[4]='b'; salt[5]='a'; salt[6]='r'; salt[7]='\0';
  188:     strcpy(answer, salt);
  189:     strcpy(&answer[29],"$6$$QMXjqd7rHQZPQ1yHsXkQqC1FBzDiVfTHXL.LaeDAeVV.IzMaV9VU4MQ8kPuZa2SOP1A0RPm772EaFYjpEJtdu.");
  190:     exit (strcmp((char *)crypt("foo",salt),answer));
  191: #else
  192: 	exit(0);
  193: #endif
  194: }],[
  195:   ac_cv_crypt_SHA512=yes
  196: ],[
  197:   ac_cv_crypt_SHA512=no
  198: ],[
  199:   ac_cv_crypt_SHA512=no
  200: ])])
  201: 
  202: AC_CACHE_CHECK(for SHA256 crypt, ac_cv_crypt_SHA256,[
  203: AC_TRY_RUN([
  204: #if HAVE_UNISTD_H
  205: #include <unistd.h>
  206: #endif
  207: 
  208: #if HAVE_CRYPT_H
  209: #include <crypt.h>
  210: #endif
  211: 
  212: main() {
  213: #if HAVE_CRYPT
  214:     char salt[30], answer[80];
  215:     salt[0]='$'; salt[1]='5'; salt[2]='$'; salt[3]='$'; salt[4]='s'; salt[5]='a'; salt[6]='l'; salt[7]='t';  salt[8]='s'; salt[9]='t'; salt[10]='r'; salt[11]='i'; salt[12]='n'; salt[13]='g'; salt[14]='\0';    
  216:     strcat(salt,"");
  217:     strcpy(answer, salt);
  218:     strcpy(&answer[29], "$5$saltstring$5B8vYYiY.CVt1RlTTf8KbXBH3hsxY/GNooZaBBGWEc5");
  219:     exit (strcmp((char *)crypt("foo",salt),answer));
  220: #else
  221: 	exit(0);
  222: #endif
  223: }],[
  224:   ac_cv_crypt_SHA256=yes
  225: ],[
  226:   ac_cv_crypt_SHA256=no
  227: ],[
  228:   ac_cv_crypt_SHA256=no
  229: ])])
  230: 
  231: 
  232: dnl
  233: dnl If one of them is missing, use our own implementation, portable code is then possible
  234: dnl
  235: if test "$ac_cv_crypt_blowfish" = "no" || test "$ac_cv_crypt_des" = "no" || test "$ac_cv_crypt_ext_des" = "no" || test "x$php_crypt_r" = "x0"; then
  236: 
  237:   dnl
  238:   dnl Check for __alignof__ support in the compiler
  239:   dnl
  240:   AC_CACHE_CHECK(whether the compiler supports __alignof__, ac_cv_alignof_exists,[
  241:   AC_TRY_COMPILE([
  242:   ],[
  243:     int align = __alignof__(int);
  244:   ],[
  245:     ac_cv_alignof_exists=yes
  246:   ],[
  247:     ac_cv_alignof_exists=no
  248:   ])])
  249:   if test "$ac_cv_alignof_exists" = "yes"; then
  250:     AC_DEFINE([HAVE_ALIGNOF], 1, [whether the compiler supports __alignof__])
  251:   fi
  252: 
  253:   dnl 
  254:   dnl Check for __attribute__ ((__aligned__)) support in the compiler
  255:   dnl
  256:   AC_CACHE_CHECK(whether the compiler supports aligned attribute, ac_cv_attribute_aligned,[
  257:   AC_TRY_COMPILE([
  258:   ],[
  259:     unsigned char test[32] __attribute__ ((__aligned__ (__alignof__ (int))));
  260:   ],[
  261:     ac_cv_attribute_aligned=yes
  262:   ],[
  263:     ac_cv_attribute_aligned=no
  264:   ])])
  265:   if test "$ac_cv_attribute_aligned" = "yes"; then
  266:     AC_DEFINE([HAVE_ATTRIBUTE_ALIGNED], 1, [whether the compiler supports __attribute__ ((__aligned__))])
  267:   fi
  268:     
  269: 
  270:   AC_DEFINE_UNQUOTED(PHP_USE_PHP_CRYPT_R, 1, [Whether PHP has to use its own crypt_r for blowfish, des, ext des and md5])
  271:   AC_DEFINE_UNQUOTED(PHP_STD_DES_CRYPT, 1, [Whether the system supports standard DES salt])
  272:   AC_DEFINE_UNQUOTED(PHP_BLOWFISH_CRYPT, 1, [Whether the system supports BlowFish salt])
  273:   AC_DEFINE_UNQUOTED(PHP_EXT_DES_CRYPT, 1, [Whether the system supports extended DES salt])
  274:   AC_DEFINE_UNQUOTED(PHP_MD5_CRYPT, 1, [Whether the system supports MD5 salt])
  275:   AC_DEFINE_UNQUOTED(PHP_SHA512_CRYPT, 1, [Whether the system supports SHA512 salt])
  276:   AC_DEFINE_UNQUOTED(PHP_SHA256_CRYPT, 1, [Whether the system supports SHA256 salt])
  277: 
  278:   PHP_ADD_SOURCES(PHP_EXT_DIR(standard), crypt_freesec.c crypt_blowfish.c crypt_sha512.c crypt_sha256.c php_crypt_r.c)
  279: else
  280:   if test "$ac_cv_crypt_des" = "yes"; then
  281:     ac_result=1
  282:     ac_crypt_des=1
  283:   else
  284:     ac_result=0
  285:     ac_crypt_des=0
  286:   fi
  287:   AC_DEFINE_UNQUOTED(PHP_STD_DES_CRYPT, $ac_result, [Whether the system supports standard DES salt])
  288: 
  289:   if test "$ac_cv_crypt_blowfish" = "yes"; then
  290:     ac_result=1
  291:     ac_crypt_blowfish=1
  292:   else
  293:     ac_result=0
  294:     ac_crypt_blowfish=0
  295:   fi
  296:   AC_DEFINE_UNQUOTED(PHP_BLOWFISH_CRYPT, $ac_result, [Whether the system supports BlowFish salt])
  297: 
  298:   if test "$ac_cv_crypt_ext_des" = "yes"; then
  299:     ac_result=1
  300:     ac_crypt_edes=1
  301:   else
  302:     ac_result=0
  303:     ac_crypt_edes=0
  304:   fi
  305:   AC_DEFINE_UNQUOTED(PHP_EXT_DES_CRYPT, $ac_result, [Whether the system supports extended DES salt])
  306: 
  307:   if test "$ac_cv_crypt_md5" = "yes"; then
  308:     ac_result=1
  309:     ac_crypt_md5=1
  310:   else
  311:     ac_result=0
  312:     ac_crypt_md5=0
  313:   fi
  314:   AC_DEFINE_UNQUOTED(PHP_MD5_CRYPT, $ac_result, [Whether the system supports MD5 salt])  
  315:   
  316:   if test "$ac_cv_crypt_sha512" = "yes"; then
  317:     ac_result=1
  318:     ac_crypt_sha512=1
  319:   else
  320:     ac_result=0
  321:     ac_crypt_sha512=0
  322:   fi
  323:   AC_DEFINE_UNQUOTED(PHP_SHA512_CRYPT, $ac_result, [Whether the system supports SHA512 salt])
  324: 
  325:   if test "$ac_cv_crypt_sha256" = "yes"; then
  326:     ac_result=1
  327:     ac_crypt_sha256=1
  328:   else
  329:     ac_result=0
  330:     ac_crypt_sha256=0
  331:   fi
  332:   AC_DEFINE_UNQUOTED(PHP_SHA256_CRYPT, $ac_result, [Whether the system supports SHA256 salt])
  333: 
  334:   AC_DEFINE_UNQUOTED(PHP_USE_PHP_CRYPT_R, 0, [Whether PHP has to use its own crypt_r for blowfish, des and ext des])
  335: fi
  336: 
  337: dnl
  338: dnl Check for available functions
  339: dnl
  340: AC_CHECK_FUNCS(getcwd getwd asinh acosh atanh log1p hypot glob strfmon nice fpclass isinf isnan mempcpy strpncpy)
  341: AC_FUNC_FNMATCH	
  342: 
  343: dnl
  344: dnl Check if there is a support means of creating a new process
  345: dnl and defining which handles it receives
  346: dnl
  347: AC_CHECK_FUNCS(fork CreateProcess, [
  348:   php_can_support_proc_open=yes
  349:   break
  350: ],[
  351:   php_can_support_proc_open=no
  352: ])
  353: AC_MSG_CHECKING([if your OS can spawn processes with inherited handles])
  354: if test "$php_can_support_proc_open" = "yes"; then
  355:   AC_MSG_RESULT(yes)
  356:   AC_DEFINE(PHP_CAN_SUPPORT_PROC_OPEN,1, [Define if your system has fork/vfork/CreateProcess])
  357: else
  358:   AC_MSG_RESULT(no)
  359: fi
  360: 
  361: PHP_ENABLE_CHROOT_FUNC=no
  362: case "$PHP_SAPI" in
  363:   embed)
  364:     PHP_ENABLE_CHROOT_FUNC=yes
  365:   ;;
  366: 
  367:   none)
  368:     for PROG in $PHP_BINARIES; do
  369:       case "$PROG" in
  370:         cgi|cli)
  371:           PHP_ENABLE_CHROOT_FUNC=yes
  372:         ;;
  373: 
  374:         *)
  375:           PHP_ENABLE_CHROOT_FUNC=no
  376:           break
  377:         ;;
  378:       esac
  379:    done
  380:   ;;
  381: esac
  382: 
  383: if test "$PHP_ENABLE_CHROOT_FUNC" = "yes"; then
  384:   AC_DEFINE(ENABLE_CHROOT_FUNC, 1, [Whether to enable chroot() function])
  385: fi
  386: 
  387: dnl
  388: dnl Detect library functions needed by php dns_xxx functions
  389: dnl ext/standard/php_dns.h will collect these in a single define: HAVE_FULL_DNS_FUNCS
  390: dnl
  391: PHP_CHECK_FUNC(res_nsearch, resolv, bind, socket)
  392: PHP_CHECK_FUNC(dns_search, resolv, bind, socket)
  393: PHP_CHECK_FUNC(dn_expand, resolv, bind, socket)
  394: PHP_CHECK_FUNC(dn_skipname, resolv, bind, socket)
  395: 
  396: dnl
  397: dnl These are old deprecated functions
  398: dnl
  399: 
  400: PHP_CHECK_FUNC(res_search, resolv, bind, socket)
  401: 
  402: dnl
  403: dnl Check if atof() accepts NAN
  404: dnl
  405: AC_CACHE_CHECK(whether atof() accepts NAN, ac_cv_atof_accept_nan,[
  406: AC_TRY_RUN([
  407: #include <math.h>
  408: #include <stdlib.h>
  409: 
  410: #ifdef HAVE_ISNAN
  411: #define zend_isnan(a) isnan(a)
  412: #elif defined(HAVE_FPCLASS)
  413: #define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
  414: #else
  415: #define zend_isnan(a) 0
  416: #endif
  417: 
  418: int main(int argc, char** argv)
  419: {
  420: 	return zend_isnan(atof("NAN")) ? 0 : 1;
  421: }
  422: ],[
  423:   ac_cv_atof_accept_nan=yes
  424: ],[
  425:   ac_cv_atof_accept_nan=no
  426: ],[
  427:   ac_cv_atof_accept_nan=no
  428: ])])
  429: if test "$ac_cv_atof_accept_nan" = "yes"; then
  430:   AC_DEFINE([HAVE_ATOF_ACCEPTS_NAN], 1, [whether atof() accepts NAN])
  431: fi
  432: 
  433: dnl
  434: dnl Check if atof() accepts INF
  435: dnl
  436: AC_CACHE_CHECK(whether atof() accepts INF, ac_cv_atof_accept_inf,[
  437: AC_TRY_RUN([
  438: #include <math.h>
  439: #include <stdlib.h>
  440: 
  441: #ifdef HAVE_ISINF
  442: #define zend_isinf(a) isinf(a)
  443: #elif defined(INFINITY)
  444: /* Might not work, but is required by ISO C99 */
  445: #define zend_isinf(a) (((a)==INFINITY)?1:0)
  446: #elif defined(HAVE_FPCLASS)
  447: #define zend_isinf(a) ((fpclass(a) == FP_PINF) || (fpclass(a) == FP_NINF))
  448: #else
  449: #define zend_isinf(a) 0
  450: #endif
  451: 
  452: int main(int argc, char** argv)
  453: {
  454: 	return zend_isinf(atof("INF")) && zend_isinf(atof("-INF")) ? 0 : 1;
  455: }
  456: ],[
  457:   ac_cv_atof_accept_inf=yes
  458: ],[
  459:   ac_cv_atof_accept_inf=no
  460: ],[
  461:   ac_cv_atof_accept_inf=no
  462: ])])
  463: if test "$ac_cv_atof_accept_inf" = "yes"; then
  464:   AC_DEFINE([HAVE_ATOF_ACCEPTS_INF], 1, [whether atof() accepts INF])
  465: fi
  466: 
  467: dnl
  468: dnl Check if HUGE_VAL == INF
  469: dnl
  470: AC_CACHE_CHECK(whether HUGE_VAL == INF, ac_cv_huge_val_inf,[
  471: AC_TRY_RUN([
  472: #include <math.h>
  473: #include <stdlib.h>
  474: 
  475: #ifdef HAVE_ISINF
  476: #define zend_isinf(a) isinf(a)
  477: #elif defined(INFINITY)
  478: /* Might not work, but is required by ISO C99 */
  479: #define zend_isinf(a) (((a)==INFINITY)?1:0)
  480: #elif defined(HAVE_FPCLASS)
  481: #define zend_isinf(a) ((fpclass(a) == FP_PINF) || (fpclass(a) == FP_NINF))
  482: #else
  483: #define zend_isinf(a) 0
  484: #endif
  485: 
  486: int main(int argc, char** argv)
  487: {
  488: 	return zend_isinf(HUGE_VAL) ? 0 : 1;
  489: }
  490: ],[
  491:   ac_cv_huge_val_inf=yes
  492: ],[
  493:   ac_cv_huge_val_inf=no
  494: ],[
  495:   ac_cv_huge_val_inf=yes
  496: ])])
  497: dnl This is the most probable fallback so we assume yes in case of cross compile.
  498: if test "$ac_cv_huge_val_inf" = "yes"; then
  499:   AC_DEFINE([HAVE_HUGE_VAL_INF], 1, [whether HUGE_VAL == INF])
  500: fi
  501: 
  502: dnl
  503: dnl Check if HUGE_VAL + -HUGEVAL == NAN
  504: dnl
  505: AC_CACHE_CHECK(whether HUGE_VAL + -HUGEVAL == NAN, ac_cv_huge_val_nan,[
  506: AC_TRY_RUN([
  507: #include <math.h>
  508: #include <stdlib.h>
  509: 
  510: #ifdef HAVE_ISNAN
  511: #define zend_isnan(a) isnan(a)
  512: #elif defined(HAVE_FPCLASS)
  513: #define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
  514: #else
  515: #define zend_isnan(a) 0
  516: #endif
  517: 
  518: int main(int argc, char** argv)
  519: {
  520: #if defined(__sparc__) && !(__GNUC__ >= 3)
  521: 	/* prevent bug #27830 */
  522: 	return 1;
  523: #else
  524: 	return zend_isnan(HUGE_VAL + -HUGE_VAL) ? 0 : 1;
  525: #endif
  526: }
  527: ],[
  528:   ac_cv_huge_val_nan=yes
  529: ],[
  530:   ac_cv_huge_val_nan=no
  531: ],[
  532:   ac_cv_huge_val_nan=yes
  533: ])])
  534: dnl This is the most probable fallback so we assume yes in case of cross compile.
  535: if test "$ac_cv_huge_val_nan" = "yes"; then
  536:   AC_DEFINE([HAVE_HUGE_VAL_NAN], 1, [whether HUGE_VAL + -HUGEVAL == NAN])
  537: fi
  538: 
  539: dnl
  540: dnl Check for strptime()
  541: dnl
  542: AC_CACHE_CHECK(whether strptime() declaration fails, ac_cv_strptime_decl_fails,[
  543: AC_TRY_COMPILE([
  544: #include <time.h>
  545: ],[
  546: #ifndef HAVE_STRPTIME
  547: #error no strptime() on this platform
  548: #else
  549: /* use invalid strptime() declaration to see if it fails to compile */
  550: int strptime(const char *s, const char *format, struct tm *tm);
  551: #endif
  552: ],[
  553:   ac_cv_strptime_decl_fails=no
  554: ],[
  555:   ac_cv_strptime_decl_fails=yes
  556: ])])
  557: if test "$ac_cv_strptime_decl_fails" = "yes"; then
  558:   AC_DEFINE([HAVE_STRPTIME_DECL_FAILS], 1, [whether strptime() declaration fails])
  559: fi
  560: 
  561: dnl
  562: dnl Check for i18n capabilities
  563: dnl
  564: AC_CHECK_HEADERS([wchar.h])
  565: AC_CHECK_FUNCS([mblen])
  566: AC_CHECK_FUNCS([mbrlen mbsinit],,,[
  567: #ifdef HAVE_WCHAR_H
  568: # include <wchar.h>
  569: #endif
  570: ])
  571: AC_CACHE_CHECK([for mbstate_t], [ac_cv_type_mbstate_t],[
  572: AC_TRY_COMPILE([
  573: #ifdef HAVE_WCHAR_H
  574: # include <wchar.h>
  575: #endif
  576: ],[
  577: int __tmp__() { mbstate_t a; }
  578: ],[
  579:   ac_cv_type_mbstate_t=yes
  580: ],[
  581:   ac_cv_type_mbstate_t=no
  582: ])])
  583: if test "$ac_cv_type_mbstate_t" = "yes"; then
  584:   AC_DEFINE([HAVE_MBSTATE_T], 1, [Define if your system has mbstate_t in wchar.h])
  585: fi
  586: 
  587: dnl
  588: dnl Check for atomic operation API availability in Solaris
  589: dnl
  590: AC_CHECK_HEADERS([atomic.h])
  591: 
  592: dnl
  593: dnl Setup extension sources
  594: dnl
  595: PHP_NEW_EXTENSION(standard, array.c base64.c basic_functions.c browscap.c crc32.c crypt.c \
  596:                             cyr_convert.c datetime.c dir.c dl.c dns.c exec.c file.c filestat.c \
  597:                             flock_compat.c formatted_print.c fsock.c head.c html.c image.c \
  598:                             info.c iptc.c lcg.c link.c mail.c math.c md5.c metaphone.c \
  599:                             microtime.c pack.c pageinfo.c quot_print.c rand.c \
  600:                             soundex.c string.c scanf.c syslog.c type.c uniqid.c url.c \
  601:                             var.c versioning.c assert.c strnatcmp.c levenshtein.c \
  602:                             incomplete_class.c url_scanner_ex.c ftp_fopen_wrapper.c \
  603:                             http_fopen_wrapper.c php_fopen_wrapper.c credits.c css.c \
  604:                             var_unserializer.c ftok.c sha1.c user_filters.c uuencode.c \
  605:                             filters.c proc_open.c streamsfuncs.c http.c)
  606: 
  607: PHP_ADD_MAKEFILE_FRAGMENT
  608: PHP_INSTALL_HEADERS([ext/standard/])

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>