From 65a5162550f58047974793cdc8067a970b2435c0 Mon Sep 17 00:00:00 2001 From: matz Date: Fri, 13 Aug 1999 05:45:20 +0000 Subject: 1.4.0 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@520 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- configure.in | 425 +++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 282 insertions(+), 143 deletions(-) (limited to 'configure.in') diff --git a/configure.in b/configure.in index 0477ade03e..8e86e42e4e 100644 --- a/configure.in +++ b/configure.in @@ -1,6 +1,13 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(ruby.h) +rb_version=`grep RUBY_VERSION $srcdir/version.h` +MAJOR=`expr "$rb_version" : '#define RUBY_VERSION "\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*"'` +MINOR=`expr "$rb_version" : '#define RUBY_VERSION "[0-9][0-9]*\.\([0-9][0-9]*\)\.[0-9][0-9]*"'` +TEENY=`expr "$rb_version" : '#define RUBY_VERSION "[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\)"'` +AC_SUBST(MAJOR) +AC_SUBST(MINOR) +AC_SUBST(TEENY) dnl checks for alternative programs AC_ARG_WITH(gcc, [--without-gcc never use gcc], [ case $withval in @@ -18,42 +25,25 @@ then (it is also a good idea to do 'make clean' before compiling)) fi -dnl checks for thread -rb_thread=yes -AC_ARG_ENABLE(thread, [--disable-thread never use user-level thread], [ - rb_thread=$enableval -]) -if test $rb_thread = yes; then - AC_DEFINE(USE_THREAD) -fi - AC_CANONICAL_HOST dnl checks for fat-binary fat_binary=no -AC_ARG_ENABLE( fat-binary, +AC_ARG_ENABLE(fat-binary, [--enable-fat-binary build a NeXT/Apple Multi Architecture Binary. ], - [ fat_binary=$enableval ] ) + [fat_binary=$enableval]) if test "$fat_binary" = yes ; then - AC_MSG_CHECKING( target architecture ) + AC_MSG_CHECKING(target architecture) case "$host_os" in rhapsody*) echo -n "MacOS X Server: " - if test "$TARGET_ARCHS" = "" ; then - TARGET_ARCHS="ppc i386" - fi + if test "$TARGET_ARCHS" = "" ; then + TARGET_ARCHS="ppc i386" + fi ;; nextstep*|openstep*) - echo -n "NeXTSTEP/OPENSTEP: " - - if test "$host_os" = "rhapsody" ; then - echo -n "Rhapsody: " - if test "$TARGET_ARCHS" = "" ; then - TARGET_ARCHS="ppc i486" - fi - else echo -n "NeXTSTEP/OPENSTEP: " if test "$TARGET_ARCHS" = "" ; then if test `/usr/bin/arch` = "m68k" ; then @@ -62,7 +52,6 @@ AC_ARG_ENABLE( fat-binary, TARGET_ARCHS="m68k `/usr/bin/arch`" fi fi - fi ;; esac # /usr/lib/arch_tool -archify_list $TARGET_ARCHS @@ -71,7 +60,7 @@ AC_ARG_ENABLE( fat-binary, ARCH_FLAG="$ARCH_FLAG -arch $archs " echo -n " $archs" done - AC_DEFINE( NEXT_FAT_BINARY ) + AC_DEFINE(NEXT_FAT_BINARY) echo "." fi @@ -84,28 +73,43 @@ AC_PROG_YACC AC_PROG_RANLIB AC_SUBST(AR) AC_CHECK_PROGS(AR, ar aal, ar) -AC_PROG_INSTALL + +AC_PROG_LN_S AC_PROG_MAKE_SET +AC_EXEEXT +AC_OBJEXT + # checks for UNIX variants that set C preprocessor variables AC_MINIX AC_CHECK_SIZEOF(int) +AC_CHECK_SIZEOF(short) AC_CHECK_SIZEOF(long) AC_CHECK_SIZEOF(void*) +AC_CHECK_SIZEOF(float) +AC_CHECK_SIZEOF(double) -AC_MSG_CHECKING(for prototypes) -AC_CACHE_VAL(rb_cv_have_prototypes, +AC_CACHE_CHECK(for prototypes, rb_cv_have_prototypes, [AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);], rb_cv_have_prototypes=yes, rb_cv_have_prototypes=no)]) -AC_MSG_RESULT($rb_cv_have_prototypes) if test "$rb_cv_have_prototypes" = yes; then AC_DEFINE(HAVE_PROTOTYPES) fi -AC_MSG_CHECKING(for variable length prototypes and stdarg.h) -AC_CACHE_VAL(rb_cv_stdarg, +AC_CACHE_CHECK(token paste string, rb_cv_tokenpaste, + [AC_TRY_COMPILE([#define paste(a,b) a##b], + [int xy = 1; return paste(x,y);], + rb_cv_tokenpaste=ansi, + rb_cv_tokenpaste=knr)]) +if test "$rb_cv_tokenpaste" = ansi; then + AC_DEFINE(TOKEN_PASTE(x,y),[x##y]) +else + AC_DEFINE(TOKEN_PASTE(x,y),[x/**/y]) +fi + +AC_CACHE_CHECK(for variable length prototypes and stdarg.h, rb_cv_stdarg, [AC_TRY_COMPILE([ #include int foo(int x, ...) { @@ -119,17 +123,14 @@ int foo(int x, ...) { ], [return foo(10, "", 3.14);], rb_cv_stdarg=yes, rb_cv_stdarg=no)]) -AC_MSG_RESULT($rb_cv_stdarg) if test "$rb_cv_stdarg" = yes; then AC_DEFINE(HAVE_STDARG_PROTOTYPES) fi -AC_MSG_CHECKING(for gcc attribute noreturn) -AC_CACHE_VAL(rb_cv_have_attr_noreturn, +AC_CACHE_CHECK(for gcc attribute noreturn, rb_cv_have_attr_noreturn, [AC_TRY_COMPILE([void exit(int x) __attribute__ ((noreturn));], [], rb_cv_have_attr_noreturn=yes, rb_cv_have_attr_noreturn=no)]) -AC_MSG_RESULT($rb_cv_have_attr_noreturn) if test "$rb_cv_have_attr_noreturn" = yes; then AC_DEFINE(HAVE_ATTR_NORETURN) fi @@ -141,6 +142,7 @@ openstep*) ;; rhapsody*) ;; human*) ;; beos*) ;; +cygwin*) ;; *) LIBS="-lm $LIBS";; esac AC_CHECK_LIB(crypt, crypt) @@ -151,9 +153,10 @@ AC_CHECK_LIB(xpg4, setlocale) # FreeBSD needs this dnl Checks for header files. AC_HEADER_DIRENT AC_HEADER_STDC -AC_CHECK_HEADERS(stdlib.h unistd.h limits.h sys/file.h sys/ioctl.h pwd.h \ - sys/select.h sys/time.h sys/times.h sys/param.h sys/wait.h\ - syscall.h a.out.h string.h utime.h memory.h direct.h) +AC_HEADER_SYS_WAIT +AC_CHECK_HEADERS(stdlib.h string.h unistd.h limits.h sys/file.h sys/ioctl.h\ + fcntl.h sys/fcntl.h sys/select.h sys/time.h sys/times.h sys/param.h\ + syscall.h pwd.h a.out.h utime.h memory.h direct.h fnmatch.h) dnl Checks for typedefs, structures, and compiler characteristics. AC_TYPE_UID_T @@ -170,15 +173,16 @@ AC_TYPE_SIGNAL AC_FUNC_ALLOCA AC_FUNC_VFORK AC_FUNC_MEMCMP -AC_REPLACE_FUNCS(dup2 memmove mkdir strcasecmp strerror strftime\ - strchr strstr strtoul strdup crypt flock vsnprintf) +AC_REPLACE_FUNCS(dup2 memmove mkdir strcasecmp strncasecmp strerror strftime\ + strchr strstr strtoul strdup crypt flock vsnprintf\ + fnmatch isinf isnan finite) AC_CHECK_FUNCS(fmod killpg drand48 random wait4 waitpid syscall getcwd\ truncate chsize times utimes fcntl lockf setitimer\ setruid seteuid setreuid setrgid setegid setregid\ - setpgrp2 getpgid setpgid getgroups getpriority\ - dlopen sigprocmask sigaction _setjmp setpgrp setsid) + getpgrp setpgrp getpgid setpgid getgroups getpriority\ + dlopen sigprocmask sigaction _setjmp setsid) +AC_STRUCT_TIMEZONE if test "$ac_cv_func_strftime" = no; then - AC_STRUCT_TIMEZONE AC_TRY_LINK([], [extern int daylight; int i = daylight;], AC_DEFINE(HAVE_DAYLIGHT)) fi @@ -186,8 +190,7 @@ fi if test "$ac_cv_func_sigprocmask" = yes && test "$ac_cv_func_sigaction" = yes; then AC_DEFINE(POSIX_SIGNAL) else - AC_MSG_CHECKING(for BSD signal semantics) - AC_CACHE_VAL(rb_cv_bsd_signal, + AC_CACHE_CHECK(for BSD signal semantics, rb_cv_bsd_signal, [AC_TRY_RUN([ #include #include @@ -208,43 +211,51 @@ main() } ], rb_cv_bsd_signal=yes, + rb_cv_bsd_signal=no, rb_cv_bsd_signal=no)]) - AC_MSG_RESULT($rb_cv_bsd_signal) if test "$rb_cv_bsd_signal" = yes; then AC_DEFINE(BSD_SIGNAL) fi fi -if test "$ac_cv_func_setpgrp2" = yes; then - AC_DEFINE(BSD_GETPGRP, getpgrp2) - AC_DEFINE(BSD_SETPGRP, setpgrp2) -else - AC_MSG_CHECKING(whether getpgrp() has arg) - AC_CACHE_VAL(rb_cv_bsdgetpgrp, - [AC_TRY_COMPILE([#include ], [getpgrp(0);], - rb_cv_bsdgetpgrp=yes, - rb_cv_bsdgetpgrp=no)]) - AC_MSG_RESULT($rb_cv_bsdgetpgrp) - if test "$rb_cv_bsdgetpgrp" = yes; then - AC_DEFINE(BSD_GETPGRP, getpgrp) - fi +AC_FUNC_GETPGRP +AC_FUNC_SETPGRP - AC_MSG_CHECKING(whether setpgrp() has args) - AC_CACHE_VAL(rb_cv_bsdsetpgrp, - [AC_TRY_COMPILE([#include ], [setpgrp(1, 1);], - rb_cv_bsdsetpgrp=yes, - rb_cv_bsdsetpgrp=no)]) - AC_MSG_RESULT($rb_cv_bsdsetpgrp) - if test "$rb_cv_bsdsetpgrp" = yes; then - AC_DEFINE(BSD_SETPGRP, setpgrp) - fi -fi +AC_CACHE_CHECK(for working strtod, rb_cv_func_strtod, +[AC_TRY_RUN([ +double strtod (); +int +main() +{ + { + /* Some versions of Linux strtod mis-parse strings with leading '+'. */ + char *string = " +69"; + char *term; + double value; + value = strtod(string, &term); + if (value != 69 || term != (string + 4)) + exit(1); + } + + { + /* Under Solaris 2.4, strtod returns the wrong value for the + terminating character under some conditions. */ + char *string = "NaN"; + char *term; + strtod(string, &term); + if (term != string && *(term - 1) == 0) + exit(1); + } + exit(0); +} +], rb_cv_func_strtod=yes, rb_cv_func_strtod=no, rb_cv_func_strtod=no)]) +test $rb_cv_func_strtod = no && LIBOBJS="$LIBOBJS strtod.o" AC_C_BIGENDIAN +AC_C_CONST AC_CHAR_UNSIGNED -AC_MSG_CHECKING(whether right shift preserve sign bit) -AC_CACHE_VAL(rb_cv_rshift_sign, +AC_CACHE_CHECK(whether right shift preserve sign bit, rb_cv_rshift_sign, [AC_TRY_RUN([ int main() @@ -255,15 +266,15 @@ main() } ], rb_cv_rshift_sign=yes, - rb_cv_rshift_sign=no)]) - AC_MSG_RESULT($rb_cv_rshift_sign) + rb_cv_rshift_sign=no, + rb_cv_rshift_sign=yes)]) if test "$rb_cv_rshift_sign" = yes; then AC_DEFINE(RSHIFT(x,y), ((x)>>y)) else AC_DEFINE(RSHIFT(x,y), (((x)<0) ? ~((~(x))>>y) : (x)>>y)) fi -AC_MSG_CHECKING([count field in FILE structures]) +AC_MSG_CHECKING(count field in FILE structures) AC_CACHE_VAL(rb_cv_fcnt, [AC_TRY_COMPILE([#include ], [FILE *f = stdin; f->_cnt = 0;], rb_cv_fcnt="_cnt", ) @@ -278,7 +289,13 @@ fi if test "$rb_cv_fcnt" = ""; then AC_TRY_COMPILE([#include ], [FILE *f = stdin; f->readCount = 0;], - rb_cv_fcnt="readCount", rb_cv_fcnt="not found") + rb_cv_fcnt="readCount", ) +fi +dnl for emx0.9c +if test "$rb_cv_fcnt" = ""; then + AC_TRY_COMPILE([#include ], + [FILE *f = stdin; f->_rcount = 0;], + rb_cv_fcnt="_rcount", rb_cv_fcnt="not found") fi]) if test "$rb_cv_fcnt" = "not found"; then AC_MSG_RESULT([not found(OK if using GNU libc)]) @@ -287,17 +304,31 @@ else AC_DEFINE_UNQUOTED(FILE_COUNT, $rb_cv_fcnt) fi +dnl default value for $KANJI +AC_SUBST(DEFAULT_KCODE) +AC_ARG_WITH(default-kcode, + [--with-default-kcode=CODE specify default value for \$KCODE (utf8|euc|sjis|none)], + [case $withval in + utf8) AC_DEFINE(DEFAULT_KCODE, KCODE_UTF8);; + euc) AC_DEFINE(DEFAULT_KCODE, KCODE_EUC);; + sjis) AC_DEFINE(DEFAULT_KCODE, KCODE_SJIS);; + none) AC_DEFINE(DEFAULT_KCODE, KCODE_NONE);; + *) AC_MSG_WARN($withval is not valid kcode; ignored);; + esac]) + dnl wheather use dln_a_out ot not -AC_ARG_WITH(dln-a-out, [--with-dln-a-out use dln_a_out if possible], [ +AC_ARG_WITH(dln-a-out, + [--with-dln-a-out use dln_a_out if possible], [ case $withval in yes) with_dln_a_out=yes;; *) with_dln_a_out=no;; esac], [with_dln_a_out=no]) +AC_SUBST(XLDFLAGS)dnl + case "$host_os" in linux*) - AC_MSG_CHECKING(whether ELF binaries are produced) - AC_CACHE_VAL(rb_cv_linux_elf, + AC_CACHE_CHECK(whether ELF binaries are produced, rb_cv_binary_elf, [AC_TRY_RUN([ /* Test for whether ELF binaries are produced */ #include @@ -315,13 +346,12 @@ main() { exit(0); /* succeed (yes, it's ELF) */ } ], - rb_cv_linux_elf=yes, - rb_cv_linux_elf=no, - [:])]) - AC_MSG_RESULT($rb_cv_linux_elf) - if test "$rb_cv_linux_elf" = no; then + rb_cv_binary_elf=yes, + rb_cv_binary_elf=no, + rb_cv_binary_elf=yes)]) + if test "$rb_cv_binary_elf" = no; then with_dln_a_out=yes - host_os=linux-a.out + host_os=${host_os}-a_out else LDFLAGS="-rdynamic" fi;; @@ -345,15 +375,21 @@ if test "$with_dln_a_out" != yes; then openstep*) ;; rhapsody*) ;; human*) ;; - cygwin*) CCDLFLAGS=-DDLLIMPORT;; - *) CCDLFLAGS=-fpic;; + bsdi3*) ;; + cygwin*) ;; + netbsd*) CCDLFLAGS=-fpic + case "$host_cpu" in + mips*) CCDLFLAGS=-fPIC ;; + *) ;; + esac ;; + *) CCDLFLAGS=-fPIC;; esac else case "$host_os" in hpux*) CCDLFLAGS='+z';; - solaris*|irix*) CCDLFLAGS='-K pic' ;; - sunos*) CCDLFLAGS='-pic' ;; - esix*|uxpds*) CCDLFLAGS='-Kpic' ;; + solaris*|irix*) CCDLFLAGS='-K PIC' ;; + sunos*) CCDLFLAGS='-PIC' ;; + esix*|uxpds*) CCDLFLAGS='-KPIC' ;; *) CCDLFLAGS='' ;; esac fi @@ -363,7 +399,12 @@ if test "$with_dln_a_out" != yes; then LDSHARED='ld -b' LDFLAGS="-Wl,-E" rb_cv_dlopen=yes;; - solaris*) LDSHARED='ld -G' + solaris*) if test "$GCC" = yes; then + LDSHARED='$(CC) -Wl,-G' + `$CC --print-prog-name=ld` -v 2>&1 | grep "GNU ld" > /dev/null && LDFLAGS="-Wl,-E" + else + LDSHARED='ld -G' + fi rb_cv_dlopen=yes;; sunos*) LDSHARED='ld -assert nodefinitions' rb_cv_dlopen=yes;; @@ -373,19 +414,29 @@ if test "$with_dln_a_out" != yes; then rb_cv_dlopen=yes;; esix*|uxpds*) LDSHARED="ld -G" rb_cv_dlopen=yes ;; - linux*) LDSHARED="gcc -shared" + osf*) LDSHARED="$CC -shared" rb_cv_dlopen=yes ;; - freebsd3*) LDSHARED="ld -Bshareable" - LDFLAGS="-rdynamic" + linux*) LDSHARED="$CC -shared" rb_cv_dlopen=yes ;; - freebsd*) LDSHARED="ld -Bshareable" + freebsd*) LDSHARED="$CC -shared" + if test -x /usr/bin/objformat && \ + test `/usr/bin/objformat` = "elf" ; then + LDFLAGS="-rdynamic" + DLDFLAGS='-Wl,-soname,$(.TARGET)' + rb_cv_freebsd_elf=yes + else + test "$GCC" = yes && `$CC --print-prog-name=ld` -v 2>&1 | grep "GNU ld" > /dev/null || LDSHARED="ld -Bshareable" + fi rb_cv_dlopen=yes ;; - netbsd*) LDSHARED="ld -Bshareable" + netbsd*) LDSHARED="ld -shared" rb_cv_dlopen=yes ;; openbsd*) LDSHARED="ld -Bforcearchive -Bshareable" - CCDLFLAGS=-fPIC rb_cv_dlopen=yes ;; - nextstep*) LDSHARED='cc -r' + bsdi3*) case "$CC" in + *shlicc*) LDSHARED="$CC -r" + rb_cv_dlopen=yes ;; + esac ;; + nextstep*) LDSHARED='cc -r -nostdlib' LDFLAGS="-u libsys_s" DLDFLAGS="$ARCH_FLAG" rb_cv_dlopen=yes ;; @@ -397,22 +448,30 @@ if test "$with_dln_a_out" != yes; then LDFLAGS="" DLDFLAGS="$ARCH_FLAG" rb_cv_dlopen=yes ;; - aix*) LDSHARED='../../miniruby ../aix_ld.rb $(TARGET)' + aix*) LDSHARED='/usr/ccs/bin/ld' + XLDFLAGS='-Wl,-bE:ruby.imp' + DLDFLAGS='-eInit_$(TARGET) -bI:$(topdir)/ruby.imp -bM:SRE -T512 -H512 -lc' rb_cv_dlopen=yes ;; + human*) DLDFLAGS='' LDSHARED='' - LDFLAGS='' ;; - beos*) LDSHARED="ld -xms" - case "$host_cpu" in + LDFLAGS='' + rb_cv_dlopen=yes ;; + beos*) case "$host_cpu" in powerpc*) + LDSHARED="ld -xms" DLDFLAGS="-f ruby.exp -lbe -lroot glue-noinit.a init_term_dyn.o start_dyn.o" ;; + i586*) + LDSHARED="ld -shared" + DLDFLAGS="-L/boot/develop/lib/x86 -lbe -lroot" + ;; *) DLDFLAGS="ruby.def -lbe -lroot glue-noinit.a init_term_dyn.o start_dyn.o" - ;; esac rb_cv_dlopen=yes ;; - cygwin*) LDSHARED='../../miniruby ../cygwin32_ld.rb' ;; + cygwin*) LDSHARED='dllwrap --export-all -s' + rb_cv_dlopen=yes ;; *) LDSHARED='ld' ;; esac AC_MSG_RESULT($rb_cv_dlopen) @@ -421,9 +480,8 @@ fi dln_a_out_works=no if test "$ac_cv_header_a_out_h" = yes; then if test "$with_dln_a_out" = yes || test "$rb_cv_dlopen" = unknown; then - AC_MSG_CHECKING(whether matz's dln works) cat confdefs.h > config.h - AC_CACHE_VAL(rb_cv_dln_a_out, + AC_CACHE_CHECK(whether matz's dln works, rb_cv_dln_a_out, [AC_TRY_COMPILE([ #define USE_DLN_A_OUT #include "dln.c" @@ -431,7 +489,6 @@ if test "$ac_cv_header_a_out_h" = yes; then [], rb_cv_dln_a_out=yes, rb_cv_dln_a_out=no)]) - AC_MSG_RESULT($rb_cv_dln_a_out) if test "$rb_cv_dln_a_out" = yes; then dln_a_out_works=yes AC_DEFINE(USE_DLN_A_OUT) @@ -445,21 +502,23 @@ if test "$dln_a_out_works" = yes; then else STATIC=-Bstatic fi - DLEXT=o - AC_DEFINE(DLEXT, ".o") + DLEXT=so + AC_DEFINE(DLEXT, ".so") CCDLFLAGS= else case "$host_os" in hpux*) DLEXT=sl AC_DEFINE(DLEXT, ".sl");; - nextstep*) DLEXT=o - AC_DEFINE(DLEXT, ".o");; + nextstep*) DLEXT=bundle + AC_DEFINE(DLEXT, ".bundle");; openstep*) DLEXT=bundle AC_DEFINE(DLEXT, ".bundle");; rhapsody*) DLEXT=bundle AC_DEFINE(DLEXT, ".bundle");; cygwin*) DLEXT=dll AC_DEFINE(DLEXT, ".dll");; + os2_emx) DLEXT=o + AC_DEFINE(DLEXT, ".so");; *) DLEXT=so AC_DEFINE(DLEXT, ".so");; esac @@ -498,8 +557,8 @@ case "$host_os" in AC_CHECK_LIB(signal, _harderr) AC_CHECK_LIB(hmem, hmemset) AC_CHECK_FUNCS(select) - AC_MSG_CHECKING(whether PD libc _dtos18 fail to convert big number) - AC_CACHE_VAL(rb_cv_missing__dtos18, + AC_CACHE_CHECK(whether PD libc _dtos18 fail to convert big number, + rb_cv_missing__dtos18, [AC_TRY_RUN( changequote(<<, >>)dnl << @@ -512,13 +571,12 @@ main () } >>, changequote([, ])dnl -rb_cv_missing__dtos18=yes, rb_cv_missing__dtos18=no)]) - AC_MSG_RESULT($rb_cv_missing__dtos18) +rb_cv_missing__dtos18=yes, rb_cv_missing__dtos18=no, rb_cv_missing__dtos18=no)]) if test "$rb_cv_missing__dtos18" = yes; then AC_DEFINE(MISSING__DTOS18) fi - AC_MSG_CHECKING(whether PD libc fconvert fail to round) - AC_CACHE_VAL(rb_cv_missing_fconvert, + AC_CACHE_CHECK(whether PD libc fconvert fail to round, + rb_cv_missing_fconvert, [AC_TRY_RUN( changequote(<<, >>)dnl << @@ -532,29 +590,29 @@ main () } >>, changequote([, ])dnl -rb_cv_missing_fconvert=yes, rb_cv_missing_fconvert=no)]) - AC_MSG_RESULT($rb_cv_missing_fconvert) +rb_cv_missing_fconvert=yes, rb_cv_missing_fconvert=no, rb_cv_missing_fconvert=no)]) if test "$rb_cv_missing_fconvert" = yes; then AC_DEFINE(MISSING_FCONVERT) fi LIBOBJS="$LIBOBJS x68.o" CFLAGS="$CFLAGS -fansi-only -cc1-stack=196608 -cpp-stack=2694144" - binsuffix=.x + EXEEXT=.x + OBJEXT=o setup=Setup.x68 ;; + dnl OS/2 environment w/ Autoconf 2.1x for EMX + os2_emx) + LIBOBJS="$LIBOBJS os2.o" + setup=Setup.emx + ;; cygwin*) - binsuffix=.exe setup=Setup ;; *) - binsuffix= setup=Setup ;; esac - - -AC_SUBST(binsuffix) AC_SUBST(setup) if test "$prefix" = NONE; then @@ -565,18 +623,22 @@ if test "$fat_binary" = yes ; then CFLAGS="$CFLAGS $ARCH_FLAG" fi -LIBRUBY='libruby.a' -LIBRUBYARG='libruby.a' +LIBRUBY_A='lib$(RUBY_INSTALL_NAME).a' +LIBRUBY='$(LIBRUBY_A)' +LIBRUBYARG='$(LIBRUBY_A)' SOLIBS= if test "$host_os" = "beos"; then - CFLAGS="$CFLAGS -relax_pointers" - LIBRUBY='libruby.so' - LIBRUBYARG='-lruby' + LIBRUBY='$(LIBRUBY_SO)' + LIBRUBYARG='-l$(RUBY_INSTALL_NAME)' SOLIBS='-lnet' echo creating ruby.def case "$host_cpu" in powerpc*) cp beos/ruby.def.in ruby.exp + CFLAGS="$CFLAGS -relax_pointers" + ;; + i586*) + LDFLAGS="$LDFLAGS -L." ;; *) echo EXPORTS > ruby.def @@ -585,9 +647,72 @@ if test "$host_os" = "beos"; then esac fi +FIRSTMAKEFILE="" +LIBRUBY_LDSHARED=$LDSHARED +LIBRUBY_DLDFLAGS=$DLDFLAGS +LIBRUBY_SO='lib$(RUBY_INSTALL_NAME).so.$(MAJOR).$(MINOR).$(TEENY)' +LIBRUBY_ALIASES='lib$(RUBY_INSTALL_NAME).so' +AC_ARG_ENABLE(enable-shared, + [--enable-shared build a shared library for Ruby. ], + [enable_shared=$enableval]) if test "$enable_shared" = 'yes'; then - LIBRUBY='libruby.so' - LIBRUBYARG='-L./ -lruby' + LIBRUBY='$(LIBRUBY_SO)' + LIBRUBYARG='-L. -l$(RUBY_INSTALL_NAME)' + CFLAGS="$CFLAGS $CCDLFLAGS" + case "$host_os" in + sunos4*) + LIBRUBY_ALIASES='lib$(RUBY_INSTALL_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_INSTALL_NAME).so' + ;; + linux*) + XLDFLAGS='-Wl,-rpath,${prefix}/lib':/usr/lib:/lib + LIBRUBY_ALIASES='lib$(RUBY_INSTALL_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_INSTALL_NAME).so' + ;; + freebsd*) + LIBRUBY_SO='lib$(RUBY_INSTALL_NAME).so.$(MAJOR)$(MINOR)' + if test "$rb_cv_freebsd_elf" != "yes" ; then + LIBRUBY_SO="$LIBRUBY_SO.\$(TEENY)" + LIBRUBY_ALIASES='' + fi + ;; + netbsd*) + LIBRUBY_SO='lib$(RUBY_INSTALL_NAME).so.$(MAJOR).$(MINOR)' + case "$host_cpu" in + alpha|mipsel|mipseb|powerpc|sparc64) # ELF platforms + LIBRUBY_ALIASES='lib$(RUBY_INSTALL_NAME).so.$(MAJOR) lib$(RUBY_INSTALL_NAME).so' ;; + *) LIBRUBY_ALIASES= ;; # a.out platforms + esac + ;; + solaris*) + XLDFLAGS='-R${prefix}/lib' + ;; + hpux*) + XLDFLAGS='-Wl,+s,+b,$(prefix)/lib' + LIBRUBY_SO='lib$(RUBY_INSTALL_NAME).sl.$(MAJOR).$(MINOR).$(TEENY)' + LIBRUBY_ALIASES='lib$(RUBY_INSTALL_NAME).sl.$(MAJOR).$(MINOR) lib$(RUBY_INSTALL_NAME).sl' + ;; + aix*) + if test "$GCC" = yes; then + LIBRUBY_LDSHARED='$(CC) -shared' + LIBRUBY_DLDFLAGS='-Wl,-bE:ruby.imp' + else + LIBRUBY_LDSHARED='/usr/ccs/bin/ld' + LIBRUBY_DLDFLAGS='-bE:ruby.imp -bM:SRE -bnoentry' + fi + LIBRUBYARG='-L${prefix}/lib -Wl,lib$(RUBY_INSTALL_NAME).so' + SOLIBS='-lm -lc' + ;; + cygwin*) + LIBRUBY_SO='lib$(RUBY_INSTALL_NAME).a' + LIBRUBY_ALIASES='' + LIBRUBY_A='lib$(RUBY_INSTALL_NAME)s.a' + LIBRUBYARG='-L. -l$(RUBY_INSTALL_NAME)' + FIRSTMAKEFILE=GNUmakefile:cygwin/GNUmakefile.in + LIBOBJS="$LIBOBJS strftime.o" + CCDLFLAGS=-DUSEIMPORTLIB + ;; + *) + ;; + esac fi case "$host_os" in @@ -604,7 +729,12 @@ case "$host_os" in ;; esac - +AC_SUBST(LIBRUBY_LDSHARED) +AC_SUBST(LIBRUBY_DLDFLAGS) +AC_SUBST(RUBY_INSTALL_NAME) +AC_SUBST(LIBRUBY_A) +AC_SUBST(LIBRUBY_SO) +AC_SUBST(LIBRUBY_ALIASES) AC_SUBST(LIBRUBY) AC_SUBST(LIBRUBYARG) AC_SUBST(SOLIBS) @@ -618,30 +748,39 @@ test "$program_suffix" != NONE && ri_suffix=$program_suffix RUBY_INSTALL_NAME="${ri_prefix}ruby${ri_suffix}" -AC_DEFINE_UNQUOTED(RUBY_LIB, "${prefix}/lib/${RUBY_INSTALL_NAME}") -AC_DEFINE_UNQUOTED(RUBY_SITE_LIB, "${prefix}/lib/${RUBY_INSTALL_NAME}/site_ruby") +RUBY_LIB_PATH="${prefix}/lib/ruby/${MAJOR}.${MINOR}" +AC_DEFINE_UNQUOTED(RUBY_LIB, "${RUBY_LIB_PATH}") +RUBY_SITE_LIB_PATH="${RUBY_LIB_PATH}/site_ruby" +AC_DEFINE_UNQUOTED(RUBY_SITE_LIB, "${RUBY_SITE_LIB_PATH}") AC_SUBST(arch)dnl +configure_args=$ac_configure_args +AC_SUBST(configure_args)dnl + if test "$fat_binary" = yes ; then arch="fat-${host_os}" AC_DEFINE_UNQUOTED(RUBY_THIN_ARCHLIB, - "${prefix}/lib/${RUBY_INSTALL_NAME}/" __ARCHITECTURE__ "-${host_os}" ) + "${RUBY_LIB_PATH}/" __ARCHITECTURE__ "-${host_os}") AC_DEFINE_UNQUOTED(RUBY_SITE_THIN_ARCHLIB, - "${prefix}/lib/${RUBY_INSTALL_NAME}/" __ARCHITECTURE__ "-${host_os}" ) - - AC_DEFINE_UNQUOTED(RUBY_ARCHLIB, "${prefix}/lib/${RUBY_INSTALL_NAME}/${arch}") - AC_DEFINE_UNQUOTED(RUBY_SITE_ARCHLIB, "${prefix}/lib/${RUBY_INSTALL_NAME}/site_ruby/${arch}") - AC_DEFINE_UNQUOTED(RUBY_PLATFORM, __ARCHITECTURE__ "-${host_os}" ) + "${RUBY_SITE_LIB_PATH}/" __ARCHITECTURE__ "-${host_os}") + AC_DEFINE_UNQUOTED(RUBY_PLATFORM, __ARCHITECTURE__ "-${host_os}") else arch="${host_cpu}-${host_os}" - AC_DEFINE_UNQUOTED(RUBY_ARCHLIB, "${prefix}/lib/${RUBY_INSTALL_NAME}/${arch}") - AC_DEFINE_UNQUOTED(RUBY_SITE_ARCHLIB, "${prefix}/lib/${RUBY_INSTALL_NAME}/site_ruby/${arch}") AC_DEFINE_UNQUOTED(RUBY_PLATFORM, "${arch}") fi +AC_DEFINE_UNQUOTED(RUBY_ARCHLIB, "${RUBY_LIB_PATH}/${arch}") +AC_DEFINE_UNQUOTED(RUBY_SITE_ARCHLIB, "${RUBY_SITE_LIB_PATH}/${arch}") + +AC_ARG_WITH(search-path, + [--with-search-path specify the additional search path], + [search_path=$withval]) +if test "$search_path" != ""; then + AC_DEFINE_UNQUOTED(RUBY_SEARCH_PATH,"$search_path") +fi echo "creating config.h" cat confdefs.h > config.h -AC_OUTPUT(Makefile ext/extmk.rb) +AC_OUTPUT($FIRSTMAKEFILE Makefile ext/extmk.rb) -- cgit v1.2.3