1 |
fwang |
290007 |
From b0a875862d14244ca41cd1e1e9090f87757aaeb9 Mon Sep 17 00:00:00 2001 |
2 |
|
|
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com> |
3 |
|
|
Date: Mon, 5 Sep 2011 13:10:47 +0200 |
4 |
|
|
Subject: [PATCH] Added configuration flags for site and vendor architecture |
5 |
|
|
specific directories. |
6 |
|
|
|
7 |
|
|
--- |
8 |
|
|
Makefile.in | 3 +++ |
9 |
|
|
configure.in | 40 ++++++++++++++++++++++++++++++++++++++++ |
10 |
|
|
tool/mkconfig.rb | 8 ++++++-- |
11 |
|
|
version.c | 4 ++++ |
12 |
|
|
4 files changed, 53 insertions(+), 2 deletions(-) |
13 |
|
|
|
14 |
|
|
diff --git a/Makefile.in b/Makefile.in |
15 |
|
|
index bcdaf5f..f57e4c4 100644 |
16 |
|
|
--- a/Makefile.in |
17 |
|
|
+++ b/Makefile.in |
18 |
|
|
@@ -34,6 +34,9 @@ datadir = @datadir@ |
19 |
|
|
archdir = @archdir@ |
20 |
|
|
sitearch = @sitearch@ |
21 |
|
|
sitedir = @sitedir@ |
22 |
|
|
+sitearchdir= @sitearchdir@ |
23 |
|
|
+vendordir = @vendordir@ |
24 |
|
|
+vendorarchdir = @vendorarchdir@ |
25 |
|
|
ruby_version = @ruby_version@ |
26 |
|
|
|
27 |
|
|
TESTUI = console |
28 |
|
|
diff --git a/configure.in b/configure.in |
29 |
|
|
index 83e5d76..31532bd 100644 |
30 |
|
|
--- a/configure.in |
31 |
|
|
+++ b/configure.in |
32 |
|
|
@@ -2811,6 +2811,15 @@ until SITE_DIR=`eval echo \\"${dir}\\"`; test "x${dir}" = "x${SITE_DIR}"; do |
33 |
|
|
dir="${SITE_DIR}" |
34 |
|
|
done |
35 |
|
|
|
36 |
|
|
+AC_ARG_WITH(sitearchdir, |
37 |
|
|
+ AS_HELP_STRING([--with-sitearchdir=DIR], [site libraries in DIR [[RUBY_LIB_PREFIX/site_ruby]]]), |
38 |
|
|
+ [sitearchdir=$withval], |
39 |
|
|
+ [sitearchdir='${rubylibprefix}/site_ruby/${arch}']) |
40 |
|
|
+dir="${sitearchdir}" |
41 |
|
|
+until SITEARCH_DIR=`eval echo \\"${dir}\\"`; test "x${dir}" = "x${SITEARCH_DIR}"; do |
42 |
|
|
+ dir="${SITEARCH_DIR}" |
43 |
|
|
+done |
44 |
|
|
+ |
45 |
|
|
AC_ARG_WITH(vendordir, |
46 |
|
|
AS_HELP_STRING([--with-vendordir=DIR], [vendor libraries in DIR [[RUBY_LIB_PREFIX/vendor_ruby]]]), |
47 |
|
|
[vendordir=$withval], |
48 |
|
|
@@ -2820,19 +2829,32 @@ until VENDOR_DIR=`eval echo \\"${dir}\\"`; test "x${dir}" = "x${VENDOR_DIR}"; do |
49 |
|
|
dir="${VENDOR_DIR}" |
50 |
|
|
done |
51 |
|
|
|
52 |
|
|
+AC_ARG_WITH(vendorarchdir, |
53 |
|
|
+ AS_HELP_STRING([--with-vendorarchdir=DIR], [vendor libraries in DIR [[RUBY_LIB_PREFIX/vendor_ruby]]]), |
54 |
|
|
+ [vendorarchdir=$withval], |
55 |
|
|
+ [vendorarchdir='${rubylibprefix}/vendor_ruby/${arch}']) |
56 |
|
|
+dir="${vendorarchdir}" |
57 |
|
|
+until VENDORARCH_DIR=`eval echo \\"${dir}\\"`; test "x${dir}" = "x${VENDORARCH_DIR}"; do |
58 |
|
|
+ dir="${VENDORARCH_DIR}" |
59 |
|
|
+done |
60 |
|
|
+ |
61 |
|
|
if test "${LOAD_RELATIVE+set}"; then |
62 |
|
|
AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE) |
63 |
|
|
RUBY_EXEC_PREFIX="" |
64 |
|
|
RUBY_LIB_PREFIX="`eval echo "$RUBY_LIB_PREFIX" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`" |
65 |
|
|
RUBY_ARCH_LIB_PATH="`eval echo "$ARCH_DIR" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`" |
66 |
|
|
RUBY_SITE_LIB_PATH="`eval echo "$SITE_DIR" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`" |
67 |
|
|
+ RUBY_SITE_ARCHLIB_PATH="`eval echo "$SITEARCH_DIR" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`" |
68 |
|
|
RUBY_VENDOR_LIB_PATH="`eval echo "$VENDOR_DIR" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`" |
69 |
|
|
+ RUBY_VENDOR_ARCHLIB_PATH="`eval echo "$VENDORARCH_DIR" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`" |
70 |
|
|
else |
71 |
|
|
RUBY_EXEC_PREFIX="`eval echo \\"$exec_prefix/\\" | sed 's|^NONE/|'"$prefix"'/|;s|/$||'`" |
72 |
|
|
RUBY_LIB_PREFIX="`eval echo \\"$RUBY_LIB_PREFIX\\" | sed 's|^NONE/|'"$prefix"'/|'`" |
73 |
|
|
RUBY_ARCH_LIB_PATH="`eval echo \\"$ARCH_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`" |
74 |
|
|
RUBY_SITE_LIB_PATH="`eval echo \\"$SITE_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`" |
75 |
|
|
+ RUBY_SITE_ARCHLIB_PATH="`eval echo \\"$SITEARCH_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`" |
76 |
|
|
RUBY_VENDOR_LIB_PATH="`eval echo \\"$VENDOR_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`" |
77 |
|
|
+ RUBY_VENDOR_ARCHLIB_PATH="`eval echo \\"$VENDORARCH_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`" |
78 |
|
|
fi |
79 |
|
|
|
80 |
|
|
pat=`echo "$RUBY_LIB_PREFIX/" | tr -c '\012' .`'\(.*\)' |
81 |
|
|
@@ -2850,6 +2872,13 @@ AS_CASE(["$RUBY_SITE_LIB_PATH"], |
82 |
|
|
[ |
83 |
|
|
RUBY_SITE_LIB_PATH="\"${RUBY_SITE_LIB_PATH}\"" |
84 |
|
|
]) |
85 |
|
|
+AS_CASE(["$RUBY_SITE_ARCHLIB_PATH"], |
86 |
|
|
+ ["$RUBY_LIB_PREFIX/"*], [ |
87 |
|
|
+ RUBY_SITE_ARCHLIB_PATH='RUBY_LIB_PREFIX"/'"`expr \"$RUBY_SITE_ARCHLIB_PATH\" : \"$pat\"`"'"' |
88 |
|
|
+ ], |
89 |
|
|
+ [ |
90 |
|
|
+ RUBY_SITE_ARCHLIB_PATH="\"${RUBY_SITE_ARCHLIB_PATH}\"" |
91 |
|
|
+ ]) |
92 |
|
|
AS_CASE(["$RUBY_VENDOR_LIB_PATH"], |
93 |
|
|
["$RUBY_LIB_PREFIX/"*], [ |
94 |
|
|
RUBY_VENDOR_LIB_PATH='RUBY_LIB_PREFIX"/'"`expr \"$RUBY_VENDOR_LIB_PATH\" : \"$pat\"`"'"' |
95 |
|
|
@@ -2857,6 +2886,13 @@ AS_CASE(["$RUBY_VENDOR_LIB_PATH"], |
96 |
|
|
[ |
97 |
|
|
RUBY_VENDOR_LIB_PATH="\"${RUBY_VENDOR_LIB_PATH}\"" |
98 |
|
|
]) |
99 |
|
|
+AS_CASE(["$RUBY_VENDOR_ARCHLIB_PATH"], |
100 |
|
|
+ ["$RUBY_LIB_PREFIX/"*], [ |
101 |
|
|
+ RUBY_VENDOR_ARCHLIB_PATH='RUBY_LIB_PREFIX"/'"`expr \"$RUBY_VENDOR_ARCHLIB_PATH\" : \"$pat\"`"'"' |
102 |
|
|
+ ], |
103 |
|
|
+ [ |
104 |
|
|
+ RUBY_VENDOR_ARCHLIB_PATH="\"${RUBY_VENDOR_ARCHLIB_PATH}\"" |
105 |
|
|
+ ]) |
106 |
|
|
pat=`echo "$RUBY_EXEC_PREFIX/" | tr -c '\012' .`'\(.*\)' |
107 |
|
|
AS_CASE(["$RUBY_LIB_PREFIX"], |
108 |
|
|
["$RUBY_EXEC_PREFIX/"*], [ |
109 |
|
|
@@ -2878,19 +2914,23 @@ if test "x$SITE_DIR" = xno; then |
110 |
|
|
AC_DEFINE(NO_RUBY_SITE_LIB) |
111 |
|
|
else |
112 |
|
|
AC_DEFINE_UNQUOTED(RUBY_SITE_LIB, ${RUBY_SITE_LIB_PATH}) |
113 |
|
|
+ AC_DEFINE_UNQUOTED(RUBY_SITE_ARCHLIB, ${RUBY_SITE_ARCHLIB_PATH}) |
114 |
|
|
fi |
115 |
|
|
if test "x$VENDOR_DIR" = xno; then |
116 |
|
|
AC_DEFINE(NO_RUBY_VENDOR_LIB) |
117 |
|
|
else |
118 |
|
|
AC_DEFINE_UNQUOTED(RUBY_VENDOR_LIB, ${RUBY_VENDOR_LIB_PATH}) |
119 |
|
|
+ AC_DEFINE_UNQUOTED(RUBY_VENDOR_ARCHLIB, ${RUBY_VENDOR_ARCHLIB_PATH}) |
120 |
|
|
fi |
121 |
|
|
|
122 |
|
|
AC_SUBST(arch)dnl |
123 |
|
|
AC_SUBST(sitearch)dnl |
124 |
|
|
AC_SUBST(ruby_version)dnl |
125 |
|
|
AC_SUBST(archdir)dnl |
126 |
|
|
AC_SUBST(sitedir)dnl |
127 |
|
|
+AC_SUBST(sitearchdir)dnl |
128 |
|
|
AC_SUBST(vendordir)dnl |
129 |
|
|
+AC_SUBST(vendorarchdir)dnl |
130 |
|
|
|
131 |
|
|
configure_args=$ac_configure_args |
132 |
|
|
AC_SUBST(configure_args)dnl |
133 |
|
|
diff --git a/tool/mkconfig.rb b/tool/mkconfig.rb |
134 |
|
|
index b707c4b..6230720 100755 |
135 |
|
|
--- a/tool/mkconfig.rb |
136 |
|
|
+++ b/tool/mkconfig.rb |
137 |
|
|
@@ -44,6 +44,8 @@ v_others = [] |
138 |
|
|
continued_line = nil |
139 |
|
|
path_version = "/$(ruby_version)" |
140 |
|
|
archdir_override = "$(vendorlibdir)/$(sitearch)" |
141 |
|
|
+sitearchdir_override = "$(sitelibdir)/$(sitearch)" |
142 |
|
|
+vendorarchdir_override = "$(vendorlibdir)/$(sitearch)" |
143 |
|
|
File.foreach "config.status" do |line| |
144 |
|
|
next if /^#/ =~ line |
145 |
|
|
name = nil |
146 |
|
|
@@ -79,6 +81,8 @@ File.foreach "config.status" do |line| |
147 |
|
|
when /^RUBY_SO_NAME$/; next if $so_name |
148 |
|
|
when /^arch$/; if val.empty? then val = arch else arch = val end |
149 |
|
|
when /^archdir$/; archdir_override = val; next |
150 |
|
|
+ when /^sitearchdir$/; sitearchdir_override = val; next |
151 |
|
|
+ when /^vendorarchdir$/; vendorarchdir_override = val; next |
152 |
|
|
when /^sitearch/; val = '$(arch)' if val.empty? |
153 |
|
|
end |
154 |
|
|
case val |
155 |
|
|
@@ -213,11 +217,11 @@ print <<EOS |
156 |
|
|
EOS |
157 |
|
|
print <<EOS unless v_disabled["sitedir"] |
158 |
|
|
CONFIG["sitelibdir"] = "$(sitedir)#{path_version}" |
159 |
|
|
- CONFIG["sitearchdir"] = "$(sitelibdir)/$(sitearch)" |
160 |
|
|
+ CONFIG["sitearchdir"] = "#{sitearchdir_override}" |
161 |
|
|
EOS |
162 |
|
|
print <<EOS unless v_disabled["vendordir"] |
163 |
|
|
CONFIG["vendorlibdir"] = "$(vendordir)#{path_version}" |
164 |
|
|
- CONFIG["vendorarchdir"] = "$(vendorlibdir)/$(sitearch)" |
165 |
|
|
+ CONFIG["vendorarchdir"] = "#{vendorarchdir_override}" |
166 |
|
|
EOS |
167 |
|
|
print <<EOS |
168 |
|
|
CONFIG["topdir"] = File.dirname(__FILE__) |
169 |
|
|
diff --git a/version.c b/version.c |
170 |
|
|
index 59d4e5e..2558aa0 100644 |
171 |
|
|
--- a/version.c |
172 |
|
|
+++ b/version.c |
173 |
|
|
@@ -50,8 +50,12 @@ |
174 |
|
|
#ifndef RUBY_ARCHLIB |
175 |
|
|
#define RUBY_ARCHLIB RUBY_LIB "/"RUBY_ARCH |
176 |
|
|
#endif |
177 |
|
|
+#ifndef RUBY_SITE_ARCHLIB |
178 |
|
|
#define RUBY_SITE_ARCHLIB RUBY_SITE_LIB2 "/"RUBY_SITEARCH |
179 |
|
|
+#endif |
180 |
|
|
+#ifndef RUBY_VENDOR_ARCHLIB |
181 |
|
|
#define RUBY_VENDOR_ARCHLIB RUBY_VENDOR_LIB2 "/"RUBY_SITEARCH |
182 |
|
|
+#endif |
183 |
|
|
#ifdef RUBY_THINARCH |
184 |
|
|
#define RUBY_THIN_ARCHLIB RUBY_LIB "/"RUBY_THINARCH |
185 |
|
|
#define RUBY_SITE_THIN_ARCHLIB RUBY_SITE_LIB2 "/"RUBY_THINARCH |
186 |
|
|
-- |
187 |
|
|
1.7.6.1 |
188 |
|
|
|