diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2002-10-21 14:17:44 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2002-10-21 14:17:44 +0000 |
commit | b9ecdfaa3d8bb6c318c2299f020a0583bcdfe88c (patch) | |
tree | 256f7ef575c3c57ea4cde2e539f7c38d21bdb9ea /configure.in | |
parent | 8209f4fb71cb1ec86f9e24b3aa7a2e54b3d215bc (diff) |
* 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
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 107 |
1 files changed, 72 insertions, 35 deletions
diff --git a/configure.in b/configure.in index 4e9d0c1be7..c5637dd8bc 100644 --- a/configure.in +++ b/configure.in @@ -161,6 +161,9 @@ cygwin*|mingw*) target_cpu=`echo $target_cpu | sed s/i.86/i386/` : ${enable_shared=yes} ;; +aix*) + AC_CHECK_TOOL(NM, nm, /usr/ccs/bin/nm, /usr/ccs/bin:$PATH) + ;; esac # by TOYODA Eizi <toyoda@npd.kishou.go.jp> @@ -651,6 +654,7 @@ AC_ARG_WITH(dln-a-out, *) with_dln_a_out=no;; esac], [with_dln_a_out=no]) +AC_SUBST(XCFLAGS)dnl AC_SUBST(XLDFLAGS)dnl AC_CACHE_CHECK(whether ELF binaries are produced, rb_cv_binary_elf, @@ -680,13 +684,13 @@ if test "$rb_cv_binary_elf" = yes; then fi case "$target_os" in - linux*) - if test "$rb_cv_binary_elf" = no; then - with_dln_a_out=yes - target_os=${target_os}-a_out - else - LDFLAGS="-rdynamic" - fi;; +linux*) + if test "$rb_cv_binary_elf" = no; then + with_dln_a_out=yes + target_os=${target_os}-a_out + else + LDFLAGS="-rdynamic" + fi;; netbsd*) if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]] then @@ -696,6 +700,7 @@ netbsd*) fi ;; esac +LIBEXT=a AC_SUBST(DLDFLAGS)dnl @@ -704,8 +709,10 @@ AC_SUBST(CCDLFLAGS)dnl AC_SUBST(LDSHARED)dnl AC_SUBST(DLEXT)dnl AC_SUBST(DLEXT2)dnl +AC_SUBST(LIBEXT)dnl STATIC= +LIBPATHFLAG=' -L%s' if test "$with_dln_a_out" != yes; then rb_cv_dlopen=unknown @@ -777,6 +784,7 @@ if test "$with_dln_a_out" != yes; then netbsd*) LDSHARED='${CC} -shared' if test "$rb_cv_binary_elf" = yes; then LDFLAGS="-Wl,-export-dynamic" + LIBPATHFLAG=' -L%1$s -Wl,-R%1$s' fi rb_cv_dlopen=yes ;; openbsd*) LDSHARED="ld -Bforcearchive -Bshareable" @@ -786,7 +794,7 @@ if test "$with_dln_a_out" != yes; then rb_cv_dlopen=yes ;; esac ;; bsdi*) LDSHARED="ld -shared" - LDFLAGS='-rdynamic -Wl,-rpath,$(prefix)/lib/ruby/$(MAJOR).$(MINOR)/i386-bsdi4.0' + LDFLAGS='-rdynamic -Wl,-rpath,$(libdir)/ruby/$(MAJOR).$(MINOR)/i386-bsdi4.0' rb_cv_dlopen=yes ;; nextstep*) LDSHARED='cc -r -nostdlib' LDFLAGS="-u libsys_s" @@ -813,6 +821,7 @@ if test "$with_dln_a_out" != yes; then human*) DLDFLAGS='' LDSHARED='' LDFLAGS='' + LINK_SO='ar cru $@ $(OBJS)' rb_cv_dlopen=yes ;; beos*) case "$target_cpu" in powerpc*) @@ -830,13 +839,16 @@ if test "$with_dln_a_out" != yes; then LDFLAGS="-L/lib -L/usr/lib -L/usr/local/lib" rb_cv_dlopen=yes;; cygwin*|mingw*) : ${LDSHARED="${CC} -shared -s"} - LDFLAGS='-Wl,--stack,0x02000000' + XLDFLAGS='-Wl,--stack,0x02000000' + DLDFLAGS="${DLDFLAGS} "'$(DEFFILE)' rb_cv_dlopen=yes ;; hiuxmpp) LDSHARED='ld -r' ;; *) LDSHARED='ld' ;; esac AC_MSG_RESULT($rb_cv_dlopen) fi +AC_SUBST(LINK_SO) +AC_SUBST(LIBPATHFLAG) dln_a_out_works=no if test "$ac_cv_header_a_out_h" = yes; then @@ -964,7 +976,8 @@ rb_cv_missing_fconvert=yes, rb_cv_missing_fconvert=no, rb_cv_missing_fconvert=no AC_DEFINE(MISSING_FCONVERT) fi AC_LIBOBJ([x68.o]) - CFLAGS="$CFLAGS -fansi-only -cc1-stack=262144 -cpp-stack=2694144" + CFLAGS="$CFLAGS -fansi-only" + XCFLAGS="-cc1-stack=262144 -cpp-stack=2694144" EXEEXT=.x OBJEXT=o setup=Setup.x68 @@ -992,11 +1005,11 @@ if test "$prefix" = NONE; then fi if test "$fat_binary" = yes ; then - CFLAGS="$CFLAGS $ARCH_FLAG" + XCFLAGS="$ARCH_FLAG" fi if test x"$cross_compiling" = xyes; then - MINIRUBY="ruby -I`pwd` -rfake" + MINIRUBY="${RUBY-ruby} -I`pwd` -rfake" PREP=fake.rb else MINIRUBY='./miniruby$(EXEEXT)' @@ -1008,7 +1021,7 @@ AC_SUBST(PREP) FIRSTMAKEFILE="" LIBRUBY_A='lib$(RUBY_INSTALL_NAME).a' LIBRUBY='$(LIBRUBY_A)' -LIBRUBYARG='$(LIBRUBY_A)' +LIBRUBYARG='-l$(RUBY_INSTALL_NAME)' SOLIBS= case "$target_os" in @@ -1020,10 +1033,11 @@ case "$target_os" in ;; esac +RUBY_SO_NAME='$(RUBY_INSTALL_NAME)' LIBRUBY_LDSHARED=$LDSHARED LIBRUBY_DLDFLAGS=$DLDFLAGS -LIBRUBY_SO='lib$(RUBY_INSTALL_NAME).so.$(MAJOR).$(MINOR).$(TEENY)' -LIBRUBY_ALIASES='lib$(RUBY_INSTALL_NAME).so' +LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR).$(TEENY)' +LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so' ENABLE_SHARED=no AC_ARG_ENABLE(shared, @@ -1031,7 +1045,7 @@ AC_ARG_ENABLE(shared, [enable_shared=$enableval]) if test "$enable_shared" = 'yes'; then LIBRUBY='$(LIBRUBY_SO)' - LIBRUBYARG='-L. -l$(RUBY_INSTALL_NAME)' + LIBRUBYARG='-l$(RUBY_SO_NAME)' CFLAGS="$CFLAGS $CCDLFLAGS" ENABLE_SHARED=yes if test "$rb_cv_binary_elf" = yes; then @@ -1039,19 +1053,20 @@ if test "$enable_shared" = 'yes'; then fi case "$target_os" in sunos4*) - LIBRUBY_ALIASES='lib$(RUBY_INSTALL_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_INSTALL_NAME).so' + LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).so' ;; linux*) - LIBRUBY_DLDFLAGS='-Wl,-soname,lib$(RUBY_INSTALL_NAME).so.$(MAJOR).$(MINOR)' - LIBRUBY_ALIASES='lib$(RUBY_INSTALL_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_INSTALL_NAME).so' + 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' + test "$rb_cv_prog_gnu_ld" = yes && DLDFLAGS="$DLDFLAGS -Wl,-no-undefined" ;; gnu*) - LIBRUBY_DLDFLAGS='-Wl,-soname,lib$(RUBY_INSTALL_NAME).so.$(MAJOR).$(MINOR)' - LIBRUBY_ALIASES='lib$(RUBY_INSTALL_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_INSTALL_NAME).so' + 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' ;; freebsd*) SOLIBS='$(LIBS)' - LIBRUBY_SO='lib$(RUBY_INSTALL_NAME).so.$(MAJOR)$(MINOR)' + LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR)' if test "$rb_cv_binary_elf" != "yes" ; then LIBRUBY_SO="$LIBRUBY_SO.\$(TEENY)" LIBRUBY_ALIASES='' @@ -1059,11 +1074,11 @@ if test "$enable_shared" = 'yes'; then ;; netbsd*) SOLIBS='$(LIBS)' - LIBRUBY_SO='lib$(RUBY_INSTALL_NAME).so.$(MAJOR)$(MINOR).$(TEENY)' - LIBRUBY_DLDFLAGS='-Wl,-soname,lib$(RUBY_INSTALL_NAME).so.$(MAJOR)$(MINOR)' - LIBRUBYARG='-Wl,-R -Wl,${prefix}/lib -L${prefix}/lib -L. -l$(RUBY_INSTALL_NAME)' + LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR).$(TEENY)' + LIBRUBY_DLDFLAGS='-Wl,-soname,lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR)' + LIBRUBYARG='-Wl,-R -Wl,${libdir} -L${libdir} -L. -l$(RUBY_SO_NAME)' if test "$rb_cv_binary_elf" = yes; then # ELF platforms - LIBRUBY_ALIASES='lib$(RUBY_INSTALL_NAME).so.$(MAJOR)$(MINOR) lib$(RUBY_INSTALL_NAME).so' + LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR) lib$(RUBY_SO_NAME).so' else # a.out platforms LIBRUBY_ALIASES="" fi @@ -1072,12 +1087,12 @@ if test "$enable_shared" = 'yes'; then SOLIBS='$(LIBS)' ;; solaris*) - XLDFLAGS='-R${prefix}/lib' + XLDFLAGS='-R${libdir}' ;; hpux*) - XLDFLAGS='-Wl,+s,+b,$(prefix)/lib' - LIBRUBY_SO='lib$(RUBY_INSTALL_NAME).sl.$(MAJOR).$(MINOR).$(TEENY)' - LIBRUBY_ALIASES='lib$(RUBY_INSTALL_NAME).sl.$(MAJOR).$(MINOR) lib$(RUBY_INSTALL_NAME).sl' + XLDFLAGS='-Wl,+s,+b,$(libdir)' + LIBRUBY_SO='lib$(RUBY_SO_NAME).sl.$(MAJOR).$(MINOR).$(TEENY)' + LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).sl.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).sl' ;; aix*) if test "$GCC" = yes; then @@ -1086,8 +1101,9 @@ if test "$enable_shared" = 'yes'; then else LIBRUBY_LDSHARED='/usr/ccs/bin/ld' LIBRUBY_DLDFLAGS='-bE:ruby.imp -bM:SRE -bnoentry' + ARCHFILE="ruby.imp" fi - LIBRUBYARG='-L${prefix}/lib -Wl,lib$(RUBY_INSTALL_NAME).so' + LIBRUBYARG='-L${libdir} -Wl,lib$(RUBY_SO_NAME).so' SOLIBS='-lm -lc' ;; beos*) @@ -1098,15 +1114,17 @@ if test "$enable_shared" = 'yes'; then esac ;; darwin*) - LIBRUBY_SO='lib$(RUBY_INSTALL_NAME).$(MAJOR).$(MINOR).$(TEENY).dylib' + LIBRUBY_SO='lib$(RUBY_SO_NAME).$(MAJOR).$(MINOR).$(TEENY).dylib' LIBRUBY_LDSHARED='cc -dynamiclib -undefined suppress -flat_namespace' - LIBRUBY_DLDFLAGS='-install_name $(prefix)/lib/lib$(RUBY_INSTALL_NAME).dylib -current_version $(MAJOR).$(MINOR).$(TEENY) -compatibility_version $(MAJOR).$(MINOR)' - LIBRUBY_ALIASES='lib$(RUBY_INSTALL_NAME).$(MAJOR).$(MINOR).dylib lib$(RUBY_INSTALL_NAME).dylib' + 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' ;; *) ;; esac fi +XLDFLAGS="$XLDFLAGS -L." +AC_SUBST(ARCHFILE) case "$target_os" in netbsd*) @@ -1151,6 +1169,7 @@ case "$target_os" in esac ;; cygwin*|mingw*) + EXPORT_PREFIX=' ' case "$target_os" in cygwin*) RUBY_SO_NAME=$target_os-'$(RUBY_INSTALL_NAME)'${MAJOR}${MINOR} @@ -1159,6 +1178,9 @@ case "$target_os" in mingw*) RUBY_SO_NAME=msvcrt-'$(RUBY_INSTALL_NAME)'${MAJOR}${MINOR} AC_LIBOBJ([win32]) + COMMON_LIBS=m + COMMON_MACROS="WIN32_LEAN_AND_MEAN=" + COMMON_HEADERS="windows.h winsock.h" CFLAGS="-DNT -D__NO_ISOCEXT $CFLAGS" CCDLFLAGS=-DIMPORT ;; esac @@ -1173,7 +1195,6 @@ case "$target_os" in fi LIBRUBY_ALIASES='' LIBRUBY_A='lib$(RUBY_INSTALL_NAME)s.a' - LIBRUBYARG='-L. -l$(RUBY_SO_NAME)' FIRSTMAKEFILE=GNUmakefile:cygwin/GNUmakefile.in SOLIBS='$(LIBS)' ;; @@ -1184,6 +1205,8 @@ esac AC_SUBST(LIBRUBY_LDSHARED) AC_SUBST(LIBRUBY_DLDFLAGS) AC_SUBST(RUBY_INSTALL_NAME) +AC_SUBST(rubyw_install_name) +AC_SUBST(RUBYW_INSTALL_NAME) AC_SUBST(RUBY_SO_NAME) AC_SUBST(LIBRUBY_A) AC_SUBST(LIBRUBY_SO) @@ -1194,6 +1217,14 @@ AC_SUBST(SOLIBS) AC_SUBST(DLDLIBS) AC_SUBST(ENABLE_SHARED) AC_SUBST(MAINLIBS) +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) ri_prefix= test "$program_prefix" != NONE && @@ -1205,6 +1236,12 @@ test "$program_suffix" != NONE && RUBY_INSTALL_NAME="${ri_prefix}ruby${ri_suffix}" case "$target_os" in + cygwin*|mingw*) + RUBYW_INSTALL_NAME="${ri_prefix}rubyw${ri_suffix}" + rubyw_install_name="$RUBYW_INSTALL_NAME" + ;; +esac +case "$target_os" in cygwin*|mingw*|*djgpp*|os2_emx*) RUBY_LIB_PREFIX="/lib/ruby" ;; |