summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-10-25 17:00:03 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-10-25 17:00:03 +0000
commit8a2612b33585e832f12f1865811a6b6db8c36a24 (patch)
tree1c2479e2d1b7dd6ded09584aa17258fd9a54339e /configure.in
parented91275a9889d780cc44d56992bd439d45656838 (diff)
* configure.in (RUBY_EXTERN): macro to export symbols in shared
library. [ruby-core:05528] * defines.h, {bcc32,win32,wince}/Makefile.sub (RUBY_EXTERN): moved to configuration pass. * ext/extmk.rb (extmake): RUBY_EXTERN for static linked extensions. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in12
1 files changed, 11 insertions, 1 deletions
diff --git a/configure.in b/configure.in
index 6518b49e14..dff993ef23 100644
--- a/configure.in
+++ b/configure.in
@@ -308,6 +308,17 @@ RUBY_FUNC_ATTRIBUTE(noinline, NOINLINE)
RUBY_FUNC_ATTRIBUTE(stdcall)
RUBY_FUNC_ATTRIBUTE(cdecl)
+AC_CACHE_CHECK([for RUBY_EXTERN], rb_cv_ruby_extern,
+[rb_cv_ruby_extern=no
+for mac in "__attribute__((dllimport))" "__declspec(dllimport)"; do
+ AC_TRY_COMPILE(
+ [extern $mac void conftest(void);],
+ [rb_cv_ruby_extern="extern $mac"; break])
+done])
+test "x$rb_cv_ruby_extern" = xno || AC_DEFINE_UNQUOTED(RUBY_EXTERN, $rb_cv_ruby_extern)
+
+XCFLAGS="$XCFLAGS -DRUBY_EXPORT"
+
dnl Check whether we need to define sys_nerr locally
AC_CHECK_DECLS([sys_nerr], [], [], [$ac_includes_default
#include <errno.h>])
@@ -1375,7 +1386,6 @@ case "$target_os" in
COMMON_HEADERS="winsock2.h windows.h"
;;
esac
- XCFLAGS="$XCFLAGS"
LIBRUBY_DLDFLAGS="${DLDFLAGS}"' -Wl,--out-implib=$(LIBRUBY)'
LIBRUBY_ALIASES=''
FIRSTMAKEFILE=GNUmakefile:cygwin/GNUmakefile.in