Skip to content

Commit 7032e2d

Browse files
committed
Check programs for CC in the same path
When the path of `CC` contains the target program name, e.g., clang, the replaced program names were unexpected. Replace basename part only.
1 parent c1c7934 commit 7032e2d

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

configure.ac

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ AC_ARG_VAR([STRIP], [Strip command])
208208
set rb_dummy ${CC}
209209
rb_CC=$2
210210
AC_DEFUN([RUBY_CHECK_PROG_FOR_CC], [
211-
rb_prog=`echo "${rb_CC}" | sed "$2"`
211+
rb_prog=`echo "${rb_CC}" | sed ["s:$2\([^/]*\)$:$3\1:"]`
212212
AC_CHECK_PROG([$1], [$rb_prog], [$rb_prog])
213213
])
214214
AS_CASE(["/${rb_CC} "],
@@ -219,17 +219,17 @@ AS_CASE(["/${rb_CC} "],
219219
[*icc*], [
220220
# Intel C++ has interprocedural optimizations. It tends to come with its
221221
# own linker etc.
222-
RUBY_CHECK_PROG_FOR_CC([AR], [s/icc/xiar/])
223-
RUBY_CHECK_PROG_FOR_CC([CXX], [s/icc/icpc/])
224-
RUBY_CHECK_PROG_FOR_CC([LD], [s/icc/xild/])
222+
RUBY_CHECK_PROG_FOR_CC([AR], [icc], [xiar])
223+
RUBY_CHECK_PROG_FOR_CC([CXX], [icc], [icpc])
224+
RUBY_CHECK_PROG_FOR_CC([LD], [icc], [xild])
225225
],
226226
[*gcc*], [
227227
# Ditto for GCC.
228-
RUBY_CHECK_PROG_FOR_CC([LD], [s/gcc/ld/])
229-
RUBY_CHECK_PROG_FOR_CC([AR], [s/gcc/gcc-ar/])
230-
RUBY_CHECK_PROG_FOR_CC([CXX], [s/gcc/g++/])
231-
RUBY_CHECK_PROG_FOR_CC([NM], [s/gcc/gcc-nm/])
232-
RUBY_CHECK_PROG_FOR_CC([RANLIB], [s/gcc/gcc-ranlib/])
228+
RUBY_CHECK_PROG_FOR_CC([LD], [gcc], [ld])
229+
RUBY_CHECK_PROG_FOR_CC([AR], [gcc], [gcc-ar])
230+
RUBY_CHECK_PROG_FOR_CC([CXX], [gcc], [g++])
231+
RUBY_CHECK_PROG_FOR_CC([NM], [gcc], [gcc-nm])
232+
RUBY_CHECK_PROG_FOR_CC([RANLIB], [gcc], [gcc-ranlib])
233233
],
234234
[*clang*], [
235235
# Ditto for LLVM. Note however that llvm-as is a LLVM-IR to LLVM bitcode
@@ -242,15 +242,15 @@ AS_CASE(["/${rb_CC} "],
242242
[llvm_prefix=], [llvm_prefix=llvm-])
243243
# AC_PREPROC_IFELSE cannot be used before AC_USE_SYSTEM_EXTENSIONS
244244
245-
RUBY_CHECK_PROG_FOR_CC([LD], [s/clang/ld/]) # ... maybe try lld ?
246-
RUBY_CHECK_PROG_FOR_CC([AR], [s/clang/${llvm_prefix}ar/])
247-
# RUBY_CHECK_PROG_FOR_CC([AS], [s/clang/${llvm_prefix}as/])
248-
RUBY_CHECK_PROG_FOR_CC([CXX], [s/clang/clang++/])
249-
RUBY_CHECK_PROG_FOR_CC([NM], [s/clang/${llvm_prefix}nm/])
250-
RUBY_CHECK_PROG_FOR_CC([OBJCOPY], [s/clang/${llvm_prefix}objcopy/])
251-
RUBY_CHECK_PROG_FOR_CC([OBJDUMP], [s/clang/${llvm_prefix}objdump/])
252-
RUBY_CHECK_PROG_FOR_CC([RANLIB], [s/clang/${llvm_prefix}ranlib/])
253-
RUBY_CHECK_PROG_FOR_CC([STRIP], [s/clang/${llvm_prefix}strip/])
245+
RUBY_CHECK_PROG_FOR_CC([LD], [clang], [ld]) # ... maybe try lld ?
246+
RUBY_CHECK_PROG_FOR_CC([AR], [clang], [${llvm_prefix}ar])
247+
# RUBY_CHECK_PROG_FOR_CC([AS], [clang], [${llvm_prefix}as])
248+
RUBY_CHECK_PROG_FOR_CC([CXX], [clang], [clang++])
249+
RUBY_CHECK_PROG_FOR_CC([NM], [clang], [${llvm_prefix}nm])
250+
RUBY_CHECK_PROG_FOR_CC([OBJCOPY], [clang], [${llvm_prefix}objcopy])
251+
RUBY_CHECK_PROG_FOR_CC([OBJDUMP], [clang], [${llvm_prefix}objdump])
252+
RUBY_CHECK_PROG_FOR_CC([RANLIB], [clang], [${llvm_prefix}ranlib])
253+
RUBY_CHECK_PROG_FOR_CC([STRIP], [clang], [${llvm_prefix}strip])
254254
])
255255
AS_UNSET(rb_CC)
256256
AS_UNSET(rb_dummy)

0 commit comments

Comments
 (0)