Fix for nasm detection

nasm is a business for ebuild.sh only
This commit is contained in:
vectorsigma 2019-09-06 12:03:49 +02:00
parent ac97cf5fb0
commit 9de5c877b5
2 changed files with 5 additions and 93 deletions

48
buildme
View File

@ -38,53 +38,6 @@ if [[ ! -d "$(xcode-select --print-path)" ]]; then
fi fi
} }
isNASMGood() {
# nasm should be greater or equal to 2.12.02 to be good building Clover.
# There was a bad macho relocation in outmacho.c, fixed by Zenith432
# and accepted by nasm devel during 2.12.rcxx (release candidate)
result=1
local nasmver=$( "${1}" -v | grep 'NASM version' | awk '{print $3}' )
case "$nasmver" in
2.12.0[2-9]* | 2.12.[1-9]* | 2.1[3-9]* | 2.[2-9]* | [3-9]* | [1-9][1-9]*)
result=0;;
*)
printf "\n\e[1;33mUnknown or unsupported NASM version found at:\n${1}\n\n\e[0m";;
esac
return $result
}
checkNASM() {
local nasmArray=( $(which -a nasm) )
local found=0
if [ ${#nasmArray[@]} -ge "1" ]; then
for i in "${nasmArray[@]}"
do
echo "found nasm v$(${i} -v | grep 'NASM version' | awk '{print $3}') at $(dirname ${i})"
done
# we have a good nasm?
for i in "${nasmArray[@]}"
do
if isNASMGood "${i}"; then
found=1
export NASM_PREFIX="$(dirname ${i})/"
break
fi
done
fi
if [[ "$found" -eq 0 ]]; then
echo "installing nasm.."
NASM_PREFIX="$(dirname ${i})/"
"${CLOVERROOT}"/buildnasm.sh
fi
}
checkGETTEXT() { checkGETTEXT() {
if [[ ! -x $(which gettext) ]]; then if [[ ! -x $(which gettext) ]]; then
"${CLOVERROOT}"/buildgettext.sh "${CLOVERROOT}"/buildgettext.sh
@ -105,7 +58,6 @@ export DIR_LOGS=${DIR_LOGS:-$DIR_TOOLS/logs}
checkTools() { checkTools() {
checkXCODE checkXCODE
exportPaths exportPaths
checkNASM
checkGETTEXT checkGETTEXT
} }

View File

@ -33,7 +33,7 @@ PLATFORMFILE=
MODULEFILE= MODULEFILE=
TARGETRULE= TARGETRULE=
SCRIPT_VERS="2018-06-18" SCRIPT_VERS="2019-09-06"
# Macro # Macro
M_NOGRUB=0 M_NOGRUB=0
@ -57,7 +57,7 @@ else
TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-"$CLOVERROOT"/../../toolchain} TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-"$CLOVERROOT"/../../toolchain}
fi fi
if [[ ! -d $TOOLCHAIN_DIR ]]; then if [[ ! -d $TOOLCHAIN_DIR ]]; then
TOOLCHAIN_DIR="${PWD}"/../../opt/local TOOLCHAIN_DIR="${PWD}"/../opt/local
fi fi
export TOOLCHAIN_DIR export TOOLCHAIN_DIR
echo "TOOLCHAIN_DIR: $TOOLCHAIN_DIR" echo "TOOLCHAIN_DIR: $TOOLCHAIN_DIR"
@ -181,47 +181,6 @@ IsNumericOnly() {
return 1 # yes is an integer (no matter for bash if there are zeroes at the beginning comparing it as integer) return 1 # yes is an integer (no matter for bash if there are zeroes at the beginning comparing it as integer)
fi fi
} }
needNASM() {
local nasmPath=""
local nasmArray=( $(which -a nasm) )
local needInstall=1
local good=""
if [ ${#nasmArray[@]} -ge "1" ]; then
for i in "${nasmArray[@]}"
do
echo "found nasm v$(${i} -v | grep 'NASM version' | awk '{print $3}') at $(dirname ${i})"
done
# we have a good nasm?
for i in "${nasmArray[@]}"
do
if isNASMGood "${i}"; then
good="${i}"
break
fi
done
if [[ -x "${good}" ]] ; then
# only nasm at index 0 is used!
if [[ "${good}" == "${nasmArray[0]}" ]]; then
echo "${good} is ok.."
else
echo "this one is good:"
echo "${good}"
fi
else
# no nasm versions suitable for Clover
echo "nasm found, but is not good to build Clover.."
needInstall=0
fi
else
needInstall=0
echo "nasm not found.."
fi
return $needInstall
}
isNASMGood() { isNASMGood() {
# nasm should be greater or equal to 2.12.02 to be good building Clover. # nasm should be greater or equal to 2.12.02 to be good building Clover.
@ -462,12 +421,13 @@ checkToolchain() {
if [[ -x "/opt/local/bin/nasm" ]]; then if [[ -x "/opt/local/bin/nasm" ]]; then
export NASM_PREFIX="/opt/local/bin/" export NASM_PREFIX="/opt/local/bin/"
elif [[ -f "${TOOLCHAIN_DIR}/bin/nasm" ]]; then elif [[ -x "${TOOLCHAIN_DIR}/bin/nasm" ]]; then
# using $TOOLCHAIN_DIR here should allow Clover source to be # using $TOOLCHAIN_DIR here should allow Clover source to be
# inside any sub folder instead of only in ~/ # inside any sub folder instead of only in ~/
export NASM_PREFIX="${TOOLCHAIN_DIR}/bin/" export NASM_PREFIX="${TOOLCHAIN_DIR}/bin/"
else else
export NASM_PREFIX="" export NASM_PREFIX="${TOOLCHAIN_DIR}/bin/"
./buildnasm.sh
fi fi
echo "NASM_PREFIX: $NASM_PREFIX" echo "NASM_PREFIX: $NASM_PREFIX"