mirror of
https://github.com/MarlinFirmware/Marlin.git
synced 2025-12-27 09:59:52 -07:00
79 lines
1.9 KiB
Bash
Executable file
79 lines
1.9 KiB
Bash
Executable file
#!/usr/bin/env zsh
|
|
#
|
|
# Prepare a 'gcc' compatible with the native Simulator build.
|
|
# Support for MacPorts and Homebrew.
|
|
# To reset and use the system (Clang) compiler, run with 'apple'.
|
|
#
|
|
# Usage: mac_gcc apple|macports|homebrew
|
|
#
|
|
|
|
which port >/dev/null && HAS_MACPORTS=1
|
|
which brew >/dev/null && HAS_HOMEBREW=1
|
|
|
|
if ((HAS_MACPORTS)); then
|
|
MACPORTS_PATH=$(dirname "$(which port)")
|
|
cd $MACPORTS_PATH
|
|
sudo rm -f cpp gcc g++ cc ld
|
|
cd -
|
|
fi
|
|
|
|
if ((HAS_HOMEBREW)); then
|
|
HOMEBREW_PATH="$(brew --prefix)/bin"
|
|
cd $HOMEBREW_PATH
|
|
rm -f cpp gcc g++ cc ld
|
|
cd -
|
|
fi
|
|
|
|
if [[ $1 == "apple" || $1 == "darwin" || $1 == "system" ]]; then
|
|
|
|
# Nothing to do
|
|
|
|
elif [[ $1 =~ ".*ports" ]]; then
|
|
|
|
((HAS_MACPORTS)) || { echo "MacPorts is not installed"; exit 1; }
|
|
|
|
GCCV=$( find $MACPORTS_PATH -name "cpp-mp-*" | sort -r | head -1 | sed 's/.*cpp-mp-//' )
|
|
[[ $GCCV -ge 11 ]] || GCCV=14
|
|
|
|
getport() { port installed $1 | grep $1 || sudo port install $1; }
|
|
getports() { for p in $@; do getport $p; done; }
|
|
|
|
getports "gcc$GCCV" glm mesa libsdl2 libsdl2_net
|
|
|
|
cd $MACPORTS_PATH
|
|
sudo ln -s "cpp-mp-$GCCV" cpp
|
|
sudo ln -s "gcc-mp-$GCCV" gcc
|
|
sudo ln -s "g++-mp-$GCCV" g++
|
|
sudo ln -s g++ cc
|
|
sudo ln -s ld-classic ld
|
|
cd -
|
|
|
|
elif [[ $1 =~ ".*brew" ]]; then
|
|
|
|
((HAS_HOMEBREW)) || { echo "Homebrew is not installed"; exit 1; }
|
|
|
|
GCCV=$( find $HOMEBREW_PATH -name "cpp-*" | sort -r | head -1 | sed 's/.*cpp-//' )
|
|
[[ $GCCV -ge 11 ]] || brew install gcc
|
|
GCCV=$( find $HOMEBREW_PATH -name "cpp-*" | sort -r | head -1 | sed 's/.*cpp-//' )
|
|
|
|
brew install glm mesa sdl2 sdl2_net
|
|
|
|
cd $HOMEBREW_PATH
|
|
ln -s "cpp-$GCCV" cpp
|
|
ln -s "gcc-$GCCV" gcc
|
|
ln -s "g++-$GCCV" g++
|
|
ln -s g++ cc
|
|
if [[ -f "$MACPORTS_PATH/ld-classic" ]]; then
|
|
ln -s "$MACPORTS_PATH/ld-classic" ld
|
|
else
|
|
echo "MacPorts may be required for a compatible 'ld' linker!"
|
|
fi
|
|
cd -
|
|
|
|
else
|
|
|
|
echo "Usage: $(basename $0) apple|macports|homebrew"
|
|
|
|
fi
|
|
|
|
rehash
|