@@ -37,6 +37,25 @@ detect_parallelism() {
3737 echo " ${cpu_count} "
3838}
3939
40+ resolve_brew_prefix () {
41+ local formula=" $1 "
42+ local fallback=" $2 "
43+ local prefix=" "
44+
45+ prefix=" $( brew --prefix " ${formula} " 2> /dev/null || true) "
46+ if [[ -n " ${prefix} " && -d " ${prefix} " ]]; then
47+ echo " ${prefix} "
48+ return 0
49+ fi
50+
51+ if [[ -n " ${fallback} " && -d " ${fallback} " ]]; then
52+ echo " ${fallback} "
53+ return 0
54+ fi
55+
56+ echo " ${prefix:- $fallback } "
57+ }
58+
4059# ============================================================================
4160# BASIC PATHS
4261# ============================================================================
7493# ============================================================================
7594# HOMEBREW CONFIGURATION
7695# ============================================================================
77- export HOMEBREW_PREFIX=" /opt/homebrew"
96+ if [[ -z " ${HOMEBREW_PREFIX:- } " ]]; then
97+ HOMEBREW_PREFIX=" $( brew --prefix 2> /dev/null || true) "
98+ if [[ -z " ${HOMEBREW_PREFIX} " ]]; then
99+ if [[ -d /opt/homebrew ]]; then
100+ HOMEBREW_PREFIX=" /opt/homebrew"
101+ else
102+ HOMEBREW_PREFIX=" /usr/local"
103+ fi
104+ fi
105+ fi
106+ export HOMEBREW_PREFIX
78107export HOMEBREW_NO_AUTO_UPDATE=1 # Speed up builds
79108
80109# Add Homebrew to PATH if not already there
86115# COMPILER CONFIGURATION
87116# ============================================================================
88117# Use Homebrew LLVM for consistent C++17 support
89- export LLVM_HOME=" $HOMEBREW_PREFIX /opt/llvm"
118+ export LLVM_HOME=" ${LLVM_HOME :- ${STARROCKS_LLVM_HOME :- $(resolve_brew_prefix llvm " ${ HOMEBREW_PREFIX} /opt/llvm" )} } "
90119
91120if [[ ! -d " $LLVM_HOME " ]]; then
92121 log_error " LLVM not found at $LLVM_HOME . Please run: brew install llvm"
@@ -157,7 +186,7 @@ log_info "Parallel jobs: $PARALLEL"
157186# ============================================================================
158187
159188# OpenSSL (keg-only in Homebrew)
160- export OPENSSL_ROOT_DIR=" $HOMEBREW_PREFIX /opt/openssl@3"
189+ export OPENSSL_ROOT_DIR=" ${OPENSSL_ROOT_DIR :- $(resolve_brew_prefix openssl @ 3 " ${ HOMEBREW_PREFIX} /opt/openssl@3" )} "
161190if [[ -d " $OPENSSL_ROOT_DIR " ]]; then
162191 export PKG_CONFIG_PATH=" $OPENSSL_ROOT_DIR /lib/pkgconfig:${PKG_CONFIG_PATH:- } "
163192 export CPPFLAGS=" -I$OPENSSL_ROOT_DIR /include $CPPFLAGS "
@@ -167,15 +196,15 @@ else
167196fi
168197
169198# cURL (keg-only in Homebrew)
170- export CURL_ROOT=" $HOMEBREW_PREFIX /opt/curl"
199+ export CURL_ROOT=" ${CURL_ROOT :- $(resolve_brew_prefix curl " ${ HOMEBREW_PREFIX} /opt/curl" )} "
171200if [[ -d " $CURL_ROOT " ]]; then
172201 export PKG_CONFIG_PATH=" $CURL_ROOT /lib/pkgconfig:${PKG_CONFIG_PATH:- } "
173202 export CPPFLAGS=" -I$CURL_ROOT /include $CPPFLAGS "
174203 export LDFLAGS=" -L$CURL_ROOT /lib $LDFLAGS "
175204fi
176205
177206# ICU4C (keg-only in Homebrew)
178- export ICU_ROOT=" $HOMEBREW_PREFIX /opt/icu4c"
207+ export ICU_ROOT=" ${ICU_ROOT :- $(resolve_brew_prefix icu4c " ${ HOMEBREW_PREFIX} /opt/icu4c" )} "
179208if [[ -d " $ICU_ROOT " ]]; then
180209 export PKG_CONFIG_PATH=" $ICU_ROOT /lib/pkgconfig:${PKG_CONFIG_PATH:- } "
181210 export CPPFLAGS=" -I$ICU_ROOT /include $CPPFLAGS "
0 commit comments