diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-02-06 08:32:53 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-02-06 08:32:53 +0000 |
commit | 29c214e4a058fc4017ab0c0bf5c36b5bad203b5b (patch) | |
tree | ab2a45e9dc177e3f9b31d96588a922ba32d63aca | |
parent | d32b122996778828f5d5f2ea58b0d2a8c0da7ede (diff) | |
download | ruby-29c214e4a058fc4017ab0c0bf5c36b5bad203b5b.tar.gz |
configure.in: arch dependent library directory options
* configure.in (rubyarchprefix, sitearchdir, vendorarchdir): add
options to customize architecture dependent library directories.
* template/ruby.pc.in, tool/mkconfig.rb, tool/rbinstall.rb: use
configured values.
* tool/mkconfig.rb: expand rubyarchdir to extract prefix.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39107 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | configure.in | 30 | ||||
-rw-r--r-- | template/ruby.pc.in | 15 | ||||
-rwxr-xr-x | tool/mkconfig.rb | 38 | ||||
-rwxr-xr-x | tool/rbinstall.rb | 2 |
5 files changed, 69 insertions, 26 deletions
@@ -1,4 +1,12 @@ -Wed Feb 6 17:32:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org> +Wed Feb 6 17:32:51 2013 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * configure.in (rubyarchprefix, sitearchdir, vendorarchdir): add + options to customize architecture dependent library directories. + + * template/ruby.pc.in, tool/mkconfig.rb, tool/rbinstall.rb: use + configured values. + + * tool/mkconfig.rb: expand rubyarchdir to extract prefix. * configure.in (RUBY_VERSION_NAME), template/ruby.pc.in: add substitution and define. diff --git a/configure.in b/configure.in index d8cb3a451e..df45609f2a 100644 --- a/configure.in +++ b/configure.in @@ -3155,6 +3155,7 @@ shvar_to_cpp() { -e 's/\${sitedir}/"RUBY_SITE_LIB"/g' \ -e 's/\${rubylibdir}/"RUBY_LIB"/g' \ -e 's/\${rubylibprefix}/"RUBY_LIB_PREFIX"/g' \ + -e 's/\${rubyarchprefix}/"RUBY_ARCH_PREFIX_FOR(arch)"/g' \ -e 's/\${exec_prefix}/"RUBY_EXEC_PREFIX"/g' \ -e 's|^\"NONE/|RUBY_EXEC_PREFIX\"/|' \ -e 's|^\"NONE\"|\"'"${prefix}"'\"|' \ @@ -3174,6 +3175,13 @@ AC_SUBST(rubylibprefix) rubylibdir='${rubylibprefix}/${ruby_version}' rubyarchdir='${rubylibdir}/${arch}' +rubyarchprefix='${rubylibprefix}/${arch}' +AC_ARG_WITH(rubyarchprefix, + AS_HELP_STRING([--with-rubyarchprefix=DIR], + [prefix for architecture dependent ruby libraries [[RUBYLIBPREFIX/ARCH]]]), + [rubyarchprefix="$withval"]) +AC_SUBST(rubyarchprefix) + RI_BASE_NAME=`echo ${RUBY_BASE_NAME} | sed 's/ruby/ri/'` ridir='${datarootdir}/${RI_BASE_NAME}' AC_ARG_WITH(ridir, @@ -3212,14 +3220,24 @@ AC_ARG_WITH(sitedir, [sitedir=$withval], [sitedir='${rubylibprefix}/site_ruby']) sitelibdir='${sitedir}/${ruby_version}' -sitearchdir='${sitelibdir}/${sitearch}' + +AC_ARG_WITH(sitearchdir, + AS_HELP_STRING([--with-arch-sitedir=DIR], + [architecture dependent site libraries in DIR [[SITEDIR/SITEARCH]], "no" to disable site directory]), + [sitearchdir=$withval], + [sitearchdir='${sitelibdir}/${sitearch}']) AC_ARG_WITH(vendordir, AS_HELP_STRING([--with-vendordir=DIR], [vendor libraries in DIR [[RUBY_LIB_PREFIX/vendor_ruby]], "no" to disable vendor directory]), [vendordir=$withval], [vendordir='${rubylibprefix}/vendor_ruby']) vendorlibdir='${vendordir}/${ruby_version}' -vendorarchdir='${vendorlibdir}/${sitearch}' + +AC_ARG_WITH(vendorarchdir, + AS_HELP_STRING([--with-arch-vendordir=DIR], + [architecture dependent vendor libraries in DIR [[VENDORDIR/SITEARCH]], "no" to disable vendor directory]), + [vendorarchdir=$withval], + [vendorarchdir='${vendorlibdir}/${sitearch}']) if test "${LOAD_RELATIVE+set}"; then AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE) @@ -3228,6 +3246,7 @@ else shvar_to_cpp RUBY_EXEC_PREFIX "${exec_prefix}" fi shvar_to_cpp RUBY_LIB_PREFIX "${rubylibprefix}" +shvar_to_cpp RUBY_ARCH_PREFIX_FOR "${rubyarchprefix}" shvar_to_cpp RIDIR "${ridir}" if test ${RUBY_LIB_VERSION_STYLE+set}; then @@ -3237,6 +3256,7 @@ else fi AC_DEFINE_UNQUOTED(RUBY_EXEC_PREFIX, ${RUBY_EXEC_PREFIX}) AC_DEFINE_UNQUOTED(RUBY_LIB_PREFIX, ${RUBY_LIB_PREFIX} !<verconf>!) +AC_DEFINE_UNQUOTED(RUBY_ARCH_PREFIX_FOR(arch), ${RUBY_ARCH_PREFIX_FOR} !<verconf>!) shvar_to_cpp RUBY_LIB "${rubylibdir}" if test "x${RUBY_LIB}" != 'xRUBY_LIB_PREFIX"/"RUBY_LIB_VERSION'; then @@ -3264,8 +3284,14 @@ fi AC_SUBST(arch)dnl AC_SUBST(sitearch)dnl AC_SUBST(ruby_version)dnl +AC_SUBST(rubylibdir)dnl +AC_SUBST(rubyarchdir)dnl AC_SUBST(sitedir)dnl +AC_SUBST(sitelibdir)dnl +AC_SUBST(sitearchdir)dnl AC_SUBST(vendordir)dnl +AC_SUBST(vendorlibdir)dnl +AC_SUBST(vendorarchdir)dnl configure_args=$ac_configure_args AC_SUBST(configure_args)dnl diff --git a/template/ruby.pc.in b/template/ruby.pc.in index 7bb9c0d17c..fe11b8ac0e 100644 --- a/template/ruby.pc.in +++ b/template/ruby.pc.in @@ -26,12 +26,15 @@ LIBS=@LIBS@ DLDFLAGS=@DLDFLAGS@ ruby=${bindir}/${RUBY_INSTALL_NAME}@EXEEXT@ rubylibprefix=@rubylibprefix@ -rubylibdir=${rubylibprefix}/${ruby_version} -vendordir=${rubylibprefix}/vendor_ruby -sitedir=${rubylibprefix}/site_ruby -rubyarchdir=${rubylibdir}/${arch} -vendorarchdir=${vendordir}/${sitearch} -sitearchdir=${sitedir}/${sitearch} +rubyarchprefix=@rubyarchprefix@ +rubylibdir=@rubylibdir@ +vendordir=@vendordir@ +sitedir=@sitedir@ +vendorlibdir=@vendorlibdir@ +sitelibdir=@sitelibdir@ +rubyarchdir=@rubyarchdir@ +vendorarchdir=@vendorarchdir@ +sitearchdir=@sitearchdir@ rubyhdrdir=@rubyhdrdir@ vendorhdrdir=@vendorhdrdir@ sitehdrdir=@sitehdrdir@ diff --git a/tool/mkconfig.rb b/tool/mkconfig.rb index 08b8c22785..54b91a65a8 100755 --- a/tool/mkconfig.rb +++ b/tool/mkconfig.rb @@ -113,11 +113,10 @@ File.foreach "config.status" do |line| end end end + vars[name] = val if name == "configure_args" val.gsub!(/ +(?!-)/, "=") if win32 val.gsub!(/--with-out-ext/, "--without-ext") - elsif name == "libdir" - v_runtime[:libdir] = val[/\$(\(exec_prefix\)|\{exec_prefix\})\/(.*)/, 2] end val = val.gsub(/\$(?:\$|\{?(\w+)\}?)/) {$1 ? "$(#{$1})" : $&}.dump case name @@ -133,7 +132,6 @@ File.foreach "config.status" do |line| end end v = " CONFIG[\"#{name}\"] #{win32 && vars[name] ? '<< "\n"' : '='} #{val}\n" - vars[name] = true if fast[name] v_fast << v else @@ -149,7 +147,26 @@ end drive = File::PATH_SEPARATOR == ';' -prefix = "/#{v_runtime[:libdir] || 'lib'}/ruby/#{version}/#{arch}" +def vars.expand(val, config = self) + newval = val.gsub(/\$\$|\$\(([^()]+)\)|\$\{([^{}]+)\}/) { + var = $& + if !(v = $1 || $2) + '$' + elsif key = config[v = v[/\A[^:]+(?=(?::(.*?)=(.*))?\z)/]] + pat, sub = $1, $2 + config[v] = false + config[v] = expand(key, config) + key = key.gsub(/#{Regexp.quote(pat)}(?=\s|\z)/n) {sub} if pat + key + else + var + end + } + val.replace(newval) unless newval == val + val +end +vars["prefix"] = "" +prefix = vars.expand(vars["rubyarchdir"]) print " TOPDIR = File.dirname(__FILE__).chomp!(#{prefix.dump})\n" print " DESTDIR = ", (drive ? "TOPDIR && TOPDIR[/\\A[a-z]:/i] || " : ""), "'' unless defined? DESTDIR\n" print <<'ARCH' if universal @@ -207,18 +224,7 @@ end print(*v_fast) print(*v_others) print <<EOS - CONFIG["rubylibdir"] = "$(rubylibprefix)/$(ruby_version)" - CONFIG["archdir"] = "$(rubylibdir)/$(arch)" -EOS -print <<EOS unless v_disabled["sitedir"] - CONFIG["sitelibdir"] = "$(sitedir)/$(ruby_version)" - CONFIG["sitearchdir"] = "$(sitelibdir)/$(sitearch)" -EOS -print <<EOS unless v_disabled["vendordir"] - CONFIG["vendorlibdir"] = "$(vendordir)/$(ruby_version)" - CONFIG["vendorarchdir"] = "$(vendorlibdir)/$(sitearch)" -EOS -print <<EOS + CONFIG["archdir"] = "$(rubyarchdir)" CONFIG["topdir"] = File.dirname(__FILE__) MAKEFILE_CONFIG = {} CONFIG.each{|k,v| MAKEFILE_CONFIG[k] = v.dup} diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb index 7e8efe7686..5da5125ff3 100755 --- a/tool/rbinstall.rb +++ b/tool/rbinstall.rb @@ -308,7 +308,7 @@ libdir = CONFIG["libdir", true] archhdrdir = rubyhdrdir = CONFIG["rubyhdrdir", true] archhdrdir += "/" + CONFIG["arch", true] rubylibdir = CONFIG["rubylibdir", true] -archlibdir = CONFIG["archdir", true] +archlibdir = CONFIG["rubyarchdir", true] sitelibdir = CONFIG["sitelibdir"] sitearchlibdir = CONFIG["sitearchdir"] vendorlibdir = CONFIG["vendorlibdir"] |