Есть C код, скомпилировал его в двух вариантах: gcc -m32 и gcc -m64. Цель - это сделать универсальный исполняемый файл, который бы умел запускаться на всех десктопных архитектурах.
Думал, может попробовать засунуть бинарники блобом в скрипт, который бы определял архитектуру и запускал соответствующий блоб:
#!/bin/bash
LOCAL_ARCH=`uname -m 2> /dev/null`
[ "$LOCAL_ARCH" = "i386" ] && LOCAL_ARCH="32"
[ "$LOCAL_ARCH" = "i486" ] && LOCAL_ARCH="32"
[ "$LOCAL_ARCH" = "i586" ] && LOCAL_ARCH="32"
[ "$LOCAL_ARCH" = "i686" ] && LOCAL_ARCH="32"
[ "$LOCAL_ARCH" = "x86_64" ] && LOCAL_ARCH="64"
if [ -z "$LOCAL_ARCH" ]; then
echo "Поломался uname"
exit 1;
fi
if [ "$LOCAL_ARCH" == "32" ]; then
echo "32"
fi
if [ "$LOCAL_ARCH" == "64" ]; then
echo "64"
fi
Единственное условие в том, что на выходе должен получиться один файл, ничего не откуда не докачивающий и ничего не пишущий рядом с собой, то есть все должно быть в скрипте и запускаться из скрипта.
Есть идеи как это сделать?