Скрипт сборки-установки... Есть вопросы
От: Sheridan Россия  
Дата: 04.08.05 03:52
Оценка:
Решил вот под свою машину нарисовать скриптик сборки-установки софта...
Вот что вчера набросал:
#!/bin/bash

function run_cmd_execute()
{
    echo "\\033[0;35m $5 startup \\033[0;39m"
    echo "\\033[0;34m $1 $2 $3 \\033[0;39m "
    `$1 $2 $3 > run.$4.log 1>&2`
    echo "\\033[0;32m $5 done \\033[0;39m"
}

function run_execute()
{
    run_cmd_execute "" "$1" "$2" "$1$2" "$3"
    
}
function run_configure()
{
    CFLAGS="-march=pentium3 -mfpmath=387,sse -malign-double" 
    CXXFLAGS="-march=pentium3 -mfpmath=sse,387 -malign-double"
    echo "\\033[0;35m Configuration startup \\033[0;39m"
    echo "gcc flags:\\033[0;32m $CFLAGS \\033[0;39m"
    echo "g++ flags:\\033[0;32m $CXXFLAGS \\033[0;39m"
    `CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ./configure $1 > run.configure.log 1>&2`
    echo "\\033[0;32m Configuration done \\033[0;39m"

}

clear
echo "\\033[0;35m Startup \\033[0;39m"

run_execute "make" "distclean" "Dist. clean"
run_configure ""
run_execute "make" "clean" "Oldmake clean"
run_execute "make" "" "Make"
run_execute "make" "check" "Checking"
run_execute "make" "install" "Install"

echo "\\033[0;32m All done \\033[0;39m"

И появились вопросы....
1. Как объяснить сырцам которые без configure что мне надо собрать из с вот такими то флагами компилятора?
2. Как разбирать параметры коммандной строки? Хотелось бы уметь понимать как --cmd так и --cmd=param параметры...
3. Можно ли как-нибудь выделять цветом слова типа warning/error, найденые в потоке вывода работы того что я запускаю?
4. Можно ли определить какие компиляторы установлены? (у меня например на машине и gcc 4 и gcc 3.2)
4. Где можно почитать про комманды компиляторам желательно на русском? (в мане уже копался, много непонятного.)
5. И опятьже где можно прочитать про программирование в shell? man довольно расплывчатый и без примеров...

Северо-кавказкая lug
[fc4][2.6.12.3Sheridan]
Matrix has you...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.