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_cv_broken_glibc_ia64_erfc,
745 rb_cv_broken_glibc_ia64_erfc=no,
746 rb_cv_broken_glibc_ia64_erfc=yes,
747 rb_cv_broken_glibc_ia64_erfc=no)])
748 case $rb_cv_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,
982 [AC_COMPILE_IFELSE(AC_LANG_BOOL_COMPILE_TRY([], [(-1==(-1>>1))]),
983 rb_cv_rshift_sign=yes,
984 rb_cv_rshift_sign=no)])
985 if test "$rb_cv_rshift_sign" = yes; then
986 AC_DEFINE(RSHIFT(x,y), ((x)>>(int)y))
988 AC_DEFINE(RSHIFT(x,y), (((x)<0) ? ~((~(x))>>y) : (x)>>y))
991 AC_MSG_CHECKING(read count field in FILE structures)
992 AC_CACHE_VAL(rb_cv_fcnt,
998 _rcount dnl for emx0.9c
1000 AC_TRY_COMPILE([#include <stdio.h>
1002 [FILE *f = stdin; f->$fcnt = 0;],
1003 rb_cv_fcnt="$fcnt"; break,
1004 rb_cv_fcnt="not found")
1006 if test "$rb_cv_fcnt" = "not found"; then
1007 AC_MSG_RESULT([not found(OK if using GNU libc)])
1009 AC_MSG_RESULT($rb_cv_fcnt)
1010 AC_DEFINE_UNQUOTED(FILE_COUNT, $rb_cv_fcnt)
1013 AC_MSG_CHECKING(read buffer ptr field in FILE structures)
1014 AC_CACHE_VAL(rb_cv_frptr,
1022 AC_TRY_COMPILE([#include <stdio.h>
1024 [FILE *f = stdin; char buf[256]; f->$frptr = buf;],
1025 rb_cv_frptr="$frptr"; break,
1026 rb_cv_frptr="not found")
1028 if test "$rb_cv_frptr" = "not found"; then
1029 AC_MSG_RESULT([not found])
1031 AC_MSG_RESULT($rb_cv_frptr)
1032 AC_DEFINE_UNQUOTED(FILE_READPTR, $rb_cv_frptr)
1034 if test "$rb_cv_fcnt" = "not found"; then
1035 AC_MSG_CHECKING(read buffer end field in FILE structures)
1036 AC_CACHE_VAL(rb_cv_frend,
1041 AC_TRY_COMPILE([#include <stdio.h>
1043 [FILE *f = stdin; char buf[256]; f->$frend = buf;],
1044 rb_cv_frend="$frend"; break,
1045 rb_cv_frend="not found")
1047 if test "$rb_cv_frend" = "not found"; then
1048 AC_MSG_RESULT([not found])
1050 AC_MSG_RESULT($rb_cv_frend)
1051 AC_DEFINE_UNQUOTED(FILE_READEND, $rb_cv_frend)
1056 AC_CACHE_CHECK([whether st_ino is huge], rb_cv_huge_st_ino,
1057 [AC_COMPILE_IFELSE([AC_LANG_BOOL_COMPILE_TRY([
1058 #include <sys/stat.h>
1059 struct stat test_stat;
1060 ], [sizeof(test_stat.st_ino)>sizeof(long)])],
1061 rb_cv_huge_st_ino=yes,
1062 rb_cv_huge_st_ino=no)
1064 if test $rb_cv_huge_st_ino = yes; then
1065 AC_DEFINE(HUGE_ST_INO)
1068 if test "$ac_cv_func_sysconf" = yes; then
1069 AC_DEFUN([RUBY_CHECK_SYSCONF], [dnl
1070 AC_CACHE_CHECK([whether _SC_$1 is supported], rb_cv_have_sc_[]m4_tolower($1),
1071 [AC_TRY_COMPILE([#include <unistd.h>
1074 rb_cv_have_sc_[]m4_tolower($1)=yes,
1075 rb_cv_have_sc_[]m4_tolower($1)=no)
1077 if test "$rb_cv_have_sc_[]m4_tolower($1)" = yes; then
1078 AC_DEFINE(HAVE__SC_$1)
1081 RUBY_CHECK_SYSCONF(CLK_TCK)
1084 case "$target_cpu" in
1085 m68*|i?86|ia64|sparc*|alpha*) rb_cv_stack_grow_dir=-1;;
1086 hppa*) rb_cv_stack_grow_dir=+1;;
1088 AC_CACHE_CHECK(stack growing direction, rb_cv_stack_grow_dir,
1090 /* recurse to get rid of inlining */
1092 stack_growup_p(addr, n)
1093 volatile int *addr, n;
1097 return *addr = stack_growup_p(addr, n - 1);
1099 return (&end > addr);
1104 return stack_growup_p(&x, 10);
1106 ], rb_cv_stack_grow_dir=-1, rb_cv_stack_grow_dir=+1, rb_cv_stack_grow_dir=0)])
1107 AC_DEFINE_UNQUOTED(STACK_GROW_DIRECTION, $rb_cv_stack_grow_dir)
1109 if test x"$enable_pthread" = xyes; then
1110 for pthread_lib in thr pthread pthreads c c_r root; do
1111 AC_CHECK_LIB($pthread_lib, pthread_kill,
1112 rb_with_pthread=yes, rb_with_pthread=no)
1113 if test "$rb_with_pthread" = "yes"; then break; fi
1115 if test x"$rb_with_pthread" = xyes; then
1116 AC_DEFINE(_REENTRANT)
1117 AC_DEFINE(_THREAD_SAFE)
1118 AC_DEFINE(HAVE_LIBPTHREAD)
1119 case $pthread_lib in
1125 MAINLIBS="-pthread $MAINLIBS"
1128 LIBS="-l$pthread_lib $LIBS"
1132 AC_MSG_WARN("Don't know how to find pthread library on your system -- thread support disabled")
1134 AC_CHECK_FUNCS(nanosleep sched_yield pthread_attr_setinheritsched)
1135 if test x"$ac_cv_func_nanosleep" = xno; then
1136 AC_CHECK_LIB(rt, nanosleep)
1137 if test x"$ac_cv_lib_rt_nanosleep" = xyes; then
1138 AC_DEFINE(HAVE_NANOSLEEP)
1142 if test x"$ac_cv_header_ucontext_h" = xyes; then
1143 if test x"$rb_with_pthread" = xyes; then
1144 AC_CHECK_FUNCS(getcontext setcontext)
1148 if test "$ac_cv_func_fork" = "yes" -a "$rb_with_pthread" = "yes"; then
1149 AC_CACHE_CHECK([if fork works with pthread], rb_cv_fork_with_pthread,
1153 #include <pthread.h>
1155 #include <sys/types.h>
1156 #include <sys/wait.h>
1158 #ifndef EXIT_SUCCESS
1159 #define EXIT_SUCCESS 0
1161 #ifndef EXIT_FAILURE
1162 #define EXIT_FAILURE 1
1166 thread_func(void *dmy)
1175 if (pthread_create(&tid, 0, thread_func, 0) != 0) {
1178 if (pthread_join(tid, 0) != 0) {
1185 main(int argc, char *argv[])
1188 if (use_threads()) return EXIT_FAILURE;
1194 if (waitpid(pid, &loc, WNOHANG) == 0) {
1196 return EXIT_FAILURE;
1200 if (use_threads()) return EXIT_FAILURE;
1203 return EXIT_SUCCESS;
1205 rb_cv_fork_with_pthread=yes,
1206 rb_cv_fork_with_pthread=no,
1207 rb_cv_fork_with_pthread=yes)])
1208 test x$rb_cv_fork_with_pthread = xyes || AC_DEFINE(CANNOT_FORK_WITH_PTHREAD)
1211 AC_CHECK_FUNCS(backtrace)
1213 AC_ARG_WITH(valgrind,
1214 [ --with-valgrind enable valgrind memcheck support.],
1215 [AC_CHECK_HEADERS(valgrind/memcheck.h)])
1217 dnl wheather use dln_a_out or not
1218 AC_ARG_WITH(dln-a-out,
1219 [ --with-dln-a-out use dln_a_out if possible], [
1221 yes) with_dln_a_out=yes;;
1222 *) with_dln_a_out=no;;
1223 esac], [with_dln_a_out=no])
1225 AC_CACHE_CHECK(whether ELF binaries are produced, rb_cv_binary_elf,
1226 [AC_TRY_LINK([],[], [
1227 case "`head -1 conftest$EXEEXT | cat -e`" in
1230 rb_cv_binary_elf=yes;;
1233 rb_cv_binary_elf=no;;
1235 rb_cv_binary_elf=no)])
1237 if test "$rb_cv_binary_elf" = yes; then
1241 case "$target_os" in
1242 linux* | gnu* | k*bsd*-gnu | bsdi*)
1243 if test "$rb_cv_binary_elf" = no; then
1246 LDFLAGS="$LDFLAGS -rdynamic"
1251 AC_SUBST(DLDFLAGS)dnl
1252 AC_SUBST(ARCH_FLAG)dnl
1255 AC_SUBST(CCDLFLAGS)dnl
1256 AC_SUBST(LDSHARED)dnl
1257 AC_SUBST(LDSHAREDXX)dnl
1263 : ${LIBPATHFLAG=' -L%s'}
1266 if test "$with_dln_a_out" != yes; then
1267 rb_cv_dlopen=unknown
1268 AC_MSG_CHECKING(whether OS depend dynamic link works)
1269 if test "$GCC" = yes; then
1270 case "$target_os" in
1271 nextstep*) CCDLFLAGS="$CCDLFLAGS -fno-common";;
1272 openstep*) CCDLFLAGS="$CCDLFLAGS -fno-common";;
1273 rhapsody*) CCDLFLAGS="$CCDLFLAGS -fno-common";;
1274 darwin*) CCDLFLAGS="$CCDLFLAGS -fno-common";;
1275 human*|bsdi*|beos*|haiku*|cygwin*|mingw*|aix*|interix*) ;;
1276 *) CCDLFLAGS="$CCDLFLAGS -fPIC";;
1279 case "$target_os" in
1280 hpux*) CCDLFLAGS="$CCDLFLAGS +Z";;
1281 solaris*|irix*) CCDLFLAGS="$CCDLFLAGS -KPIC" ;;
1282 sunos*) CCDLFLAGS="$CCDLFLAGS -PIC" ;;
1283 esix*|uxpds*) CCDLFLAGS="$CCDLFLAGS -KPIC" ;;
1284 *) : ${CCDLFLAGS=""} ;;
1289 AC_ARG_ENABLE(rpath,
1290 [ --disable-rpath embed run path into extension libraries.],
1291 [enable_rpath=$enableval], [enable_rpath="$rb_cv_binary_elf"])
1292 if test "$enable_rpath" = yes; then
1293 LIBPATHFLAG=" -L%1\$-s"
1294 RPATHFLAG=" ${linker_flag}-R%1\$-s"
1297 case "$target_os" in
1298 hpux*) DLDFLAGS="$DLDFLAGS -E"
1299 : ${LDSHARED='ld -b'}
1300 XLDFLAGS="$XLDFLAGS -Wl,-E"
1301 : ${LIBPATHENV=SHLIB_PATH}
1302 if test "$rb_cv_prog_gnu_ld" = no; then
1303 RPATHFLAG=' +b %1$-s'
1306 solaris*) if test "$GCC" = yes; then
1307 : ${LDSHARED='$(CC) -shared'}
1308 if test "$rb_cv_prog_gnu_ld" = yes; then
1309 LDFLAGS="$LDFLAGS -Wl,-E"
1312 : ${LDSHARED='ld -G'}
1315 sunos*) : ${LDSHARED='ld -assert nodefinitions'}
1317 irix*) : ${LDSHARED='ld -shared'}
1319 sysv4*) : ${LDSHARED='ld -G'}
1321 nto-qnx*) : ${LDSHARED="qcc -shared"}
1323 esix*|uxpds*) : ${LDSHARED="ld -G"}
1325 osf*) : ${LDSHARED="ld -shared -expect_unresolved \"*\""}
1327 bsdi3*) case "$CC" in
1328 *shlicc*) : ${LDSHARED="$CC -r"}
1331 linux* | gnu* | k*bsd*-gnu | netbsd* | bsdi*)
1332 : ${LDSHARED='${CC} -shared'}
1333 if test "$rb_cv_binary_elf" = yes; then
1334 LDFLAGS="$LDFLAGS -Wl,-export-dynamic"
1337 interix*) : ${LDSHARED="$CC -shared"}
1338 XLDFLAGS="$XLDFLAGS -Wl,-E"
1339 LIBPATHFLAG=" -L%1\$-s"
1341 freebsd*|dragonfly*) : ${LDSHARED="$CC -shared"}
1342 if test "$rb_cv_binary_elf" = yes; then
1343 LDFLAGS="$LDFLAGS -rdynamic"
1344 DLDFLAGS="$DLDFLAGS "'-Wl,-soname,$(.TARGET)'
1346 test "$GCC" = yes && test "$rb_cv_prog_gnu_ld" = yes || LDSHARED="ld -Bshareable"
1349 openbsd*) : ${LDSHARED="\$(CC) -shared ${CCDLFLAGS}"}
1350 if test "$rb_cv_binary_elf" = yes; then
1351 LDFLAGS="$LDFLAGS -Wl,-E"
1354 nextstep*) : ${LDSHARED='cc -r -nostdlib'}
1355 LDFLAGS="$LDFLAGS -u libsys_s"
1357 openstep*) : ${LDSHARED='cc -dynamic -bundle -undefined suppress'}
1360 rhapsody*) : ${LDSHARED='cc -dynamic -bundle -undefined suppress'}
1363 darwin*) : ${LDSHARED='cc -dynamic -bundle -undefined suppress -flat_namespace'}
1365 : ${LIBPATHENV=DYLD_LIBRARY_PATH}
1367 aix*) if test "$GCC" = yes; then
1368 : ${LDSHARED='$(CC) -shared'}
1370 : ${LDSHARED='$(CC)'}
1372 LDSHARED="$LDSHARED ${linker_flag}-G"
1373 DLDFLAGS='-eInit_$(TARGET)'
1374 XLDFLAGS="${linker_flag}-bE:ruby.imp ${linker_flag}-brtl"
1375 : ${ARCHFILE="ruby.imp"}
1376 TRY_LINK='$(CC) $(LDFLAGS) -oconftest $(INCFLAGS) -I$(hdrdir) $(CPPFLAGS)'
1377 TRY_LINK="$TRY_LINK"' $(CFLAGS) $(src) $(LIBPATH) $(LOCAL_LIBS) $(LIBS)'
1378 : ${LIBPATHENV=SHLIB_PATH}
1380 human*) : ${DLDFLAGS=''}
1383 : ${LINK_SO='ar cru $@ $(OBJS)'}
1385 beos*) case "$target_cpu" in
1387 : ${LDSHARED="ld -xms"}
1388 DLDFLAGS="$DLDFLAGS "'-export Init_$(TARGET) -lbe -lroot glue-noinit.a init_term_dyn.o start_dyn.o'
1391 : ${LDSHARED="ld -shared"}
1392 DLDFLAGS="$DLDFLAGS -L/boot/develop/lib/x86 -lbe -lroot"
1395 : ${LIBPATHENV=LIBRARY_PATH}
1397 haiku*) case "$target_cpu" in
1399 : ${LDSHARED="ld -xms"}
1400 DLDFLAGS="$DLDFLAGS "'-export Init_$(TARGET) -lbe -lroot glue-noinit.a init_term_dyn.o start_dyn.o'
1403 : ${LDSHARED="ld -shared"}
1404 DLDFLAGS="$DLDFLAGS -L/boot/develop/lib/x86 -lbe -lroot"
1407 : ${LIBPATHENV=LIBRARY_PATH}
1409 nto-qnx*) DLDFLAGS="$DLDFLAGS -L/lib -L/usr/lib -L/usr/local/lib"
1410 : ${LDSHARED='ld -Bshareable -x'}
1411 LDFLAGS="$LDFLAGS -L/lib -L/usr/lib -L/usr/local/lib"
1413 cygwin*|mingw*) : ${LDSHARED="${CC} -shared -s"}
1414 XLDFLAGS="$XLDFLAGS -Wl,--stack,0x00200000"
1415 DLDFLAGS="${DLDFLAGS} -Wl,--enable-auto-image-base,--enable-auto-import,--export-all"
1418 hiuxmpp) : ${LDSHARED='ld -r'} ;;
1419 atheos*) : ${LDSHARED="$CC -shared"}
1421 os2-emx*) LDFLAGS="$LDFLAGS -Zbsd-signals"
1423 *) : ${LDSHARED='ld'} ;;
1425 AC_MSG_RESULT($rb_cv_dlopen)
1427 if test "${LDSHAREDXX}" = ""; then
1428 case "${LDSHARED}" in
1430 LDSHAREDXX=`echo "${LDSHARED}" | sed 's/\$(CC)/$(CXX)/'`
1433 LDSHAREDXX=`echo "${LDSHARED}" | sed 's/\${CC}/${CXX}/'`
1436 LDSHAREDXX=`echo "${LDSHARED}" | sed "s|$CC|$CXX|"`
1444 AC_SUBST(LIBPATHFLAG)
1446 AC_SUBST(LIBPATHENV, "${LIBPATHENV-LD_LIBRARY_PATH}")
1450 if test "$ac_cv_header_a_out_h" = yes; then
1451 if test "$with_dln_a_out" = yes || test "$rb_cv_dlopen" = unknown; then
1452 cat confdefs.h > config.h
1453 AC_CACHE_CHECK(whether matz's dln works, rb_cv_dln_a_out,
1455 #define USE_DLN_A_OUT
1459 rb_cv_dln_a_out=yes,
1460 rb_cv_dln_a_out=no)])
1461 if test "$rb_cv_dln_a_out" = yes; then
1463 AC_DEFINE(USE_DLN_A_OUT)
1468 if test "$dln_a_out_works" = yes; then
1469 if test "$GCC" = yes; then
1477 case "$target_os" in
1479 nextstep*) DLEXT=bundle;;
1480 openstep*) DLEXT=bundle;;
1481 rhapsody*) DLEXT=bundle;;
1482 darwin*) DLEXT=bundle;;
1483 os2-emx*) DLEXT=dll;;
1484 cygwin*|mingw*) DLEXT=so;;
1489 n=`expr "$DLEXT" : '.*'`; test "$n" -gt "$len" && len=$n
1490 n=`expr "$DLEXT2" : '.*'`; test "$n" -gt "$len" && len=$n
1491 AC_DEFINE_UNQUOTED(DLEXT_MAXLEN, `expr $len + 1`)
1492 test ".$DLEXT" = "." || AC_DEFINE_UNQUOTED(DLEXT, ".$DLEXT")
1493 test ".$DLEXT2" = "." || AC_DEFINE_UNQUOTED(DLEXT2, ".$DLEXT2")
1497 if test "$with_dln_a_out" = yes; then
1503 case "$target_os" in
1504 linux* | gnu* | k*bsd*-gnu)
1505 STRIP='strip -S -x';;
1507 STRIP='strip -A -n';;
1509 STRIP='strip -A -n';;
1511 STRIP='strip -A -n';;
1513 STRIP='strip -A -n';;
1517 AC_SUBST(EXTSTATIC)dnl
1518 AC_ARG_WITH(static-linked-ext,
1519 [ --with-static-linked-ext link external modules statically],
1526 case "$target_os" in
1528 AC_CHECK_LIB(signal, _harderr)
1529 AC_CHECK_LIB(hmem, hmemset)
1530 AC_CHECK_FUNCS(select)
1531 AC_CACHE_CHECK(whether PD libc _dtos18 fail to convert big number,
1532 rb_cv_missing__dtos18,
1534 changequote(<<, >>)dnl
1541 sprintf(buf, "%g", 1e+300);
1542 return (strcmp (buf, "1e+300") ? 0 : 1);
1545 changequote([, ])dnl
1546 rb_cv_missing__dtos18=yes, rb_cv_missing__dtos18=no, rb_cv_missing__dtos18=no)])
1547 if test "$rb_cv_missing__dtos18" = yes; then
1548 AC_DEFINE(MISSING__DTOS18)
1550 AC_CACHE_CHECK(whether PD libc fconvert fail to round,
1551 rb_cv_missing_fconvert,
1553 changequote(<<, >>)dnl
1561 sprintf(buf, "%f", log(exp(1.0)));
1562 return (strcmp (buf, "1.000000") ? 0 : 1);
1565 changequote([, ])dnl
1566 rb_cv_missing_fconvert=yes, rb_cv_missing_fconvert=no, rb_cv_missing_fconvert=no)])
1567 if test "$rb_cv_missing_fconvert" = yes; then
1568 AC_DEFINE(MISSING_FCONVERT)
1571 CFLAGS="$CFLAGS -fansi-only"
1572 XCFLAGS="$XCFLAGS -cc1-stack=262144 -cpp-stack=2694144"
1577 dnl OS/2 environment w/ Autoconf 2.1x for EMX
1592 if test "$prefix" = NONE; then
1593 prefix=$ac_default_prefix
1596 #if test "$fat_binary" != no ; then
1597 # CFLAGS="$CFLAGS $ARCH_FLAG"
1600 if test x"$cross_compiling" = xyes; then
1601 test x"$MINIRUBY" = x && MINIRUBY="${RUBY-ruby} -I`pwd` -rfake"
1603 RUNRUBY='$(MINIRUBY) -I`cd $(srcdir)/lib; pwd`'
1605 MINIRUBY='./miniruby$(EXEEXT) -I$(srcdir)/lib'
1606 MINIRUBY="$MINIRUBY"' -I$(EXTOUT)/common -I./- -r$(srcdir)/ext/purelib.rb'
1607 PREP='miniruby$(EXEEXT)'
1608 RUNRUBY='$(MINIRUBY) $(srcdir)/runruby.rb --extout=$(EXTOUT)'
1613 AC_SUBST(EXTOUT, [${EXTOUT=.ext}])
1616 LIBRUBY_A='lib$(RUBY_SO_NAME)-static.a'
1617 LIBRUBY='$(LIBRUBY_A)'
1618 LIBRUBYARG_STATIC='-l$(RUBY_SO_NAME)-static'
1619 LIBRUBYARG='$(LIBRUBYARG_STATIC)'
1622 case "$target_os" in
1623 cygwin*|mingw*|beos*|haiku*|openstep*|nextstep*|rhapsody*|darwin*|os2-emx*)
1627 DLDLIBS="$DLDLIBS -lc"
1631 RUBY_SO_NAME='$(RUBY_INSTALL_NAME)'
1632 LIBRUBY_LDSHARED=$LDSHARED
1633 LIBRUBY_DLDFLAGS=$DLDFLAGS
1634 LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR).$(TEENY)'
1635 LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so'
1638 AC_ARG_ENABLE(shared,
1639 [ --enable-shared build a shared library for Ruby. ],
1640 [enable_shared=$enableval])
1641 if test "$enable_shared" = 'yes'; then
1642 LIBRUBY='$(LIBRUBY_SO)'
1643 LIBRUBYARG_SHARED='-l$(RUBY_SO_NAME)'
1644 LIBRUBYARG='$(LIBRUBYARG_SHARED)'
1645 CFLAGS="$CFLAGS $CCDLFLAGS"
1647 if test "$rb_cv_binary_elf" = yes; then
1650 case "$target_os" in
1652 LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).so'
1654 linux* | gnu* | k*bsd*-gnu | atheos*)
1655 LIBRUBY_DLDFLAGS='-Wl,-soname,lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR)'
1656 LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).so'
1658 freebsd*|dragonfly*)
1660 LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR)'
1661 if test "$rb_cv_binary_elf" != "yes" ; then
1662 LIBRUBY_SO="$LIBRUBY_SO.\$(TEENY)"
1668 LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR).$(TEENY)'
1669 LIBRUBY_DLDFLAGS='-Wl,-soname,lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR)'
1670 if test "$rb_cv_binary_elf" = yes; then # ELF platforms
1671 LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR) lib$(RUBY_SO_NAME).so'
1672 else # a.out platforms
1678 LIBRUBY_SO='lib$(RUBY_INSTALL_NAME).so.$(MAJOR).'`expr ${MINOR} \* 10 + ${TEENY}`
1682 LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR)'
1683 LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR).$(TEENY) lib$(RUBY_SO_NAME).so'
1684 if test "$GCC" = yes; then
1685 LIBRUBY_DLDFLAGS="$DLDFLAGS "'-Wl,-h,$(@F)'
1687 XLDFLAGS="$XLDFLAGS "'-R${libdir}'
1690 XLDFLAGS="$XLDFLAGS "'-Wl,+s,+b,$(libdir)'
1691 LIBRUBY_SO='lib$(RUBY_SO_NAME).sl.$(MAJOR).$(MINOR).$(TEENY)'
1692 LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).sl.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).sl'
1695 LIBRUBY_DLDFLAGS="${linker_flag}-bnoentry $XLDFLAGS"
1696 LIBRUBYARG_SHARED='-L${libdir} -l${RUBY_SO_NAME}'
1700 case "$target_cpu" in
1702 LIBRUBY_DLDFLAGS='-f ruby.exp -lnet -lbe -lroot glue-noinit.a init_term_dyn.o start_dyn.o'
1707 LIBRUBY_SO='lib$(RUBY_SO_NAME).$(MAJOR).$(MINOR).$(TEENY).dylib'
1708 LIBRUBY_LDSHARED='cc -dynamiclib -undefined suppress -flat_namespace'
1709 LIBRUBY_DLDFLAGS='-install_name $(libdir)/lib$(RUBY_SO_NAME).dylib -current_version $(MAJOR).$(MINOR).$(TEENY) -compatibility_version $(MAJOR).$(MINOR)'
1710 LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).$(MAJOR).$(MINOR).dylib lib$(RUBY_SO_NAME).dylib'
1713 LIBRUBYARG_SHARED='-L. -L${libdir} -l$(RUBY_SO_NAME)'
1719 if test "$enable_rpath" = yes; then
1720 LIBRUBYARG_SHARED="${linker_flag}-R ${linker_flag}\$(libdir) -L\$(libdir) $LIBRUBYARG_SHARED"
1723 LDFLAGS="-L. $LDFLAGS"
1726 dnl build rdoc index if requested
1728 AC_ARG_ENABLE(install-doc,
1729 [ --disable-install-doc do not install rdoc indexes during install ],
1730 [install_doc=$enableval], [install_doc=yes])
1731 if test "$install_doc" != no; then
1732 RDOCTARGET="install-doc"
1734 AC_SUBST(RDOCTARGET)
1736 if test "$rb_with_pthread" = "yes"; then
1737 THREAD_MODEL=pthread
1740 case "$target_os" in
1744 CFLAGS="$CFLAGS -pipe"
1746 nextstep*|openstep*)
1747 # The -fno-common is needed if we wish to embed the Ruby interpreter
1748 # into a plugin module of some project (as opposed to embedding it
1749 # within the project's application). The -I/usr/local/include is
1750 # needed because CPP as discovered by configure (cc -E -traditional)
1751 # fails to consult /usr/local/include by default. This causes
1752 # mkmf.rb's have_header() to fail if the desired resource happens to be
1753 # installed in the /usr/local tree.
1754 CFLAGS="$CFLAGS -pipe -fno-common"
1755 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
1758 CFLAGS="$CFLAGS -pipe -no-precomp -fno-common"
1761 CFLAGS="$CFLAGS -pipe -fno-common"
1765 CFLAGS="$CFLAGS -DOS2 -Zmts"
1766 LIBRUBY_A=`echo $LIBRUBY_A | sed 's/^lib//'`
1767 LIBRUBY_SO=`echo $LIBRUBY_SO | sed 's/^lib//'`
1768 LIBRUBY_ALIASES=`for i in $LIBRUBY_ALIASES; do echo "$i"; done | sed 's/^lib//'`
1771 if test "$GCC" != "yes" ; then
1772 # compile something small: taint.c is fine for this.
1773 # the main point is the '-v' flag of 'cc'.
1774 case "`cc -v -I. -c main.c -o /tmp/main.o 2>&1`" in
1775 */gemc_cc*) # we have the new DEC GEM CC
1776 CFLAGS="$CFLAGS -oldc"
1778 *) # we have the old MIPS CC
1783 CFLAGS="$CFLAGS -std"
1787 case "$target_cpu" in
1789 CFLAGS="$CFLAGS -relax_pointers"
1794 LIBRUBY_DLDFLAGS="${DLDFLAGS}"' -Wl,--out-implib=$(LIBRUBY)'
1795 case "$target_os" in
1797 if test x"$enable_shared" = xyes; then
1798 LIBRUBY_SO='cyg$(RUBY_SO_NAME)'${MAJOR}${MINOR}${TEENY}.dll
1802 RUBY_SO_NAME=${rb_cv_msvcrt}-'$(RUBY_INSTALL_NAME)'${MAJOR}${MINOR}${TEENY}
1803 if test x"$enable_shared" = xyes; then
1804 LIBRUBY_SO='$(RUBY_SO_NAME)'.dll
1805 LIBRUBY_DLDFLAGS="${LIBRUBY_DLDFLAGS}"' $(RUBYDEF)'
1809 # COMMON_MACROS="WIN32_LEAN_AND_MEAN="
1810 COMMON_HEADERS="winsock2.h windows.h"
1815 FIRSTMAKEFILE=GNUmakefile:cygwin/GNUmakefile.in
1817 if test x"$enable_shared" = xyes; then
1818 LIBRUBY='lib$(RUBY_SO_NAME).dll.a'
1821 LIBRUBY='lib$(RUBY_SO_NAME).a'
1822 LIBRUBYARG='-l$(RUBY_SO_NAME)'
1829 XCFLAGS="$XCFLAGS -DYYMAXDEPTH=300"
1830 YACC="$YACC -Nl40000 -Nm40000"
1838 MINIOBJS="$MINIDLNOBJ"
1841 *msdosdjgpp*) FIRSTMAKEFILE=GNUmakefile:djgpp/GNUmakefile.in;;
1844 CPPFLAGS="$CPPFLAGS "'$(DEFS)'
1845 test -z "$CPPFLAGS" || CPPFLAGS="$CPPFLAGS "; CPPFLAGS="$CPPFLAGS"'${cppflags}'
1846 cflagspat=`eval echo '"'"${cflags}"'"' | sed 's/[][|.*]/\\&/g'`
1847 CFLAGS=`echo "$CFLAGS" | sed "s|$cflagspat"'|${cflags}|'`
1848 cxxflagspat=`eval echo '"'"${cxxflags}"'"' | sed 's/[][|.*]/\\&/g'`
1849 CXXFLAGS=`echo "$CXXFLAGS" | sed "s|$cxxflagspat"'|${cxxflags}|'`
1850 AC_SUBST(cppflags, [])dnl
1851 AC_SUBST(cflags, ['${optflags} ${debugflags} ${warnflags}'])dnl
1852 AC_SUBST(optflags)dnl
1853 AC_SUBST(debugflags)dnl
1854 AC_SUBST(warnflags)dnl
1855 AC_SUBST(XCFLAGS)dnl
1856 AC_SUBST(XLDFLAGS)dnl
1857 AC_SUBST(LIBRUBY_LDSHARED)
1858 AC_SUBST(LIBRUBY_DLDFLAGS)
1859 AC_SUBST(RUBY_INSTALL_NAME)
1860 AC_SUBST(rubyw_install_name)
1861 AC_SUBST(RUBYW_INSTALL_NAME)
1862 AC_SUBST(RUBY_SO_NAME)
1864 AC_SUBST(LIBRUBY_SO)
1865 AC_SUBST(LIBRUBY_ALIASES)
1867 AC_SUBST(LIBRUBYARG)
1868 AC_SUBST(LIBRUBYARG_STATIC)
1869 AC_SUBST(LIBRUBYARG_SHARED)
1872 AC_SUBST(ENABLE_SHARED)
1874 AC_SUBST(COMMON_LIBS)
1875 AC_SUBST(COMMON_MACROS)
1876 AC_SUBST(COMMON_HEADERS)
1877 AC_SUBST(EXPORT_PREFIX)
1879 AC_SUBST(THREAD_MODEL)
1881 MAKEFILES="Makefile `echo $FIRSTMAKEFILE | sed 's/:.*//'`"
1882 MAKEFILES="`echo $MAKEFILES`"
1886 test "$program_prefix" != NONE &&
1887 ri_prefix=$program_prefix
1890 test "$program_suffix" != NONE &&
1891 ri_suffix=$program_suffix
1893 RUBY_INSTALL_NAME="${ri_prefix}ruby${ri_suffix}"
1894 case "$target_os" in
1896 RUBYW_INSTALL_NAME="${ri_prefix}rubyw${ri_suffix}"
1897 rubyw_install_name="$RUBYW_INSTALL_NAME"
1900 RUBY_LIB_PREFIX=`eval echo \\"${libdir}/ruby\\"`
1902 AC_ARG_WITH(ruby-version,
1903 [ --with-ruby-version=STR ruby version string for version specific directories [[full]] (full|minor|STR)],
1904 [ruby_version=$withval],
1905 [ruby_version=full])
1906 case "$ruby_version" in
1908 ruby_version="${MAJOR}.${MINOR}.${TEENY}"
1911 ruby_version="${MAJOR}.${MINOR}"
1915 AC_ARG_WITH(sitedir,
1916 [ --with-sitedir=DIR site libraries in DIR [[LIBDIR/ruby/site_ruby]]],
1918 [sitedir='${libdir}/ruby/site_ruby'])
1919 SITE_DIR=`eval echo \\"${sitedir}\\"`
1921 AC_ARG_WITH(vendordir,
1922 [ --with-vendordir=DIR vendor libraries in DIR [[LIBDIR/ruby/vendor_ruby]]],
1923 [vendordir=$withval],
1924 [vendordir='${libdir}/ruby/vendor_ruby'])
1925 VENDOR_DIR=`eval echo \\"${vendordir}\\"`
1927 case "$target_os" in
1928 cygwin*|mingw*|*djgpp*|os2-emx*)
1929 RUBY_LIB_PREFIX="`eval echo "$RUBY_LIB_PREFIX" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`"
1930 RUBY_SITE_LIB_PATH="`eval echo "$SITE_DIR" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`"
1931 RUBY_VENDOR_LIB_PATH="`eval echo "$VENDOR_DIR" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`"
1934 RUBY_LIB_PREFIX="`eval echo \\"$RUBY_LIB_PREFIX\\" | sed 's|^NONE/|'"$prefix"'/|'`"
1935 RUBY_SITE_LIB_PATH="`eval echo \\"$SITE_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`"
1936 RUBY_VENDOR_LIB_PATH="`eval echo \\"$VENDOR_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`"
1939 RUBY_LIB_PATH="${RUBY_LIB_PREFIX}/${ruby_version}"
1940 RUBY_SITE_LIB_PATH2="${RUBY_SITE_LIB_PATH}/${ruby_version}"
1941 RUBY_VENDOR_LIB_PATH2="${RUBY_VENDOR_LIB_PATH}/${ruby_version}"
1943 AC_DEFINE_UNQUOTED(RUBY_LIB, "${RUBY_LIB_PATH}")
1944 AC_DEFINE_UNQUOTED(RUBY_SITE_LIB, "${RUBY_SITE_LIB_PATH}")
1945 AC_DEFINE_UNQUOTED(RUBY_SITE_LIB2, "${RUBY_SITE_LIB_PATH2}")
1946 AC_DEFINE_UNQUOTED(RUBY_VENDOR_LIB, "${RUBY_VENDOR_LIB_PATH}")
1947 AC_DEFINE_UNQUOTED(RUBY_VENDOR_LIB2, "${RUBY_VENDOR_LIB_PATH2}")
1950 AC_SUBST(sitearch)dnl
1951 AC_SUBST(ruby_version)dnl
1952 AC_SUBST(sitedir)dnl
1953 AC_SUBST(vendordir)dnl
1955 configure_args=$ac_configure_args
1956 AC_SUBST(configure_args)dnl
1958 if test "$fat_binary" != no ; then
1959 arch="fat-${target_os}"
1961 AC_DEFINE_UNQUOTED(RUBY_THIN_ARCHLIB,
1962 "${RUBY_LIB_PATH}/" __ARCHITECTURE__ "-${target_os}")
1964 AC_DEFINE_UNQUOTED(RUBY_SITE_THIN_ARCHLIB,
1965 "${RUBY_SITE_LIB_PATH}/" __ARCHITECTURE__ "-${target_os}")
1966 AC_DEFINE_UNQUOTED(RUBY_VENDOR_THIN_ARCHLIB,
1967 "${RUBY_VENDOR_LIB_PATH}/" __ARCHITECTURE__ "-${target_os}")
1968 AC_DEFINE_UNQUOTED(RUBY_PLATFORM, __ARCHITECTURE__ "-${target_os}")
1970 arch="${target_cpu}-${target_os}"
1971 AC_DEFINE_UNQUOTED(RUBY_PLATFORM, "${arch}")
1974 case "$target_os" in
1975 mingw*) sitearch="$target_cpu-$rb_cv_msvcrt" ;;
1976 *) sitearch="${arch}" ;;
1979 AC_DEFINE_UNQUOTED(RUBY_ARCHLIB, "${RUBY_LIB_PATH}/${arch}")
1980 AC_DEFINE_UNQUOTED(RUBY_SITE_ARCHLIB, "${RUBY_SITE_LIB_PATH2}/${sitearch}")
1981 AC_DEFINE_UNQUOTED(RUBY_VENDOR_ARCHLIB, "${RUBY_VENDOR_LIB_PATH2}/${sitearch}")
1983 AC_ARG_WITH(search-path,
1984 [ --with-search-path=DIR specify the additional search path],
1985 [search_path=$withval])
1986 if test "$search_path" != ""; then
1987 AC_DEFINE_UNQUOTED(RUBY_SEARCH_PATH,"$search_path")
1990 AC_ARG_WITH(rubyhdrdir,
1991 [ --with-ruby-hdrdir=DIR core headers in DIR [INCLUDEDIR]],
1992 [rubyhdrdir=$withval],
1993 [rubyhdrdir='${includedir}/ruby-${ruby_version}'])
1995 AC_ARG_WITH(sitehdrdir,
1996 [ --with-site-hdrdir=DIR core headers in DIR [INCLUDEDIR]],
1997 [sitehdrdir=$withval],
1998 [sitehdrdir='${rubyhdrdir}/site_ruby'])
2000 AC_ARG_WITH(vendorhdrdir,
2001 [ --with-vendor-hdrdir=DIR core headers in DIR [INCLUDEDIR]],
2002 [vendorhdrdir=$withval],
2003 [vendorhdrdir='${rubyhdrdir}/vendor_ruby'])
2005 AC_SUBST(rubyhdrdir)dnl
2006 AC_SUBST(sitehdrdir)dnl
2007 AC_SUBST(vendorhdrdir)dnl
2009 AC_ARG_WITH(mantype,
2010 [ --with-mantype=TYPE specify man page type; TYPE is one of man and doc],
2017 AC_MSG_ERROR(invalid man type: $withval)
2021 if test -z "$MANTYPE"; then
2022 AC_PATH_PROGS(NROFF, nroff awf, /bin/false, "/usr/bin:/usr/ucb")
2023 if ${NROFF} -mdoc ${srcdir}/ruby.1 >/dev/null 2>&1; then
2031 arch_hdrdir="${EXTOUT}/include/${arch}/ruby"
2032 $MAKEDIRS "${arch_hdrdir}"
2033 config_h="${arch_hdrdir}/config.h"
2034 if test -f "${config_h}" && tr -d '\015' < confdefs.h | cmp -s "${config_h}" -; then
2035 echo "config.h unchanged"
2037 echo "creating config.h"
2038 tr -d '\015' < confdefs.h > "${config_h}"
2040 tr -d '\015' < largefile.h > confdefs.h
2043 BUILTIN_ENCS=["`sed -n -e '/^BUILTIN_ENCS[ ]*=/{' \
2044 -e s/// -e :l -e '/\\\\$/N' -e 's/\\\\\\n/ /' -e 't l' -e p \
2045 -e '}' "${srcdir}/enc/Makefile.in"`"]
2047 for e in $BUILTIN_ENCS; do BUILTIN_ENCOBJS="$BUILTIN_ENCOBJS `basename $e .c`"'.$(OBJEXT)'; done
2048 AC_SUBST(BUILTIN_ENCOBJS)
2050 AC_CONFIG_FILES($FIRSTMAKEFILE)
2051 AC_CONFIG_FILES(Makefile, [{
2052 sed '/^MISSING/s/\$U\././g' Makefile
2053 echo; test x"$EXEEXT" = x || echo 'miniruby: miniruby$(EXEEXT)'
2054 test "$RUBY_INSTALL_NAME$EXEEXT" = ruby || echo 'ruby: $(PROGRAM);'
2055 sed ['s/{\$([^(){}]*)[^{}]*}//g'] ${srcdir}/common.mk
2056 } >> confmk$$.tmp && mv -f confmk$$.tmp Makefile],
2057 [RUBY_INSTALL_NAME=$RUBY_INSTALL_NAME EXEEXT=$EXEEXT])