1 dnl Process this file with autoconf to produce a configure script.
7 [ --with-baseruby=RUBY use RUBY as baseruby; RUBY is the pathname of ruby],
14 AC_MSG_ERROR(need ruby)
21 test "`$BASERUBY -e 'p 42' 2>/dev/null`" = 42 ||
22 BASERUBY="echo executable host ruby is required. use --with-baseruby option.; false"
25 AC_DEFUN([RUBY_MINGW32],
28 AC_CACHE_CHECK(for mingw32 environment, rb_cv_mingw32,
33 ], rb_cv_mingw32=yes,rb_cv_mingw32=no)
35 test "$rb_cv_mingw32" = yes && target_os="mingw32"
39 AC_DEFUN([RUBY_CPPOUTFILE],
40 [AC_CACHE_CHECK(whether ${CPP} accepts -o, rb_cv_cppoutfile,
42 CPPFLAGS='-o conftest.i'
43 AC_TRY_CPP([], rb_cv_cppoutfile=yes, rb_cv_cppoutfile=no)
46 if test "$rb_cv_cppoutfile" = yes; then
47 CPPOUTFILE='-o conftest.i'
48 elif test "$rb_cv_cppoutfile" = no; then
49 CPPOUTFILE='> conftest.i'
50 elif test -n "$rb_cv_cppoutfile"; then
51 CPPOUTFILE="$rb_cv_cppoutfile"
53 AC_SUBST(CPPOUTFILE)])
55 AC_DEFUN([RUBY_PROG_GNU_LD],
56 [AC_CACHE_CHECK(whether the linker is GNU ld, rb_cv_prog_gnu_ld,
57 [if `$CC $CFLAGS $CPPFLAGS $LDFLAGS --print-prog-name=ld 2>&1` -v 2>&1 | grep "GNU ld" > /dev/null; then
63 GNU_LD=$rb_cv_prog_gnu_ld
67 rb_version=`grep RUBY_VERSION $srcdir/version.h`
68 MAJOR=`expr "$rb_version" : '#define RUBY_VERSION "\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*"'`
69 MINOR=`expr "$rb_version" : '#define RUBY_VERSION "[0-9][0-9]*\.\([0-9][0-9]*\)\.[0-9][0-9]*"'`
70 TEENY=`expr "$rb_version" : '#define RUBY_VERSION "[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\)"'`
71 if test "$MAJOR" = ""; then
72 AC_MSG_ERROR(could not determine MAJOR number from version.h)
74 if test "$MINOR" = ""; then
75 AC_MSG_ERROR(could not determine MINOR number from version.h)
77 if test "$TEENY" = ""; then
78 AC_MSG_ERROR(could not determine TEENY number from version.h)
83 dnl checks for alternative programs
84 AC_ARG_WITH(gcc, [ --without-gcc never use gcc], [
93 dnl If the user switches compilers, we can't believe the cache
94 if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
96 AC_MSG_ERROR(cached CC is different -- throw away $cache_file
97 (it is also a good idea to do 'make clean' before compiling))
100 if test "$program_prefix" = NONE; then
105 target_os=`echo $target_os | sed 's/linux-gnu$/linux/;s/linux-gnu/linux-/'`
106 ac_install_sh='' # unusable for extension libraries.
108 ifelse(currently,disabled, [
109 dnl checks for fat-binary
110 AC_ARG_ENABLE(fat-binary,
111 [ --enable-fat-binary=ARCHS
112 build an Apple/NeXT Multi Architecture Binary (MAB);
113 ARCHS is a comma-delimited list of architectures for
114 which to build; if ARCHS is omitted, then the package
115 will be built for all architectures supported by the
116 platform ("ppc" for MacOS/X and Darwin; "ppc,i386"
117 for Rhapsody; "m68k,i386,sparc" for OpenStep;
118 "m68k,i386,sparc,hppa" for NextStep); if this option
119 is disabled or omitted entirely, then the package
120 will be built only for the target platform],
121 [fat_binary=$enableval], [fat_binary=no])
122 if test "$fat_binary" != no; then
124 AC_MSG_CHECKING([target architectures])
126 # Respect TARGET_ARCHS setting from environment if available.
127 if test -z "$TARGET_ARCHS"; then
128 # Respect ARCH given to --enable-fat-binary if present.
129 if test "$fat_binary" != yes; then
130 TARGET_ARCHS=`echo "$fat_binary" | tr ',' ' '`
132 # Choose a default set of architectures based upon platform.
138 TARGET_ARCHS="ppc i386"
141 TARGET_ARCHS="m68k i386 sparc"
144 TARGET_ARCHS="m68k i386 sparc hppa"
152 AC_MSG_RESULT([$TARGET_ARCHS])
154 # /usr/lib/arch_tool -archify_list $TARGET_ARCHS
156 for archs in $TARGET_ARCHS
158 ARCH_FLAG="$ARCH_FLAG -arch $archs"
160 AC_DEFINE(NEXT_FAT_BINARY)
165 i?86) frame_address=yes;;
166 *) frame_address=no;;
168 AC_ARG_ENABLE(frame-address,
169 [ --enable-frame-address use GCC __builtin_frame_address(). ],
170 [frame_address=$enableval])
171 if test $frame_address = yes; then
172 AC_DEFINE(USE_BUILTIN_FRAME_ADDRESS)
177 dnl Checks for programs.
179 : ${CFLAGS=} ${cflags='${optflags} ${debugflags} ${warnflags}'}
180 : ${CXXFLAGS=} ${cxxflags='${optflags} ${debugflags} ${warnflags}'}
181 if test x"${build}" != x"${host}"; then
182 AC_CHECK_TOOL(CC, gcc)
186 AC_PROG_GCC_TRADITIONAL
187 test $ac_cv_prog_cc_g = yes && : ${debugflags=-g}
188 if test "$GCC" = yes; then
190 : ${optflags=-O2} ${warnflags="-Wall -Wno-parentheses"}
194 CFLAGS="${CFLAGS} `eval echo $cflags`"
195 CXXFLAGS="${CXXFLAGS} `eval echo $cxxflags`"
201 : ${COUTFLAG=${OUTFLAG}}
207 AC_CHECK_TOOL(RANLIB, ranlib, :)
208 AC_CHECK_TOOL(AR, ar)
209 if test -z "$AR"; then
210 AC_CHECK_PROGS(AR, aal, ar)
213 AC_CHECK_TOOL(AS, as)
219 AC_CHECK_TOOL(NM, nm)
220 AC_CHECK_TOOL(WINDRES, windres)
221 AC_CHECK_TOOL(DLLWRAP, dllwrap)
222 target_cpu=`echo $target_cpu | sed s/i.86/i386/`
225 test "$rb_cv_msvcrt" = "" && unset rb_cv_msvcrt
226 AC_CHECK_TOOL(OBJDUMP, objdump)
227 AC_CACHE_CHECK(for mingw32 runtime DLL, rb_cv_msvcrt, [
228 AC_TRY_LINK([#include <stdio.h>],
229 [FILE* volatile f = stdin; return 0;],
230 [rb_cv_msvcrt=`$OBJDUMP -p conftest$ac_exeext |
232 sed -n '/^[[ ]]*dll name: \(msvc.*\)\.dll$/{s//\1/p;q;}'`],
233 [rb_cv_msvcrt=msvcrt])
234 test "$rb_cv_msvcrt" = "" && rb_cv_msvcrt=msvcrt])
236 : ${enable_shared=yes}
239 AC_CHECK_TOOL(NM, nm, /usr/ccs/bin/nm, /usr/ccs/bin:$PATH)
242 # by TOYODA Eizi <toyoda@npd.kishou.go.jp>
243 AC_DEFINE(__HIUX_MPP__)
251 # checks for UNIX variants that set C preprocessor variables
252 AC_USE_SYSTEM_EXTENSIONS
254 AC_SUBST(RM, ['rm -f'])
259 MAKEDIRS='install -d'
263 dnl check for large file stuff
264 mv confdefs.h confdefs1.h
267 mv confdefs.h largefile.h
268 mv confdefs1.h confdefs.h
269 cat largefile.h >> confdefs.h
278 AC_CHECK_TYPES([long long, off_t])
280 AC_CHECK_SIZEOF(int, 4)
281 AC_CHECK_SIZEOF(short, 2)
282 AC_CHECK_SIZEOF(long, 4)
283 AC_CHECK_SIZEOF(long long, 0)
284 AC_CHECK_SIZEOF(__int64, 0)
285 AC_CHECK_SIZEOF(off_t, 0)
286 AC_CHECK_SIZEOF(void*, 4)
287 AC_CHECK_SIZEOF(float, 4)
288 AC_CHECK_SIZEOF(double, 8)
289 AC_CHECK_SIZEOF(time_t, 0)
291 dnl RUBY_REPLACE_TYPE [typename] [default type] [macro type] [included]
292 AC_DEFUN([RUBY_REPLACE_TYPE], [dnl
294 [AC_DEFINE_UNQUOTED(rb_[$1], [$1])],
295 [AC_DEFINE_UNQUOTED(rb_[$1], [$2])],
297 AC_CACHE_CHECK([for convertible type of [$1]], rb_cv_[$1]_convertible, [
300 [AC_LANG_BOOL_COMPILE_TRY([AC_INCLUDES_DEFAULT]
301 [$4], [(rb_[$1])-1 > 0])],
303 if test x"$t" = x; then
305 [AC_LANG_BOOL_COMPILE_TRY([AC_INCLUDES_DEFAULT]
306 [$4], [sizeof(rb_[$1]) > sizeof(long)])],
309 if test x"$t" = x; then
311 [AC_LANG_BOOL_COMPILE_TRY([AC_INCLUDES_DEFAULT]
312 [$4], [sizeof(rb_[$1]) == sizeof(long)])],
315 if test x"$t" = x; then
318 rb_cv_[$1]_convertible=${u}${t}])
319 AC_DEFINE_UNQUOTED([$3]2NUM[(v)], [${rb_cv_[$1]_convertible}2NUM(v)])
320 AC_DEFINE_UNQUOTED(NUM2[$3][(v)], [NUM2${rb_cv_[$1]_convertible}(v)])
322 RUBY_REPLACE_TYPE(pid_t, int, PIDT)
323 RUBY_REPLACE_TYPE(uid_t, int, UIDT)
324 RUBY_REPLACE_TYPE(gid_t, int, GIDT)
326 AC_CACHE_CHECK(for prototypes, rb_cv_have_prototypes,
327 [AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],
328 rb_cv_have_prototypes=yes,
329 rb_cv_have_prototypes=no)])
330 if test "$rb_cv_have_prototypes" = yes; then
331 AC_DEFINE(HAVE_PROTOTYPES)
334 AC_CACHE_CHECK(token paste string, rb_cv_tokenpaste,
335 [AC_TRY_COMPILE([#define paste(a,b) a##b],
336 [int xy = 1; return paste(x,y);],
337 rb_cv_tokenpaste=ansi,
338 rb_cv_tokenpaste=knr)])
339 if test "$rb_cv_tokenpaste" = ansi; then
340 AC_DEFINE(TOKEN_PASTE(x,y),[x##y])
342 AC_DEFINE(TOKEN_PASTE(x,y),[x/**/y])
345 AC_CACHE_CHECK(stringization, rb_cv_stringization, [
346 rb_cv_stringization=no
347 for string in "#expr" '"expr"'; do
349 AC_LANG_BOOL_COMPILE_TRY([
350 #define STRINGIZE0(expr) $string
351 #define STRINGIZE(expr) STRINGIZE0(expr)
352 #undef real_test_for_stringization
353 #define test_for_stringization -.real_test_for_stringization.-
354 const char stringized[[]] = STRINGIZE(test_for_stringization);
355 ], [sizeof(stringized) == 32])],
356 [rb_cv_stringization="$string"; break],
357 [rb_cv_stringization=no])
360 AC_DEFINE(STRINGIZE(expr),STRINGIZE0(expr))
361 if test x"$rb_cv_stringization" != xno -a "$rb_cv_stringization" != "#expr"; then
362 AC_DEFINE_UNQUOTED(STRINGIZE0(expr),$rb_cv_stringization)
363 AC_DEFINE(OLD_FASHIONED_STRINGIZATION,1)
366 AC_CACHE_CHECK([string literal concatenation],
367 rb_cv_string_literal_concatenation, [
369 AC_LANG_BOOL_COMPILE_TRY([
370 const char concatenated_literal[[]] = "literals" "to"
371 "be" "concatenated.";
372 ], [sizeof(concatenated_literal) == 26])],
373 [rb_cv_string_literal_concatenation=yes],
374 [rb_cv_string_literal_concatenation=no])]
376 if test "$rb_cv_string_literal_concatenation" = no; then
377 AC_DEFINE(NO_STRING_LITERAL_CONCATENATION,1)
380 AC_CACHE_CHECK(for variable length prototypes and stdarg.h, rb_cv_stdarg,
383 int foo(int x, ...) {
391 ], [return foo(10, "", 3.14);],
394 if test "$rb_cv_stdarg" = yes; then
395 AC_DEFINE(HAVE_STDARG_PROTOTYPES)
398 AC_CACHE_CHECK(for variable length macro, rb_cv_va_args_macro,
399 [AC_TRY_COMPILE([@%:@define FOO(a, ...) foo(a, @%:@@%:@__VA_ARGS__)],
400 [FOO(1);FOO(1,2);FOO(1,2,3);],
401 rb_cv_va_args_macro=yes,
402 rb_cv_va_args_macro=no)])
403 if test "$rb_cv_va_args_macro" = yes; then
404 AC_DEFINE(HAVE_VA_ARGS_MACRO)
407 AC_DEFUN([RUBY_FUNC_ATTRIBUTE], [dnl
409 [AS_VAR_PUSHDEF([attrib],[$2])], dnl
410 [AS_VAR_PUSHDEF([attrib],[FUNC_]AS_TR_CPP($1))] dnl
413 [AS_VAR_PUSHDEF([rbcv],[$3])], dnl
414 [AS_VAR_PUSHDEF([rbcv],[rb_cv_func_][$1])]dnl
416 AC_CACHE_CHECK(for [$1] function attribute, rbcv,
418 if test "${ac_c_werror_flag+set}"; then
419 rb_c_werror_flag="$ac_c_werror_flag"
421 unset rb_c_werror_flag
424 for mac in "__attribute__ (($1)) x" "x __attribute__ (($1))" "__declspec($1) x" x; do
426 [#define ]attrib[(x) $mac
427 ]attrib[(void conftest_attribute_check(void));], [],
428 [rbcv="$mac"; break])
430 if test "${rb_c_werror_flag+set}"; then
431 ac_c_werror_flag="$rb_c_werror_flag"
433 unset ac_c_werror_flag
436 AC_DEFINE_UNQUOTED(attrib[(x)], $rbcv)
437 AS_VAR_POPDEF([attrib])
438 AS_VAR_POPDEF([rbcv])
441 RUBY_FUNC_ATTRIBUTE(noreturn, NORETURN)
442 RUBY_FUNC_ATTRIBUTE(deprecated, DEPRECATED)
443 RUBY_FUNC_ATTRIBUTE(noinline, NOINLINE)
444 RUBY_FUNC_ATTRIBUTE(stdcall)
445 RUBY_FUNC_ATTRIBUTE(cdecl)
446 RUBY_FUNC_ATTRIBUTE(fastcall)
448 AC_CACHE_CHECK([for RUBY_EXTERN], rb_cv_ruby_extern,
449 [rb_cv_ruby_extern=no
450 for mac in "__attribute__((dllimport))" "__declspec(dllimport)"; do
452 [extern $mac void conftest(void);],
453 [rb_cv_ruby_extern="extern $mac"; break])
455 test "x$rb_cv_ruby_extern" = xno || AC_DEFINE_UNQUOTED(RUBY_EXTERN, $rb_cv_ruby_extern)
457 XCFLAGS="$XCFLAGS -DRUBY_EXPORT"
459 dnl Check whether we need to define sys_nerr locally
460 AC_CHECK_DECLS([sys_nerr], [], [], [$ac_includes_default
465 AC_CACHE_CHECK([whether pthread should be enabled by default],
466 rb_cv_enable_pthread_default,
468 #include <osreldate.h>
469 #if __FreeBSD_version < 502102
470 #error pthread should be disabled on this platform
473 rb_cv_enable_pthread_default=yes,
474 rb_cv_enable_pthread_default=no)])
475 enable_pthread_default=$rb_cv_enable_pthread_default
478 enable_pthread_default=no
481 enable_pthread_default=yes
485 AC_ARG_ENABLE(pthread,
486 [ --enable-pthread use pthread library.],
487 [enable_pthread=$enableval], [enable_pthread=$enable_pthread_default])
489 dnl Checks for libraries.
494 darwin*) LIBS="-lobjc $LIBS"
495 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE"
496 AC_TRY_CPP([#include <AvailabilityMacros.h>
497 #if MAC_OS_X_VERSION_MAX_ALLOWED <= 1040
499 [!<===== pre OS X 10.4 =====>]
503 test "x$target_cpu" = xppc && ac_cv_header_ucontext_h=no
506 AC_DEFINE(BROKEN_SETREUID, 1)
507 AC_DEFINE(BROKEN_SETREGID, 1)
510 hpux*) LIBS="-lm $LIBS"
512 human*) ac_cv_func_getpgrp_void=yes
513 ac_cv_func_setitimer=no
515 beos*|haiku*) ac_cv_func_link=no
516 ac_cv_func_sched_yield=no
517 ac_cv_func_pthread_attr_setinheritsched=no
519 beos*) ac_cv_header_net_socket_h=yes;;
520 haiku*) ac_cv_func_shutdown=no;;
522 LIBS="$LIBS" # m lib is include in root under BeOS/Haiku
525 mingw*) LIBS="-lshell32 -lws2_32 $LIBS"
526 ac_cv_header_a_out_h=no
527 ac_cv_header_pwd_h=no
528 ac_cv_header_utime_h=no
529 ac_cv_header_sys_ioctl_h=no
530 ac_cv_header_sys_param_h=no
531 ac_cv_header_sys_resource_h=no
532 ac_cv_header_sys_select_h=no
533 ac_cv_header_sys_time_h=no
534 ac_cv_header_sys_times_h=no
535 ac_cv_header_sys_socket_h=no
537 ac_cv_func_waitpid=yes
539 ac_cv_func_snprintf=yes
540 ac_cv_func_vsnprintf=yes
541 ac_cv_func_seekdir=yes
542 ac_cv_func_telldir=yes
545 ac_cv_func_finite=yes
547 ac_cv_func_truncate=yes
548 ac_cv_func_fseeko=yes
549 ac_cv_func_ftello=yes
550 ac_cv_lib_crypt_crypt=no
551 ac_cv_func_getpgrp_void=no
552 ac_cv_func_setpgrp_void=yes
553 ac_cv_func_memcmp_working=yes
554 ac_cv_lib_dl_dlopen=no
556 rb_cv_negative_time_t=no
559 os2-emx*) LIBS="-lm $LIBS"
560 ac_cv_lib_dir_opendir=no;;
561 msdosdjgpp*) LIBS="-lm $LIBS"
562 ac_cv_func_getpgrp_void=yes
563 ac_cv_func_setitimer=no
564 ac_cv_sizeof_rlim_t=4
566 ac_cv_func_setrlimit=no
567 ac_cv_header_sys_socket_h=no
569 bsdi*) LIBS="-lm $LIBS"
570 AC_DEFINE(BROKEN_SETREUID, 1)
571 AC_DEFINE(BROKEN_SETREGID, 1)
572 ac_cv_sizeof_rlim_t=8;;
573 freebsd*) LIBS="-lm $LIBS"
574 AC_CACHE_CHECK([whether -lxpg4 has to be linked],
575 rb_cv_lib_xpg4_needed,
577 #include <osreldate.h>
578 #if __FreeBSD_version < 400020 || \
579 (__FreeBSD_version >= 500000 && __FreeBSD_version < 500005)
583 rb_cv_lib_xpg4_needed=no,
584 rb_cv_lib_xpg4_needed=yes,
585 rb_cv_lib_xpg4_needed=yes)])
586 if test "$rb_cv_lib_xpg4_needed" = yes; then
587 AC_CHECK_LIB(xpg4, setlocale)
590 dragonfly*) LIBS="-lm $LIBS"
592 bow) ac_cv_func_setitimer=no
594 superux*) ac_cv_func_setitimer=no
596 *) LIBS="-lm $LIBS";;
598 AC_CHECK_LIB(crypt, crypt)
599 AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
600 AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
601 AC_CHECK_LIB(socket, socketpair) # SunOS/Solaris
602 AC_CHECK_LIB(rt, clock_gettime) # GNU/Linux
604 case "$target_cpu" in
605 alpha*) case "$target_os"::"$GCC" in
606 *::yes) CFLAGS="-mieee $CFLAGS" ;; # gcc
607 osf*) CFLAGS="-ieee $CFLAGS" ;; # ccc
611 ac_cv_header_net_socket_h=${ac_cv_header_net_socket_h=no}
612 if test "$ac_cv_header_net_socket_h" = yes; then
613 ac_cv_header_sys_socket_h=${ac_cv_header_sys_socket_h=no}
615 ac_cv_header_sys_socket_h=${ac_cv_header_sys_socket_h=yes}
618 dnl Checks for header files.
622 AC_CHECK_HEADERS(stdlib.h string.h unistd.h limits.h sys/file.h sys/ioctl.h sys/syscall.h\
623 fcntl.h sys/fcntl.h sys/select.h sys/time.h sys/times.h sys/param.h\
624 syscall.h pwd.h grp.h a.out.h utime.h memory.h direct.h sys/resource.h \
625 sys/mkdev.h sys/utime.h xti.h netinet/in_systm.h float.h ieeefp.h pthread.h \
626 ucontext.h intrinsics.h langinfo.h locale.h sys/sendfile.h time.h \
627 net/socket.h sys/socket.h)
629 dnl Check additional types.
630 AC_CHECK_SIZEOF(rlim_t, 0, [
631 #ifdef HAVE_SYS_TYPES_H
632 # include <sys/types.h>
634 #ifdef HAVE_SYS_TIME_H
635 # include <sys/time.h>
637 #ifdef HAVE_SYS_RESOURCE_H
638 # include <sys/resource.h>
646 dnl Checks for typedefs, structures, and compiler characteristics.
648 AC_CHECK_SIZEOF(size_t, 0)
649 AC_CHECK_SIZEOF(ptrdiff_t, $ac_cv_sizeof_size_t)
653 AC_CHECK_MEMBERS([struct stat.st_atim])
654 AC_CHECK_MEMBERS([struct stat.st_atimespec])
655 AC_CHECK_MEMBERS([struct stat.st_atimensec])
656 AC_CHECK_MEMBERS([struct stat.st_mtim])
657 AC_CHECK_MEMBERS([struct stat.st_mtimespec])
658 AC_CHECK_MEMBERS([struct stat.st_mtimensec])
659 AC_CHECK_MEMBERS([struct stat.st_ctim])
660 AC_CHECK_MEMBERS([struct stat.st_ctimespec])
661 AC_CHECK_MEMBERS([struct stat.st_ctimensec])
663 AC_CHECK_TYPES([struct timespec], [], [], [@%:@ifdef HAVE_TIME_H
667 AC_CHECK_TYPE(fd_mask, [AC_DEFINE(HAVE_RB_FD_INIT, 1)])
669 dnl RUBY_DEFINT TYPENAME, SIZE, [SIGNED-OR-UNSIGNED], [INCLUDES = DEFAULT-INCLUDES]
670 AC_DEFUN([RUBY_DEFINT], [dnl
671 AC_CACHE_CHECK([for $1], [rb_cv_type_$1],
672 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT([$4])
673 typedef $1 t; int s = sizeof(t) == 42;])],
675 [case m4_bmatch([$2], [^[1-9][0-9]*$], $2, [$ac_cv_sizeof_]AS_TR_SH($2)) in
676 "1") rb_cv_type_$1="m4_if([$3], [], [signed ], [$3 ])char";;
677 "$ac_cv_sizeof_short") rb_cv_type_$1="m4_if([$3], [], [], [$3 ])short";;
678 "$ac_cv_sizeof_int") rb_cv_type_$1="m4_if([$3], [], [], [$3 ])int";;
679 "$ac_cv_sizeof_long") rb_cv_type_$1="m4_if([$3], [], [], [$3 ])long";;
680 "$ac_cv_sizeof_long_long") rb_cv_type_$1="m4_if([$3], [], [], [$3 ])long long";;
681 "$ac_cv_sizeof___int64") rb_cv_type_$1="m4_if([$3], [], [], [$3 ])__int64";;
682 *) rb_cv_type_$1=no;;
684 if test "${rb_cv_type_$1}" != no; then
685 AC_DEFINE([HAVE_]AS_TR_CPP($1), 1)
686 test "${rb_cv_type_$1}" = yes || AC_DEFINE_UNQUOTED($1, [$rb_cv_type_$1])
690 RUBY_DEFINT(int8_t, 1)
691 RUBY_DEFINT(uint8_t, 1, unsigned)
692 RUBY_DEFINT(int16_t, 2)
693 RUBY_DEFINT(uint16_t, 2, unsigned)
694 RUBY_DEFINT(int32_t, 4)
695 RUBY_DEFINT(uint32_t, 4, unsigned)
696 RUBY_DEFINT(int64_t, 8)
697 RUBY_DEFINT(uint64_t, 8, unsigned)
698 RUBY_DEFINT(int128_t, 16)
699 RUBY_DEFINT(uint128_t, 16, unsigned)
700 RUBY_DEFINT(intptr_t, void*)
701 RUBY_DEFINT(uintptr_t, void*, unsigned)
702 RUBY_DEFINT(ssize_t, size_t) dnl may differ from int, so not use AC_TYPE_SSIZE_T.
704 AC_CACHE_CHECK(for stack end address, rb_cv_stack_end_address,
705 [rb_cv_stack_end_address=no
706 for addr in __libc_stack_end _SEND; do
708 [extern void *$addr;],
709 [if (!$addr) return 1;],
710 [rb_cv_stack_end_address="$addr"; break])
712 if test $rb_cv_stack_end_address != no; then
713 AC_DEFINE_UNQUOTED(STACK_END_ADDRESS, $rb_cv_stack_end_address)
716 dnl Checks for library functions.
719 case "${target_cpu}-${target_os}" in
721 AC_LIBSOURCES(alloca.c)
722 AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.${ac_objext}])
724 AC_DEFINE_UNQUOTED(alloca, alloca)
732 # http://sources.redhat.com/ml/libc-hacker/2005-08/msg00008.html
733 # Debian GNU/Linux Etch's libc6.1 2.3.6.ds1-13etch5 has this problem.
734 # Debian GNU/Linux Lenny's libc6.1 2.7-10 has no problem.
735 AC_CACHE_CHECK(for broken erfc of glibc-2.3.6 on IA64, rb_broken_glibc_ia64_erfc,
745 rb_broken_glibc_ia64_erfc=no,
746 rb_broken_glibc_ia64_erfc=yes,
747 rb_broken_glibc_ia64_erfc=no)])
748 case $rb_broken_glibc_ia64_erfc in
749 yes) ac_cv_func_erf=no;;
752 AC_REPLACE_FUNCS(dup2 memmove strerror strftime\
753 strchr strstr crypt flock vsnprintf\
754 isnan finite isinf hypot acosh erf tgamma lgamma_r cbrt \
756 AC_CHECK_FUNCS(fmod killpg wait4 waitpid fork spawnv syscall chroot fsync getcwd eaccess\
757 truncate ftruncate chsize times utimes utimensat fcntl lockf lstat\
758 link symlink readlink\
759 setitimer setruid seteuid setreuid setresuid setproctitle socketpair\
760 setrgid setegid setregid setresgid issetugid pause lchown lchmod\
761 getpgrp setpgrp getpgid setpgid initgroups getgroups setgroups\
762 getpriority getrlimit setrlimit sysconf group_member\
763 dlopen sigprocmask sigaction sigsetjmp _setjmp _longjmp vsnprintf snprintf\
764 setsid telldir seekdir fchmod cosh sinh tanh log2 round signbit\
765 setuid setgid daemon select_large_fdset setenv unsetenv\
766 mktime timegm clock_gettime gettimeofday\
767 pread sendfile shutdown)
769 AC_CACHE_CHECK(for __builtin_setjmp, ac_cv_func___builtin_setjmp,
770 [AC_TRY_LINK([@%:@include <setjmp.h>
771 jmp_buf jb; void t(v) int v; {__builtin_longjmp(jb, v);}],
772 [__builtin_setjmp(jb);],
773 [ac_cv_func___builtin_setjmp=yes],
774 [ac_cv_func___builtin_setjmp=no])
777 test x$ac_cv_func__longjmp = xno && ac_cv_func__setjmp=no
779 AC_MSG_CHECKING(for setjmp type)
780 AC_ARG_WITH(setjmp-type,
781 [ --with-setjmp-type select setjmp type], [
783 __builtin_setjmp) setjmp_prefix=__builtin_;;
784 _setjmp) setjmp_prefix=_;;
785 sigsetjmp) setjmp_prefix=sig;;
786 setjmp) setjmp_prefix=;;
787 '') unset setjmp_prefix;;
788 *) AC_MSG_ERROR(invalid setjmp type: $withval);;
789 esac], [unset setjmp_prefix])
790 if test ${setjmp_prefix+set}; then
791 if test "${setjmp_prefix}" && eval test '$ac_cv_func_'${setjmp_prefix}setjmp = no; then
792 AC_MSG_ERROR(${setjmp_prefix}setjmp is not available)
794 elif test "$ac_cv_func___builtin_setjmp" = yes; then
795 setjmp_prefix=__builtin_
796 elif test "$ac_cv_func__setjmp" = yes; then
798 elif test "$ac_cv_func_sigsetjmp" = yes; then
808 if test x$setjmp_prefix = xsig; then
813 AC_MSG_RESULT(${setjmp_prefix}setjmp)
814 AC_DEFINE_UNQUOTED([RUBY_SETJMP(env)], [${setjmp_prefix}setjmp(env${setjmp_sigmask+,0})])
815 AC_DEFINE_UNQUOTED([RUBY_LONGJMP(env,val)], [${setjmp_prefix}longjmp(env,val)])
816 AC_DEFINE_UNQUOTED(RUBY_JMP_BUF, ${setjmp_sigmask+${setjmp_prefix}}jmp_buf)
818 AC_ARG_ENABLE(setreuid,
819 [ --enable-setreuid use setreuid()/setregid() according to need even if obsolete.],
820 [use_setreuid=$enableval])
821 if test "$use_setreuid" = yes; then
822 AC_DEFINE(USE_SETREUID)
823 AC_DEFINE(USE_SETREGID)
826 AC_CACHE_CHECK(for struct tm.tm_gmtoff, rb_cv_member_struct_tm_tm_gmtoff,
827 [AC_TRY_COMPILE([#include <time.h>],
828 [struct tm t; t.tm_gmtoff = 3600;],
829 [rb_cv_member_struct_tm_tm_gmtoff=yes],
830 [rb_cv_member_struct_tm_tm_gmtoff=no])])
831 if test "$rb_cv_member_struct_tm_tm_gmtoff" = yes; then
832 AC_DEFINE(HAVE_STRUCT_TM_TM_GMTOFF)
834 AC_CACHE_CHECK(for external int daylight, rb_cv_have_daylight,
835 [AC_TRY_LINK([#include <time.h>
838 rb_cv_have_daylight=yes,
839 rb_cv_have_daylight=no)])
840 if test "$rb_cv_have_daylight" = yes; then
841 AC_DEFINE(HAVE_DAYLIGHT)
843 AC_DEFUN([RUBY_CHECK_VARTYPE], [dnl
844 AC_CACHE_CHECK([for external $1], rb_cv_var_$1,
847 #ifndef _XOPEN_SOURCE
848 #define _XOPEN_SOURCE 1
852 const volatile void *volatile t;],
856 #ifndef _XOPEN_SOURCE
857 #define _XOPEN_SOURCE 1
862 const volatile void *volatile t;],
864 [rb_cv_var_$1=$t; break])
866 if test "[$rb_cv_var_]$1" != no; then
867 AC_DEFINE([HAVE_VAR_]m4_toupper($1))
868 AC_DEFINE_UNQUOTED([TYPEOF_VAR_]m4_toupper($1), $rb_cv_var_$1)
870 RUBY_CHECK_VARTYPE(timezone, [@%:@include <time.h>], [long int])
871 RUBY_CHECK_VARTYPE(altzone, [@%:@include <time.h>], [long int])
872 if test "$rb_cv_var_timezone" = no; then
873 AC_CHECK_FUNCS(timezone)
874 if test "$ac_cv_func_timezone" = yes; then
875 AC_CACHE_CHECK([whether timezone requires zero arguments], rb_cv_func_timezone_void,
876 [AC_TRY_COMPILE([@%:@include <time.h>],
877 [(void)timezone(0, 0);],
878 [rb_cv_func_timezone_void=no],
879 [rb_cv_func_timezone_void=yes])]
881 if test $rb_cv_func_timezone_void = yes; then
882 AC_DEFINE(TIMEZONE_VOID)
887 AC_CACHE_CHECK(for negative time_t for gmtime(3), rb_cv_negative_time_t,
892 check(tm, y, m, d, h, s)
912 check(gmtime(&t), 69, 12, 31, 23, 59);
913 t = ~(time_t)0 << 31;
914 check(gmtime(&t), 1, 12, 13, 20, 52);
918 rb_cv_negative_time_t=yes,
919 rb_cv_negative_time_t=no,
920 rb_cv_negative_time_t=yes)])
921 if test "$rb_cv_negative_time_t" = yes; then
922 AC_DEFINE(NEGATIVE_TIME_T)
925 if test "$ac_cv_func_sigprocmask" = yes && test "$ac_cv_func_sigaction" = yes; then
926 AC_DEFINE(POSIX_SIGNAL)
928 AC_CHECK_FUNCS(sigsetmask)
929 AC_CACHE_CHECK(for BSD signal semantics, rb_cv_bsd_signal,
943 signal(SIGINT, sig_handler);
944 kill(getpid(), SIGINT);
945 kill(getpid(), SIGINT);
949 rb_cv_bsd_signal=yes,
951 rb_cv_bsd_signal=$ac_cv_func_sigsetmask)])
952 if test "$rb_cv_bsd_signal" = yes; then
953 AC_DEFINE(BSD_SIGNAL)
966 if test x"$target_cpu" = xia64; then
968 AC_CACHE_CHECK(for __libc_ia64_register_backing_store_base,
969 rb_cv___libc_ia64_register_backing_store_base,
970 [rb_cv___libc_ia64_register_backing_store_base=no
972 [extern unsigned long __libc_ia64_register_backing_store_base;],
973 [unsigned long p = __libc_ia64_register_backing_store_base;
974 printf("%ld\n", p);],
975 [rb_cv___libc_ia64_register_backing_store_base=yes])])
976 if test $rb_cv___libc_ia64_register_backing_store_base = yes; then
977 AC_DEFINE(HAVE___LIBC_IA64_REGISTER_BACKING_STORE_BASE)
981 AC_CACHE_CHECK(whether right shift preserve sign bit, rb_cv_rshift_sign,
991 rb_cv_rshift_sign=yes,
992 rb_cv_rshift_sign=no,
993 rb_cv_rshift_sign=yes)])
994 if test "$rb_cv_rshift_sign" = yes; then
995 AC_DEFINE(RSHIFT(x,y), ((x)>>(int)y))
997 AC_DEFINE(RSHIFT(x,y), (((x)<0) ? ~((~(x))>>y) : (x)>>y))
1000 AC_MSG_CHECKING(read count field in FILE structures)
1001 AC_CACHE_VAL(rb_cv_fcnt,
1007 _rcount dnl for emx0.9c
1009 AC_TRY_COMPILE([#include <stdio.h>
1011 [FILE *f = stdin; f->$fcnt = 0;],
1012 rb_cv_fcnt="$fcnt"; break,
1013 rb_cv_fcnt="not found")
1015 if test "$rb_cv_fcnt" = "not found"; then
1016 AC_MSG_RESULT([not found(OK if using GNU libc)])
1018 AC_MSG_RESULT($rb_cv_fcnt)
1019 AC_DEFINE_UNQUOTED(FILE_COUNT, $rb_cv_fcnt)
1022 AC_MSG_CHECKING(read buffer ptr field in FILE structures)
1023 AC_CACHE_VAL(rb_cv_frptr,
1031 AC_TRY_COMPILE([#include <stdio.h>
1033 [FILE *f = stdin; char buf[256]; f->$frptr = buf;],
1034 rb_cv_frptr="$frptr"; break,
1035 rb_cv_frptr="not found")
1037 if test "$rb_cv_frptr" = "not found"; then
1038 AC_MSG_RESULT([not found])
1040 AC_MSG_RESULT($rb_cv_frptr)
1041 AC_DEFINE_UNQUOTED(FILE_READPTR, $rb_cv_frptr)
1043 if test "$rb_cv_fcnt" = "not found"; then
1044 AC_MSG_CHECKING(read buffer end field in FILE structures)
1045 AC_CACHE_VAL(rb_cv_frend,
1050 AC_TRY_COMPILE([#include <stdio.h>
1052 [FILE *f = stdin; char buf[256]; f->$frend = buf;],
1053 rb_cv_frend="$frend"; break,
1054 rb_cv_frend="not found")
1056 if test "$rb_cv_frend" = "not found"; then
1057 AC_MSG_RESULT([not found])
1059 AC_MSG_RESULT($rb_cv_frend)
1060 AC_DEFINE_UNQUOTED(FILE_READEND, $rb_cv_frend)
1065 AC_CACHE_CHECK([whether st_ino is huge], rb_cv_huge_st_ino,
1066 [AC_COMPILE_IFELSE([AC_LANG_BOOL_COMPILE_TRY([
1067 #include <sys/stat.h>
1068 struct stat test_stat;
1069 ], [sizeof(test_stat.st_ino)>sizeof(long)])],
1070 rb_cv_huge_st_ino=yes,
1071 rb_cv_huge_st_ino=no)
1073 if test $rb_cv_huge_st_ino = yes; then
1074 AC_DEFINE(HUGE_ST_INO)
1077 if test "$ac_cv_func_sysconf" = yes; then
1078 AC_DEFUN([RUBY_CHECK_SYSCONF], [dnl
1079 AC_CACHE_CHECK([whether _SC_$1 is supported], rb_cv_have_sc_[]m4_tolower($1),
1080 [AC_TRY_COMPILE([#include <unistd.h>
1083 rb_cv_have_sc_[]m4_tolower($1)=yes,
1084 rb_cv_have_sc_[]m4_tolower($1)=no)
1086 if test "$rb_cv_have_sc_[]m4_tolower($1)" = yes; then
1087 AC_DEFINE(HAVE__SC_$1)
1090 RUBY_CHECK_SYSCONF(CLK_TCK)
1093 case "$target_cpu" in
1094 m68*|i?86|ia64|sparc*|alpha*) rb_cv_stack_grow_dir=-1;;
1095 hppa*) rb_cv_stack_grow_dir=+1;;
1097 AC_CACHE_CHECK(stack growing direction, rb_cv_stack_grow_dir,
1099 /* recurse to get rid of inlining */
1101 stack_growup_p(addr, n)
1102 volatile int *addr, n;
1106 return *addr = stack_growup_p(addr, n - 1);
1108 return (&end > addr);
1113 return stack_growup_p(&x, 10);
1115 ], rb_cv_stack_grow_dir=-1, rb_cv_stack_grow_dir=+1, rb_cv_stack_grow_dir=0)])
1116 AC_DEFINE_UNQUOTED(STACK_GROW_DIRECTION, $rb_cv_stack_grow_dir)
1118 if test x"$enable_pthread" = xyes; then
1119 for pthread_lib in thr pthread pthreads c c_r root; do
1120 AC_CHECK_LIB($pthread_lib, pthread_kill,
1121 rb_with_pthread=yes, rb_with_pthread=no)
1122 if test "$rb_with_pthread" = "yes"; then break; fi
1124 if test x"$rb_with_pthread" = xyes; then
1125 AC_DEFINE(_REENTRANT)
1126 AC_DEFINE(_THREAD_SAFE)
1127 AC_DEFINE(HAVE_LIBPTHREAD)
1128 case $pthread_lib in
1134 MAINLIBS="-pthread $MAINLIBS"
1137 LIBS="-l$pthread_lib $LIBS"
1141 AC_MSG_WARN("Don't know how to find pthread library on your system -- thread support disabled")
1143 AC_CHECK_FUNCS(nanosleep sched_yield pthread_attr_setinheritsched)
1144 if test x"$ac_cv_func_nanosleep" = xno; then
1145 AC_CHECK_LIB(rt, nanosleep)
1146 if test x"$ac_cv_lib_rt_nanosleep" = xyes; then
1147 AC_DEFINE(HAVE_NANOSLEEP)
1151 if test x"$ac_cv_header_ucontext_h" = xyes; then
1152 if test x"$rb_with_pthread" = xyes; then
1153 AC_CHECK_FUNCS(getcontext setcontext)
1157 if test "$ac_cv_func_fork" = "yes" -a "$rb_with_pthread" = "yes"; then
1158 AC_CACHE_CHECK([if fork works with pthread], rb_cv_fork_with_pthread,
1162 #include <pthread.h>
1164 #include <sys/types.h>
1165 #include <sys/wait.h>
1167 #ifndef EXIT_SUCCESS
1168 #define EXIT_SUCCESS 0
1170 #ifndef EXIT_FAILURE
1171 #define EXIT_FAILURE 1
1175 thread_func(void *dmy)
1184 if (pthread_create(&tid, 0, thread_func, 0) != 0) {
1187 if (pthread_join(tid, 0) != 0) {
1194 main(int argc, char *argv[])
1197 if (use_threads()) return EXIT_FAILURE;
1203 if (waitpid(pid, &loc, WNOHANG) == 0) {
1205 return EXIT_FAILURE;
1209 if (use_threads()) return EXIT_FAILURE;
1212 return EXIT_SUCCESS;
1214 rb_cv_fork_with_pthread=yes,
1215 rb_cv_fork_with_pthread=no,
1216 rb_cv_fork_with_pthread=yes)])
1217 test x$rb_cv_fork_with_pthread = xyes || AC_DEFINE(CANNOT_FORK_WITH_PTHREAD)
1220 AC_CHECK_FUNCS(backtrace)
1222 AC_ARG_WITH(valgrind,
1223 [ --with-valgrind enable valgrind memcheck support.],
1224 [AC_CHECK_HEADERS(valgrind/memcheck.h)])
1226 dnl wheather use dln_a_out or not
1227 AC_ARG_WITH(dln-a-out,
1228 [ --with-dln-a-out use dln_a_out if possible], [
1230 yes) with_dln_a_out=yes;;
1231 *) with_dln_a_out=no;;
1232 esac], [with_dln_a_out=no])
1234 AC_CACHE_CHECK(whether ELF binaries are produced, rb_cv_binary_elf,
1236 /* Test for whether ELF binaries are produced */
1241 int i=open("conftest",O_RDONLY);
1244 if(read(i,&buffer[0],4)<4)
1246 if(buffer[0] != 127 || buffer[1] != 'E' ||
1247 buffer[2] != 'L' || buffer[3] != 'F')
1249 exit(0); /* succeed (yes, it's ELF) */
1252 rb_cv_binary_elf=yes,
1253 rb_cv_binary_elf=no,
1254 rb_cv_binary_elf=yes)])
1256 if test "$rb_cv_binary_elf" = yes; then
1260 case "$target_os" in
1261 linux* | gnu* | k*bsd*-gnu | bsdi*)
1262 if test "$rb_cv_binary_elf" = no; then
1265 LDFLAGS="$LDFLAGS -rdynamic"
1270 AC_SUBST(DLDFLAGS)dnl
1271 AC_SUBST(ARCH_FLAG)dnl
1274 AC_SUBST(CCDLFLAGS)dnl
1275 AC_SUBST(LDSHARED)dnl
1276 AC_SUBST(LDSHAREDXX)dnl
1282 : ${LIBPATHFLAG=' -L%s'}
1285 if test "$with_dln_a_out" != yes; then
1286 rb_cv_dlopen=unknown
1287 AC_MSG_CHECKING(whether OS depend dynamic link works)
1288 if test "$GCC" = yes; then
1289 case "$target_os" in
1290 nextstep*) CCDLFLAGS="$CCDLFLAGS -fno-common";;
1291 openstep*) CCDLFLAGS="$CCDLFLAGS -fno-common";;
1292 rhapsody*) CCDLFLAGS="$CCDLFLAGS -fno-common";;
1293 darwin*) CCDLFLAGS="$CCDLFLAGS -fno-common";;
1294 human*|bsdi*|beos*|haiku*|cygwin*|mingw*|aix*|interix*) ;;
1295 *) CCDLFLAGS="$CCDLFLAGS -fPIC";;
1298 case "$target_os" in
1299 hpux*) CCDLFLAGS="$CCDLFLAGS +Z";;
1300 solaris*|irix*) CCDLFLAGS="$CCDLFLAGS -KPIC" ;;
1301 sunos*) CCDLFLAGS="$CCDLFLAGS -PIC" ;;
1302 esix*|uxpds*) CCDLFLAGS="$CCDLFLAGS -KPIC" ;;
1303 *) : ${CCDLFLAGS=""} ;;
1308 AC_ARG_ENABLE(rpath,
1309 [ --disable-rpath embed run path into extension libraries.],
1310 [enable_rpath=$enableval], [enable_rpath="$rb_cv_binary_elf"])
1311 if test "$enable_rpath" = yes; then
1312 LIBPATHFLAG=" -L%1\$-s"
1313 RPATHFLAG=" ${linker_flag}-R%1\$-s"
1316 case "$target_os" in
1317 hpux*) DLDFLAGS="$DLDFLAGS -E"
1318 : ${LDSHARED='ld -b'}
1319 XLDFLAGS="$XLDFLAGS -Wl,-E"
1320 : ${LIBPATHENV=SHLIB_PATH}
1321 if test "$rb_cv_prog_gnu_ld" = no; then
1322 RPATHFLAG=' +b %1$-s'
1325 solaris*) if test "$GCC" = yes; then
1326 : ${LDSHARED='$(CC) -shared'}
1327 if test "$rb_cv_prog_gnu_ld" = yes; then
1328 LDFLAGS="$LDFLAGS -Wl,-E"
1331 : ${LDSHARED='ld -G'}
1334 sunos*) : ${LDSHARED='ld -assert nodefinitions'}
1336 irix*) : ${LDSHARED='ld -shared'}
1338 sysv4*) : ${LDSHARED='ld -G'}
1340 nto-qnx*) : ${LDSHARED="qcc -shared"}
1342 esix*|uxpds*) : ${LDSHARED="ld -G"}
1344 osf*) : ${LDSHARED="ld -shared -expect_unresolved \"*\""}
1346 bsdi3*) case "$CC" in
1347 *shlicc*) : ${LDSHARED="$CC -r"}
1350 linux* | gnu* | k*bsd*-gnu | netbsd* | bsdi*)
1351 : ${LDSHARED='${CC} -shared'}
1352 if test "$rb_cv_binary_elf" = yes; then
1353 LDFLAGS="$LDFLAGS -Wl,-export-dynamic"
1356 interix*) : ${LDSHARED="$CC -shared"}
1357 XLDFLAGS="$XLDFLAGS -Wl,-E"
1358 LIBPATHFLAG=" -L%1\$-s"
1360 freebsd*|dragonfly*) : ${LDSHARED="$CC -shared"}
1361 if test "$rb_cv_binary_elf" = yes; then
1362 LDFLAGS="$LDFLAGS -rdynamic"
1363 DLDFLAGS="$DLDFLAGS "'-Wl,-soname,$(.TARGET)'
1365 test "$GCC" = yes && test "$rb_cv_prog_gnu_ld" = yes || LDSHARED="ld -Bshareable"
1368 openbsd*) : ${LDSHARED="\$(CC) -shared ${CCDLFLAGS}"}
1369 if test "$rb_cv_binary_elf" = yes; then
1370 LDFLAGS="$LDFLAGS -Wl,-E"
1373 nextstep*) : ${LDSHARED='cc -r -nostdlib'}
1374 LDFLAGS="$LDFLAGS -u libsys_s"
1376 openstep*) : ${LDSHARED='cc -dynamic -bundle -undefined suppress'}
1379 rhapsody*) : ${LDSHARED='cc -dynamic -bundle -undefined suppress'}
1382 darwin*) : ${LDSHARED='cc -dynamic -bundle -undefined suppress -flat_namespace'}
1384 : ${LIBPATHENV=DYLD_LIBRARY_PATH}
1386 aix*) if test "$GCC" = yes; then
1387 : ${LDSHARED='$(CC) -shared'}
1389 : ${LDSHARED='$(CC)'}
1391 LDSHARED="$LDSHARED ${linker_flag}-G"
1392 DLDFLAGS='-eInit_$(TARGET)'
1393 XLDFLAGS="${linker_flag}-bE:ruby.imp ${linker_flag}-brtl"
1394 : ${ARCHFILE="ruby.imp"}
1395 TRY_LINK='$(CC) $(LDFLAGS) -oconftest $(INCFLAGS) -I$(hdrdir) $(CPPFLAGS)'
1396 TRY_LINK="$TRY_LINK"' $(CFLAGS) $(src) $(LIBPATH) $(LOCAL_LIBS) $(LIBS)'
1397 : ${LIBPATHENV=SHLIB_PATH}
1399 human*) : ${DLDFLAGS=''}
1402 : ${LINK_SO='ar cru $@ $(OBJS)'}
1404 beos*) case "$target_cpu" in
1406 : ${LDSHARED="ld -xms"}
1407 DLDFLAGS="$DLDFLAGS "'-export Init_$(TARGET) -lbe -lroot glue-noinit.a init_term_dyn.o start_dyn.o'
1410 : ${LDSHARED="ld -shared"}
1411 DLDFLAGS="$DLDFLAGS -L/boot/develop/lib/x86 -lbe -lroot"
1414 : ${LIBPATHENV=LIBRARY_PATH}
1416 haiku*) case "$target_cpu" in
1418 : ${LDSHARED="ld -xms"}
1419 DLDFLAGS="$DLDFLAGS "'-export Init_$(TARGET) -lbe -lroot glue-noinit.a init_term_dyn.o start_dyn.o'
1422 : ${LDSHARED="ld -shared"}
1423 DLDFLAGS="$DLDFLAGS -L/boot/develop/lib/x86 -lbe -lroot"
1426 : ${LIBPATHENV=LIBRARY_PATH}
1428 nto-qnx*) DLDFLAGS="$DLDFLAGS -L/lib -L/usr/lib -L/usr/local/lib"
1429 : ${LDSHARED='ld -Bshareable -x'}
1430 LDFLAGS="$LDFLAGS -L/lib -L/usr/lib -L/usr/local/lib"
1432 cygwin*|mingw*) : ${LDSHARED="${CC} -shared -s"}
1433 XLDFLAGS="$XLDFLAGS -Wl,--stack,0x00200000"
1434 DLDFLAGS="${DLDFLAGS} -Wl,--enable-auto-image-base,--enable-auto-import,--export-all"
1437 hiuxmpp) : ${LDSHARED='ld -r'} ;;
1438 atheos*) : ${LDSHARED="$CC -shared"}
1440 os2-emx*) LDFLAGS="$LDFLAGS -Zbsd-signals"
1442 *) : ${LDSHARED='ld'} ;;
1444 AC_MSG_RESULT($rb_cv_dlopen)
1446 if test "${LDSHAREDXX}" = ""; then
1447 case "${LDSHARED}" in
1449 LDSHAREDXX=`echo "${LDSHARED}" | sed 's/\$(CC)/$(CXX)/'`
1452 LDSHAREDXX=`echo "${LDSHARED}" | sed 's/\${CC}/${CXX}/'`
1455 LDSHAREDXX=`echo "${LDSHARED}" | sed "s|$CC|$CXX|"`
1463 AC_SUBST(LIBPATHFLAG)
1465 AC_SUBST(LIBPATHENV, "${LIBPATHENV-LD_LIBRARY_PATH}")
1469 if test "$ac_cv_header_a_out_h" = yes; then
1470 if test "$with_dln_a_out" = yes || test "$rb_cv_dlopen" = unknown; then
1471 cat confdefs.h > config.h
1472 AC_CACHE_CHECK(whether matz's dln works, rb_cv_dln_a_out,
1474 #define USE_DLN_A_OUT
1478 rb_cv_dln_a_out=yes,
1479 rb_cv_dln_a_out=no)])
1480 if test "$rb_cv_dln_a_out" = yes; then
1482 AC_DEFINE(USE_DLN_A_OUT)
1487 if test "$dln_a_out_works" = yes; then
1488 if test "$GCC" = yes; then
1496 case "$target_os" in
1498 nextstep*) DLEXT=bundle;;
1499 openstep*) DLEXT=bundle;;
1500 rhapsody*) DLEXT=bundle;;
1501 darwin*) DLEXT=bundle;;
1502 os2-emx*) DLEXT=dll;;
1503 cygwin*|mingw*) DLEXT=so;;
1508 n=`expr "$DLEXT" : '.*'`; test "$n" -gt "$len" && len=$n
1509 n=`expr "$DLEXT2" : '.*'`; test "$n" -gt "$len" && len=$n
1510 AC_DEFINE_UNQUOTED(DLEXT_MAXLEN, `expr $len + 1`)
1511 test ".$DLEXT" = "." || AC_DEFINE_UNQUOTED(DLEXT, ".$DLEXT")
1512 test ".$DLEXT2" = "." || AC_DEFINE_UNQUOTED(DLEXT2, ".$DLEXT2")
1516 if test "$with_dln_a_out" = yes; then
1522 case "$target_os" in
1523 linux* | gnu* | k*bsd*-gnu)
1524 STRIP='strip -S -x';;
1526 STRIP='strip -A -n';;
1528 STRIP='strip -A -n';;
1530 STRIP='strip -A -n';;
1532 STRIP='strip -A -n';;
1536 AC_SUBST(EXTSTATIC)dnl
1537 AC_ARG_WITH(static-linked-ext,
1538 [ --with-static-linked-ext link external modules statically],
1545 case "$target_os" in
1547 AC_CHECK_LIB(signal, _harderr)
1548 AC_CHECK_LIB(hmem, hmemset)
1549 AC_CHECK_FUNCS(select)
1550 AC_CACHE_CHECK(whether PD libc _dtos18 fail to convert big number,
1551 rb_cv_missing__dtos18,
1553 changequote(<<, >>)dnl
1559 sprintf (buf, "%g", 1e+300);
1560 exit (strcmp (buf, "1e+300") ? 0 : 1);
1563 changequote([, ])dnl
1564 rb_cv_missing__dtos18=yes, rb_cv_missing__dtos18=no, rb_cv_missing__dtos18=no)])
1565 if test "$rb_cv_missing__dtos18" = yes; then
1566 AC_DEFINE(MISSING__DTOS18)
1568 AC_CACHE_CHECK(whether PD libc fconvert fail to round,
1569 rb_cv_missing_fconvert,
1571 changequote(<<, >>)dnl
1578 sprintf (buf, "%f", log(exp(1.0)));
1579 exit (strcmp (buf, "1.000000") ? 0 : 1);
1582 changequote([, ])dnl
1583 rb_cv_missing_fconvert=yes, rb_cv_missing_fconvert=no, rb_cv_missing_fconvert=no)])
1584 if test "$rb_cv_missing_fconvert" = yes; then
1585 AC_DEFINE(MISSING_FCONVERT)
1588 CFLAGS="$CFLAGS -fansi-only"
1589 XCFLAGS="$XCFLAGS -cc1-stack=262144 -cpp-stack=2694144"
1594 dnl OS/2 environment w/ Autoconf 2.1x for EMX
1609 if test "$prefix" = NONE; then
1610 prefix=$ac_default_prefix
1613 #if test "$fat_binary" != no ; then
1614 # CFLAGS="$CFLAGS $ARCH_FLAG"
1617 if test x"$cross_compiling" = xyes; then
1618 test x"$MINIRUBY" = x && MINIRUBY="${RUBY-ruby} -I`pwd` -rfake"
1620 RUNRUBY='$(MINIRUBY) -I`cd $(srcdir)/lib; pwd`'
1622 MINIRUBY='./miniruby$(EXEEXT) -I$(srcdir)/lib'
1623 MINIRUBY="$MINIRUBY"' -I$(EXTOUT)/common -I./- -r$(srcdir)/ext/purelib.rb'
1624 PREP='miniruby$(EXEEXT)'
1625 RUNRUBY='$(MINIRUBY) $(srcdir)/runruby.rb --extout=$(EXTOUT)'
1630 AC_SUBST(EXTOUT, [${EXTOUT=.ext}])
1633 LIBRUBY_A='lib$(RUBY_SO_NAME)-static.a'
1634 LIBRUBY='$(LIBRUBY_A)'
1635 LIBRUBYARG_STATIC='-l$(RUBY_SO_NAME)-static'
1636 LIBRUBYARG='$(LIBRUBYARG_STATIC)'
1639 case "$target_os" in
1640 cygwin*|mingw*|beos*|haiku*|openstep*|nextstep*|rhapsody*|darwin*|os2-emx*)
1644 DLDLIBS="$DLDLIBS -lc"
1648 RUBY_SO_NAME='$(RUBY_INSTALL_NAME)'
1649 LIBRUBY_LDSHARED=$LDSHARED
1650 LIBRUBY_DLDFLAGS=$DLDFLAGS
1651 LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR).$(TEENY)'
1652 LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so'
1655 AC_ARG_ENABLE(shared,
1656 [ --enable-shared build a shared library for Ruby. ],
1657 [enable_shared=$enableval])
1658 if test "$enable_shared" = 'yes'; then
1659 LIBRUBY='$(LIBRUBY_SO)'
1660 LIBRUBYARG_SHARED='-l$(RUBY_SO_NAME)'
1661 LIBRUBYARG='$(LIBRUBYARG_SHARED)'
1662 CFLAGS="$CFLAGS $CCDLFLAGS"
1664 if test "$rb_cv_binary_elf" = yes; then
1667 case "$target_os" in
1669 LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).so'
1671 linux* | gnu* | k*bsd*-gnu | atheos*)
1672 LIBRUBY_DLDFLAGS='-Wl,-soname,lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR)'
1673 LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).so'
1675 freebsd*|dragonfly*)
1677 LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR)'
1678 if test "$rb_cv_binary_elf" != "yes" ; then
1679 LIBRUBY_SO="$LIBRUBY_SO.\$(TEENY)"
1685 LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR).$(TEENY)'
1686 LIBRUBY_DLDFLAGS='-Wl,-soname,lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR)'
1687 if test "$rb_cv_binary_elf" = yes; then # ELF platforms
1688 LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR) lib$(RUBY_SO_NAME).so'
1689 else # a.out platforms
1695 LIBRUBY_SO='lib$(RUBY_INSTALL_NAME).so.$(MAJOR).'`expr ${MINOR} \* 10 + ${TEENY}`
1699 LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR)'
1700 LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR).$(TEENY) lib$(RUBY_SO_NAME).so'
1701 if test "$GCC" = yes; then
1702 LIBRUBY_DLDFLAGS="$DLDFLAGS "'-Wl,-h,$(@F)'
1704 XLDFLAGS="$XLDFLAGS "'-R${libdir}'
1707 XLDFLAGS="$XLDFLAGS "'-Wl,+s,+b,$(libdir)'
1708 LIBRUBY_SO='lib$(RUBY_SO_NAME).sl.$(MAJOR).$(MINOR).$(TEENY)'
1709 LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).sl.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).sl'
1712 LIBRUBY_DLDFLAGS="${linker_flag}-bnoentry $XLDFLAGS"
1713 LIBRUBYARG_SHARED='-L${libdir} -l${RUBY_SO_NAME}'
1717 case "$target_cpu" in
1719 LIBRUBY_DLDFLAGS='-f ruby.exp -lnet -lbe -lroot glue-noinit.a init_term_dyn.o start_dyn.o'
1724 LIBRUBY_SO='lib$(RUBY_SO_NAME).$(MAJOR).$(MINOR).$(TEENY).dylib'
1725 LIBRUBY_LDSHARED='cc -dynamiclib -undefined suppress -flat_namespace'
1726 LIBRUBY_DLDFLAGS='-install_name $(libdir)/lib$(RUBY_SO_NAME).dylib -current_version $(MAJOR).$(MINOR).$(TEENY) -compatibility_version $(MAJOR).$(MINOR)'
1727 LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).$(MAJOR).$(MINOR).dylib lib$(RUBY_SO_NAME).dylib'
1730 LIBRUBYARG_SHARED='-L. -L${libdir} -l$(RUBY_SO_NAME)'
1736 if test "$enable_rpath" = yes; then
1737 LIBRUBYARG_SHARED="${linker_flag}-R ${linker_flag}\$(libdir) -L\$(libdir) $LIBRUBYARG_SHARED"
1740 LDFLAGS="-L. $LDFLAGS"
1743 dnl build rdoc index if requested
1745 AC_ARG_ENABLE(install-doc,
1746 [ --disable-install-doc do not install rdoc indexes during install ],
1747 [install_doc=$enableval], [install_doc=yes])
1748 if test "$install_doc" != no; then
1749 RDOCTARGET="install-doc"
1751 AC_SUBST(RDOCTARGET)
1753 if test "$rb_with_pthread" = "yes"; then
1754 THREAD_MODEL=pthread
1757 case "$target_os" in
1761 CFLAGS="$CFLAGS -pipe"
1763 nextstep*|openstep*)
1764 # The -fno-common is needed if we wish to embed the Ruby interpreter
1765 # into a plugin module of some project (as opposed to embedding it
1766 # within the project's application). The -I/usr/local/include is
1767 # needed because CPP as discovered by configure (cc -E -traditional)
1768 # fails to consult /usr/local/include by default. This causes
1769 # mkmf.rb's have_header() to fail if the desired resource happens to be
1770 # installed in the /usr/local tree.
1771 CFLAGS="$CFLAGS -pipe -fno-common"
1772 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
1775 CFLAGS="$CFLAGS -pipe -no-precomp -fno-common"
1778 CFLAGS="$CFLAGS -pipe -fno-common"
1782 CFLAGS="$CFLAGS -DOS2 -Zmts"
1783 LIBRUBY_A=`echo $LIBRUBY_A | sed 's/^lib//'`
1784 LIBRUBY_SO=`echo $LIBRUBY_SO | sed 's/^lib//'`
1785 LIBRUBY_ALIASES=`for i in $LIBRUBY_ALIASES; do echo "$i"; done | sed 's/^lib//'`
1788 if test "$GCC" != "yes" ; then
1789 # compile something small: taint.c is fine for this.
1790 # the main point is the '-v' flag of 'cc'.
1791 case "`cc -v -I. -c main.c -o /tmp/main.o 2>&1`" in
1792 */gemc_cc*) # we have the new DEC GEM CC
1793 CFLAGS="$CFLAGS -oldc"
1795 *) # we have the old MIPS CC
1800 CFLAGS="$CFLAGS -std"
1804 case "$target_cpu" in
1806 CFLAGS="$CFLAGS -relax_pointers"
1811 LIBRUBY_DLDFLAGS="${DLDFLAGS}"' -Wl,--out-implib=$(LIBRUBY)'
1812 case "$target_os" in
1814 if test x"$enable_shared" = xyes; then
1815 LIBRUBY_SO='cyg$(RUBY_SO_NAME)'${MAJOR}${MINOR}${TEENY}.dll
1819 RUBY_SO_NAME=${rb_cv_msvcrt}-'$(RUBY_INSTALL_NAME)'${MAJOR}${MINOR}${TEENY}
1820 if test x"$enable_shared" = xyes; then
1821 LIBRUBY_SO='$(RUBY_SO_NAME)'.dll
1822 LIBRUBY_DLDFLAGS="${LIBRUBY_DLDFLAGS}"' $(RUBYDEF)'
1826 # COMMON_MACROS="WIN32_LEAN_AND_MEAN="
1827 COMMON_HEADERS="winsock2.h windows.h"
1832 FIRSTMAKEFILE=GNUmakefile:cygwin/GNUmakefile.in
1834 if test x"$enable_shared" = xyes; then
1835 LIBRUBY='lib$(RUBY_SO_NAME).dll.a'
1838 LIBRUBY='lib$(RUBY_SO_NAME).a'
1839 LIBRUBYARG='-l$(RUBY_SO_NAME)'
1846 XCFLAGS="$XCFLAGS -DYYMAXDEPTH=300"
1847 YACC="$YACC -Nl40000 -Nm40000"
1855 MINIOBJS="$MINIDLNOBJ"
1858 *msdosdjgpp*) FIRSTMAKEFILE=GNUmakefile:djgpp/GNUmakefile.in;;
1861 CPPFLAGS="$CPPFLAGS "'$(DEFS)'
1862 test -z "$CPPFLAGS" || CPPFLAGS="$CPPFLAGS "; CPPFLAGS="$CPPFLAGS"'${cppflags}'
1863 cflagspat=`eval echo '"'"${cflags}"'"' | sed 's/[][|.*]/\\&/g'`
1864 CFLAGS=`echo "$CFLAGS" | sed "s|$cflagspat"'|${cflags}|'`
1865 cxxflagspat=`eval echo '"'"${cxxflags}"'"' | sed 's/[][|.*]/\\&/g'`
1866 CXXFLAGS=`echo "$CXXFLAGS" | sed "s|$cxxflagspat"'|${cxxflags}|'`
1867 AC_SUBST(cppflags, [])dnl
1868 AC_SUBST(cflags, ['${optflags} ${debugflags} ${warnflags}'])dnl
1869 AC_SUBST(optflags)dnl
1870 AC_SUBST(debugflags)dnl
1871 AC_SUBST(warnflags)dnl
1872 AC_SUBST(XCFLAGS)dnl
1873 AC_SUBST(XLDFLAGS)dnl
1874 AC_SUBST(LIBRUBY_LDSHARED)
1875 AC_SUBST(LIBRUBY_DLDFLAGS)
1876 AC_SUBST(RUBY_INSTALL_NAME)
1877 AC_SUBST(rubyw_install_name)
1878 AC_SUBST(RUBYW_INSTALL_NAME)
1879 AC_SUBST(RUBY_SO_NAME)
1881 AC_SUBST(LIBRUBY_SO)
1882 AC_SUBST(LIBRUBY_ALIASES)
1884 AC_SUBST(LIBRUBYARG)
1885 AC_SUBST(LIBRUBYARG_STATIC)
1886 AC_SUBST(LIBRUBYARG_SHARED)
1889 AC_SUBST(ENABLE_SHARED)
1891 AC_SUBST(COMMON_LIBS)
1892 AC_SUBST(COMMON_MACROS)
1893 AC_SUBST(COMMON_HEADERS)
1894 AC_SUBST(EXPORT_PREFIX)
1896 AC_SUBST(THREAD_MODEL)
1898 MAKEFILES="Makefile `echo $FIRSTMAKEFILE | sed 's/:.*//'`"
1899 MAKEFILES="`echo $MAKEFILES`"
1903 test "$program_prefix" != NONE &&
1904 ri_prefix=$program_prefix
1907 test "$program_suffix" != NONE &&
1908 ri_suffix=$program_suffix
1910 RUBY_INSTALL_NAME="${ri_prefix}ruby${ri_suffix}"
1911 case "$target_os" in
1913 RUBYW_INSTALL_NAME="${ri_prefix}rubyw${ri_suffix}"
1914 rubyw_install_name="$RUBYW_INSTALL_NAME"
1917 RUBY_LIB_PREFIX=`eval echo \\"${libdir}/ruby\\"`
1919 AC_ARG_WITH(ruby-version,
1920 [ --with-ruby-version=STR ruby version string for version specific directories [[full]] (full|minor|STR)],
1921 [ruby_version=$withval],
1922 [ruby_version=full])
1923 case "$ruby_version" in
1925 ruby_version="${MAJOR}.${MINOR}.${TEENY}"
1928 ruby_version="${MAJOR}.${MINOR}"
1932 AC_ARG_WITH(sitedir,
1933 [ --with-sitedir=DIR site libraries in DIR [[LIBDIR/ruby/site_ruby]]],
1935 [sitedir='${libdir}/ruby/site_ruby'])
1936 SITE_DIR=`eval echo \\"${sitedir}\\"`
1938 AC_ARG_WITH(vendordir,
1939 [ --with-vendordir=DIR vendor libraries in DIR [[LIBDIR/ruby/vendor_ruby]]],
1940 [vendordir=$withval],
1941 [vendordir='${libdir}/ruby/vendor_ruby'])
1942 VENDOR_DIR=`eval echo \\"${vendordir}\\"`
1944 case "$target_os" in
1945 cygwin*|mingw*|*djgpp*|os2-emx*)
1946 RUBY_LIB_PREFIX="`eval echo "$RUBY_LIB_PREFIX" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`"
1947 RUBY_SITE_LIB_PATH="`eval echo "$SITE_DIR" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`"
1948 RUBY_VENDOR_LIB_PATH="`eval echo "$VENDOR_DIR" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`"
1951 RUBY_LIB_PREFIX="`eval echo \\"$RUBY_LIB_PREFIX\\" | sed 's|^NONE/|'"$prefix"'/|'`"
1952 RUBY_SITE_LIB_PATH="`eval echo \\"$SITE_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`"
1953 RUBY_VENDOR_LIB_PATH="`eval echo \\"$VENDOR_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`"
1956 RUBY_LIB_PATH="${RUBY_LIB_PREFIX}/${ruby_version}"
1957 RUBY_SITE_LIB_PATH2="${RUBY_SITE_LIB_PATH}/${ruby_version}"
1958 RUBY_VENDOR_LIB_PATH2="${RUBY_VENDOR_LIB_PATH}/${ruby_version}"
1960 AC_DEFINE_UNQUOTED(RUBY_LIB, "${RUBY_LIB_PATH}")
1961 AC_DEFINE_UNQUOTED(RUBY_SITE_LIB, "${RUBY_SITE_LIB_PATH}")
1962 AC_DEFINE_UNQUOTED(RUBY_SITE_LIB2, "${RUBY_SITE_LIB_PATH2}")
1963 AC_DEFINE_UNQUOTED(RUBY_VENDOR_LIB, "${RUBY_VENDOR_LIB_PATH}")
1964 AC_DEFINE_UNQUOTED(RUBY_VENDOR_LIB2, "${RUBY_VENDOR_LIB_PATH2}")
1967 AC_SUBST(sitearch)dnl
1968 AC_SUBST(ruby_version)dnl
1969 AC_SUBST(sitedir)dnl
1970 AC_SUBST(vendordir)dnl
1972 configure_args=$ac_configure_args
1973 AC_SUBST(configure_args)dnl
1975 if test "$fat_binary" != no ; then
1976 arch="fat-${target_os}"
1978 AC_DEFINE_UNQUOTED(RUBY_THIN_ARCHLIB,
1979 "${RUBY_LIB_PATH}/" __ARCHITECTURE__ "-${target_os}")
1981 AC_DEFINE_UNQUOTED(RUBY_SITE_THIN_ARCHLIB,
1982 "${RUBY_SITE_LIB_PATH}/" __ARCHITECTURE__ "-${target_os}")
1983 AC_DEFINE_UNQUOTED(RUBY_VENDOR_THIN_ARCHLIB,
1984 "${RUBY_VENDOR_LIB_PATH}/" __ARCHITECTURE__ "-${target_os}")
1985 AC_DEFINE_UNQUOTED(RUBY_PLATFORM, __ARCHITECTURE__ "-${target_os}")
1987 arch="${target_cpu}-${target_os}"
1988 AC_DEFINE_UNQUOTED(RUBY_PLATFORM, "${arch}")
1991 case "$target_os" in
1992 mingw*) sitearch="$target_cpu-$rb_cv_msvcrt" ;;
1993 *) sitearch="${arch}" ;;
1996 AC_DEFINE_UNQUOTED(RUBY_ARCHLIB, "${RUBY_LIB_PATH}/${arch}")
1997 AC_DEFINE_UNQUOTED(RUBY_SITE_ARCHLIB, "${RUBY_SITE_LIB_PATH2}/${sitearch}")
1998 AC_DEFINE_UNQUOTED(RUBY_VENDOR_ARCHLIB, "${RUBY_VENDOR_LIB_PATH2}/${sitearch}")
2000 AC_ARG_WITH(search-path,
2001 [ --with-search-path=DIR specify the additional search path],
2002 [search_path=$withval])
2003 if test "$search_path" != ""; then
2004 AC_DEFINE_UNQUOTED(RUBY_SEARCH_PATH,"$search_path")
2007 AC_ARG_WITH(rubyhdrdir,
2008 [ --with-ruby-hdrdir=DIR core headers in DIR [INCLUDEDIR]],
2009 [rubyhdrdir=$withval],
2010 [rubyhdrdir='${includedir}/ruby-${ruby_version}'])
2012 AC_ARG_WITH(sitehdrdir,
2013 [ --with-site-hdrdir=DIR core headers in DIR [INCLUDEDIR]],
2014 [sitehdrdir=$withval],
2015 [sitehdrdir='${rubyhdrdir}/site_ruby'])
2017 AC_ARG_WITH(vendorhdrdir,
2018 [ --with-vendor-hdrdir=DIR core headers in DIR [INCLUDEDIR]],
2019 [vendorhdrdir=$withval],
2020 [vendorhdrdir='${rubyhdrdir}/vendor_ruby'])
2022 AC_SUBST(rubyhdrdir)dnl
2023 AC_SUBST(sitehdrdir)dnl
2024 AC_SUBST(vendorhdrdir)dnl
2026 AC_ARG_WITH(mantype,
2027 [ --with-mantype=TYPE specify man page type; TYPE is one of man and doc],
2034 AC_MSG_ERROR(invalid man type: $withval)
2038 if test -z "$MANTYPE"; then
2039 AC_PATH_PROGS(NROFF, nroff awf, /bin/false, "/usr/bin:/usr/ucb")
2040 if ${NROFF} -mdoc ${srcdir}/ruby.1 >/dev/null 2>&1; then
2048 arch_hdrdir="${EXTOUT}/include/${arch}/ruby"
2049 $MAKEDIRS "${arch_hdrdir}"
2050 config_h="${arch_hdrdir}/config.h"
2051 if test -f "${config_h}" && tr -d '\015' < confdefs.h | cmp -s "${config_h}" -; then
2052 echo "config.h unchanged"
2054 echo "creating config.h"
2055 tr -d '\015' < confdefs.h > "${config_h}"
2057 tr -d '\015' < largefile.h > confdefs.h
2060 BUILTIN_ENCS=["`sed -n -e '/^BUILTIN_ENCS[ ]*=/{' \
2061 -e s/// -e :l -e '/\\\\$/N' -e 's/\\\\\\n/ /' -e 't l' -e p \
2062 -e '}' "${srcdir}/enc/Makefile.in"`"]
2064 for e in $BUILTIN_ENCS; do BUILTIN_ENCOBJS="$BUILTIN_ENCOBJS `basename $e .c`"'.$(OBJEXT)'; done
2065 AC_SUBST(BUILTIN_ENCOBJS)
2067 AC_CONFIG_FILES($FIRSTMAKEFILE)
2068 AC_CONFIG_FILES(Makefile, [{
2069 sed '/^MISSING/s/\$U\././g' Makefile
2070 echo; test x"$EXEEXT" = x || echo 'miniruby: miniruby$(EXEEXT)'
2071 test "$RUBY_INSTALL_NAME$EXEEXT" = ruby || echo 'ruby: $(PROGRAM);'
2072 sed ['s/{\$([^(){}]*)[^{}]*}//g'] ${srcdir}/common.mk
2073 } >> confmk$$.tmp && mv -f confmk$$.tmp Makefile],
2074 [RUBY_INSTALL_NAME=$RUBY_INSTALL_NAME EXEEXT=$EXEEXT])