Skip to content

Commit d482456

Browse files
authored
Merge pull request #5786 from martin-frbg/macos-runner-port-cirrus
GH runner macos: Add cross-compilation to x86_64 based on the Cirrus CI job
2 parents 10cf63e + a8974e0 commit d482456

1 file changed

Lines changed: 143 additions & 1 deletion

File tree

.github/workflows/apple_m.yml

Lines changed: 143 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ permissions:
1010
contents: read # to fetch code (actions/checkout)
1111

1212
jobs:
13-
build:
13+
build-windows:
1414
if: "github.repository == 'OpenMathLib/OpenBLAS'"
1515
runs-on: macos-14
1616

@@ -155,3 +155,145 @@ jobs:
155155
exit 1
156156
;;
157157
esac
158+
159+
xbuild-x86_64:
160+
if: "github.repository == 'OpenMathLib/OpenBLAS'"
161+
runs-on: macos-26
162+
163+
strategy:
164+
fail-fast: false
165+
166+
steps:
167+
- name: Checkout repository
168+
uses: actions/checkout@v6
169+
170+
- name: Print system information
171+
run: |
172+
if [ "$RUNNER_OS" == "macOS" ]; then
173+
sysctl -a | grep machdep.cpu
174+
else
175+
echo "::error::$RUNNER_OS not supported"
176+
exit 1
177+
fi
178+
179+
- name: Install Dependencies
180+
run: |
181+
if [ "$RUNNER_OS" == "Linux" ]; then
182+
sudo apt-get install -y gfortran cmake ccache libtinfo5
183+
elif [ "$RUNNER_OS" == "macOS" ]; then
184+
# It looks like "gfortran" isn't working correctly unless "gcc" is re-installed.
185+
brew reinstall gcc
186+
brew install coreutils ccache
187+
brew install llvm
188+
else
189+
echo "::error::$RUNNER_OS not supported"
190+
exit 1
191+
fi
192+
193+
- name: Crossbuild OpenBLAS to x86_64
194+
run: |
195+
#export PATH=/opt/homebrew/opt/llvm/bin:$PATH
196+
#export LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
197+
#export CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
198+
export ARCHS="i386 x86_64"
199+
export ARCHS_STANDARD="i386 x86_64"
200+
export ARCHS_STANDARD_32_64_BIT="i386 x86_64"
201+
export ARCHS_STANDARD_64_BIT=x86_64
202+
export ARCHS_STANDARD_INCLUDING_64_BIT="i386 x86_64"
203+
export ARCHS_UNIVERSAL_IPHONE_OS="i386 x86_64"
204+
export VALID_ARCHS="i386 x86_64"
205+
xcrun --sdk macosx --show-sdk-path
206+
xcodebuild -version
207+
export CC=/Applications/Xcode_26.0.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
208+
export CFLAGS="-O2 -unwindlib=none -Wno-macro-redefined -isysroot /Applications/Xcode_26.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk -arch x86_64"
209+
make TARGET=CORE2 DYNAMIC_ARCH=1 NUM_THREADS=32 HOSTCC=clang NOFORTRAN=1 RANLIB="ls -l"
210+
211+
xbuild-ios:
212+
if: "github.repository == 'OpenMathLib/OpenBLAS'"
213+
runs-on: macos-26
214+
215+
strategy:
216+
fail-fast: false
217+
218+
steps:
219+
- name: Checkout repository
220+
uses: actions/checkout@v6
221+
222+
- name: Print system information
223+
run: |
224+
if [ "$RUNNER_OS" == "macOS" ]; then
225+
sysctl -a | grep machdep.cpu
226+
else
227+
echo "::error::$RUNNER_OS not supported"
228+
exit 1
229+
fi
230+
231+
- name: Install Dependencies
232+
run: |
233+
if [ "$RUNNER_OS" == "Linux" ]; then
234+
sudo apt-get install -y gfortran cmake ccache libtinfo5
235+
elif [ "$RUNNER_OS" == "macOS" ]; then
236+
# It looks like "gfortran" isn't working correctly unless "gcc" is re-installed.
237+
brew reinstall gcc
238+
brew install coreutils ccache
239+
brew install llvm
240+
else
241+
echo "::error::$RUNNER_OS not supported"
242+
exit 1
243+
fi
244+
245+
- name: Crossbuild to iOS
246+
run: |
247+
#brew install llvm
248+
#export #PATH=/opt/homebrew/opt/llvm/bin:$PATH
249+
# export #LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
250+
export #CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
251+
export CC=/Applications/Xcode_26.0.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
252+
export CFLAGS="-O2 -unwindlib=none -Wno-macro-redefined -isysroot /Applications/Xcode_26.0.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS26.0.sdk -arch arm64 -miphoneos-version-min=10.0"
253+
xcrun --sdk iphoneos --show-sdk-path
254+
ls -l /Applications
255+
make TARGET=ARMV8 NUM_THREADS=32 HOSTCC=clang NOFORTRAN=1 CROSS=1
256+
257+
xbuild-ios32:
258+
if: "github.repository == 'OpenMathLib/OpenBLAS'"
259+
runs-on: macos-26
260+
261+
strategy:
262+
fail-fast: false
263+
264+
steps:
265+
- name: Checkout repository
266+
uses: actions/checkout@v6
267+
268+
- name: Print system information
269+
run: |
270+
if [ "$RUNNER_OS" == "macOS" ]; then
271+
sysctl -a | grep machdep.cpu
272+
else
273+
echo "::error::$RUNNER_OS not supported"
274+
exit 1
275+
fi
276+
277+
- name: Install Dependencies
278+
run: |
279+
if [ "$RUNNER_OS" == "Linux" ]; then
280+
sudo apt-get install -y gfortran cmake ccache libtinfo5
281+
elif [ "$RUNNER_OS" == "macOS" ]; then
282+
# It looks like "gfortran" isn't working correctly unless "gcc" is re-installed.
283+
brew reinstall gcc
284+
brew install coreutils ccache
285+
brew install llvm
286+
brew install --cask android-ndk
287+
else
288+
echo "::error::$RUNNER_OS not supported"
289+
exit 1
290+
fi
291+
292+
- name: AppleM1/LLVM armv7-androidndk xbuild
293+
run: |
294+
export ANDROID_NDK_HOME="/opt/homebrew/share/android-ndk"
295+
export CC=/opt/homebrew/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi23-clang
296+
export AR=/opt/homebrew/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar
297+
export RANLIB=/opt/homebrew/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib
298+
make TARGET=ARMV7 ARM_SOFTFP_ABI=1 NUM_THREADS=32 HOSTCC=clang NOFORTRAN=1
299+

0 commit comments

Comments
 (0)