Support NO_UI if libraries aren't found on Linux

release
Debian User 2007-11-24 21:03:32 -06:00
parent a2346280b2
commit c34c6bf206
1 changed files with 58 additions and 27 deletions

View File

@ -10,6 +10,7 @@ shopt -s nocaseglob
OS= OS=
ARCH= ARCH=
WORD= WORD=
NO_UI=0
ensure_program_installed() { ensure_program_installed() {
echo -n "Checking for $1..." echo -n "Checking for $1..."
@ -49,6 +50,34 @@ check_installed_programs() {
check_gcc_version check_gcc_version
} }
check_library_exists() {
GCC_TEST=factor-library-test.c
GCC_OUT=factor-library-test.out
echo "Checking for library $1"
echo "int main(){return 0;}" > $GCC_TEST
gcc $GCC_TEST -o $GCC_OUT -l $1
if [[ $? -ne 0 ]] ; then
echo "Warning: library $1 not found."
echo "***Factor will compile NO_UI=1"
NO_UI=1
fi
rm -f GCC_TEST
rm -f GCC_OUT
}
check_X11_libraries() {
check_library_exists freetype
check_library_exists GLU
check_library_exists GL
check_library_exists X11
}
check_libraries() {
case $OS in
linux) check_X11_libraries;;
esac
}
check_factor_exists() { check_factor_exists() {
if [[ -d "factor" ]] ; then if [[ -d "factor" ]] ; then
echo "A directory called 'factor' already exists." echo "A directory called 'factor' already exists."
@ -151,7 +180,7 @@ make_clean() {
} }
make_factor() { make_factor() {
make $MAKE_TARGET -j5 make NO_UI=$NO_UI $MAKE_TARGET -j5
check_ret make check_ret make
} }
@ -185,31 +214,33 @@ usage() {
echo "usage: $0 install|update" echo "usage: $0 install|update"
} }
install() {
check_factor_exists
check_installed_programs
find_build_info
check_libraries
git_clone
cd_factor
make_factor
get_boot_image
maybe_download_dlls
bootstrap
}
update() {
check_installed_programs
find_build_info
check_libraries
git_pull_factorcode
make_clean
make_factor
delete_boot_images
get_boot_image
bootstrap
}
case "$1" in case "$1" in
install) install) install ;;
check_factor_exists update) update ;;
check_installed_programs *) usage ;;
find_build_info
git_clone
cd_factor
make_factor
get_boot_image
maybe_download_dlls
bootstrap
;;
update)
check_installed_programs
find_build_info
git_pull_factorcode
make_clean
make_factor
delete_boot_images
get_boot_image
bootstrap
;;
*)
usage
;;
esac esac