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.
This commit is contained in:
Nobuyoshi Nakada 2025-02-17 13:19:08 +09:00
parent c1c7934b63
commit 7032e2d6bc
No known key found for this signature in database
GPG Key ID: 3582D74E1FEE4465
Notes: git 2025-02-17 04:55:39 +00:00

View File

@ -208,7 +208,7 @@ AC_ARG_VAR([STRIP], [Strip command])
set rb_dummy ${CC} set rb_dummy ${CC}
rb_CC=$2 rb_CC=$2
AC_DEFUN([RUBY_CHECK_PROG_FOR_CC], [ AC_DEFUN([RUBY_CHECK_PROG_FOR_CC], [
rb_prog=`echo "${rb_CC}" | sed "$2"` rb_prog=`echo "${rb_CC}" | sed ["s:$2\([^/]*\)$:$3\1:"]`
AC_CHECK_PROG([$1], [$rb_prog], [$rb_prog]) AC_CHECK_PROG([$1], [$rb_prog], [$rb_prog])
]) ])
AS_CASE(["/${rb_CC} "], AS_CASE(["/${rb_CC} "],
@ -219,17 +219,17 @@ AS_CASE(["/${rb_CC} "],
[*icc*], [ [*icc*], [
# Intel C++ has interprocedural optimizations. It tends to come with its # Intel C++ has interprocedural optimizations. It tends to come with its
# own linker etc. # own linker etc.
RUBY_CHECK_PROG_FOR_CC([AR], [s/icc/xiar/]) RUBY_CHECK_PROG_FOR_CC([AR], [icc], [xiar])
RUBY_CHECK_PROG_FOR_CC([CXX], [s/icc/icpc/]) RUBY_CHECK_PROG_FOR_CC([CXX], [icc], [icpc])
RUBY_CHECK_PROG_FOR_CC([LD], [s/icc/xild/]) RUBY_CHECK_PROG_FOR_CC([LD], [icc], [xild])
], ],
[*gcc*], [ [*gcc*], [
# Ditto for GCC. # Ditto for GCC.
RUBY_CHECK_PROG_FOR_CC([LD], [s/gcc/ld/]) RUBY_CHECK_PROG_FOR_CC([LD], [gcc], [ld])
RUBY_CHECK_PROG_FOR_CC([AR], [s/gcc/gcc-ar/]) RUBY_CHECK_PROG_FOR_CC([AR], [gcc], [gcc-ar])
RUBY_CHECK_PROG_FOR_CC([CXX], [s/gcc/g++/]) RUBY_CHECK_PROG_FOR_CC([CXX], [gcc], [g++])
RUBY_CHECK_PROG_FOR_CC([NM], [s/gcc/gcc-nm/]) RUBY_CHECK_PROG_FOR_CC([NM], [gcc], [gcc-nm])
RUBY_CHECK_PROG_FOR_CC([RANLIB], [s/gcc/gcc-ranlib/]) RUBY_CHECK_PROG_FOR_CC([RANLIB], [gcc], [gcc-ranlib])
], ],
[*clang*], [ [*clang*], [
# Ditto for LLVM. Note however that llvm-as is a LLVM-IR to LLVM bitcode # Ditto for LLVM. Note however that llvm-as is a LLVM-IR to LLVM bitcode
@ -242,15 +242,15 @@ AS_CASE(["/${rb_CC} "],
[llvm_prefix=], [llvm_prefix=llvm-]) [llvm_prefix=], [llvm_prefix=llvm-])
# AC_PREPROC_IFELSE cannot be used before AC_USE_SYSTEM_EXTENSIONS # AC_PREPROC_IFELSE cannot be used before AC_USE_SYSTEM_EXTENSIONS
RUBY_CHECK_PROG_FOR_CC([LD], [s/clang/ld/]) # ... maybe try lld ? RUBY_CHECK_PROG_FOR_CC([LD], [clang], [ld]) # ... maybe try lld ?
RUBY_CHECK_PROG_FOR_CC([AR], [s/clang/${llvm_prefix}ar/]) RUBY_CHECK_PROG_FOR_CC([AR], [clang], [${llvm_prefix}ar])
# RUBY_CHECK_PROG_FOR_CC([AS], [s/clang/${llvm_prefix}as/]) # RUBY_CHECK_PROG_FOR_CC([AS], [clang], [${llvm_prefix}as])
RUBY_CHECK_PROG_FOR_CC([CXX], [s/clang/clang++/]) RUBY_CHECK_PROG_FOR_CC([CXX], [clang], [clang++])
RUBY_CHECK_PROG_FOR_CC([NM], [s/clang/${llvm_prefix}nm/]) RUBY_CHECK_PROG_FOR_CC([NM], [clang], [${llvm_prefix}nm])
RUBY_CHECK_PROG_FOR_CC([OBJCOPY], [s/clang/${llvm_prefix}objcopy/]) RUBY_CHECK_PROG_FOR_CC([OBJCOPY], [clang], [${llvm_prefix}objcopy])
RUBY_CHECK_PROG_FOR_CC([OBJDUMP], [s/clang/${llvm_prefix}objdump/]) RUBY_CHECK_PROG_FOR_CC([OBJDUMP], [clang], [${llvm_prefix}objdump])
RUBY_CHECK_PROG_FOR_CC([RANLIB], [s/clang/${llvm_prefix}ranlib/]) RUBY_CHECK_PROG_FOR_CC([RANLIB], [clang], [${llvm_prefix}ranlib])
RUBY_CHECK_PROG_FOR_CC([STRIP], [s/clang/${llvm_prefix}strip/]) RUBY_CHECK_PROG_FOR_CC([STRIP], [clang], [${llvm_prefix}strip])
]) ])
AS_UNSET(rb_CC) AS_UNSET(rb_CC)
AS_UNSET(rb_dummy) AS_UNSET(rb_dummy)