Я хочу кросс-компилировать массив libs для разных архитектур, используя скрипт оболочки.
Массив библиотек:
LIBS=(FOO ZOO)
Массив ядер, специфичных для каждой библиотеки (для которых эта библиотека должна быть скомпилирована.)
FOO_CORES=(ARM_CM3 ARM_CM4 ARM_CR4)
ZOO_CORES=(ARM_CR4)
В принципе, я бы хотел, чтобы это произошло:
make FOO CORE=ARM_CM3
make FOO CORE=ARM_CM4
make FOO CORE=ARM_CR4
make ZOO CORE=ARM_CR4
Я могу запустить цикл for, который может перебирать массив библиотек. Но как мне обратиться к каждому библиотечному массиву ядер? Я могу получить каждую переменную имени ядра для конкретной библиотеки, используя двойную подстановку ... но это все! Не уверен, работает ли двойная замена с массивами.
for lib in ${LIBS[@]};do
eval "lib_name=${lib}_CORES"
cores_list=${!lib_name}
echo $lib_name $cores_list
done
Выход:
FOO_CORES ARM_CM3
ZOO_CORES ARM_CR4