#!/bin/bash function check_error { if [ "$1" != 0 ]; then echo "Error detected" exit $1 fi } function common_build_init { export dir=$(pwd) if [[ "${installname}" == "" ]]; then export installname=${package} fi export srcdir=$(realpath "${dir}/../src/${package}") if [ ! -d "${srcdir}" ]; then echo "Error: Package sources directory not exists for package '${package}'." exit 3 fi if [ ! -d "../env" ]; then mkdir -p "../env" check_error $? fi if [ ! -d "../bin" ]; then mkdir -p "../bin" check_error $? fi if [ ! -d "../tmp" ]; then mkdir -p "../tmp" check_error $? fi export builddir=$(realpath "${dir}/../tmp/${package}") export bindir=$(realpath "${dir}/../bin/${installname}") rm -rf "${builddir}" check_error $? mkdir -p "${builddir}" check_error $? } function common_package_init { export scriptsdir=$(realpath .) if [[ "${package}" == "" ]]; then echo "Error: Missing package name" echo "Example: ./build.sh virglrenderer" exit 1 fi export packagefile="${package}.sh" if [ ! -f "../packages/${packagefile}" ]; then echo "Error: Package '${package}' not exists." exit 2 fi } function common_run_package { cd ../packages check_error $? echo "${package}.sh" source "./${package}.sh" check_error $? } function common_use_package { cd ${scriptsdir} check_error $? export envfile="../env/run${package}.sh" echo "#!/bin/bash" >${envfile} check_error $? echo "" >>${envfile} echo "package_use" package_use check_error $? echo "\$*" >>${envfile} check_error $? chmod 0755 ${envfile} check_error $? } function env_path { echo "export PATH=${bindir}/$1:\$PATH" >>${envfile} check_error $? } function env_lib_library_path { echo "export LD_LIBRARY_PATH=${bindir}/$1:\$LD_LIBRARY_PATH" >>${envfile} check_error $? } function env_pkg_config_path { echo "export PKG_CONFIG_PATH=${bindir}/$1:\$PKG_CONFIG_PATH" >>${envfile} check_error $? } function env_man { echo "export MANPATH=${bindir}/$1:\$MANPATH" >>${envfile} check_error $? } function run_autoreconf { cd "${srcdir}" echo "make distclean" make distclean echo "autoreconf $*" autoreconf $* check_error $? } function run_configure { cd "${builddir}" echo "configure --prefix="${bindir}" $*" "$srcdir"/configure --prefix="${bindir}" $* check_error $? } function run_cmake { cd "${builddir}" echo "cmake -DCMAKE_INSTALL_PREFIX:PATH="${bindir}" "$srcdir" $*" cmake -DCMAKE_INSTALL_PREFIX:PATH="${bindir}" "$srcdir" $* check_error $? } function run_make { echo "make" make check_error $? } function run_make_install { echo "make install" make install check_error $? } function run_git_clone { echo "clone git repository $1" git clone $1 "../src/${package}" check_error $? } function run_hg_clone { echo "clone hg repository $1" hg clone $1 "../src/${package}" check_error $? } function run_git_switch_branch { cd "${srcdir}" check_error $? if [[ "${srcbranch}" == "" ]]; then export srcbranch="$1" fi echo "git checkout ${srcbranch}" git checkout "${srcbranch}" check_error $? } function run_hg_switch_branch { cd "${srcdir}" if [[ "${srcbranch}" == "" ]]; then export srcbranch="$1" fi echo "hg update ${srcbranch}" hg update ${srcbranch} check_error $? } function package_use { env_path "bin" env_lib_library_path "lib" } function package_update_source { cd "../src/${package}" if [ -d .git ]; then echo "git fetch origin" git fetch origin return fi if [ -d .hg ]; then echo "hg pull" hg pull check_error $? return fi } function common_clean_destination { echo "clean ${installname}" rm -rf "${installname}" }