Annotation of embedaddon/php/ext/standard/config.m4, revision 1.1.1.3

1.1.1.2   misho       1: dnl $Id$ -*- autoconf -*-
1.1       misho       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: 
1.1.1.3 ! misho     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
1.1       misho     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>