1998-01-16 15:13:05 +03:00
|
|
|
dnl Process this file with autoconf to produce a configure script.
|
2002-04-21 20:05:52 +04:00
|
|
|
AC_INIT()
|
1998-01-16 15:13:05 +03:00
|
|
|
|
2005-05-15 13:56:53 +04:00
|
|
|
AC_PREREQ(2.58)
|
2002-03-14 09:23:46 +03:00
|
|
|
|
2002-09-23 15:01:49 +04:00
|
|
|
AC_DEFUN(RUBY_MINGW32,
|
|
|
|
[case "$host_os" in
|
|
|
|
cygwin*)
|
|
|
|
AC_CACHE_CHECK(for mingw32 environment, rb_cv_mingw32,
|
|
|
|
[AC_TRY_CPP([
|
|
|
|
#ifndef __MINGW32__
|
|
|
|
# error
|
|
|
|
#endif
|
|
|
|
], rb_cv_mingw32=yes,rb_cv_mingw32=no)
|
|
|
|
rm -f conftest*])
|
|
|
|
test "$rb_cv_mingw32" = yes && target_os="mingw32"
|
|
|
|
;;
|
|
|
|
esac])
|
|
|
|
|
|
|
|
AC_DEFUN(RUBY_CPPOUTFILE,
|
2002-12-12 13:21:41 +03:00
|
|
|
[AC_CACHE_CHECK(whether ${CPP} accepts -o, rb_cv_cppoutfile,
|
2002-09-23 15:01:49 +04:00
|
|
|
[cppflags=$CPPFLAGS
|
2002-12-12 13:21:41 +03:00
|
|
|
CPPFLAGS='-o conftest.i'
|
|
|
|
AC_TRY_CPP([], rb_cv_cppoutfile=yes, rb_cv_cppoutfile=no)
|
|
|
|
CPPFLAGS=$cppflags
|
2002-09-23 15:01:49 +04:00
|
|
|
rm -f conftest*])
|
2002-12-12 13:21:41 +03:00
|
|
|
if test "$rb_cv_cppoutfile" = yes; then
|
|
|
|
CPPOUTFILE='-o conftest.i'
|
|
|
|
elif test "$rb_cv_cppoutfile" = no; then
|
|
|
|
CPPOUTFILE='> conftest.i'
|
|
|
|
elif test -n "$rb_cv_cppoutfile"; then
|
|
|
|
CPPOUTFILE="$rb_cv_cppoutfile"
|
|
|
|
fi
|
|
|
|
AC_SUBST(CPPOUTFILE)])
|
2002-09-23 15:01:49 +04:00
|
|
|
|
2002-10-04 09:18:05 +04:00
|
|
|
AC_DEFUN(RUBY_PROG_GNU_LD,
|
|
|
|
[AC_CACHE_CHECK(whether the linker is GNU ld, rb_cv_prog_gnu_ld,
|
2003-03-04 09:13:24 +03:00
|
|
|
[if `$CC $CFLAGS $CPPFLAGS $LDFLAGS --print-prog-name=ld 2>&1` -v 2>&1 | grep "GNU ld" > /dev/null; then
|
2002-10-04 09:18:05 +04:00
|
|
|
rb_cv_prog_gnu_ld=yes
|
|
|
|
else
|
|
|
|
rb_cv_prog_gnu_ld=no
|
|
|
|
fi
|
|
|
|
])
|
|
|
|
GNU_LD=$rb_cv_prog_gnu_ld
|
|
|
|
AC_SUBST(GNU_LD)])
|
|
|
|
|
1999-08-13 09:45:20 +04:00
|
|
|
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)
|
1998-01-16 15:13:05 +03:00
|
|
|
dnl checks for alternative programs
|
2002-04-12 07:24:52 +04:00
|
|
|
AC_ARG_WITH(gcc, [ --without-gcc never use gcc], [
|
1998-01-16 15:13:05 +03:00
|
|
|
case $withval in
|
2001-11-13 13:53:20 +03:00
|
|
|
no) : ${CC=cc}
|
2001-12-02 17:10:27 +03:00
|
|
|
;;
|
2001-11-13 13:53:20 +03:00
|
|
|
yes) : ${CC=gcc}
|
2001-12-02 17:10:27 +03:00
|
|
|
;;
|
1998-01-16 15:13:05 +03:00
|
|
|
*) CC=$withval
|
2001-12-02 17:10:27 +03:00
|
|
|
;;
|
|
|
|
esac])
|
1998-01-16 15:13:05 +03:00
|
|
|
dnl If the user switches compilers, we can't believe the cache
|
|
|
|
if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
|
|
|
|
then
|
2002-04-19 11:39:40 +04:00
|
|
|
AC_MSG_ERROR(cached CC is different -- throw away $cache_file
|
1998-01-16 15:13:05 +03:00
|
|
|
(it is also a good idea to do 'make clean' before compiling))
|
|
|
|
fi
|
|
|
|
|
2002-09-08 13:08:15 +04:00
|
|
|
if test "$program_prefix" = NONE; then
|
|
|
|
program_prefix=
|
|
|
|
fi
|
2000-07-03 13:08:37 +04:00
|
|
|
AC_CANONICAL_TARGET
|
2004-06-12 06:17:24 +04:00
|
|
|
target_os=`echo $target_os | sed 's/linux-gnu$/linux/;s/linux-gnu/linux-/'`
|
1998-01-16 15:13:05 +03:00
|
|
|
|
|
|
|
dnl checks for fat-binary
|
1999-08-13 09:45:20 +04:00
|
|
|
AC_ARG_ENABLE(fat-binary,
|
* gc.c (Init_stack): stack region is far smaller than usual if
pthread is used.
* marshal.c (w_extended): singleton methods should not be checked
when dumping via marshal_dump() or _dump(). [ruby-talk:85909]
* file.c (getcwdofdrv): avoid using getcwd() directly, use
my_getcwd() instead.
* merged NeXT, OpenStep, Rhapsody ports patch from Eric Sunshine
<sunshine@sunshineco.com>. [ruby-core:01596]
* marshal.c (w_object): LINK check earlier than anything else,
i.e. do not dump TYPE_IVAR for already dumped objects.
(ruby-bugs PR#1220)
* eval.c (rb_eval): call "inherited" only when a new class is
generated; not on reopening.
* eval.c (eval): prepend error position in evaluating string to
* configure.in: revived NextStep, OpenStep, and Rhapsody ports which
had become unbuildable; enhanced --enable-fat-binary option so that
it accepts a list of desired architectures (rather than assuming a
fixed list), or defaults to a platform-appropriate list if user does
not provide an explicit list; made the default list of architectures
for MAB (fat binary) more comprehensive; now uses -fno-common even
when building the interpreter (in addition to using it for
extensions), thus allowing the interpreter to be embedded into a
plugin module of an external project (in addition to allowing
embedding directly into an application); added checks for
<netinet/in_systm.h> (needed by `socket' extension) and getcwd(); now
ensures that -I/usr/local/include is employed when extensions'
extconf.rb scripts invoke have_header() since extension checks on
NextStep and OpenStep will fail without it if the desired resource
resides in the /usr/local tree; fixed formatting of --help message.
* Makefile.in: $(LIBRUBY_A) rule now deletes the archive before
invoking $(AR) since `ar' on Apple/NeXT can not "update" MAB archives
(see configure's --enable-fat-binary option); added rule for new
missing/getcwd.c.
* defines.h: fixed endian handling during MAB build (see configure's
--enable-fat-binary option) to ensure that all portions of the
project see the correct WORDS_BIGENDIAN value (some extension modules
were getting the wrong endian setting); added missing constants
GETPGRP_VOID, WNOHANG, WUNTRACED, X_OK, and type pid_t for NextStep
and OpenStep; removed unnecessary and problematic HAVE_SYS_WAIT_H
define in NeXT section.
* dir.c: do not allow NAMLEN() macro to trust dirent::d_namlen on
NextStep since, on some installations, this value always resolves
uselessly to zero.
* dln.c: added error reporting to NextStep extension loader since the
previous behavior of failing silently was not useful; now ensures
that NSLINKMODULE_OPTION_BINDNOW compatibility constant is defined
for OpenStep and Rhapsody; no longer includes <mach-o/dyld.h> twice
on Rhapsody since this header lacks multiple-include protection,
which resulted in "redefinition" compilation errors.
* main.c: also create hard reference to objc_msgSend() on NeXT
platforms (in addition to Apple platforms).
* lib/mkmf.rb: now exports XCFLAGS from configure script to extension
makefiles so that extensions can be built MAB (see configure's
--enable-fat-binary option); also utilize XCFLAGS in cc_command()
(but not cpp_command() because MAB flags are incompatible with
direct invocation of `cpp').
* ext/curses/extconf.rb: now additionally checks for presence of these
curses functions which are not present on NextStep or Openstep:
bkgd(), bkgdset(), color(), curs(), getbkgd(), init(), scrl(), set(),
setscrreg(), wattroff(), wattron(), wattrset(), wbkgd(), wbkgdset(),
wscrl(), wsetscrreg()
* ext/curses/curses.c: added appropriate #ifdef's for additional set of
curses functions now checked by extconf.rb; fixed curses_bkgd() and
window_bkgd() to correctly return boolean result rather than numeric
result; fixed window_getbkgd() to correctly signal an error by
returning nil rather than -1.
* ext/etc/etc.c: setup_passwd() and setup_group() now check for null
pointers before invoking rb_tainted_str_new2() upon fields extracted
from `struct passwd' and `struct group' since null pointers in some
fields are common on NextStep/OpenStep (especially so for the
`pw_comment' field) and rb_tainted_str_new2() throws an exception
when it receives a null pointer.
* ext/pty/pty.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
* ext/socket/getaddrinfo.c: cast first argument of getservbyname(),
gethostbyaddr(), and gethostbyname() from (const char*) to non-const
(char*) for older platforms such as NextStep and OpenStep.
* ext/socket/socket.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup(); include
<netinet/in_systm.h> if present for NextStep and OpenStep; cast first
argument of gethostbyaddr() and getservbyname() from (const char*) to
non-const (char*) for older platforms.
* ext/syslog/syslog.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-22 07:00:03 +03:00
|
|
|
[ --enable-fat-binary=ARCHS
|
|
|
|
build an Apple/NeXT Multi Architecture Binary (MAB);
|
|
|
|
ARCHS is a comma-delimited list of architectures for
|
|
|
|
which to build; if ARCHS is omitted, then the package
|
|
|
|
will be built for all architectures supported by the
|
|
|
|
platform ("ppc" for MacOS/X and Darwin; "ppc,i386"
|
|
|
|
for Rhapsody; "m68k,i386,sparc" for OpenStep;
|
|
|
|
"m68k,i386,sparc,hppa" for NextStep); if this option
|
|
|
|
is disabled or omitted entirely, then the package
|
|
|
|
will be built only for the target platform],
|
|
|
|
[fat_binary=$enableval], [fat_binary=no])
|
2003-11-30 14:27:34 +03:00
|
|
|
if test "$fat_binary" != no; then
|
* gc.c (Init_stack): stack region is far smaller than usual if
pthread is used.
* marshal.c (w_extended): singleton methods should not be checked
when dumping via marshal_dump() or _dump(). [ruby-talk:85909]
* file.c (getcwdofdrv): avoid using getcwd() directly, use
my_getcwd() instead.
* merged NeXT, OpenStep, Rhapsody ports patch from Eric Sunshine
<sunshine@sunshineco.com>. [ruby-core:01596]
* marshal.c (w_object): LINK check earlier than anything else,
i.e. do not dump TYPE_IVAR for already dumped objects.
(ruby-bugs PR#1220)
* eval.c (rb_eval): call "inherited" only when a new class is
generated; not on reopening.
* eval.c (eval): prepend error position in evaluating string to
* configure.in: revived NextStep, OpenStep, and Rhapsody ports which
had become unbuildable; enhanced --enable-fat-binary option so that
it accepts a list of desired architectures (rather than assuming a
fixed list), or defaults to a platform-appropriate list if user does
not provide an explicit list; made the default list of architectures
for MAB (fat binary) more comprehensive; now uses -fno-common even
when building the interpreter (in addition to using it for
extensions), thus allowing the interpreter to be embedded into a
plugin module of an external project (in addition to allowing
embedding directly into an application); added checks for
<netinet/in_systm.h> (needed by `socket' extension) and getcwd(); now
ensures that -I/usr/local/include is employed when extensions'
extconf.rb scripts invoke have_header() since extension checks on
NextStep and OpenStep will fail without it if the desired resource
resides in the /usr/local tree; fixed formatting of --help message.
* Makefile.in: $(LIBRUBY_A) rule now deletes the archive before
invoking $(AR) since `ar' on Apple/NeXT can not "update" MAB archives
(see configure's --enable-fat-binary option); added rule for new
missing/getcwd.c.
* defines.h: fixed endian handling during MAB build (see configure's
--enable-fat-binary option) to ensure that all portions of the
project see the correct WORDS_BIGENDIAN value (some extension modules
were getting the wrong endian setting); added missing constants
GETPGRP_VOID, WNOHANG, WUNTRACED, X_OK, and type pid_t for NextStep
and OpenStep; removed unnecessary and problematic HAVE_SYS_WAIT_H
define in NeXT section.
* dir.c: do not allow NAMLEN() macro to trust dirent::d_namlen on
NextStep since, on some installations, this value always resolves
uselessly to zero.
* dln.c: added error reporting to NextStep extension loader since the
previous behavior of failing silently was not useful; now ensures
that NSLINKMODULE_OPTION_BINDNOW compatibility constant is defined
for OpenStep and Rhapsody; no longer includes <mach-o/dyld.h> twice
on Rhapsody since this header lacks multiple-include protection,
which resulted in "redefinition" compilation errors.
* main.c: also create hard reference to objc_msgSend() on NeXT
platforms (in addition to Apple platforms).
* lib/mkmf.rb: now exports XCFLAGS from configure script to extension
makefiles so that extensions can be built MAB (see configure's
--enable-fat-binary option); also utilize XCFLAGS in cc_command()
(but not cpp_command() because MAB flags are incompatible with
direct invocation of `cpp').
* ext/curses/extconf.rb: now additionally checks for presence of these
curses functions which are not present on NextStep or Openstep:
bkgd(), bkgdset(), color(), curs(), getbkgd(), init(), scrl(), set(),
setscrreg(), wattroff(), wattron(), wattrset(), wbkgd(), wbkgdset(),
wscrl(), wsetscrreg()
* ext/curses/curses.c: added appropriate #ifdef's for additional set of
curses functions now checked by extconf.rb; fixed curses_bkgd() and
window_bkgd() to correctly return boolean result rather than numeric
result; fixed window_getbkgd() to correctly signal an error by
returning nil rather than -1.
* ext/etc/etc.c: setup_passwd() and setup_group() now check for null
pointers before invoking rb_tainted_str_new2() upon fields extracted
from `struct passwd' and `struct group' since null pointers in some
fields are common on NextStep/OpenStep (especially so for the
`pw_comment' field) and rb_tainted_str_new2() throws an exception
when it receives a null pointer.
* ext/pty/pty.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
* ext/socket/getaddrinfo.c: cast first argument of getservbyname(),
gethostbyaddr(), and gethostbyname() from (const char*) to non-const
(char*) for older platforms such as NextStep and OpenStep.
* ext/socket/socket.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup(); include
<netinet/in_systm.h> if present for NextStep and OpenStep; cast first
argument of gethostbyaddr() and getservbyname() from (const char*) to
non-const (char*) for older platforms.
* ext/syslog/syslog.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-22 07:00:03 +03:00
|
|
|
|
|
|
|
AC_MSG_CHECKING([target architectures])
|
|
|
|
|
|
|
|
# Respect TARGET_ARCHS setting from environment if available.
|
|
|
|
if test -z "$TARGET_ARCHS"; then
|
|
|
|
# Respect ARCH given to --enable-fat-binary if present.
|
|
|
|
if test "$fat_binary" != yes; then
|
|
|
|
TARGET_ARCHS=`echo "$fat_binary" | tr ',' ' '`
|
|
|
|
else
|
|
|
|
# Choose a default set of architectures based upon platform.
|
|
|
|
case "$target_os" in
|
|
|
|
darwin*)
|
|
|
|
TARGET_ARCHS="ppc"
|
|
|
|
;;
|
|
|
|
rhapsody*)
|
|
|
|
TARGET_ARCHS="ppc i386"
|
|
|
|
;;
|
|
|
|
openstep*)
|
|
|
|
TARGET_ARCHS="m68k i386 sparc"
|
|
|
|
;;
|
|
|
|
nextstep*)
|
|
|
|
TARGET_ARCHS="m68k i386 sparc hppa"
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
TARGET_ARCHS=`arch`
|
|
|
|
esac
|
|
|
|
fi
|
|
|
|
fi
|
1998-01-16 15:13:05 +03:00
|
|
|
|
* gc.c (Init_stack): stack region is far smaller than usual if
pthread is used.
* marshal.c (w_extended): singleton methods should not be checked
when dumping via marshal_dump() or _dump(). [ruby-talk:85909]
* file.c (getcwdofdrv): avoid using getcwd() directly, use
my_getcwd() instead.
* merged NeXT, OpenStep, Rhapsody ports patch from Eric Sunshine
<sunshine@sunshineco.com>. [ruby-core:01596]
* marshal.c (w_object): LINK check earlier than anything else,
i.e. do not dump TYPE_IVAR for already dumped objects.
(ruby-bugs PR#1220)
* eval.c (rb_eval): call "inherited" only when a new class is
generated; not on reopening.
* eval.c (eval): prepend error position in evaluating string to
* configure.in: revived NextStep, OpenStep, and Rhapsody ports which
had become unbuildable; enhanced --enable-fat-binary option so that
it accepts a list of desired architectures (rather than assuming a
fixed list), or defaults to a platform-appropriate list if user does
not provide an explicit list; made the default list of architectures
for MAB (fat binary) more comprehensive; now uses -fno-common even
when building the interpreter (in addition to using it for
extensions), thus allowing the interpreter to be embedded into a
plugin module of an external project (in addition to allowing
embedding directly into an application); added checks for
<netinet/in_systm.h> (needed by `socket' extension) and getcwd(); now
ensures that -I/usr/local/include is employed when extensions'
extconf.rb scripts invoke have_header() since extension checks on
NextStep and OpenStep will fail without it if the desired resource
resides in the /usr/local tree; fixed formatting of --help message.
* Makefile.in: $(LIBRUBY_A) rule now deletes the archive before
invoking $(AR) since `ar' on Apple/NeXT can not "update" MAB archives
(see configure's --enable-fat-binary option); added rule for new
missing/getcwd.c.
* defines.h: fixed endian handling during MAB build (see configure's
--enable-fat-binary option) to ensure that all portions of the
project see the correct WORDS_BIGENDIAN value (some extension modules
were getting the wrong endian setting); added missing constants
GETPGRP_VOID, WNOHANG, WUNTRACED, X_OK, and type pid_t for NextStep
and OpenStep; removed unnecessary and problematic HAVE_SYS_WAIT_H
define in NeXT section.
* dir.c: do not allow NAMLEN() macro to trust dirent::d_namlen on
NextStep since, on some installations, this value always resolves
uselessly to zero.
* dln.c: added error reporting to NextStep extension loader since the
previous behavior of failing silently was not useful; now ensures
that NSLINKMODULE_OPTION_BINDNOW compatibility constant is defined
for OpenStep and Rhapsody; no longer includes <mach-o/dyld.h> twice
on Rhapsody since this header lacks multiple-include protection,
which resulted in "redefinition" compilation errors.
* main.c: also create hard reference to objc_msgSend() on NeXT
platforms (in addition to Apple platforms).
* lib/mkmf.rb: now exports XCFLAGS from configure script to extension
makefiles so that extensions can be built MAB (see configure's
--enable-fat-binary option); also utilize XCFLAGS in cc_command()
(but not cpp_command() because MAB flags are incompatible with
direct invocation of `cpp').
* ext/curses/extconf.rb: now additionally checks for presence of these
curses functions which are not present on NextStep or Openstep:
bkgd(), bkgdset(), color(), curs(), getbkgd(), init(), scrl(), set(),
setscrreg(), wattroff(), wattron(), wattrset(), wbkgd(), wbkgdset(),
wscrl(), wsetscrreg()
* ext/curses/curses.c: added appropriate #ifdef's for additional set of
curses functions now checked by extconf.rb; fixed curses_bkgd() and
window_bkgd() to correctly return boolean result rather than numeric
result; fixed window_getbkgd() to correctly signal an error by
returning nil rather than -1.
* ext/etc/etc.c: setup_passwd() and setup_group() now check for null
pointers before invoking rb_tainted_str_new2() upon fields extracted
from `struct passwd' and `struct group' since null pointers in some
fields are common on NextStep/OpenStep (especially so for the
`pw_comment' field) and rb_tainted_str_new2() throws an exception
when it receives a null pointer.
* ext/pty/pty.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
* ext/socket/getaddrinfo.c: cast first argument of getservbyname(),
gethostbyaddr(), and gethostbyname() from (const char*) to non-const
(char*) for older platforms such as NextStep and OpenStep.
* ext/socket/socket.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup(); include
<netinet/in_systm.h> if present for NextStep and OpenStep; cast first
argument of gethostbyaddr() and getservbyname() from (const char*) to
non-const (char*) for older platforms.
* ext/syslog/syslog.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-22 07:00:03 +03:00
|
|
|
AC_MSG_RESULT([$TARGET_ARCHS])
|
1998-01-16 15:13:05 +03:00
|
|
|
|
|
|
|
# /usr/lib/arch_tool -archify_list $TARGET_ARCHS
|
* gc.c (Init_stack): stack region is far smaller than usual if
pthread is used.
* marshal.c (w_extended): singleton methods should not be checked
when dumping via marshal_dump() or _dump(). [ruby-talk:85909]
* file.c (getcwdofdrv): avoid using getcwd() directly, use
my_getcwd() instead.
* merged NeXT, OpenStep, Rhapsody ports patch from Eric Sunshine
<sunshine@sunshineco.com>. [ruby-core:01596]
* marshal.c (w_object): LINK check earlier than anything else,
i.e. do not dump TYPE_IVAR for already dumped objects.
(ruby-bugs PR#1220)
* eval.c (rb_eval): call "inherited" only when a new class is
generated; not on reopening.
* eval.c (eval): prepend error position in evaluating string to
* configure.in: revived NextStep, OpenStep, and Rhapsody ports which
had become unbuildable; enhanced --enable-fat-binary option so that
it accepts a list of desired architectures (rather than assuming a
fixed list), or defaults to a platform-appropriate list if user does
not provide an explicit list; made the default list of architectures
for MAB (fat binary) more comprehensive; now uses -fno-common even
when building the interpreter (in addition to using it for
extensions), thus allowing the interpreter to be embedded into a
plugin module of an external project (in addition to allowing
embedding directly into an application); added checks for
<netinet/in_systm.h> (needed by `socket' extension) and getcwd(); now
ensures that -I/usr/local/include is employed when extensions'
extconf.rb scripts invoke have_header() since extension checks on
NextStep and OpenStep will fail without it if the desired resource
resides in the /usr/local tree; fixed formatting of --help message.
* Makefile.in: $(LIBRUBY_A) rule now deletes the archive before
invoking $(AR) since `ar' on Apple/NeXT can not "update" MAB archives
(see configure's --enable-fat-binary option); added rule for new
missing/getcwd.c.
* defines.h: fixed endian handling during MAB build (see configure's
--enable-fat-binary option) to ensure that all portions of the
project see the correct WORDS_BIGENDIAN value (some extension modules
were getting the wrong endian setting); added missing constants
GETPGRP_VOID, WNOHANG, WUNTRACED, X_OK, and type pid_t for NextStep
and OpenStep; removed unnecessary and problematic HAVE_SYS_WAIT_H
define in NeXT section.
* dir.c: do not allow NAMLEN() macro to trust dirent::d_namlen on
NextStep since, on some installations, this value always resolves
uselessly to zero.
* dln.c: added error reporting to NextStep extension loader since the
previous behavior of failing silently was not useful; now ensures
that NSLINKMODULE_OPTION_BINDNOW compatibility constant is defined
for OpenStep and Rhapsody; no longer includes <mach-o/dyld.h> twice
on Rhapsody since this header lacks multiple-include protection,
which resulted in "redefinition" compilation errors.
* main.c: also create hard reference to objc_msgSend() on NeXT
platforms (in addition to Apple platforms).
* lib/mkmf.rb: now exports XCFLAGS from configure script to extension
makefiles so that extensions can be built MAB (see configure's
--enable-fat-binary option); also utilize XCFLAGS in cc_command()
(but not cpp_command() because MAB flags are incompatible with
direct invocation of `cpp').
* ext/curses/extconf.rb: now additionally checks for presence of these
curses functions which are not present on NextStep or Openstep:
bkgd(), bkgdset(), color(), curs(), getbkgd(), init(), scrl(), set(),
setscrreg(), wattroff(), wattron(), wattrset(), wbkgd(), wbkgdset(),
wscrl(), wsetscrreg()
* ext/curses/curses.c: added appropriate #ifdef's for additional set of
curses functions now checked by extconf.rb; fixed curses_bkgd() and
window_bkgd() to correctly return boolean result rather than numeric
result; fixed window_getbkgd() to correctly signal an error by
returning nil rather than -1.
* ext/etc/etc.c: setup_passwd() and setup_group() now check for null
pointers before invoking rb_tainted_str_new2() upon fields extracted
from `struct passwd' and `struct group' since null pointers in some
fields are common on NextStep/OpenStep (especially so for the
`pw_comment' field) and rb_tainted_str_new2() throws an exception
when it receives a null pointer.
* ext/pty/pty.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
* ext/socket/getaddrinfo.c: cast first argument of getservbyname(),
gethostbyaddr(), and gethostbyname() from (const char*) to non-const
(char*) for older platforms such as NextStep and OpenStep.
* ext/socket/socket.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup(); include
<netinet/in_systm.h> if present for NextStep and OpenStep; cast first
argument of gethostbyaddr() and getservbyname() from (const char*) to
non-const (char*) for older platforms.
* ext/syslog/syslog.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-22 07:00:03 +03:00
|
|
|
ARCH_FLAG=
|
1998-01-16 15:13:05 +03:00
|
|
|
for archs in $TARGET_ARCHS
|
|
|
|
do
|
* gc.c (Init_stack): stack region is far smaller than usual if
pthread is used.
* marshal.c (w_extended): singleton methods should not be checked
when dumping via marshal_dump() or _dump(). [ruby-talk:85909]
* file.c (getcwdofdrv): avoid using getcwd() directly, use
my_getcwd() instead.
* merged NeXT, OpenStep, Rhapsody ports patch from Eric Sunshine
<sunshine@sunshineco.com>. [ruby-core:01596]
* marshal.c (w_object): LINK check earlier than anything else,
i.e. do not dump TYPE_IVAR for already dumped objects.
(ruby-bugs PR#1220)
* eval.c (rb_eval): call "inherited" only when a new class is
generated; not on reopening.
* eval.c (eval): prepend error position in evaluating string to
* configure.in: revived NextStep, OpenStep, and Rhapsody ports which
had become unbuildable; enhanced --enable-fat-binary option so that
it accepts a list of desired architectures (rather than assuming a
fixed list), or defaults to a platform-appropriate list if user does
not provide an explicit list; made the default list of architectures
for MAB (fat binary) more comprehensive; now uses -fno-common even
when building the interpreter (in addition to using it for
extensions), thus allowing the interpreter to be embedded into a
plugin module of an external project (in addition to allowing
embedding directly into an application); added checks for
<netinet/in_systm.h> (needed by `socket' extension) and getcwd(); now
ensures that -I/usr/local/include is employed when extensions'
extconf.rb scripts invoke have_header() since extension checks on
NextStep and OpenStep will fail without it if the desired resource
resides in the /usr/local tree; fixed formatting of --help message.
* Makefile.in: $(LIBRUBY_A) rule now deletes the archive before
invoking $(AR) since `ar' on Apple/NeXT can not "update" MAB archives
(see configure's --enable-fat-binary option); added rule for new
missing/getcwd.c.
* defines.h: fixed endian handling during MAB build (see configure's
--enable-fat-binary option) to ensure that all portions of the
project see the correct WORDS_BIGENDIAN value (some extension modules
were getting the wrong endian setting); added missing constants
GETPGRP_VOID, WNOHANG, WUNTRACED, X_OK, and type pid_t for NextStep
and OpenStep; removed unnecessary and problematic HAVE_SYS_WAIT_H
define in NeXT section.
* dir.c: do not allow NAMLEN() macro to trust dirent::d_namlen on
NextStep since, on some installations, this value always resolves
uselessly to zero.
* dln.c: added error reporting to NextStep extension loader since the
previous behavior of failing silently was not useful; now ensures
that NSLINKMODULE_OPTION_BINDNOW compatibility constant is defined
for OpenStep and Rhapsody; no longer includes <mach-o/dyld.h> twice
on Rhapsody since this header lacks multiple-include protection,
which resulted in "redefinition" compilation errors.
* main.c: also create hard reference to objc_msgSend() on NeXT
platforms (in addition to Apple platforms).
* lib/mkmf.rb: now exports XCFLAGS from configure script to extension
makefiles so that extensions can be built MAB (see configure's
--enable-fat-binary option); also utilize XCFLAGS in cc_command()
(but not cpp_command() because MAB flags are incompatible with
direct invocation of `cpp').
* ext/curses/extconf.rb: now additionally checks for presence of these
curses functions which are not present on NextStep or Openstep:
bkgd(), bkgdset(), color(), curs(), getbkgd(), init(), scrl(), set(),
setscrreg(), wattroff(), wattron(), wattrset(), wbkgd(), wbkgdset(),
wscrl(), wsetscrreg()
* ext/curses/curses.c: added appropriate #ifdef's for additional set of
curses functions now checked by extconf.rb; fixed curses_bkgd() and
window_bkgd() to correctly return boolean result rather than numeric
result; fixed window_getbkgd() to correctly signal an error by
returning nil rather than -1.
* ext/etc/etc.c: setup_passwd() and setup_group() now check for null
pointers before invoking rb_tainted_str_new2() upon fields extracted
from `struct passwd' and `struct group' since null pointers in some
fields are common on NextStep/OpenStep (especially so for the
`pw_comment' field) and rb_tainted_str_new2() throws an exception
when it receives a null pointer.
* ext/pty/pty.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
* ext/socket/getaddrinfo.c: cast first argument of getservbyname(),
gethostbyaddr(), and gethostbyname() from (const char*) to non-const
(char*) for older platforms such as NextStep and OpenStep.
* ext/socket/socket.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup(); include
<netinet/in_systm.h> if present for NextStep and OpenStep; cast first
argument of gethostbyaddr() and getservbyname() from (const char*) to
non-const (char*) for older platforms.
* ext/syslog/syslog.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-22 07:00:03 +03:00
|
|
|
ARCH_FLAG="$ARCH_FLAG -arch $archs"
|
1998-01-16 15:13:05 +03:00
|
|
|
done
|
1999-08-13 09:45:20 +04:00
|
|
|
AC_DEFINE(NEXT_FAT_BINARY)
|
2003-11-30 14:27:34 +03:00
|
|
|
fi
|
1998-01-16 15:13:05 +03:00
|
|
|
|
2001-02-28 09:30:03 +03:00
|
|
|
case $target_cpu in
|
|
|
|
i?86) frame_address=yes;;
|
|
|
|
*) frame_address=no;;
|
|
|
|
esac
|
|
|
|
AC_ARG_ENABLE(frame-address,
|
2002-04-12 07:24:52 +04:00
|
|
|
[ --enable-frame-address use GCC __builtin_frame_address(). ],
|
2001-02-28 09:30:03 +03:00
|
|
|
[frame_address=$enableval])
|
|
|
|
if test $frame_address = yes; then
|
|
|
|
AC_DEFINE(USE_BUILTIN_FRAME_ADDRESS)
|
|
|
|
fi
|
|
|
|
|
1998-01-16 15:13:05 +03:00
|
|
|
AC_ARG_PROGRAM
|
|
|
|
|
|
|
|
dnl Checks for programs.
|
2000-02-01 06:12:21 +03:00
|
|
|
|
|
|
|
if test x"${build}" != x"${host}"; then
|
|
|
|
AC_CHECK_TOOL(CC, gcc)
|
|
|
|
fi
|
1998-01-16 15:13:05 +03:00
|
|
|
AC_PROG_CC
|
2005-04-21 01:45:43 +04:00
|
|
|
AC_PROG_CXX
|
1998-01-16 15:13:05 +03:00
|
|
|
AC_PROG_GCC_TRADITIONAL
|
2000-02-01 06:12:21 +03:00
|
|
|
|
2002-10-04 09:18:05 +04:00
|
|
|
RUBY_PROG_GNU_LD
|
2002-09-23 15:01:49 +04:00
|
|
|
RUBY_CPPOUTFILE
|
|
|
|
|
2003-11-30 12:33:03 +03:00
|
|
|
: ${OUTFLAG='-o '}
|
2002-09-15 16:57:21 +04:00
|
|
|
AC_SUBST(OUTFLAG)
|
|
|
|
|
2002-09-23 15:01:49 +04:00
|
|
|
RUBY_MINGW32
|
|
|
|
|
2000-02-01 06:12:21 +03:00
|
|
|
AC_CHECK_TOOL(RANLIB, ranlib, :)
|
2002-08-28 10:01:58 +04:00
|
|
|
AC_CHECK_TOOL(AR, ar)
|
2002-08-28 11:38:25 +04:00
|
|
|
if test -z "$AR"; then
|
|
|
|
AC_CHECK_PROGS(AR, aal, ar)
|
|
|
|
fi
|
1999-08-13 09:45:20 +04:00
|
|
|
|
2000-02-01 06:12:21 +03:00
|
|
|
case "$target_os" in
|
2001-01-31 17:27:37 +03:00
|
|
|
cygwin*|mingw*)
|
|
|
|
AC_CHECK_TOOL(NM, nm)
|
|
|
|
AC_CHECK_TOOL(WINDRES, windres)
|
2002-06-11 14:26:13 +04:00
|
|
|
AC_CHECK_TOOL(DLLWRAP, dllwrap)
|
2001-11-30 12:17:30 +03:00
|
|
|
target_cpu=`echo $target_cpu | sed s/i.86/i386/`
|
2005-04-13 14:25:41 +04:00
|
|
|
case "$target_os" in
|
|
|
|
mingw*)
|
|
|
|
test "$rb_cv_msvcrt" = "" && unset rb_cv_msvcrt
|
|
|
|
AC_CHECK_TOOL(OBJDUMP, objdump)
|
|
|
|
AC_CACHE_CHECK(for mingw32 runtime DLL, rb_cv_msvcrt, [
|
|
|
|
AC_TRY_LINK([#include <stdio.h>],
|
|
|
|
[FILE* volatile f = stdin; return 0;],
|
|
|
|
[rb_cv_msvcrt=`$OBJDUMP -p conftest$ac_exeext |
|
2005-04-13 16:24:40 +04:00
|
|
|
tr A-Z a-z |
|
|
|
|
sed -n '/^[[ ]]*dll name: \(msvc.*\)\.dll$/{s//\1/p;q;}'`],
|
2005-04-13 14:25:41 +04:00
|
|
|
[rb_cv_msvcrt=msvcrt])])
|
|
|
|
test "$rb_cv_msvcrt" = "" && AC_MSG_ERROR([must be linked to DLL])
|
|
|
|
esac
|
2001-11-30 12:17:30 +03:00
|
|
|
: ${enable_shared=yes}
|
2001-01-31 17:27:37 +03:00
|
|
|
;;
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
aix*)
|
|
|
|
AC_CHECK_TOOL(NM, nm, /usr/ccs/bin/nm, /usr/ccs/bin:$PATH)
|
|
|
|
;;
|
2002-05-02 11:50:36 +04:00
|
|
|
hiuxmpp*)
|
2003-11-30 12:33:03 +03:00
|
|
|
# by TOYODA Eizi <toyoda@npd.kishou.go.jp>
|
2002-05-02 11:50:36 +04:00
|
|
|
AC_DEFINE(__HIUX_MPP__)
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
1999-08-13 09:45:20 +04:00
|
|
|
AC_PROG_LN_S
|
1998-01-16 15:13:05 +03:00
|
|
|
AC_PROG_MAKE_SET
|
2005-04-16 10:27:43 +04:00
|
|
|
AC_PROG_INSTALL
|
1998-01-16 15:13:05 +03:00
|
|
|
|
|
|
|
# checks for UNIX variants that set C preprocessor variables
|
2000-08-01 13:25:37 +04:00
|
|
|
AC_AIX
|
1998-01-16 15:13:05 +03:00
|
|
|
AC_MINIX
|
|
|
|
|
2004-02-09 11:48:55 +03:00
|
|
|
AC_SUBST(RM, ['rm -f'])
|
2005-04-02 17:30:49 +04:00
|
|
|
AC_SUBST(CP, ['cp'])
|
2005-02-22 17:52:59 +03:00
|
|
|
if $as_mkdir_p; then
|
|
|
|
AC_SUBST(MAKEDIRS, ['mkdir -p'])
|
|
|
|
else
|
|
|
|
AC_SUBST(MAKEDIRS, ['install -d'])
|
|
|
|
fi
|
2004-02-09 11:48:55 +03:00
|
|
|
|
2002-03-14 09:23:46 +03:00
|
|
|
dnl check for large file stuff
|
|
|
|
AC_SYS_LARGEFILE
|
|
|
|
|
|
|
|
AC_CHECK_TYPES([long long, off_t])
|
2002-04-19 11:39:40 +04:00
|
|
|
|
1999-11-10 09:47:11 +03:00
|
|
|
AC_CHECK_SIZEOF(int, 4)
|
|
|
|
AC_CHECK_SIZEOF(short, 2)
|
|
|
|
AC_CHECK_SIZEOF(long, 4)
|
2000-10-31 11:37:47 +03:00
|
|
|
AC_CHECK_SIZEOF(long long, 0)
|
2000-11-02 12:04:54 +03:00
|
|
|
AC_CHECK_SIZEOF(__int64, 0)
|
2002-03-14 09:23:46 +03:00
|
|
|
AC_CHECK_SIZEOF(off_t, 0)
|
1999-11-10 09:47:11 +03:00
|
|
|
AC_CHECK_SIZEOF(void*, 4)
|
|
|
|
AC_CHECK_SIZEOF(float, 4)
|
|
|
|
AC_CHECK_SIZEOF(double, 8)
|
2004-04-06 11:48:38 +04:00
|
|
|
AC_CHECK_SIZEOF(time_t, 0)
|
1999-01-20 07:59:39 +03:00
|
|
|
|
2005-05-15 13:56:53 +04:00
|
|
|
for id in pid_t gid_t uid_t; do
|
|
|
|
AC_CHECK_TYPE($id, [typ=$id], [typ=int])
|
|
|
|
AC_DEFINE_UNQUOTED(rb_$id, $typ)
|
|
|
|
done
|
2005-05-14 18:57:53 +04:00
|
|
|
|
1999-08-13 09:45:20 +04:00
|
|
|
AC_CACHE_CHECK(for prototypes, rb_cv_have_prototypes,
|
1999-01-20 07:59:39 +03:00
|
|
|
[AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],
|
|
|
|
rb_cv_have_prototypes=yes,
|
|
|
|
rb_cv_have_prototypes=no)])
|
|
|
|
if test "$rb_cv_have_prototypes" = yes; then
|
|
|
|
AC_DEFINE(HAVE_PROTOTYPES)
|
|
|
|
fi
|
|
|
|
|
1999-08-13 09:45:20 +04:00
|
|
|
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,
|
1999-01-20 07:59:39 +03:00
|
|
|
[AC_TRY_COMPILE([
|
|
|
|
#include <stdarg.h>
|
|
|
|
int foo(int x, ...) {
|
|
|
|
va_list va;
|
|
|
|
va_start(va, x);
|
|
|
|
va_arg(va, int);
|
|
|
|
va_arg(va, char *);
|
|
|
|
va_arg(va, double);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
], [return foo(10, "", 3.14);],
|
|
|
|
rb_cv_stdarg=yes,
|
|
|
|
rb_cv_stdarg=no)])
|
|
|
|
if test "$rb_cv_stdarg" = yes; then
|
|
|
|
AC_DEFINE(HAVE_STDARG_PROTOTYPES)
|
|
|
|
fi
|
|
|
|
|
2005-04-30 06:59:44 +04:00
|
|
|
AC_DEFUN(RUBY_FUNC_ATTRIBUTE, [dnl
|
|
|
|
m4_ifval([$2], dnl
|
|
|
|
[AS_VAR_PUSHDEF([attrib],[$2])], dnl
|
|
|
|
[AS_VAR_PUSHDEF([attrib],[FUNC_]AS_TR_CPP($1))] dnl
|
|
|
|
)dnl
|
|
|
|
m4_ifval([$3], dnl
|
|
|
|
[AS_VAR_PUSHDEF([rbcv],[$3])], dnl
|
|
|
|
[AS_VAR_PUSHDEF([rbcv],[rb_cv_func_][$1])]dnl
|
|
|
|
)dnl
|
|
|
|
AC_CACHE_CHECK(for [$1] function attribute, rbcv,
|
|
|
|
[rbcv=x
|
|
|
|
if test "${ac_c_werror_flag+set}"; then
|
|
|
|
rb_c_werror_flag="$ac_c_werror_flag"
|
|
|
|
else
|
|
|
|
unset rb_c_werror_flag
|
|
|
|
fi
|
|
|
|
ac_c_werror_flag=yes
|
|
|
|
for mac in "x __attribute__ (($1))" "__declspec($1) x" x; do
|
2001-01-10 11:09:01 +03:00
|
|
|
AC_TRY_COMPILE(
|
2005-04-30 06:59:44 +04:00
|
|
|
[#define ]attrib[(x) $mac
|
|
|
|
]attrib[(void conftest_attribute_check(void));], [],
|
|
|
|
[rbcv="$mac"; break])
|
|
|
|
done
|
|
|
|
if test "${rb_c_werror_flag+set}"; then
|
|
|
|
ac_c_werror_flag="$rb_c_werror_flag"
|
|
|
|
else
|
|
|
|
unset ac_c_werror_flag
|
|
|
|
fi
|
|
|
|
])
|
|
|
|
AC_DEFINE_UNQUOTED(attrib[(x)], $rbcv)
|
|
|
|
AS_VAR_POPDEF([attrib])
|
|
|
|
AS_VAR_POPDEF([rbcv])
|
|
|
|
])
|
|
|
|
|
|
|
|
RUBY_FUNC_ATTRIBUTE(noreturn, NORETURN)
|
|
|
|
RUBY_FUNC_ATTRIBUTE(deprecated, DEPRECATED)
|
|
|
|
RUBY_FUNC_ATTRIBUTE(noinline, NOINLINE)
|
|
|
|
RUBY_FUNC_ATTRIBUTE(stdcall)
|
|
|
|
RUBY_FUNC_ATTRIBUTE(cdecl)
|
2001-01-10 11:09:01 +03:00
|
|
|
|
2002-05-02 11:50:36 +04:00
|
|
|
dnl Check whether we need to define sys_nerr locally
|
2002-05-03 15:24:30 +04:00
|
|
|
AC_CHECK_DECLS([sys_nerr], [], [], [$ac_includes_default
|
|
|
|
#include <errno.h>])
|
1999-01-20 07:59:39 +03:00
|
|
|
|
2002-05-02 11:50:36 +04:00
|
|
|
dnl whether link libc_r or not
|
2001-04-01 20:53:41 +04:00
|
|
|
AC_ARG_WITH(libc_r,
|
2002-04-12 07:24:52 +04:00
|
|
|
[ --with-libc_r link libc_r if possible (FreeBSD only)], [
|
2001-04-01 20:53:41 +04:00
|
|
|
case $withval in
|
|
|
|
yes) with_libc_r=yes;;
|
|
|
|
*) with_libc_r=no;;
|
2001-05-30 20:29:32 +04:00
|
|
|
esac], [with_libc_r=no])
|
2001-04-01 20:53:41 +04:00
|
|
|
|
2003-11-22 16:58:57 +03:00
|
|
|
AC_ARG_ENABLE(pthread,
|
2003-11-25 09:26:38 +03:00
|
|
|
[ --enable-pthread use pthread library.],
|
|
|
|
[enable_pthread=$enableval], [enable_pthread=no])
|
2003-11-22 16:58:57 +03:00
|
|
|
|
1998-01-16 15:13:05 +03:00
|
|
|
dnl Checks for libraries.
|
2000-01-05 07:41:21 +03:00
|
|
|
case "$target_os" in
|
1998-01-16 15:13:05 +03:00
|
|
|
nextstep*) ;;
|
1999-01-20 07:59:39 +03:00
|
|
|
openstep*) ;;
|
|
|
|
rhapsody*) ;;
|
2000-10-02 11:48:42 +04:00
|
|
|
darwin*) LIBS="-lobjc $LIBS";;
|
2003-03-05 06:15:06 +03:00
|
|
|
hpux*) LIBS="-lm $LIBS"
|
|
|
|
ac_cv_c_inline=no;;
|
2003-12-22 11:23:55 +03:00
|
|
|
human*) ac_cv_func_getpgrp_void=yes
|
|
|
|
ac_cv_func_setitimer=no
|
|
|
|
;;
|
1999-01-20 07:59:39 +03:00
|
|
|
beos*) ;;
|
2001-04-26 17:58:10 +04:00
|
|
|
cygwin*) rb_cv_have_daylight=no
|
2002-08-21 11:17:55 +04:00
|
|
|
ac_cv_var_tzname=no
|
2002-10-02 08:28:01 +04:00
|
|
|
ac_cv_func__setjmp=no
|
|
|
|
ac_cv_func_setitimer=no
|
|
|
|
;;
|
2005-02-10 07:55:34 +03:00
|
|
|
mingw*) LIBS="-lshell32 -lws2_32 $LIBS"
|
2000-05-13 20:13:31 +04:00
|
|
|
ac_cv_header_a_out_h=no
|
|
|
|
ac_cv_header_pwd_h=no
|
|
|
|
ac_cv_header_utime_h=no
|
|
|
|
ac_cv_header_sys_ioctl_h=no
|
|
|
|
ac_cv_header_sys_param_h=no
|
|
|
|
ac_cv_header_sys_resource_h=no
|
|
|
|
ac_cv_header_sys_select_h=no
|
2000-08-15 11:11:13 +04:00
|
|
|
ac_cv_header_sys_times_h=no
|
2001-06-01 06:25:28 +04:00
|
|
|
ac_cv_func_times=yes
|
2002-05-22 15:23:11 +04:00
|
|
|
ac_cv_func_waitpid=yes
|
2003-05-13 12:59:36 +04:00
|
|
|
ac_cv_func_fsync=yes
|
2005-08-03 05:21:20 +04:00
|
|
|
ac_cv_func_snprintf=yes
|
|
|
|
ac_cv_func_vsnprintf=yes
|
2002-06-30 13:07:54 +04:00
|
|
|
ac_cv_func_seekdir=yes
|
|
|
|
ac_cv_func_telldir=yes
|
2003-12-22 11:09:14 +03:00
|
|
|
ac_cv_func_isinf=yes
|
|
|
|
ac_cv_func_isnan=yes
|
|
|
|
ac_cv_func_finite=yes
|
2004-02-12 08:20:09 +03:00
|
|
|
ac_cv_func_link=yes
|
2002-12-26 18:12:06 +03:00
|
|
|
ac_cv_lib_crypt_crypt=no
|
2004-11-07 18:16:27 +03:00
|
|
|
ac_cv_func_getpgrp_void=no
|
|
|
|
ac_cv_func_setpgrp_void=yes
|
|
|
|
ac_cv_func_memcmp_working=yes
|
|
|
|
rb_cv_binary_elf=no
|
|
|
|
rb_cv_negative_time_t=no
|
2003-11-22 17:24:35 +03:00
|
|
|
enable_pthread=no
|
2002-05-22 15:23:11 +04:00
|
|
|
;;
|
2003-07-30 04:32:03 +04:00
|
|
|
os2-emx*) LIBS="-lm $LIBS"
|
2000-02-08 11:54:01 +03:00
|
|
|
ac_cv_lib_dir_opendir=no;;
|
2001-02-11 17:59:04 +03:00
|
|
|
msdosdjgpp*) LIBS="-lm $LIBS"
|
2003-12-22 11:23:55 +03:00
|
|
|
ac_cv_func_getpgrp_void=yes
|
|
|
|
ac_cv_func_setitimer=no
|
2004-12-06 17:04:05 +03:00
|
|
|
ac_cv_sizeof_rlim_t=4
|
2004-04-25 13:28:07 +04:00
|
|
|
ac_cv_func_fork=no
|
2003-12-22 11:23:55 +03:00
|
|
|
;;
|
2004-12-17 11:47:11 +03:00
|
|
|
bsdi*) LIBS="-lm $LIBS"
|
|
|
|
ac_cv_sizeof_rlim_t=8;;
|
2000-06-16 11:44:16 +04:00
|
|
|
freebsd*) LIBS="-lm $LIBS"
|
|
|
|
AC_CACHE_CHECK([whether -lxpg4 has to be linked],
|
|
|
|
rb_cv_lib_xpg4_needed,
|
|
|
|
[AC_TRY_CPP([
|
|
|
|
#include <osreldate.h>
|
|
|
|
#if __FreeBSD_version < 400020 || \
|
|
|
|
(__FreeBSD_version >= 500000 && __FreeBSD_version < 500005)
|
|
|
|
#error needs libxpg4
|
|
|
|
#endif
|
|
|
|
],
|
|
|
|
rb_cv_lib_xpg4_needed=no,
|
|
|
|
rb_cv_lib_xpg4_needed=yes,
|
|
|
|
rb_cv_lib_xpg4_needed=yes)])
|
|
|
|
if test "$rb_cv_lib_xpg4_needed" = yes; then
|
|
|
|
AC_CHECK_LIB(xpg4, setlocale)
|
|
|
|
fi
|
2003-12-17 09:38:18 +03:00
|
|
|
if test "$with_libc_r" = yes; then
|
2001-04-01 20:53:41 +04:00
|
|
|
AC_CACHE_CHECK([whether libc_r is supplementary to libc],
|
|
|
|
rb_cv_supplementary_lib_c_r,
|
|
|
|
[AC_TRY_CPP([
|
|
|
|
#include <osreldate.h>
|
|
|
|
#if 500016 <= __FreeBSD_version
|
|
|
|
#error libc_r is supplementary to libc
|
|
|
|
#endif
|
|
|
|
],
|
|
|
|
rb_cv_supplementary_lib_c_r=no,
|
|
|
|
rb_cv_supplementary_lib_c_r=yes,
|
|
|
|
rb_cv_supplementary_lib_c_r=yes)])
|
2004-10-27 13:29:26 +04:00
|
|
|
if test "$rb_cv_supplementary_lib_c_r" = yes; then
|
2003-12-17 09:38:18 +03:00
|
|
|
MAINLIBS="-lc_r $MAINLIBS"
|
2001-04-01 20:53:41 +04:00
|
|
|
fi
|
|
|
|
fi
|
2000-06-16 11:44:16 +04:00
|
|
|
;;
|
2004-06-09 10:41:08 +04:00
|
|
|
dragonfly*) LIBS="-lm $LIBS"
|
|
|
|
;;
|
2003-12-22 11:23:55 +03:00
|
|
|
bow) ac_cv_func_setitimer=no
|
|
|
|
;;
|
2004-05-20 08:34:14 +04:00
|
|
|
superux*) ac_cv_func_setitimer=no
|
|
|
|
;;
|
1998-01-16 15:13:05 +03:00
|
|
|
*) LIBS="-lm $LIBS";;
|
|
|
|
esac
|
|
|
|
AC_CHECK_LIB(crypt, crypt)
|
|
|
|
AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
|
|
|
|
AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
|
2004-12-06 17:09:33 +03:00
|
|
|
AC_CHECK_LIB(socket, socketpair) # SunOS/Solaris
|
1998-01-16 15:13:05 +03:00
|
|
|
|
2003-06-23 23:54:41 +04:00
|
|
|
case "$target_cpu" in
|
|
|
|
alpha*) case "$target_os"::"$GCC" in
|
|
|
|
*::yes) CFLAGS="-mieee $CFLAGS" ;; # gcc
|
|
|
|
osf*) CFLAGS="-ieee $CFLAGS" ;; # ccc
|
|
|
|
esac ;;
|
|
|
|
esac
|
|
|
|
|
1998-01-16 15:13:05 +03:00
|
|
|
dnl Checks for header files.
|
|
|
|
AC_HEADER_DIRENT
|
|
|
|
AC_HEADER_STDC
|
1999-08-13 09:45:20 +04:00
|
|
|
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\
|
2003-06-09 14:02:36 +04:00
|
|
|
syscall.h pwd.h grp.h a.out.h utime.h memory.h direct.h sys/resource.h \
|
2003-12-13 03:01:28 +03:00
|
|
|
sys/mkdev.h sys/utime.h netinet/in_systm.h float.h ieeefp.h pthread.h \
|
2004-09-21 07:08:33 +04:00
|
|
|
ucontext.h intrinsics.h unwind.h)
|
1998-01-16 15:13:05 +03:00
|
|
|
|
2004-11-15 13:05:17 +03:00
|
|
|
dnl Check additional types.
|
|
|
|
AC_CHECK_SIZEOF(rlim_t, 0, [
|
|
|
|
#ifdef HAVE_SYS_TYPES_H
|
|
|
|
# include <sys/types.h>
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_SYS_TIME_H
|
|
|
|
# include <sys/time.h>
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_SYS_RESOURCE_H
|
|
|
|
# include <sys/resource.h>
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_UNISTD_H
|
|
|
|
# include <unistd.h>
|
|
|
|
#endif
|
2004-11-25 12:09:26 +03:00
|
|
|
#include <stdio.h>
|
2004-11-15 13:05:17 +03:00
|
|
|
])
|
|
|
|
|
1998-01-16 15:13:05 +03:00
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
|
|
AC_TYPE_SIZE_T
|
|
|
|
AC_STRUCT_ST_BLKSIZE
|
|
|
|
AC_STRUCT_ST_BLOCKS
|
|
|
|
AC_STRUCT_ST_RDEV
|
|
|
|
|
2004-07-08 14:27:23 +04:00
|
|
|
AC_CACHE_CHECK(for stack end address, rb_cv_stack_end_address,
|
|
|
|
[rb_cv_stack_end_address=no
|
|
|
|
for addr in __libc_stack_end _SEND; do
|
|
|
|
AC_TRY_LINK(
|
|
|
|
[extern void *$addr;],
|
|
|
|
[if (!$addr) return 1;],
|
|
|
|
[rb_cv_stack_end_address="$addr"; break])
|
|
|
|
done])
|
|
|
|
if test $rb_cv_stack_end_address != no; then
|
|
|
|
AC_DEFINE_UNQUOTED(STACK_END_ADDRESS, $rb_cv_stack_end_address)
|
|
|
|
fi
|
|
|
|
|
1998-01-16 15:13:05 +03:00
|
|
|
dnl Checks for library functions.
|
|
|
|
AC_TYPE_GETGROUPS
|
|
|
|
AC_TYPE_SIGNAL
|
|
|
|
AC_FUNC_ALLOCA
|
1999-01-20 07:59:39 +03:00
|
|
|
AC_FUNC_MEMCMP
|
2005-06-12 20:56:06 +04:00
|
|
|
AC_REPLACE_FUNCS(dup2 memmove strcasecmp strncasecmp strerror strftime\
|
2005-07-23 05:02:18 +04:00
|
|
|
strchr strstr strtoul crypt flock\
|
2003-12-20 18:45:15 +03:00
|
|
|
isnan finite isinf hypot acosh erf)
|
2004-02-16 09:45:32 +03:00
|
|
|
AC_CHECK_FUNCS(fmod killpg wait4 waitpid fork spawnv syscall chroot fsync getcwd\
|
2004-01-21 19:09:40 +03:00
|
|
|
truncate chsize times utimes fcntl lockf lstat link symlink readlink\
|
2001-09-03 09:37:42 +04:00
|
|
|
setitimer setruid seteuid setreuid setresuid setproctitle\
|
2003-07-23 06:39:46 +04:00
|
|
|
setrgid setegid setregid setresgid issetugid pause lchown lchmod\
|
|
|
|
getpgrp setpgrp getpgid setpgid initgroups getgroups setgroups\
|
2004-11-14 13:06:16 +03:00
|
|
|
getpriority getrlimit setrlimit\
|
2005-08-03 05:05:30 +04:00
|
|
|
dlopen sigprocmask sigaction _setjmp vsnprintf snprintf\
|
2003-09-22 14:25:24 +04:00
|
|
|
setsid telldir seekdir fchmod mktime timegm cosh sinh tanh\
|
2005-07-02 10:22:14 +04:00
|
|
|
setuid setgid daemon select_large_fdset \
|
2005-06-09 13:34:31 +04:00
|
|
|
_UNW_createContextForSelf)
|
2003-07-23 20:07:35 +04:00
|
|
|
AC_ARG_ENABLE(setreuid,
|
|
|
|
[ --enable-setreuid use setreuid()/setregid() according to need even if obsolete.],
|
|
|
|
[use_setreuid=$enableval])
|
|
|
|
if test "$use_setreuid" = yes; then
|
|
|
|
AC_DEFINE(USE_SETREUID)
|
|
|
|
AC_DEFINE(USE_SETREGID)
|
|
|
|
fi
|
1999-08-13 09:45:20 +04:00
|
|
|
AC_STRUCT_TIMEZONE
|
2001-12-17 09:45:37 +03:00
|
|
|
AC_CACHE_CHECK(for struct tm.tm_gmtoff, rb_cv_member_struct_tm_tm_gmtoff,
|
|
|
|
[AC_TRY_COMPILE([#include <time.h>],
|
|
|
|
[struct tm t; t.tm_gmtoff = 3600;],
|
|
|
|
[rb_cv_member_struct_tm_tm_gmtoff=yes],
|
|
|
|
[rb_cv_member_struct_tm_tm_gmtoff=no])])
|
|
|
|
if test "$rb_cv_member_struct_tm_tm_gmtoff" = yes; then
|
|
|
|
AC_DEFINE(HAVE_STRUCT_TM_TM_GMTOFF)
|
|
|
|
fi
|
2000-06-12 11:48:31 +04:00
|
|
|
AC_CACHE_CHECK(for external int daylight, rb_cv_have_daylight,
|
2000-06-14 09:15:08 +04:00
|
|
|
[AC_TRY_LINK([#include <time.h>
|
|
|
|
int i;],
|
|
|
|
[i = daylight;],
|
2000-06-12 11:48:31 +04:00
|
|
|
rb_cv_have_daylight=yes,
|
|
|
|
rb_cv_have_daylight=no)])
|
|
|
|
if test "$rb_cv_have_daylight" = yes; then
|
|
|
|
AC_DEFINE(HAVE_DAYLIGHT)
|
1998-01-16 15:13:05 +03:00
|
|
|
fi
|
2001-02-20 10:42:03 +03:00
|
|
|
AC_CACHE_CHECK(for negative time_t for gmtime(3), rb_cv_negative_time_t,
|
|
|
|
[AC_TRY_RUN([
|
|
|
|
#include <time.h>
|
|
|
|
|
|
|
|
void
|
|
|
|
check(tm, y, m, d, h, s)
|
|
|
|
struct tm *tm;
|
|
|
|
int y, m, d, h, s;
|
|
|
|
{
|
2001-02-26 08:29:06 +03:00
|
|
|
if (!tm ||
|
|
|
|
tm->tm_year != y ||
|
2001-02-20 10:42:03 +03:00
|
|
|
tm->tm_mon != m-1 ||
|
|
|
|
tm->tm_mday != d ||
|
|
|
|
tm->tm_hour != h ||
|
|
|
|
tm->tm_sec != s) {
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
int
|
|
|
|
main()
|
|
|
|
{
|
|
|
|
time_t t = -1;
|
|
|
|
struct tm *tm;
|
|
|
|
|
|
|
|
check(gmtime(&t), 69, 12, 31, 23, 59);
|
2001-12-17 09:45:37 +03:00
|
|
|
t = ~(time_t)0 << 31;
|
2001-02-20 10:42:03 +03:00
|
|
|
check(gmtime(&t), 1, 12, 13, 20, 52);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
],
|
|
|
|
rb_cv_negative_time_t=yes,
|
|
|
|
rb_cv_negative_time_t=no,
|
|
|
|
rb_cv_negative_time_t=yes)])
|
|
|
|
if test "$rb_cv_negative_time_t" = yes; then
|
|
|
|
AC_DEFINE(NEGATIVE_TIME_T)
|
|
|
|
fi
|
1998-01-16 15:13:05 +03:00
|
|
|
|
|
|
|
if test "$ac_cv_func_sigprocmask" = yes && test "$ac_cv_func_sigaction" = yes; then
|
|
|
|
AC_DEFINE(POSIX_SIGNAL)
|
|
|
|
else
|
1999-08-13 09:45:20 +04:00
|
|
|
AC_CACHE_CHECK(for BSD signal semantics, rb_cv_bsd_signal,
|
1998-01-16 15:13:05 +03:00
|
|
|
[AC_TRY_RUN([
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <signal.h>
|
|
|
|
|
|
|
|
void
|
|
|
|
sig_handler(dummy)
|
|
|
|
int dummy;
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
int
|
|
|
|
main()
|
|
|
|
{
|
|
|
|
signal(SIGINT, sig_handler);
|
|
|
|
kill(getpid(), SIGINT);
|
|
|
|
kill(getpid(), SIGINT);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
],
|
|
|
|
rb_cv_bsd_signal=yes,
|
1999-08-13 09:45:20 +04:00
|
|
|
rb_cv_bsd_signal=no,
|
1998-01-16 15:13:05 +03:00
|
|
|
rb_cv_bsd_signal=no)])
|
|
|
|
if test "$rb_cv_bsd_signal" = yes; then
|
|
|
|
AC_DEFINE(BSD_SIGNAL)
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
1999-08-13 09:45:20 +04:00
|
|
|
AC_FUNC_GETPGRP
|
|
|
|
AC_FUNC_SETPGRP
|
1998-01-16 15:13:05 +03:00
|
|
|
|
|
|
|
AC_C_BIGENDIAN
|
1999-08-13 09:45:20 +04:00
|
|
|
AC_C_CONST
|
1999-11-10 09:47:11 +03:00
|
|
|
AC_C_CHAR_UNSIGNED
|
2001-03-22 11:59:26 +03:00
|
|
|
AC_C_INLINE
|
2003-07-24 11:05:28 +04:00
|
|
|
AC_C_VOLATILE
|
1998-01-16 15:13:05 +03:00
|
|
|
|
2004-09-21 07:08:33 +04:00
|
|
|
if test x"$target_cpu" = xia64; then
|
2005-06-09 13:34:31 +04:00
|
|
|
if test x"$ac_cv_header_unwind_h" = xyes -a x"$ac_cv_func__UNW_createContextForSelf" = xyes; then
|
2004-09-21 07:08:33 +04:00
|
|
|
LIBS="-lunwind $LIBS"
|
|
|
|
else
|
|
|
|
AC_CACHE_CHECK(IA64 backing store member in mcontext_t, rb_cv_ia64_bspstore,
|
|
|
|
[rb_cv_ia64_bspstore=no;
|
|
|
|
for mem in mc_special.bspstore sc_ar_bsp; do
|
|
|
|
AC_TRY_COMPILE([#include <ucontext.h>
|
|
|
|
],[ucontext_t ctx; ctx.uc_mcontext.$mem = 0;], [rb_cv_ia64_bspstore=$mem; break])
|
|
|
|
done])
|
|
|
|
if test "$rb_cv_ia64_bspstore" != no; then
|
|
|
|
AC_DEFINE_UNQUOTED(IA64_BSPSTORE, $rb_cv_ia64_bspstore)
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
1999-08-13 09:45:20 +04:00
|
|
|
AC_CACHE_CHECK(whether right shift preserve sign bit, rb_cv_rshift_sign,
|
1999-01-20 07:59:39 +03:00
|
|
|
[AC_TRY_RUN([
|
|
|
|
int
|
|
|
|
main()
|
|
|
|
{
|
1999-12-14 09:50:43 +03:00
|
|
|
if (-1==(-1>>1))
|
1999-01-20 07:59:39 +03:00
|
|
|
return 0;
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
],
|
|
|
|
rb_cv_rshift_sign=yes,
|
1999-08-13 09:45:20 +04:00
|
|
|
rb_cv_rshift_sign=no,
|
|
|
|
rb_cv_rshift_sign=yes)])
|
1999-01-20 07:59:39 +03:00
|
|
|
if test "$rb_cv_rshift_sign" = yes; then
|
1999-12-14 09:50:43 +03:00
|
|
|
AC_DEFINE(RSHIFT(x,y), ((x)>>(int)y))
|
1999-01-20 07:59:39 +03:00
|
|
|
else
|
|
|
|
AC_DEFINE(RSHIFT(x,y), (((x)<0) ? ~((~(x))>>y) : (x)>>y))
|
|
|
|
fi
|
|
|
|
|
2002-03-25 17:50:40 +03:00
|
|
|
AC_MSG_CHECKING(read count field in FILE structures)
|
1998-01-16 15:13:05 +03:00
|
|
|
AC_CACHE_VAL(rb_cv_fcnt,
|
2002-03-25 17:50:40 +03:00
|
|
|
[for fcnt in dnl
|
|
|
|
_cnt dnl
|
|
|
|
__cnt dnl
|
|
|
|
_r dnl
|
|
|
|
readCount dnl
|
|
|
|
_rcount dnl for emx0.9c
|
|
|
|
; do
|
|
|
|
AC_TRY_COMPILE([#include <stdio.h>
|
|
|
|
],
|
|
|
|
[FILE *f = stdin; f->$fcnt = 0;],
|
|
|
|
rb_cv_fcnt="$fcnt"; break,
|
|
|
|
rb_cv_fcnt="not found")
|
|
|
|
done])
|
1998-01-16 15:13:05 +03:00
|
|
|
if test "$rb_cv_fcnt" = "not found"; then
|
|
|
|
AC_MSG_RESULT([not found(OK if using GNU libc)])
|
|
|
|
else
|
|
|
|
AC_MSG_RESULT($rb_cv_fcnt)
|
|
|
|
AC_DEFINE_UNQUOTED(FILE_COUNT, $rb_cv_fcnt)
|
|
|
|
fi
|
|
|
|
|
2002-03-25 17:50:40 +03:00
|
|
|
AC_MSG_CHECKING(read buffer ptr field in FILE structures)
|
|
|
|
AC_CACHE_VAL(rb_cv_frptr,
|
|
|
|
[for frptr in dnl
|
|
|
|
_IO_read_ptr dnl
|
|
|
|
_ptr dnl
|
|
|
|
__ptr dnl
|
|
|
|
bufpos dnl
|
2002-03-25 18:37:44 +03:00
|
|
|
_p dnl
|
2002-03-25 17:50:40 +03:00
|
|
|
; do
|
|
|
|
AC_TRY_COMPILE([#include <stdio.h>
|
|
|
|
],
|
|
|
|
[FILE *f = stdin; char buf[256]; f->$frptr = buf;],
|
|
|
|
rb_cv_frptr="$frptr"; break,
|
|
|
|
rb_cv_frptr="not found")
|
|
|
|
done])
|
|
|
|
if test "$rb_cv_frptr" = "not found"; then
|
|
|
|
AC_MSG_RESULT([not found])
|
|
|
|
else
|
|
|
|
AC_MSG_RESULT($rb_cv_frptr)
|
|
|
|
AC_DEFINE_UNQUOTED(FILE_READPTR, $rb_cv_frptr)
|
|
|
|
|
|
|
|
if test "$rb_cv_fcnt" = "not found"; then
|
|
|
|
AC_MSG_CHECKING(read buffer end field in FILE structures)
|
|
|
|
AC_CACHE_VAL(rb_cv_frend,
|
|
|
|
[for frend in dnl
|
|
|
|
_IO_read_end dnl
|
2002-03-26 13:14:44 +03:00
|
|
|
bufread dnl
|
2002-03-25 17:50:40 +03:00
|
|
|
; do
|
|
|
|
AC_TRY_COMPILE([#include <stdio.h>
|
|
|
|
],
|
|
|
|
[FILE *f = stdin; char buf[256]; f->$frend = buf;],
|
|
|
|
rb_cv_frend="$frend"; break,
|
|
|
|
rb_cv_frend="not found")
|
|
|
|
done])
|
|
|
|
if test "$rb_cv_frend" = "not found"; then
|
|
|
|
AC_MSG_RESULT([not found])
|
|
|
|
else
|
|
|
|
AC_MSG_RESULT($rb_cv_frend)
|
|
|
|
AC_DEFINE_UNQUOTED(FILE_READEND, $rb_cv_frend)
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2003-08-15 07:01:52 +04:00
|
|
|
AC_CACHE_CHECK([whether st_ino is huge], rb_cv_huge_st_ino,
|
|
|
|
[AC_COMPILE_IFELSE([AC_LANG_BOOL_COMPILE_TRY([
|
|
|
|
#include <sys/stat.h>
|
|
|
|
struct stat test_stat;
|
|
|
|
], [sizeof(test_stat.st_ino)>sizeof(long)])],
|
|
|
|
rb_cv_huge_st_ino=yes,
|
|
|
|
rb_cv_huge_st_ino=no)
|
|
|
|
])
|
|
|
|
if test $rb_cv_huge_st_ino = yes; then
|
|
|
|
AC_DEFINE(HUGE_ST_INO)
|
|
|
|
fi
|
|
|
|
|
2003-06-28 07:29:00 +04:00
|
|
|
case "$target_cpu" in
|
2003-12-22 11:23:55 +03:00
|
|
|
m68*|i?86|ia64|sparc*|alpha*) rb_cv_stack_grow_dir=-1;;
|
|
|
|
hppa*) rb_cv_stack_grow_dir=+1;;
|
2003-06-28 07:29:00 +04:00
|
|
|
esac
|
|
|
|
AC_CACHE_CHECK(stack growing direction, rb_cv_stack_grow_dir,
|
|
|
|
[AC_TRY_RUN([
|
|
|
|
/* recurse to get rid of inlining */
|
|
|
|
static int
|
|
|
|
stack_growup_p(addr, n)
|
|
|
|
volatile int *addr, n;
|
|
|
|
{
|
|
|
|
volatile int end;
|
|
|
|
if (n > 0)
|
|
|
|
return *addr = stack_growup_p(addr, n - 1);
|
|
|
|
else
|
|
|
|
return (&end > addr);
|
|
|
|
}
|
|
|
|
int main()
|
|
|
|
{
|
|
|
|
int x;
|
|
|
|
return stack_growup_p(&x, 10);
|
|
|
|
}
|
|
|
|
], rb_cv_stack_grow_dir=-1, rb_cv_stack_grow_dir=+1, rb_cv_stack_grow_dir=0)])
|
|
|
|
AC_DEFINE_UNQUOTED(STACK_GROW_DIRECTION, $rb_cv_stack_grow_dir)
|
|
|
|
|
2003-12-27 17:45:48 +03:00
|
|
|
if test x"$enable_pthread" = xyes; then
|
2003-12-26 12:34:03 +03:00
|
|
|
for pthread_lib in pthread pthreads c c_r; do
|
|
|
|
AC_CHECK_LIB($pthread_lib, pthread_kill,
|
|
|
|
rb_with_pthread=yes, rb_with_pthread=no)
|
|
|
|
if test "$rb_with_pthread" = "yes"; then break; fi
|
|
|
|
done
|
2003-12-27 17:45:48 +03:00
|
|
|
if test x"$rb_with_pthread" = xyes; then
|
2003-12-26 12:34:03 +03:00
|
|
|
AC_DEFINE(_REENTRANT)
|
|
|
|
AC_DEFINE(_THREAD_SAFE)
|
|
|
|
AC_DEFINE(HAVE_LIBPTHREAD)
|
|
|
|
case $pthread_lib in
|
|
|
|
c)
|
|
|
|
;;
|
|
|
|
c_r)
|
|
|
|
MAINLIBS="-pthread $MAINLIBS"
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
LIBS="-l$pthread_lib $LIBS"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
else
|
|
|
|
AC_MSG_WARN("Don't know how to find pthread library on your system -- thread support disabled")
|
|
|
|
fi
|
2004-01-02 19:21:26 +03:00
|
|
|
AC_CHECK_FUNCS(nanosleep)
|
2003-12-27 17:45:48 +03:00
|
|
|
if test x"$ac_cv_func_nanosleep" = xno; then
|
2003-12-26 18:34:33 +03:00
|
|
|
AC_CHECK_LIB(rt, nanosleep)
|
2003-12-27 17:45:48 +03:00
|
|
|
if test x"$ac_cv_lib_rt_nanosleep" = xyes; then
|
2003-12-26 18:34:33 +03:00
|
|
|
AC_DEFINE(HAVE_NANOSLEEP)
|
|
|
|
fi
|
2003-12-26 12:34:03 +03:00
|
|
|
fi
|
|
|
|
fi
|
2003-12-27 17:45:48 +03:00
|
|
|
if test x"$ac_cv_header_ucontext_h" = xyes; then
|
|
|
|
if test x"$target_cpu" = xia64 -o x"$rb_with_pthread" = xyes; then
|
2003-12-26 12:34:03 +03:00
|
|
|
AC_CHECK_FUNCS(getcontext setcontext)
|
|
|
|
fi
|
2003-11-20 06:50:32 +03:00
|
|
|
fi
|
|
|
|
|
|
|
|
dnl default value for $KANJI
|
|
|
|
DEFAULT_KCODE="KCODE_NONE"
|
2003-11-05 17:00:11 +03:00
|
|
|
|
1999-08-13 09:45:20 +04:00
|
|
|
AC_ARG_WITH(default-kcode,
|
2002-04-12 07:24:52 +04:00
|
|
|
[ --with-default-kcode=CODE specify default value for \$KCODE (utf8|euc|sjis|none)],
|
1999-08-13 09:45:20 +04:00
|
|
|
[case $withval in
|
2000-03-07 11:37:59 +03:00
|
|
|
utf8) DEFAULT_KCODE="KCODE_UTF8";;
|
|
|
|
euc) DEFAULT_KCODE="KCODE_EUC";;
|
|
|
|
sjis) DEFAULT_KCODE="KCODE_SJIS";;
|
|
|
|
none) DEFAULT_KCODE="KCODE_NONE";;
|
1999-08-13 09:45:20 +04:00
|
|
|
*) AC_MSG_WARN($withval is not valid kcode; ignored);;
|
|
|
|
esac])
|
2000-03-07 11:37:59 +03:00
|
|
|
AC_DEFINE_UNQUOTED(DEFAULT_KCODE, $DEFAULT_KCODE)
|
1999-08-13 09:45:20 +04:00
|
|
|
|
2001-04-01 20:53:41 +04:00
|
|
|
dnl wheather use dln_a_out or not
|
1999-08-13 09:45:20 +04:00
|
|
|
AC_ARG_WITH(dln-a-out,
|
2002-04-12 07:24:52 +04:00
|
|
|
[ --with-dln-a-out use dln_a_out if possible], [
|
1998-01-16 15:13:05 +03:00
|
|
|
case $withval in
|
|
|
|
yes) with_dln_a_out=yes;;
|
|
|
|
*) with_dln_a_out=no;;
|
|
|
|
esac], [with_dln_a_out=no])
|
|
|
|
|
2000-02-01 06:12:21 +03:00
|
|
|
AC_CACHE_CHECK(whether ELF binaries are produced, rb_cv_binary_elf,
|
|
|
|
[AC_TRY_RUN([
|
1998-01-16 15:13:05 +03:00
|
|
|
/* Test for whether ELF binaries are produced */
|
|
|
|
#include <fcntl.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
main() {
|
|
|
|
char buffer[4];
|
|
|
|
int i=open("conftest",O_RDONLY);
|
|
|
|
if(i==-1)
|
|
|
|
exit(1); /* fail */
|
|
|
|
if(read(i,&buffer[0],4)<4)
|
|
|
|
exit(1); /* fail */
|
|
|
|
if(buffer[0] != 127 || buffer[1] != 'E' ||
|
|
|
|
buffer[2] != 'L' || buffer[3] != 'F')
|
|
|
|
exit(1); /* fail */
|
|
|
|
exit(0); /* succeed (yes, it's ELF) */
|
|
|
|
}
|
|
|
|
],
|
2000-02-01 06:12:21 +03:00
|
|
|
rb_cv_binary_elf=yes,
|
|
|
|
rb_cv_binary_elf=no,
|
|
|
|
rb_cv_binary_elf=yes)])
|
|
|
|
|
|
|
|
if test "$rb_cv_binary_elf" = yes; then
|
|
|
|
AC_DEFINE(USE_ELF)
|
|
|
|
fi
|
|
|
|
|
|
|
|
case "$target_os" in
|
2004-12-22 18:16:55 +03:00
|
|
|
linux* | gnu* | k*bsd*-gnu | bsdi*)
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
if test "$rb_cv_binary_elf" = no; then
|
|
|
|
with_dln_a_out=yes
|
|
|
|
else
|
2003-11-30 12:33:03 +03:00
|
|
|
LDFLAGS="$LDFLAGS -rdynamic"
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
fi;;
|
1998-01-16 15:13:05 +03:00
|
|
|
esac
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
LIBEXT=a
|
1998-01-16 15:13:05 +03:00
|
|
|
|
|
|
|
AC_SUBST(DLDFLAGS)dnl
|
2003-11-30 14:27:34 +03:00
|
|
|
AC_SUBST(ARCH_FLAG)dnl
|
1998-01-16 15:13:05 +03:00
|
|
|
|
|
|
|
AC_SUBST(STATIC)dnl
|
|
|
|
AC_SUBST(CCDLFLAGS)dnl
|
|
|
|
AC_SUBST(LDSHARED)dnl
|
2005-04-21 01:45:43 +04:00
|
|
|
AC_SUBST(LDSHAREDXX)dnl
|
1998-01-16 15:13:05 +03:00
|
|
|
AC_SUBST(DLEXT)dnl
|
2000-05-09 08:53:16 +04:00
|
|
|
AC_SUBST(DLEXT2)dnl
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
AC_SUBST(LIBEXT)dnl
|
1998-01-16 15:13:05 +03:00
|
|
|
|
|
|
|
STATIC=
|
2004-06-28 09:58:13 +04:00
|
|
|
: ${LIBPATHFLAG=' -L"%s"'}
|
2003-11-30 12:33:03 +03:00
|
|
|
: ${PATHFLAG=''}
|
1998-01-16 15:13:05 +03:00
|
|
|
|
|
|
|
if test "$with_dln_a_out" != yes; then
|
|
|
|
rb_cv_dlopen=unknown
|
|
|
|
AC_MSG_CHECKING(whether OS depend dynamic link works)
|
|
|
|
if test "$GCC" = yes; then
|
2000-01-05 07:41:21 +03:00
|
|
|
case "$target_os" in
|
2003-11-30 12:33:03 +03:00
|
|
|
nextstep*) CCDLFLAGS="$CCDLFLAGS -fno-common";;
|
|
|
|
openstep*) CCDLFLAGS="$CCDLFLAGS -fno-common";;
|
|
|
|
rhapsody*) CCDLFLAGS="$CCDLFLAGS -fno-common";;
|
|
|
|
darwin*) CCDLFLAGS="$CCDLFLAGS -fno-common";;
|
2004-01-21 17:53:31 +03:00
|
|
|
human*|bsdi*|beos*|cygwin*|mingw*|aix*|interix*) ;;
|
2003-11-30 12:33:03 +03:00
|
|
|
*) CCDLFLAGS="$CCDLFLAGS -fPIC";;
|
1998-01-16 15:13:05 +03:00
|
|
|
esac
|
|
|
|
else
|
2000-01-05 07:41:21 +03:00
|
|
|
case "$target_os" in
|
2003-11-30 12:33:03 +03:00
|
|
|
hpux*) CCDLFLAGS="$CCDLFLAGS +Z";;
|
|
|
|
solaris*|irix*) CCDLFLAGS="$CCDLFLAGS -KPIC" ;;
|
|
|
|
sunos*) CCDLFLAGS="$CCDLFLAGS -PIC" ;;
|
|
|
|
esix*|uxpds*) CCDLFLAGS="$CCDLFLAGS -KPIC" ;;
|
|
|
|
*) : ${CCDLFLAGS=""} ;;
|
1998-01-16 15:13:05 +03:00
|
|
|
esac
|
|
|
|
fi
|
|
|
|
|
2000-01-05 07:41:21 +03:00
|
|
|
case "$target_os" in
|
2003-11-30 12:33:03 +03:00
|
|
|
hpux*) DLDFLAGS="$DLDFLAGS -E"
|
|
|
|
: ${LDSHARED='ld -b'}
|
|
|
|
XLDFLAGS="$XLDFLAGS -Wl,-E"
|
2004-02-09 11:48:55 +03:00
|
|
|
: ${LIBPATHENV=SHLIB_PATH}
|
1998-01-16 15:13:05 +03:00
|
|
|
rb_cv_dlopen=yes;;
|
1999-08-13 09:45:20 +04:00
|
|
|
solaris*) if test "$GCC" = yes; then
|
2003-11-30 12:33:03 +03:00
|
|
|
: ${LDSHARED='$(CC) -Wl,-G'}
|
2002-10-04 09:46:45 +04:00
|
|
|
if test "$rb_cv_prog_gnu_ld" = yes; then
|
2003-11-30 12:33:03 +03:00
|
|
|
LDFLAGS="$LDFLAGS -Wl,-E"
|
2002-01-25 12:00:50 +03:00
|
|
|
LDSHARED="$LDSHARED -shared"
|
|
|
|
fi
|
1999-08-13 09:45:20 +04:00
|
|
|
else
|
2003-11-30 12:33:03 +03:00
|
|
|
: ${LDSHARED='ld -G'}
|
1999-08-13 09:45:20 +04:00
|
|
|
fi
|
1998-01-16 15:13:05 +03:00
|
|
|
rb_cv_dlopen=yes;;
|
2003-11-30 12:33:03 +03:00
|
|
|
sunos*) : ${LDSHARED='ld -assert nodefinitions'}
|
1998-01-16 15:13:05 +03:00
|
|
|
rb_cv_dlopen=yes;;
|
2003-11-30 12:33:03 +03:00
|
|
|
irix*) : ${LDSHARED='ld -shared'}
|
1998-01-16 15:13:05 +03:00
|
|
|
rb_cv_dlopen=yes;;
|
2003-11-30 12:33:03 +03:00
|
|
|
sysv4*) : ${LDSHARED='ld -G'}
|
1998-01-16 15:13:05 +03:00
|
|
|
rb_cv_dlopen=yes;;
|
2003-11-30 12:33:03 +03:00
|
|
|
nto-qnx*) : ${LDSHARED="qcc -shared"}
|
2001-05-11 09:24:59 +04:00
|
|
|
rb_cv_dlopen=yes ;;
|
2003-11-30 12:33:03 +03:00
|
|
|
esix*|uxpds*) : ${LDSHARED="ld -G"}
|
1998-01-16 15:13:05 +03:00
|
|
|
rb_cv_dlopen=yes ;;
|
2003-11-30 12:33:03 +03:00
|
|
|
osf*) : ${LDSHARED="ld -shared -expect_unresolved \"*\""}
|
1998-01-16 15:13:05 +03:00
|
|
|
rb_cv_dlopen=yes ;;
|
2004-12-22 18:16:55 +03:00
|
|
|
bsdi3*) case "$CC" in
|
|
|
|
*shlicc*) : ${LDSHARED="$CC -r"}
|
|
|
|
rb_cv_dlopen=yes ;;
|
|
|
|
esac ;;
|
|
|
|
linux* | gnu* | k*bsd*-gnu | netbsd* | bsdi*)
|
2004-12-19 11:25:36 +03:00
|
|
|
: ${LDSHARED='${CC} -shared'}
|
|
|
|
if test "$rb_cv_binary_elf" = yes; then
|
|
|
|
LDFLAGS="$LDFLAGS -Wl,-export-dynamic"
|
|
|
|
fi
|
1999-01-20 07:59:39 +03:00
|
|
|
rb_cv_dlopen=yes ;;
|
2004-01-21 17:53:31 +03:00
|
|
|
interix*) : ${LDSHARED="$CC -shared"}
|
|
|
|
XLDFLAGS="$XLDFLAGS -Wl,-E"
|
2004-01-30 20:39:04 +03:00
|
|
|
LIBPATHFLAG=" -L'%1\$-s'"
|
2004-01-21 17:53:31 +03:00
|
|
|
rb_cv_dlopen=yes ;;
|
2004-06-09 10:41:08 +04:00
|
|
|
freebsd*|dragonfly*) : ${LDSHARED="$CC -shared"}
|
2000-02-01 06:12:21 +03:00
|
|
|
if test "$rb_cv_binary_elf" = yes; then
|
2003-11-30 12:33:03 +03:00
|
|
|
LDFLAGS="$LDFLAGS -rdynamic"
|
|
|
|
DLDFLAGS="$DLDFLAGS "'-Wl,-soname,$(.TARGET)'
|
1999-08-13 09:45:20 +04:00
|
|
|
else
|
2002-10-04 09:46:45 +04:00
|
|
|
test "$GCC" = yes && test "$rb_cv_prog_gnu_ld" = yes || LDSHARED="ld -Bshareable"
|
1999-08-13 09:45:20 +04:00
|
|
|
fi
|
1998-01-16 15:13:05 +03:00
|
|
|
rb_cv_dlopen=yes ;;
|
2003-11-30 12:33:03 +03:00
|
|
|
openbsd*) : ${LDSHARED="\$(CC) -shared ${CCDLFLAGS}"}
|
2002-12-31 13:53:14 +03:00
|
|
|
if test "$rb_cv_binary_elf" = yes; then
|
2003-11-30 12:33:03 +03:00
|
|
|
LDFLAGS="$LDFLAGS -Wl,-E"
|
2002-12-31 13:53:14 +03:00
|
|
|
fi
|
1998-01-16 15:13:05 +03:00
|
|
|
rb_cv_dlopen=yes ;;
|
2003-11-30 12:33:03 +03:00
|
|
|
nextstep*) : ${LDSHARED='cc -r -nostdlib'}
|
|
|
|
LDFLAGS="$LDFLAGS -u libsys_s"
|
1998-01-16 15:13:05 +03:00
|
|
|
rb_cv_dlopen=yes ;;
|
2003-11-30 12:33:03 +03:00
|
|
|
openstep*) : ${LDSHARED='cc -dynamic -bundle -undefined suppress'}
|
|
|
|
: ${LDFLAGS=""}
|
1999-01-20 07:59:39 +03:00
|
|
|
rb_cv_dlopen=yes ;;
|
2003-12-24 14:54:12 +03:00
|
|
|
rhapsody*) : ${LDSHARED='cc -dynamic -bundle -undefined suppress'}
|
2003-11-30 12:33:03 +03:00
|
|
|
: ${LDFLAGS=""}
|
1999-01-20 07:59:39 +03:00
|
|
|
rb_cv_dlopen=yes ;;
|
2003-11-30 12:33:03 +03:00
|
|
|
darwin*) : ${LDSHARED='cc -dynamic -bundle -undefined suppress -flat_namespace'}
|
|
|
|
: ${LDFLAGS=""}
|
2004-02-09 11:48:55 +03:00
|
|
|
: ${LIBPATHENV=DYLD_LIBRARY_PATH}
|
2000-08-28 13:53:42 +04:00
|
|
|
rb_cv_dlopen=yes ;;
|
2003-11-30 12:33:03 +03:00
|
|
|
aix*) : ${LDSHARED='/usr/ccs/bin/ld'}
|
|
|
|
XLDFLAGS="$XLDFLAGS -Wl,-bE:ruby.imp"
|
2005-01-31 18:20:59 +03:00
|
|
|
DLDFLAGS='-brtl -eInit_$(TARGET) -bI:$(topdir)/ruby.imp -bM:SRE -T512 -H512 '"$DLDFLAGS"
|
|
|
|
LDFLAGS="-brtl $LDFLAGS"
|
2003-11-30 12:33:03 +03:00
|
|
|
: ${ARCHFILE="ruby.imp"}
|
2005-01-31 18:20:59 +03:00
|
|
|
TRY_LINK='$(CC) $(LDFLAGS) -oconftest $(INCFLAGS) -I$(hdrdir) $(CPPFLAGS) $(CFLAGS)'
|
2004-06-26 06:05:54 +04:00
|
|
|
TRY_LINK="$TRY_LINK"' $(src) $(LIBPATH) $(LOCAL_LIBS) $(LIBS)'
|
2004-02-09 11:48:55 +03:00
|
|
|
: ${LIBPATHENV=SHLIB_PATH}
|
1998-01-16 15:13:05 +03:00
|
|
|
rb_cv_dlopen=yes ;;
|
1999-08-13 09:45:20 +04:00
|
|
|
|
2003-11-30 12:33:03 +03:00
|
|
|
human*) : ${DLDFLAGS=''}
|
|
|
|
: ${LDSHARED=''}
|
|
|
|
: ${LDFLAGS=''}
|
|
|
|
: ${LINK_SO='ar cru $@ $(OBJS)'}
|
1999-08-13 09:45:20 +04:00
|
|
|
rb_cv_dlopen=yes ;;
|
2000-01-05 07:41:21 +03:00
|
|
|
beos*) case "$target_cpu" in
|
1999-01-20 07:59:39 +03:00
|
|
|
powerpc*)
|
2003-11-30 12:33:03 +03:00
|
|
|
: ${LDSHARED="ld -xms"}
|
|
|
|
DLDFLAGS="$DLDFLAGS "'-export Init_$(TARGET) -lbe -lroot glue-noinit.a init_term_dyn.o start_dyn.o'
|
1999-01-20 07:59:39 +03:00
|
|
|
;;
|
1999-08-13 09:45:20 +04:00
|
|
|
i586*)
|
2003-11-30 12:33:03 +03:00
|
|
|
: ${LDSHARED="ld -shared"}
|
|
|
|
DLDFLAGS="$DLDFLAGS -L/boot/develop/lib/x86 -lbe -lroot"
|
1999-08-13 09:45:20 +04:00
|
|
|
;;
|
1999-01-20 07:59:39 +03:00
|
|
|
esac
|
2004-02-09 11:48:55 +03:00
|
|
|
: ${LIBPATHENV=LIBRARY_PATH}
|
1999-01-20 07:59:39 +03:00
|
|
|
rb_cv_dlopen=yes ;;
|
2003-11-30 12:33:03 +03:00
|
|
|
nto-qnx*) DLDFLAGS="$DLDFLAGS -L/lib -L/usr/lib -L/usr/local/lib"
|
|
|
|
: ${LDSHARED='ld -Bshareable -x'}
|
|
|
|
LDFLAGS="$LDFLAGS -L/lib -L/usr/lib -L/usr/local/lib"
|
2001-08-06 07:05:23 +04:00
|
|
|
rb_cv_dlopen=yes;;
|
2002-04-19 11:39:40 +04:00
|
|
|
cygwin*|mingw*) : ${LDSHARED="${CC} -shared -s"}
|
2003-11-30 12:33:03 +03:00
|
|
|
XLDFLAGS="$XLDFLAGS -Wl,--stack,0x02000000"
|
2003-06-01 16:58:56 +04:00
|
|
|
DLDFLAGS="${DLDFLAGS} -Wl,--enable-auto-import,--export-all"
|
2004-02-09 11:48:55 +03:00
|
|
|
: ${LIBPATHENV=""}
|
1999-08-13 09:45:20 +04:00
|
|
|
rb_cv_dlopen=yes ;;
|
2003-11-30 12:33:03 +03:00
|
|
|
hiuxmpp) : ${LDSHARED='ld -r'} ;;
|
|
|
|
atheos*) : ${LDSHARED="$CC -shared"}
|
2002-12-02 10:57:17 +03:00
|
|
|
rb_cv_dlopen=yes ;;
|
2003-07-30 04:32:03 +04:00
|
|
|
os2-emx*) LDFLAGS="$LDFLAGS -Zbsd-signals"
|
|
|
|
;;
|
2003-11-30 12:33:03 +03:00
|
|
|
*) : ${LDSHARED='ld'} ;;
|
1998-01-16 15:13:05 +03:00
|
|
|
esac
|
|
|
|
AC_MSG_RESULT($rb_cv_dlopen)
|
2004-12-19 11:25:36 +03:00
|
|
|
|
|
|
|
AC_ARG_ENABLE(rpath,
|
2004-12-19 11:29:13 +03:00
|
|
|
[ --disable-rpath embed run path into extension libraries.],
|
2004-12-19 11:25:36 +03:00
|
|
|
[enable_rpath=$enableval], [enable_rpath="$rb_cv_binary_elf"])
|
|
|
|
if test "$enable_rpath" = yes; then
|
|
|
|
LIBPATHFLAG=" -L'%1\$-s'"
|
|
|
|
RPATHFLAG=" -Wl,-R'%1\$-s'"
|
|
|
|
fi
|
1998-01-16 15:13:05 +03:00
|
|
|
fi
|
2005-04-21 01:45:43 +04:00
|
|
|
if test "${LDSHAREDXX}" = ""; then
|
|
|
|
case "${LDSHARED}" in
|
|
|
|
*'$(CC)'*)
|
|
|
|
LDSHAREDXX=`echo "${LDSHARED}" | sed 's/\$(CC)/$(CXX)/'`
|
|
|
|
;;
|
|
|
|
*'${CC}'*)
|
|
|
|
LDSHAREDXX=`echo "${LDSHARED}" | sed 's/\${CC}/${CXX}/'`
|
|
|
|
;;
|
|
|
|
*$CC*)
|
|
|
|
LDSHAREDXX=`echo "${LDSHARED}" | sed "s|$CC|$CXX|"`
|
|
|
|
;;
|
|
|
|
ld" "*)
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
|
|
|
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
AC_SUBST(LINK_SO)
|
|
|
|
AC_SUBST(LIBPATHFLAG)
|
2003-10-31 06:58:21 +03:00
|
|
|
AC_SUBST(RPATHFLAG)
|
2004-02-09 11:48:55 +03:00
|
|
|
AC_SUBST(LIBPATHENV, "${LIBPATHENV-LD_LIBRARY_PATH}")
|
2004-06-26 10:10:52 +04:00
|
|
|
AC_SUBST(TRY_LINK)
|
1998-01-16 15:13:05 +03:00
|
|
|
|
|
|
|
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
|
|
|
|
cat confdefs.h > config.h
|
1999-08-13 09:45:20 +04:00
|
|
|
AC_CACHE_CHECK(whether matz's dln works, rb_cv_dln_a_out,
|
1998-01-16 15:13:05 +03:00
|
|
|
[AC_TRY_COMPILE([
|
|
|
|
#define USE_DLN_A_OUT
|
|
|
|
#include "dln.c"
|
|
|
|
],
|
|
|
|
[],
|
|
|
|
rb_cv_dln_a_out=yes,
|
|
|
|
rb_cv_dln_a_out=no)])
|
|
|
|
if test "$rb_cv_dln_a_out" = yes; then
|
|
|
|
dln_a_out_works=yes
|
|
|
|
AC_DEFINE(USE_DLN_A_OUT)
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
if test "$dln_a_out_works" = yes; then
|
|
|
|
if test "$GCC" = yes; then
|
|
|
|
STATIC=-static
|
|
|
|
else
|
|
|
|
STATIC=-Bstatic
|
|
|
|
fi
|
1999-08-13 09:45:20 +04:00
|
|
|
DLEXT=so
|
|
|
|
AC_DEFINE(DLEXT, ".so")
|
1998-01-16 15:13:05 +03:00
|
|
|
CCDLFLAGS=
|
|
|
|
else
|
2000-01-05 07:41:21 +03:00
|
|
|
case "$target_os" in
|
1998-01-16 15:13:05 +03:00
|
|
|
hpux*) DLEXT=sl
|
|
|
|
AC_DEFINE(DLEXT, ".sl");;
|
1999-08-13 09:45:20 +04:00
|
|
|
nextstep*) DLEXT=bundle
|
|
|
|
AC_DEFINE(DLEXT, ".bundle");;
|
1999-01-20 07:59:39 +03:00
|
|
|
openstep*) DLEXT=bundle
|
|
|
|
AC_DEFINE(DLEXT, ".bundle");;
|
|
|
|
rhapsody*) DLEXT=bundle
|
|
|
|
AC_DEFINE(DLEXT, ".bundle");;
|
2000-08-28 13:53:42 +04:00
|
|
|
darwin*) DLEXT=bundle
|
|
|
|
AC_DEFINE(DLEXT, ".bundle");;
|
2003-07-30 04:32:03 +04:00
|
|
|
os2-emx*) DLEXT=dll
|
2000-02-08 11:54:01 +03:00
|
|
|
AC_DEFINE(DLEXT, ".dll");;
|
2000-05-13 20:13:31 +04:00
|
|
|
cygwin*|mingw*) DLEXT=so
|
2004-01-29 17:18:42 +03:00
|
|
|
AC_DEFINE(DLEXT, ".so");;
|
1998-01-16 15:13:05 +03:00
|
|
|
*) DLEXT=so
|
|
|
|
AC_DEFINE(DLEXT, ".so");;
|
|
|
|
esac
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_SUBST(STRIP)dnl
|
|
|
|
if test "$with_dln_a_out" = yes; then
|
|
|
|
STRIP=true
|
|
|
|
else
|
|
|
|
STRIP=strip
|
|
|
|
fi
|
|
|
|
|
2000-01-05 07:41:21 +03:00
|
|
|
case "$target_os" in
|
2004-08-30 10:16:29 +04:00
|
|
|
linux* | gnu* | k*bsd*-gnu)
|
2002-02-18 12:52:48 +03:00
|
|
|
STRIP='strip -S -x';;
|
1998-01-16 15:13:05 +03:00
|
|
|
nextstep*)
|
|
|
|
STRIP='strip -A -n';;
|
1999-01-20 07:59:39 +03:00
|
|
|
openstep*)
|
|
|
|
STRIP='strip -A -n';;
|
|
|
|
rhapsody*)
|
|
|
|
STRIP='strip -A -n';;
|
2000-08-28 13:53:42 +04:00
|
|
|
darwin*)
|
|
|
|
STRIP='strip -A -n';;
|
1998-01-16 15:13:05 +03:00
|
|
|
esac
|
|
|
|
|
|
|
|
EXTSTATIC=
|
|
|
|
AC_SUBST(EXTSTATIC)dnl
|
|
|
|
AC_ARG_WITH(static-linked-ext,
|
2002-04-12 07:24:52 +04:00
|
|
|
[ --with-static-linked-ext link external modules statically],
|
1998-01-16 15:13:05 +03:00
|
|
|
[case $withval in
|
|
|
|
yes) STATIC=
|
|
|
|
EXTSTATIC=static;;
|
|
|
|
*) ;;
|
|
|
|
esac])
|
|
|
|
|
2000-01-05 07:41:21 +03:00
|
|
|
case "$target_os" in
|
1998-01-16 15:13:05 +03:00
|
|
|
human*)
|
|
|
|
AC_CHECK_LIB(signal, _harderr)
|
|
|
|
AC_CHECK_LIB(hmem, hmemset)
|
2000-01-05 07:41:21 +03:00
|
|
|
AC_CHECK_FUNCS(select gettimeofday)
|
1999-08-13 09:45:20 +04:00
|
|
|
AC_CACHE_CHECK(whether PD libc _dtos18 fail to convert big number,
|
|
|
|
rb_cv_missing__dtos18,
|
1998-01-16 15:13:05 +03:00
|
|
|
[AC_TRY_RUN(
|
|
|
|
changequote(<<, >>)dnl
|
|
|
|
<<
|
|
|
|
#include <stdio.h>
|
|
|
|
main ()
|
|
|
|
{
|
|
|
|
char buf[256];
|
|
|
|
sprintf (buf, "%g", 1e+300);
|
|
|
|
exit (strcmp (buf, "1e+300") ? 0 : 1);
|
|
|
|
}
|
|
|
|
>>,
|
|
|
|
changequote([, ])dnl
|
1999-08-13 09:45:20 +04:00
|
|
|
rb_cv_missing__dtos18=yes, rb_cv_missing__dtos18=no, rb_cv_missing__dtos18=no)])
|
1998-01-16 15:13:05 +03:00
|
|
|
if test "$rb_cv_missing__dtos18" = yes; then
|
|
|
|
AC_DEFINE(MISSING__DTOS18)
|
|
|
|
fi
|
1999-08-13 09:45:20 +04:00
|
|
|
AC_CACHE_CHECK(whether PD libc fconvert fail to round,
|
|
|
|
rb_cv_missing_fconvert,
|
1998-01-16 15:13:05 +03:00
|
|
|
[AC_TRY_RUN(
|
|
|
|
changequote(<<, >>)dnl
|
|
|
|
<<
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <math.h>
|
|
|
|
main ()
|
|
|
|
{
|
|
|
|
char buf[256];
|
|
|
|
sprintf (buf, "%f", log(exp(1.0)));
|
|
|
|
exit (strcmp (buf, "1.000000") ? 0 : 1);
|
|
|
|
}
|
|
|
|
>>,
|
|
|
|
changequote([, ])dnl
|
1999-08-13 09:45:20 +04:00
|
|
|
rb_cv_missing_fconvert=yes, rb_cv_missing_fconvert=no, rb_cv_missing_fconvert=no)])
|
1998-01-16 15:13:05 +03:00
|
|
|
if test "$rb_cv_missing_fconvert" = yes; then
|
|
|
|
AC_DEFINE(MISSING_FCONVERT)
|
|
|
|
fi
|
2002-03-14 10:20:34 +03:00
|
|
|
AC_LIBOBJ([x68.o])
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
CFLAGS="$CFLAGS -fansi-only"
|
2003-11-30 12:33:03 +03:00
|
|
|
XCFLAGS="$XCFLAGS -cc1-stack=262144 -cpp-stack=2694144"
|
1999-08-13 09:45:20 +04:00
|
|
|
EXEEXT=.x
|
|
|
|
OBJEXT=o
|
1998-01-16 15:13:05 +03:00
|
|
|
setup=Setup.x68
|
|
|
|
;;
|
1999-08-13 09:45:20 +04:00
|
|
|
dnl OS/2 environment w/ Autoconf 2.1x for EMX
|
2003-07-30 04:32:03 +04:00
|
|
|
os2-emx)
|
2002-03-14 10:20:34 +03:00
|
|
|
AC_LIBOBJ([os2])
|
1999-08-13 09:45:20 +04:00
|
|
|
setup=Setup.emx
|
|
|
|
;;
|
2000-05-21 16:23:51 +04:00
|
|
|
*djgpp*)
|
|
|
|
setup=Setup.dj
|
|
|
|
;;
|
1998-01-16 15:13:05 +03:00
|
|
|
*)
|
|
|
|
setup=Setup
|
|
|
|
;;
|
|
|
|
esac
|
1999-01-20 07:59:39 +03:00
|
|
|
|
1998-01-16 15:13:05 +03:00
|
|
|
AC_SUBST(setup)
|
|
|
|
|
|
|
|
if test "$prefix" = NONE; then
|
|
|
|
prefix=$ac_default_prefix
|
|
|
|
fi
|
|
|
|
|
2003-11-30 14:27:34 +03:00
|
|
|
#if test "$fat_binary" != no ; then
|
|
|
|
# CFLAGS="$CFLAGS $ARCH_FLAG"
|
|
|
|
#fi
|
1999-01-20 07:59:39 +03:00
|
|
|
|
2000-01-05 07:41:21 +03:00
|
|
|
if test x"$cross_compiling" = xyes; then
|
2002-11-14 16:51:19 +03:00
|
|
|
test x"$MINIRUBY" = x && MINIRUBY="${RUBY-ruby} -I`pwd` -rfake"
|
2000-05-21 13:25:58 +04:00
|
|
|
PREP=fake.rb
|
2004-02-09 11:48:55 +03:00
|
|
|
RUNRUBY='$(MINIRUBY) -I`cd $(srcdir)/lib; pwd`'
|
2000-01-05 07:41:21 +03:00
|
|
|
else
|
|
|
|
MINIRUBY='./miniruby$(EXEEXT)'
|
2004-03-06 03:53:04 +03:00
|
|
|
PREP='miniruby$(EXEEXT)'
|
2004-02-09 11:48:55 +03:00
|
|
|
RUNRUBY='$(MINIRUBY) $(srcdir)/runruby.rb --extout=$(EXTOUT) --'
|
2000-01-05 07:41:21 +03:00
|
|
|
fi
|
|
|
|
AC_SUBST(MINIRUBY)
|
|
|
|
AC_SUBST(PREP)
|
2004-02-09 11:48:55 +03:00
|
|
|
AC_SUBST(RUNRUBY)
|
2005-01-31 18:19:27 +03:00
|
|
|
AC_SUBST(EXTOUT, [${EXTOUT-.ext}])
|
2000-01-05 07:41:21 +03:00
|
|
|
|
2000-03-13 10:18:45 +03:00
|
|
|
FIRSTMAKEFILE=""
|
2002-11-14 16:51:19 +03:00
|
|
|
LIBRUBY_A='lib$(RUBY_SO_NAME)-static.a'
|
1999-08-13 09:45:20 +04:00
|
|
|
LIBRUBY='$(LIBRUBY_A)'
|
2002-11-14 16:51:19 +03:00
|
|
|
LIBRUBYARG_STATIC='-l$(RUBY_SO_NAME)-static'
|
|
|
|
LIBRUBYARG='$(LIBRUBYARG_STATIC)'
|
1999-01-20 07:59:39 +03:00
|
|
|
SOLIBS=
|
1998-01-16 15:13:05 +03:00
|
|
|
|
2000-05-09 08:53:16 +04:00
|
|
|
case "$target_os" in
|
2003-07-30 04:32:03 +04:00
|
|
|
cygwin*|mingw*|beos*|openstep*|nextstep*|rhapsody*|darwin*|os2-emx*)
|
2003-11-30 12:33:03 +03:00
|
|
|
: ${DLDLIBS=""}
|
2000-05-09 08:53:16 +04:00
|
|
|
;;
|
|
|
|
*)
|
2003-11-30 12:33:03 +03:00
|
|
|
DLDLIBS="$DLDLIBS -lc"
|
2000-05-09 08:53:16 +04:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
RUBY_SO_NAME='$(RUBY_INSTALL_NAME)'
|
1999-08-13 09:45:20 +04:00
|
|
|
LIBRUBY_LDSHARED=$LDSHARED
|
|
|
|
LIBRUBY_DLDFLAGS=$DLDFLAGS
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR).$(TEENY)'
|
|
|
|
LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so'
|
2000-07-02 19:57:18 +04:00
|
|
|
ENABLE_SHARED=no
|
|
|
|
|
2001-11-30 12:17:30 +03:00
|
|
|
AC_ARG_ENABLE(shared,
|
2002-04-12 07:24:52 +04:00
|
|
|
[ --enable-shared build a shared library for Ruby. ],
|
1999-08-13 09:45:20 +04:00
|
|
|
[enable_shared=$enableval])
|
1999-01-20 07:59:39 +03:00
|
|
|
if test "$enable_shared" = 'yes'; then
|
1999-08-13 09:45:20 +04:00
|
|
|
LIBRUBY='$(LIBRUBY_SO)'
|
2002-11-14 16:51:19 +03:00
|
|
|
LIBRUBYARG_SHARED='-l$(RUBY_SO_NAME)'
|
|
|
|
LIBRUBYARG='$(LIBRUBYARG_SHARED)'
|
1999-08-13 09:45:20 +04:00
|
|
|
CFLAGS="$CFLAGS $CCDLFLAGS"
|
2000-07-02 19:57:18 +04:00
|
|
|
ENABLE_SHARED=yes
|
2001-03-16 11:17:44 +03:00
|
|
|
if test "$rb_cv_binary_elf" = yes; then
|
|
|
|
SOLIBS='$(LIBS)'
|
|
|
|
fi
|
2000-01-05 07:41:21 +03:00
|
|
|
case "$target_os" in
|
1999-08-13 09:45:20 +04:00
|
|
|
sunos4*)
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).so'
|
1999-08-13 09:45:20 +04:00
|
|
|
;;
|
2004-12-19 11:25:36 +03:00
|
|
|
linux* | gnu* | k*bsd*-gnu | atheos*)
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
LIBRUBY_DLDFLAGS='-Wl,-soname,lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR)'
|
|
|
|
LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).so'
|
2002-02-18 12:52:48 +03:00
|
|
|
;;
|
2004-06-09 10:41:08 +04:00
|
|
|
freebsd*|dragonfly*)
|
2001-03-16 11:17:44 +03:00
|
|
|
SOLIBS='$(LIBS)'
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR)'
|
2000-02-01 06:12:21 +03:00
|
|
|
if test "$rb_cv_binary_elf" != "yes" ; then
|
1999-08-13 09:45:20 +04:00
|
|
|
LIBRUBY_SO="$LIBRUBY_SO.\$(TEENY)"
|
|
|
|
LIBRUBY_ALIASES=''
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
netbsd*)
|
2001-03-16 11:17:44 +03:00
|
|
|
SOLIBS='$(LIBS)'
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR).$(TEENY)'
|
|
|
|
LIBRUBY_DLDFLAGS='-Wl,-soname,lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR)'
|
2000-02-01 06:12:21 +03:00
|
|
|
if test "$rb_cv_binary_elf" = yes; then # ELF platforms
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR) lib$(RUBY_SO_NAME).so'
|
2001-12-02 21:33:10 +03:00
|
|
|
else # a.out platforms
|
|
|
|
LIBRUBY_ALIASES=""
|
2000-02-01 06:12:21 +03:00
|
|
|
fi
|
1999-08-13 09:45:20 +04:00
|
|
|
;;
|
2001-03-16 11:17:44 +03:00
|
|
|
openbsd*)
|
|
|
|
SOLIBS='$(LIBS)'
|
2002-12-31 13:53:14 +03:00
|
|
|
LIBRUBY_SO='lib$(RUBY_INSTALL_NAME).so.$(MAJOR).'`expr ${MINOR} \* 10 + ${TEENY}`
|
|
|
|
;;
|
1999-08-13 09:45:20 +04:00
|
|
|
solaris*)
|
2004-12-19 11:25:36 +03:00
|
|
|
SOLIBS='$(LIBS)'
|
|
|
|
LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR)'
|
|
|
|
LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR).$(TEENY) lib$(RUBY_SO_NAME).so'
|
|
|
|
if test "$GCC" = yes; then
|
|
|
|
LIBRUBY_DLDFLAGS="$DLDFLAGS "'-Wl,-h,$(@F)'
|
|
|
|
else
|
|
|
|
enable_rpath=no
|
|
|
|
fi
|
2003-11-30 12:33:03 +03:00
|
|
|
XLDFLAGS="$XLDFLAGS "'-R${libdir}'
|
1999-08-13 09:45:20 +04:00
|
|
|
;;
|
|
|
|
hpux*)
|
2003-11-30 12:33:03 +03:00
|
|
|
XLDFLAGS="$XLDFLAGS "'-Wl,+s,+b,$(libdir)'
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
LIBRUBY_SO='lib$(RUBY_SO_NAME).sl.$(MAJOR).$(MINOR).$(TEENY)'
|
|
|
|
LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).sl.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).sl'
|
1999-08-13 09:45:20 +04:00
|
|
|
;;
|
|
|
|
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
|
2002-11-14 16:51:19 +03:00
|
|
|
LIBRUBYARG_SHARED='-L${libdir} -Wl,lib$(RUBY_SO_NAME).so'
|
1999-08-13 09:45:20 +04:00
|
|
|
SOLIBS='-lm -lc'
|
|
|
|
;;
|
2000-05-24 08:34:26 +04:00
|
|
|
beos*)
|
|
|
|
case "$target_cpu" in
|
|
|
|
powerpc*)
|
|
|
|
LIBRUBY_DLDFLAGS='-f ruby.exp -lnet -lbe -lroot glue-noinit.a init_term_dyn.o start_dyn.o'
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
;;
|
2001-05-02 22:35:50 +04:00
|
|
|
darwin*)
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
LIBRUBY_SO='lib$(RUBY_SO_NAME).$(MAJOR).$(MINOR).$(TEENY).dylib'
|
2001-10-02 08:31:23 +04:00
|
|
|
LIBRUBY_LDSHARED='cc -dynamiclib -undefined suppress -flat_namespace'
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
LIBRUBY_DLDFLAGS='-install_name $(libdir)/lib$(RUBY_SO_NAME).dylib -current_version $(MAJOR).$(MINOR).$(TEENY) -compatibility_version $(MAJOR).$(MINOR)'
|
|
|
|
LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).$(MAJOR).$(MINOR).dylib lib$(RUBY_SO_NAME).dylib'
|
2001-05-02 22:35:50 +04:00
|
|
|
;;
|
2004-01-30 20:39:04 +03:00
|
|
|
interix*)
|
2004-08-11 12:21:39 +04:00
|
|
|
LIBRUBYARG_SHARED='-L${libdir} -L. -l$(RUBY_SO_NAME)'
|
2004-01-30 20:39:04 +03:00
|
|
|
;;
|
1999-08-13 09:45:20 +04:00
|
|
|
*)
|
|
|
|
;;
|
|
|
|
esac
|
1999-01-20 07:59:39 +03:00
|
|
|
fi
|
2004-12-19 11:25:36 +03:00
|
|
|
if test "$enable_rpath" = yes; then
|
|
|
|
LIBRUBYARG_SHARED='-Wl,-R -Wl,$(libdir) -L$(libdir) -L. '"$LIBRUBYARG_SHARED"
|
|
|
|
fi
|
|
|
|
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
XLDFLAGS="$XLDFLAGS -L."
|
|
|
|
AC_SUBST(ARCHFILE)
|
1999-01-20 07:59:39 +03:00
|
|
|
|
2004-01-08 17:58:57 +03:00
|
|
|
dnl build rdoc index if requested
|
|
|
|
RDOCTARGET=""
|
|
|
|
AC_ARG_ENABLE(install-doc,
|
2004-01-10 20:39:07 +03:00
|
|
|
[ --disable-install-doc do not install rdoc indexes during install ],
|
|
|
|
[install_doc=$enableval], [install_doc=yes])
|
2004-01-08 17:58:57 +03:00
|
|
|
if test "$install_doc" != no; then
|
|
|
|
RDOCTARGET="install-doc"
|
|
|
|
fi
|
|
|
|
AC_SUBST(RDOCTARGET)
|
|
|
|
|
2000-01-05 07:41:21 +03:00
|
|
|
case "$target_os" in
|
2001-12-02 21:33:10 +03:00
|
|
|
netbsd*)
|
|
|
|
CFLAGS="$CFLAGS -pipe"
|
|
|
|
;;
|
* gc.c (Init_stack): stack region is far smaller than usual if
pthread is used.
* marshal.c (w_extended): singleton methods should not be checked
when dumping via marshal_dump() or _dump(). [ruby-talk:85909]
* file.c (getcwdofdrv): avoid using getcwd() directly, use
my_getcwd() instead.
* merged NeXT, OpenStep, Rhapsody ports patch from Eric Sunshine
<sunshine@sunshineco.com>. [ruby-core:01596]
* marshal.c (w_object): LINK check earlier than anything else,
i.e. do not dump TYPE_IVAR for already dumped objects.
(ruby-bugs PR#1220)
* eval.c (rb_eval): call "inherited" only when a new class is
generated; not on reopening.
* eval.c (eval): prepend error position in evaluating string to
* configure.in: revived NextStep, OpenStep, and Rhapsody ports which
had become unbuildable; enhanced --enable-fat-binary option so that
it accepts a list of desired architectures (rather than assuming a
fixed list), or defaults to a platform-appropriate list if user does
not provide an explicit list; made the default list of architectures
for MAB (fat binary) more comprehensive; now uses -fno-common even
when building the interpreter (in addition to using it for
extensions), thus allowing the interpreter to be embedded into a
plugin module of an external project (in addition to allowing
embedding directly into an application); added checks for
<netinet/in_systm.h> (needed by `socket' extension) and getcwd(); now
ensures that -I/usr/local/include is employed when extensions'
extconf.rb scripts invoke have_header() since extension checks on
NextStep and OpenStep will fail without it if the desired resource
resides in the /usr/local tree; fixed formatting of --help message.
* Makefile.in: $(LIBRUBY_A) rule now deletes the archive before
invoking $(AR) since `ar' on Apple/NeXT can not "update" MAB archives
(see configure's --enable-fat-binary option); added rule for new
missing/getcwd.c.
* defines.h: fixed endian handling during MAB build (see configure's
--enable-fat-binary option) to ensure that all portions of the
project see the correct WORDS_BIGENDIAN value (some extension modules
were getting the wrong endian setting); added missing constants
GETPGRP_VOID, WNOHANG, WUNTRACED, X_OK, and type pid_t for NextStep
and OpenStep; removed unnecessary and problematic HAVE_SYS_WAIT_H
define in NeXT section.
* dir.c: do not allow NAMLEN() macro to trust dirent::d_namlen on
NextStep since, on some installations, this value always resolves
uselessly to zero.
* dln.c: added error reporting to NextStep extension loader since the
previous behavior of failing silently was not useful; now ensures
that NSLINKMODULE_OPTION_BINDNOW compatibility constant is defined
for OpenStep and Rhapsody; no longer includes <mach-o/dyld.h> twice
on Rhapsody since this header lacks multiple-include protection,
which resulted in "redefinition" compilation errors.
* main.c: also create hard reference to objc_msgSend() on NeXT
platforms (in addition to Apple platforms).
* lib/mkmf.rb: now exports XCFLAGS from configure script to extension
makefiles so that extensions can be built MAB (see configure's
--enable-fat-binary option); also utilize XCFLAGS in cc_command()
(but not cpp_command() because MAB flags are incompatible with
direct invocation of `cpp').
* ext/curses/extconf.rb: now additionally checks for presence of these
curses functions which are not present on NextStep or Openstep:
bkgd(), bkgdset(), color(), curs(), getbkgd(), init(), scrl(), set(),
setscrreg(), wattroff(), wattron(), wattrset(), wbkgd(), wbkgdset(),
wscrl(), wsetscrreg()
* ext/curses/curses.c: added appropriate #ifdef's for additional set of
curses functions now checked by extconf.rb; fixed curses_bkgd() and
window_bkgd() to correctly return boolean result rather than numeric
result; fixed window_getbkgd() to correctly signal an error by
returning nil rather than -1.
* ext/etc/etc.c: setup_passwd() and setup_group() now check for null
pointers before invoking rb_tainted_str_new2() upon fields extracted
from `struct passwd' and `struct group' since null pointers in some
fields are common on NextStep/OpenStep (especially so for the
`pw_comment' field) and rb_tainted_str_new2() throws an exception
when it receives a null pointer.
* ext/pty/pty.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
* ext/socket/getaddrinfo.c: cast first argument of getservbyname(),
gethostbyaddr(), and gethostbyname() from (const char*) to non-const
(char*) for older platforms such as NextStep and OpenStep.
* ext/socket/socket.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup(); include
<netinet/in_systm.h> if present for NextStep and OpenStep; cast first
argument of gethostbyaddr() and getservbyname() from (const char*) to
non-const (char*) for older platforms.
* ext/syslog/syslog.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-22 07:00:03 +03:00
|
|
|
nextstep*|openstep*)
|
|
|
|
# The -fno-common is needed if we wish to embed the Ruby interpreter
|
|
|
|
# into a plugin module of some project (as opposed to embedding it
|
|
|
|
# within the project's application). The -I/usr/local/include is
|
|
|
|
# needed because CPP as discovered by configure (cc -E -traditional)
|
|
|
|
# fails to consult /usr/local/include by default. This causes
|
|
|
|
# mkmf.rb's have_header() to fail if the desired resource happens to be
|
|
|
|
# installed in the /usr/local tree.
|
|
|
|
CFLAGS="$CFLAGS -pipe -fno-common"
|
|
|
|
CPPFLAGS="$CPPFLAGS -I/usr/local/include"
|
2000-05-14 13:36:29 +04:00
|
|
|
;;
|
2000-07-31 08:36:38 +04:00
|
|
|
rhapsody*)
|
* gc.c (Init_stack): stack region is far smaller than usual if
pthread is used.
* marshal.c (w_extended): singleton methods should not be checked
when dumping via marshal_dump() or _dump(). [ruby-talk:85909]
* file.c (getcwdofdrv): avoid using getcwd() directly, use
my_getcwd() instead.
* merged NeXT, OpenStep, Rhapsody ports patch from Eric Sunshine
<sunshine@sunshineco.com>. [ruby-core:01596]
* marshal.c (w_object): LINK check earlier than anything else,
i.e. do not dump TYPE_IVAR for already dumped objects.
(ruby-bugs PR#1220)
* eval.c (rb_eval): call "inherited" only when a new class is
generated; not on reopening.
* eval.c (eval): prepend error position in evaluating string to
* configure.in: revived NextStep, OpenStep, and Rhapsody ports which
had become unbuildable; enhanced --enable-fat-binary option so that
it accepts a list of desired architectures (rather than assuming a
fixed list), or defaults to a platform-appropriate list if user does
not provide an explicit list; made the default list of architectures
for MAB (fat binary) more comprehensive; now uses -fno-common even
when building the interpreter (in addition to using it for
extensions), thus allowing the interpreter to be embedded into a
plugin module of an external project (in addition to allowing
embedding directly into an application); added checks for
<netinet/in_systm.h> (needed by `socket' extension) and getcwd(); now
ensures that -I/usr/local/include is employed when extensions'
extconf.rb scripts invoke have_header() since extension checks on
NextStep and OpenStep will fail without it if the desired resource
resides in the /usr/local tree; fixed formatting of --help message.
* Makefile.in: $(LIBRUBY_A) rule now deletes the archive before
invoking $(AR) since `ar' on Apple/NeXT can not "update" MAB archives
(see configure's --enable-fat-binary option); added rule for new
missing/getcwd.c.
* defines.h: fixed endian handling during MAB build (see configure's
--enable-fat-binary option) to ensure that all portions of the
project see the correct WORDS_BIGENDIAN value (some extension modules
were getting the wrong endian setting); added missing constants
GETPGRP_VOID, WNOHANG, WUNTRACED, X_OK, and type pid_t for NextStep
and OpenStep; removed unnecessary and problematic HAVE_SYS_WAIT_H
define in NeXT section.
* dir.c: do not allow NAMLEN() macro to trust dirent::d_namlen on
NextStep since, on some installations, this value always resolves
uselessly to zero.
* dln.c: added error reporting to NextStep extension loader since the
previous behavior of failing silently was not useful; now ensures
that NSLINKMODULE_OPTION_BINDNOW compatibility constant is defined
for OpenStep and Rhapsody; no longer includes <mach-o/dyld.h> twice
on Rhapsody since this header lacks multiple-include protection,
which resulted in "redefinition" compilation errors.
* main.c: also create hard reference to objc_msgSend() on NeXT
platforms (in addition to Apple platforms).
* lib/mkmf.rb: now exports XCFLAGS from configure script to extension
makefiles so that extensions can be built MAB (see configure's
--enable-fat-binary option); also utilize XCFLAGS in cc_command()
(but not cpp_command() because MAB flags are incompatible with
direct invocation of `cpp').
* ext/curses/extconf.rb: now additionally checks for presence of these
curses functions which are not present on NextStep or Openstep:
bkgd(), bkgdset(), color(), curs(), getbkgd(), init(), scrl(), set(),
setscrreg(), wattroff(), wattron(), wattrset(), wbkgd(), wbkgdset(),
wscrl(), wsetscrreg()
* ext/curses/curses.c: added appropriate #ifdef's for additional set of
curses functions now checked by extconf.rb; fixed curses_bkgd() and
window_bkgd() to correctly return boolean result rather than numeric
result; fixed window_getbkgd() to correctly signal an error by
returning nil rather than -1.
* ext/etc/etc.c: setup_passwd() and setup_group() now check for null
pointers before invoking rb_tainted_str_new2() upon fields extracted
from `struct passwd' and `struct group' since null pointers in some
fields are common on NextStep/OpenStep (especially so for the
`pw_comment' field) and rb_tainted_str_new2() throws an exception
when it receives a null pointer.
* ext/pty/pty.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
* ext/socket/getaddrinfo.c: cast first argument of getservbyname(),
gethostbyaddr(), and gethostbyname() from (const char*) to non-const
(char*) for older platforms such as NextStep and OpenStep.
* ext/socket/socket.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup(); include
<netinet/in_systm.h> if present for NextStep and OpenStep; cast first
argument of gethostbyaddr() and getservbyname() from (const char*) to
non-const (char*) for older platforms.
* ext/syslog/syslog.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-22 07:00:03 +03:00
|
|
|
CFLAGS="$CFLAGS -pipe -no-precomp -fno-common"
|
2000-05-14 13:36:29 +04:00
|
|
|
;;
|
2000-08-28 13:53:42 +04:00
|
|
|
darwin*)
|
* gc.c (Init_stack): stack region is far smaller than usual if
pthread is used.
* marshal.c (w_extended): singleton methods should not be checked
when dumping via marshal_dump() or _dump(). [ruby-talk:85909]
* file.c (getcwdofdrv): avoid using getcwd() directly, use
my_getcwd() instead.
* merged NeXT, OpenStep, Rhapsody ports patch from Eric Sunshine
<sunshine@sunshineco.com>. [ruby-core:01596]
* marshal.c (w_object): LINK check earlier than anything else,
i.e. do not dump TYPE_IVAR for already dumped objects.
(ruby-bugs PR#1220)
* eval.c (rb_eval): call "inherited" only when a new class is
generated; not on reopening.
* eval.c (eval): prepend error position in evaluating string to
* configure.in: revived NextStep, OpenStep, and Rhapsody ports which
had become unbuildable; enhanced --enable-fat-binary option so that
it accepts a list of desired architectures (rather than assuming a
fixed list), or defaults to a platform-appropriate list if user does
not provide an explicit list; made the default list of architectures
for MAB (fat binary) more comprehensive; now uses -fno-common even
when building the interpreter (in addition to using it for
extensions), thus allowing the interpreter to be embedded into a
plugin module of an external project (in addition to allowing
embedding directly into an application); added checks for
<netinet/in_systm.h> (needed by `socket' extension) and getcwd(); now
ensures that -I/usr/local/include is employed when extensions'
extconf.rb scripts invoke have_header() since extension checks on
NextStep and OpenStep will fail without it if the desired resource
resides in the /usr/local tree; fixed formatting of --help message.
* Makefile.in: $(LIBRUBY_A) rule now deletes the archive before
invoking $(AR) since `ar' on Apple/NeXT can not "update" MAB archives
(see configure's --enable-fat-binary option); added rule for new
missing/getcwd.c.
* defines.h: fixed endian handling during MAB build (see configure's
--enable-fat-binary option) to ensure that all portions of the
project see the correct WORDS_BIGENDIAN value (some extension modules
were getting the wrong endian setting); added missing constants
GETPGRP_VOID, WNOHANG, WUNTRACED, X_OK, and type pid_t for NextStep
and OpenStep; removed unnecessary and problematic HAVE_SYS_WAIT_H
define in NeXT section.
* dir.c: do not allow NAMLEN() macro to trust dirent::d_namlen on
NextStep since, on some installations, this value always resolves
uselessly to zero.
* dln.c: added error reporting to NextStep extension loader since the
previous behavior of failing silently was not useful; now ensures
that NSLINKMODULE_OPTION_BINDNOW compatibility constant is defined
for OpenStep and Rhapsody; no longer includes <mach-o/dyld.h> twice
on Rhapsody since this header lacks multiple-include protection,
which resulted in "redefinition" compilation errors.
* main.c: also create hard reference to objc_msgSend() on NeXT
platforms (in addition to Apple platforms).
* lib/mkmf.rb: now exports XCFLAGS from configure script to extension
makefiles so that extensions can be built MAB (see configure's
--enable-fat-binary option); also utilize XCFLAGS in cc_command()
(but not cpp_command() because MAB flags are incompatible with
direct invocation of `cpp').
* ext/curses/extconf.rb: now additionally checks for presence of these
curses functions which are not present on NextStep or Openstep:
bkgd(), bkgdset(), color(), curs(), getbkgd(), init(), scrl(), set(),
setscrreg(), wattroff(), wattron(), wattrset(), wbkgd(), wbkgdset(),
wscrl(), wsetscrreg()
* ext/curses/curses.c: added appropriate #ifdef's for additional set of
curses functions now checked by extconf.rb; fixed curses_bkgd() and
window_bkgd() to correctly return boolean result rather than numeric
result; fixed window_getbkgd() to correctly signal an error by
returning nil rather than -1.
* ext/etc/etc.c: setup_passwd() and setup_group() now check for null
pointers before invoking rb_tainted_str_new2() upon fields extracted
from `struct passwd' and `struct group' since null pointers in some
fields are common on NextStep/OpenStep (especially so for the
`pw_comment' field) and rb_tainted_str_new2() throws an exception
when it receives a null pointer.
* ext/pty/pty.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
* ext/socket/getaddrinfo.c: cast first argument of getservbyname(),
gethostbyaddr(), and gethostbyname() from (const char*) to non-const
(char*) for older platforms such as NextStep and OpenStep.
* ext/socket/socket.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup(); include
<netinet/in_systm.h> if present for NextStep and OpenStep; cast first
argument of gethostbyaddr() and getservbyname() from (const char*) to
non-const (char*) for older platforms.
* ext/syslog/syslog.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-22 07:00:03 +03:00
|
|
|
CFLAGS="$CFLAGS -pipe -fno-common"
|
2000-08-28 13:53:42 +04:00
|
|
|
;;
|
2003-07-30 04:32:03 +04:00
|
|
|
os2-emx)
|
|
|
|
CFLAGS="$CFLAGS -DOS2 -Zmts"
|
|
|
|
LIBRUBY_A=`echo $LIBRUBY_A | sed 's/^lib//'`
|
|
|
|
LIBRUBY_SO=`echo $LIBRUBY_SO | sed 's/^lib//'`
|
|
|
|
LIBRUBY_ALIASES=`for i in $LIBRUBY_ALIASES; do echo "$i"; done | sed 's/^lib//'`
|
2000-07-31 08:36:38 +04:00
|
|
|
;;
|
2000-05-14 13:36:29 +04:00
|
|
|
osf*)
|
2001-12-02 17:10:27 +03:00
|
|
|
if test "$GCC" != "yes" ; then
|
2000-03-15 08:01:17 +03:00
|
|
|
# compile something small: taint.c is fine for this.
|
|
|
|
# the main point is the '-v' flag of 'cc'.
|
|
|
|
case "`cc -v -I. -c main.c -o /tmp/main.o 2>&1`" in
|
|
|
|
*/gemc_cc*) # we have the new DEC GEM CC
|
2000-03-15 12:09:28 +03:00
|
|
|
CFLAGS="$CFLAGS -oldc"
|
2000-03-15 08:01:17 +03:00
|
|
|
;;
|
|
|
|
*) # we have the old MIPS CC
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
# cleanup
|
|
|
|
rm -f /tmp/main.o
|
|
|
|
CFLAGS="$CFLAGS -std"
|
|
|
|
fi
|
|
|
|
;;
|
2000-05-24 08:34:26 +04:00
|
|
|
beos*)
|
|
|
|
case "$target_cpu" in
|
|
|
|
powerpc*)
|
|
|
|
CFLAGS="$CFLAGS -relax_pointers"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
;;
|
2000-07-02 19:57:18 +04:00
|
|
|
cygwin*|mingw*)
|
2002-08-23 12:18:19 +04:00
|
|
|
case "$target_os" in
|
|
|
|
cygwin*)
|
2003-08-07 09:43:59 +04:00
|
|
|
if test x"$enable_shared" = xyes; then
|
|
|
|
LIBRUBY_SO='cyg$(RUBY_SO_NAME)'${MAJOR}${MINOR}.dll
|
|
|
|
LIBRUBY='lib$(RUBY_SO_NAME).dll.a'
|
|
|
|
fi
|
2002-08-23 12:18:19 +04:00
|
|
|
AC_LIBOBJ([strftime])
|
2003-03-04 17:12:19 +03:00
|
|
|
;;
|
2002-08-23 12:18:19 +04:00
|
|
|
mingw*)
|
2005-04-13 14:25:41 +04:00
|
|
|
RUBY_SO_NAME=${rb_cv_msvcrt}-'$(RUBY_INSTALL_NAME)'${MAJOR}${MINOR}
|
2003-08-07 09:43:59 +04:00
|
|
|
if test x"$enable_shared" = xyes; then
|
|
|
|
LIBRUBY_SO='$(RUBY_SO_NAME)'.dll
|
|
|
|
LIBRUBY='lib$(LIBRUBY_SO).a'
|
|
|
|
fi
|
2002-08-23 12:18:19 +04:00
|
|
|
AC_LIBOBJ([win32])
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
COMMON_LIBS=m
|
2005-03-25 05:02:54 +03:00
|
|
|
# COMMON_MACROS="WIN32_LEAN_AND_MEAN="
|
2005-02-10 07:55:34 +03:00
|
|
|
COMMON_HEADERS="winsock2.h windows.h"
|
2003-03-04 17:12:19 +03:00
|
|
|
;;
|
2002-08-23 12:18:19 +04:00
|
|
|
esac
|
2003-06-01 16:58:56 +04:00
|
|
|
XCFLAGS="$XCFLAGS"
|
|
|
|
LIBRUBY_DLDFLAGS="${DLDFLAGS}"' -Wl,--out-implib=$(LIBRUBY)'
|
2003-08-07 09:43:59 +04:00
|
|
|
LIBRUBY_ALIASES=''
|
|
|
|
FIRSTMAKEFILE=GNUmakefile:cygwin/GNUmakefile.in
|
|
|
|
SOLIBS='$(LIBS)'
|
|
|
|
if test x"$enable_shared" = xno; then
|
2000-07-26 05:12:31 +04:00
|
|
|
LIBRUBY_SO=dummy
|
2002-06-11 14:26:13 +04:00
|
|
|
LIBRUBY='lib$(RUBY_SO_NAME).a'
|
2002-12-12 13:21:41 +03:00
|
|
|
LIBRUBYARG='-l$(RUBY_SO_NAME)'
|
2000-07-25 18:46:46 +04:00
|
|
|
fi
|
2000-05-14 13:36:29 +04:00
|
|
|
;;
|
2003-03-05 06:15:06 +03:00
|
|
|
hpux*)
|
|
|
|
case "$YACC" in
|
|
|
|
*yacc*)
|
|
|
|
XCFLAGS="$XCFLAGS -DYYMAXDEPTH=300"
|
|
|
|
YACC="$YACC -Nl40000 -Nm40000"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
;;
|
2000-05-14 13:36:29 +04:00
|
|
|
*)
|
2002-08-23 12:18:19 +04:00
|
|
|
;;
|
1999-01-20 07:59:39 +03:00
|
|
|
esac
|
|
|
|
|
2003-01-01 12:26:45 +03:00
|
|
|
case "$build_os" in
|
|
|
|
*msdosdjgpp*) FIRSTMAKEFILE=GNUmakefile:djgpp/GNUmakefile.in;;
|
|
|
|
esac
|
|
|
|
|
* gc.c (Init_stack): stack region is far smaller than usual if
pthread is used.
* marshal.c (w_extended): singleton methods should not be checked
when dumping via marshal_dump() or _dump(). [ruby-talk:85909]
* file.c (getcwdofdrv): avoid using getcwd() directly, use
my_getcwd() instead.
* merged NeXT, OpenStep, Rhapsody ports patch from Eric Sunshine
<sunshine@sunshineco.com>. [ruby-core:01596]
* marshal.c (w_object): LINK check earlier than anything else,
i.e. do not dump TYPE_IVAR for already dumped objects.
(ruby-bugs PR#1220)
* eval.c (rb_eval): call "inherited" only when a new class is
generated; not on reopening.
* eval.c (eval): prepend error position in evaluating string to
* configure.in: revived NextStep, OpenStep, and Rhapsody ports which
had become unbuildable; enhanced --enable-fat-binary option so that
it accepts a list of desired architectures (rather than assuming a
fixed list), or defaults to a platform-appropriate list if user does
not provide an explicit list; made the default list of architectures
for MAB (fat binary) more comprehensive; now uses -fno-common even
when building the interpreter (in addition to using it for
extensions), thus allowing the interpreter to be embedded into a
plugin module of an external project (in addition to allowing
embedding directly into an application); added checks for
<netinet/in_systm.h> (needed by `socket' extension) and getcwd(); now
ensures that -I/usr/local/include is employed when extensions'
extconf.rb scripts invoke have_header() since extension checks on
NextStep and OpenStep will fail without it if the desired resource
resides in the /usr/local tree; fixed formatting of --help message.
* Makefile.in: $(LIBRUBY_A) rule now deletes the archive before
invoking $(AR) since `ar' on Apple/NeXT can not "update" MAB archives
(see configure's --enable-fat-binary option); added rule for new
missing/getcwd.c.
* defines.h: fixed endian handling during MAB build (see configure's
--enable-fat-binary option) to ensure that all portions of the
project see the correct WORDS_BIGENDIAN value (some extension modules
were getting the wrong endian setting); added missing constants
GETPGRP_VOID, WNOHANG, WUNTRACED, X_OK, and type pid_t for NextStep
and OpenStep; removed unnecessary and problematic HAVE_SYS_WAIT_H
define in NeXT section.
* dir.c: do not allow NAMLEN() macro to trust dirent::d_namlen on
NextStep since, on some installations, this value always resolves
uselessly to zero.
* dln.c: added error reporting to NextStep extension loader since the
previous behavior of failing silently was not useful; now ensures
that NSLINKMODULE_OPTION_BINDNOW compatibility constant is defined
for OpenStep and Rhapsody; no longer includes <mach-o/dyld.h> twice
on Rhapsody since this header lacks multiple-include protection,
which resulted in "redefinition" compilation errors.
* main.c: also create hard reference to objc_msgSend() on NeXT
platforms (in addition to Apple platforms).
* lib/mkmf.rb: now exports XCFLAGS from configure script to extension
makefiles so that extensions can be built MAB (see configure's
--enable-fat-binary option); also utilize XCFLAGS in cc_command()
(but not cpp_command() because MAB flags are incompatible with
direct invocation of `cpp').
* ext/curses/extconf.rb: now additionally checks for presence of these
curses functions which are not present on NextStep or Openstep:
bkgd(), bkgdset(), color(), curs(), getbkgd(), init(), scrl(), set(),
setscrreg(), wattroff(), wattron(), wattrset(), wbkgd(), wbkgdset(),
wscrl(), wsetscrreg()
* ext/curses/curses.c: added appropriate #ifdef's for additional set of
curses functions now checked by extconf.rb; fixed curses_bkgd() and
window_bkgd() to correctly return boolean result rather than numeric
result; fixed window_getbkgd() to correctly signal an error by
returning nil rather than -1.
* ext/etc/etc.c: setup_passwd() and setup_group() now check for null
pointers before invoking rb_tainted_str_new2() upon fields extracted
from `struct passwd' and `struct group' since null pointers in some
fields are common on NextStep/OpenStep (especially so for the
`pw_comment' field) and rb_tainted_str_new2() throws an exception
when it receives a null pointer.
* ext/pty/pty.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
* ext/socket/getaddrinfo.c: cast first argument of getservbyname(),
gethostbyaddr(), and gethostbyname() from (const char*) to non-const
(char*) for older platforms such as NextStep and OpenStep.
* ext/socket/socket.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup(); include
<netinet/in_systm.h> if present for NextStep and OpenStep; cast first
argument of gethostbyaddr() and getservbyname() from (const char*) to
non-const (char*) for older platforms.
* ext/syslog/syslog.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-22 07:00:03 +03:00
|
|
|
AC_SUBST(XCFLAGS)dnl
|
|
|
|
AC_SUBST(XLDFLAGS)dnl
|
1999-08-13 09:45:20 +04:00
|
|
|
AC_SUBST(LIBRUBY_LDSHARED)
|
|
|
|
AC_SUBST(LIBRUBY_DLDFLAGS)
|
|
|
|
AC_SUBST(RUBY_INSTALL_NAME)
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
AC_SUBST(rubyw_install_name)
|
|
|
|
AC_SUBST(RUBYW_INSTALL_NAME)
|
2000-08-07 09:05:04 +04:00
|
|
|
AC_SUBST(RUBY_SO_NAME)
|
1999-08-13 09:45:20 +04:00
|
|
|
AC_SUBST(LIBRUBY_A)
|
|
|
|
AC_SUBST(LIBRUBY_SO)
|
|
|
|
AC_SUBST(LIBRUBY_ALIASES)
|
1999-01-20 07:59:39 +03:00
|
|
|
AC_SUBST(LIBRUBY)
|
|
|
|
AC_SUBST(LIBRUBYARG)
|
2002-11-14 16:51:19 +03:00
|
|
|
AC_SUBST(LIBRUBYARG_STATIC)
|
|
|
|
AC_SUBST(LIBRUBYARG_SHARED)
|
1999-01-20 07:59:39 +03:00
|
|
|
AC_SUBST(SOLIBS)
|
2000-05-09 08:53:16 +04:00
|
|
|
AC_SUBST(DLDLIBS)
|
2000-07-02 19:57:18 +04:00
|
|
|
AC_SUBST(ENABLE_SHARED)
|
2001-04-01 20:53:41 +04:00
|
|
|
AC_SUBST(MAINLIBS)
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
AC_SUBST(COMMON_LIBS)
|
|
|
|
AC_SUBST(COMMON_MACROS)
|
|
|
|
AC_SUBST(COMMON_HEADERS)
|
|
|
|
AC_SUBST(EXPORT_PREFIX)
|
|
|
|
|
|
|
|
MAKEFILES="Makefile `echo $FIRSTMAKEFILE | sed 's/:.*//'`"
|
|
|
|
MAKEFILES="`echo $MAKEFILES`"
|
|
|
|
AC_SUBST(MAKEFILES)
|
1999-01-20 07:59:39 +03:00
|
|
|
|
|
|
|
ri_prefix=
|
|
|
|
test "$program_prefix" != NONE &&
|
|
|
|
ri_prefix=$program_prefix
|
|
|
|
|
|
|
|
ri_suffix=
|
|
|
|
test "$program_suffix" != NONE &&
|
|
|
|
ri_suffix=$program_suffix
|
|
|
|
|
|
|
|
RUBY_INSTALL_NAME="${ri_prefix}ruby${ri_suffix}"
|
* configure.in (XCFLAGS): CFLAGS to comile ruby itself.
* configure.in (LIBEXT): suffix for static libraries.
* configure.in (LIBPATHFLAG): switch template to specify library
path.
* configure.in (LINK_SO): command to link shared objects.
* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent
files.
* configure.in (EXPORT_PREFIX): prefix to exported symbols on
Windows.
* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):
libraries, macros and headers used in common.
* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode
excutable name.
* Makefile.in (CFLAGS): append XCFLAGS.
* Makefile.in (PREP): miscellaneous system dependent files.
* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.
* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.
* Makefile.in (MAKEFILES): depend on *.in and config.status.
* Makefile.in (parse.c): replace "y.tab.c" with actual name for
byacc.
* ext/extmk.rb, lib/mkmf.rb: integrated.
* ext/extmk.rb: propagate MFLAGS.
* ext/extmk.rb (extmake): make dummy Makefile to clean even if no
Makefile is made.
* lib/mkmf.rb (older): accept multiple file names and Time
objects.
* lib/mkmf.rb (xsystem): split and qoute.
* lib/mkmf.rb (cpp_include): make include directives.
* lib/mkmf.rb (try_func): try wheather specified function is
available.
* lib/mkmf.rb (install_files): default to site-install.
* lib/mkmf.rb (checking_for): added.
* lib/mkmf.rb (find_executable0): just find executable file with
no message.
* lib/mkmf.rb (create_header): output header file is variable.
* lib/mkmf.rb (create_makefile): separate sections.
* lib/mkmf.rb (init_mkmf): initialize global variables.
* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.
* bcc32/Makefile.sub (ARCH): fixed to i386.
* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not
link EXTOBJS.
* ext/dl/extconf.rb: use try_cpp to cross compile.
* ext/dl/extconf.rb: not modify files in source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-10-21 18:17:44 +04:00
|
|
|
case "$target_os" in
|
|
|
|
cygwin*|mingw*)
|
|
|
|
RUBYW_INSTALL_NAME="${ri_prefix}rubyw${ri_suffix}"
|
|
|
|
rubyw_install_name="$RUBYW_INSTALL_NAME"
|
|
|
|
;;
|
|
|
|
esac
|
2000-08-03 13:50:41 +04:00
|
|
|
case "$target_os" in
|
2003-07-30 04:32:03 +04:00
|
|
|
cygwin*|mingw*|*djgpp*|os2-emx*)
|
2000-08-03 13:50:41 +04:00
|
|
|
RUBY_LIB_PREFIX="/lib/ruby"
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
RUBY_LIB_PREFIX="${prefix}/lib/ruby"
|
|
|
|
;;
|
|
|
|
esac
|
2000-02-17 10:11:22 +03:00
|
|
|
RUBY_LIB_PATH="${RUBY_LIB_PREFIX}/${MAJOR}.${MINOR}"
|
2000-09-27 10:48:23 +04:00
|
|
|
|
2000-04-12 09:06:23 +04:00
|
|
|
AC_ARG_WITH(sitedir,
|
2002-04-12 07:24:52 +04:00
|
|
|
[ --with-sitedir=DIR site libraries in DIR [PREFIX/lib/ruby/site_ruby]],
|
2000-09-22 22:15:52 +04:00
|
|
|
[sitedir=$withval],
|
2000-09-27 10:48:23 +04:00
|
|
|
[sitedir='${prefix}/lib/ruby/site_ruby'])
|
2000-10-02 11:48:42 +04:00
|
|
|
SITE_DIR="`eval \"echo ${sitedir}\"`"
|
2000-09-27 10:48:23 +04:00
|
|
|
case "$target_os" in
|
2003-07-30 04:32:03 +04:00
|
|
|
cygwin*|mingw*|*djgpp*|os2-emx*)
|
2000-09-27 10:48:23 +04:00
|
|
|
RUBY_SITE_LIB_PATH="`expr "$SITE_DIR" : "$prefix\(/.*\)"`" ||
|
|
|
|
RUBY_SITE_LIB_PATH="$SITE_DIR";;
|
|
|
|
*)
|
|
|
|
RUBY_SITE_LIB_PATH="$SITE_DIR";;
|
|
|
|
esac
|
2000-06-28 16:27:54 +04:00
|
|
|
RUBY_SITE_LIB_PATH2="${RUBY_SITE_LIB_PATH}/${MAJOR}.${MINOR}"
|
2000-02-17 10:11:22 +03:00
|
|
|
|
2000-06-28 16:27:54 +04:00
|
|
|
AC_DEFINE_UNQUOTED(RUBY_LIB, "${RUBY_LIB_PATH}")
|
|
|
|
AC_DEFINE_UNQUOTED(RUBY_SITE_LIB, "${RUBY_SITE_LIB_PATH}")
|
|
|
|
AC_DEFINE_UNQUOTED(RUBY_SITE_LIB2, "${RUBY_SITE_LIB_PATH2}")
|
2000-02-17 10:11:22 +03:00
|
|
|
|
1998-01-16 15:13:05 +03:00
|
|
|
AC_SUBST(arch)dnl
|
2002-08-23 12:18:19 +04:00
|
|
|
AC_SUBST(sitearch)dnl
|
2000-04-12 09:06:23 +04:00
|
|
|
AC_SUBST(sitedir)dnl
|
1998-01-16 15:13:05 +03:00
|
|
|
|
1999-08-13 09:45:20 +04:00
|
|
|
configure_args=$ac_configure_args
|
|
|
|
AC_SUBST(configure_args)dnl
|
|
|
|
|
* gc.c (Init_stack): stack region is far smaller than usual if
pthread is used.
* marshal.c (w_extended): singleton methods should not be checked
when dumping via marshal_dump() or _dump(). [ruby-talk:85909]
* file.c (getcwdofdrv): avoid using getcwd() directly, use
my_getcwd() instead.
* merged NeXT, OpenStep, Rhapsody ports patch from Eric Sunshine
<sunshine@sunshineco.com>. [ruby-core:01596]
* marshal.c (w_object): LINK check earlier than anything else,
i.e. do not dump TYPE_IVAR for already dumped objects.
(ruby-bugs PR#1220)
* eval.c (rb_eval): call "inherited" only when a new class is
generated; not on reopening.
* eval.c (eval): prepend error position in evaluating string to
* configure.in: revived NextStep, OpenStep, and Rhapsody ports which
had become unbuildable; enhanced --enable-fat-binary option so that
it accepts a list of desired architectures (rather than assuming a
fixed list), or defaults to a platform-appropriate list if user does
not provide an explicit list; made the default list of architectures
for MAB (fat binary) more comprehensive; now uses -fno-common even
when building the interpreter (in addition to using it for
extensions), thus allowing the interpreter to be embedded into a
plugin module of an external project (in addition to allowing
embedding directly into an application); added checks for
<netinet/in_systm.h> (needed by `socket' extension) and getcwd(); now
ensures that -I/usr/local/include is employed when extensions'
extconf.rb scripts invoke have_header() since extension checks on
NextStep and OpenStep will fail without it if the desired resource
resides in the /usr/local tree; fixed formatting of --help message.
* Makefile.in: $(LIBRUBY_A) rule now deletes the archive before
invoking $(AR) since `ar' on Apple/NeXT can not "update" MAB archives
(see configure's --enable-fat-binary option); added rule for new
missing/getcwd.c.
* defines.h: fixed endian handling during MAB build (see configure's
--enable-fat-binary option) to ensure that all portions of the
project see the correct WORDS_BIGENDIAN value (some extension modules
were getting the wrong endian setting); added missing constants
GETPGRP_VOID, WNOHANG, WUNTRACED, X_OK, and type pid_t for NextStep
and OpenStep; removed unnecessary and problematic HAVE_SYS_WAIT_H
define in NeXT section.
* dir.c: do not allow NAMLEN() macro to trust dirent::d_namlen on
NextStep since, on some installations, this value always resolves
uselessly to zero.
* dln.c: added error reporting to NextStep extension loader since the
previous behavior of failing silently was not useful; now ensures
that NSLINKMODULE_OPTION_BINDNOW compatibility constant is defined
for OpenStep and Rhapsody; no longer includes <mach-o/dyld.h> twice
on Rhapsody since this header lacks multiple-include protection,
which resulted in "redefinition" compilation errors.
* main.c: also create hard reference to objc_msgSend() on NeXT
platforms (in addition to Apple platforms).
* lib/mkmf.rb: now exports XCFLAGS from configure script to extension
makefiles so that extensions can be built MAB (see configure's
--enable-fat-binary option); also utilize XCFLAGS in cc_command()
(but not cpp_command() because MAB flags are incompatible with
direct invocation of `cpp').
* ext/curses/extconf.rb: now additionally checks for presence of these
curses functions which are not present on NextStep or Openstep:
bkgd(), bkgdset(), color(), curs(), getbkgd(), init(), scrl(), set(),
setscrreg(), wattroff(), wattron(), wattrset(), wbkgd(), wbkgdset(),
wscrl(), wsetscrreg()
* ext/curses/curses.c: added appropriate #ifdef's for additional set of
curses functions now checked by extconf.rb; fixed curses_bkgd() and
window_bkgd() to correctly return boolean result rather than numeric
result; fixed window_getbkgd() to correctly signal an error by
returning nil rather than -1.
* ext/etc/etc.c: setup_passwd() and setup_group() now check for null
pointers before invoking rb_tainted_str_new2() upon fields extracted
from `struct passwd' and `struct group' since null pointers in some
fields are common on NextStep/OpenStep (especially so for the
`pw_comment' field) and rb_tainted_str_new2() throws an exception
when it receives a null pointer.
* ext/pty/pty.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
* ext/socket/getaddrinfo.c: cast first argument of getservbyname(),
gethostbyaddr(), and gethostbyname() from (const char*) to non-const
(char*) for older platforms such as NextStep and OpenStep.
* ext/socket/socket.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup(); include
<netinet/in_systm.h> if present for NextStep and OpenStep; cast first
argument of gethostbyaddr() and getservbyname() from (const char*) to
non-const (char*) for older platforms.
* ext/syslog/syslog.c: include "util.h" for strdup()/ruby_strdup() for
platforms such as NextStep and OpenStep which lack strdup().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-22 07:00:03 +03:00
|
|
|
if test "$fat_binary" != no ; then
|
2000-01-05 07:41:21 +03:00
|
|
|
arch="fat-${target_os}"
|
1998-01-16 15:13:05 +03:00
|
|
|
|
|
|
|
AC_DEFINE_UNQUOTED(RUBY_THIN_ARCHLIB,
|
2000-01-05 07:41:21 +03:00
|
|
|
"${RUBY_LIB_PATH}/" __ARCHITECTURE__ "-${target_os}")
|
1999-01-20 07:59:39 +03:00
|
|
|
|
|
|
|
AC_DEFINE_UNQUOTED(RUBY_SITE_THIN_ARCHLIB,
|
2000-01-05 07:41:21 +03:00
|
|
|
"${RUBY_SITE_LIB_PATH}/" __ARCHITECTURE__ "-${target_os}")
|
|
|
|
AC_DEFINE_UNQUOTED(RUBY_PLATFORM, __ARCHITECTURE__ "-${target_os}")
|
1998-01-16 15:13:05 +03:00
|
|
|
else
|
2000-01-05 07:41:21 +03:00
|
|
|
arch="${target_cpu}-${target_os}"
|
1998-01-16 15:13:05 +03:00
|
|
|
AC_DEFINE_UNQUOTED(RUBY_PLATFORM, "${arch}")
|
|
|
|
fi
|
2000-02-17 10:11:22 +03:00
|
|
|
|
2002-08-23 12:18:19 +04:00
|
|
|
case "$target_os" in
|
2005-04-13 14:25:41 +04:00
|
|
|
mingw*) sitearch="i386-$rb_cv_msvcrt" ;;
|
2002-08-23 12:18:19 +04:00
|
|
|
*) sitearch="${arch}" ;;
|
|
|
|
esac
|
|
|
|
|
1999-08-13 09:45:20 +04:00
|
|
|
AC_DEFINE_UNQUOTED(RUBY_ARCHLIB, "${RUBY_LIB_PATH}/${arch}")
|
2002-08-23 12:18:19 +04:00
|
|
|
AC_DEFINE_UNQUOTED(RUBY_SITE_ARCHLIB, "${RUBY_SITE_LIB_PATH2}/${sitearch}")
|
1999-08-13 09:45:20 +04:00
|
|
|
|
|
|
|
AC_ARG_WITH(search-path,
|
2002-04-12 07:24:52 +04:00
|
|
|
[ --with-search-path=DIR specify the additional search path],
|
1999-08-13 09:45:20 +04:00
|
|
|
[search_path=$withval])
|
|
|
|
if test "$search_path" != ""; then
|
|
|
|
AC_DEFINE_UNQUOTED(RUBY_SEARCH_PATH,"$search_path")
|
|
|
|
fi
|
1998-01-16 15:13:05 +03:00
|
|
|
|
2003-01-20 15:51:50 +03:00
|
|
|
AC_ARG_WITH(mantype,
|
|
|
|
[ --with-mantype=TYPE specify man page type; TYPE is one of man and doc],
|
|
|
|
[
|
|
|
|
case "$withval" in
|
|
|
|
man|doc)
|
|
|
|
MANTYPE=$withval
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
AC_MSG_ERROR(invalid man type: $withval)
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
])
|
|
|
|
if test -z "$MANTYPE"; then
|
|
|
|
AC_PATH_PROGS(NROFF, nroff awf, /bin/false, "/usr/bin:/usr/ucb")
|
|
|
|
if ${NROFF} -mdoc ${srcdir}/ruby.1 >/dev/null 2>&1; then
|
|
|
|
MANTYPE=doc
|
|
|
|
else
|
|
|
|
MANTYPE=man
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
AC_SUBST(MANTYPE)
|
|
|
|
|
2002-02-06 11:25:00 +03:00
|
|
|
if test -f config.h && tr -d '\015' < confdefs.h | cmp -s config.h -; then
|
|
|
|
echo "config.h unchanged"
|
|
|
|
else
|
|
|
|
echo "creating config.h"
|
|
|
|
tr -d '\015' < confdefs.h > config.h
|
|
|
|
fi
|
2001-01-17 07:33:29 +03:00
|
|
|
: > confdefs.h
|
1998-01-16 15:13:05 +03:00
|
|
|
|
2004-03-22 02:21:31 +03:00
|
|
|
AC_CONFIG_FILES($FIRSTMAKEFILE)
|
2004-03-25 08:01:15 +03:00
|
|
|
AC_CONFIG_FILES(Makefile, [{
|
|
|
|
echo; test x"$EXEEXT" = x || echo 'miniruby: miniruby$(EXEEXT)'
|
|
|
|
test "$RUBY_INSTALL_NAME$EXEEXT" = ruby || echo 'ruby: $(PROGRAM);'
|
|
|
|
sed ['s/{\$([^(){}]*)[^{}]*}//g'] ${srcdir}/common.mk
|
|
|
|
} >> Makefile], [RUBY_INSTALL_NAME=$RUBY_INSTALL_NAME EXEEXT=$EXEEXT])
|
2002-04-19 11:39:40 +04:00
|
|
|
AC_OUTPUT
|