summaryrefslogblamecommitdiff
path: root/scripts/include/common.sh
blob: 6baea91f3f268e8129fead5778075ebd70eb9eb3 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15














                                                                                    









                              










































































































































                                                                             
#!/bin/bash

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"
    fi
    if [ ! -d "../bin" ]; then
        mkdir -p "../bin"
    fi
    if [ ! -d "../tmp" ]; then
        mkdir -p "../tmp"
    fi

    export builddir=$(realpath "${dir}/../tmp/${package}")
    export bindir=$(realpath "${dir}/../bin/${installname}")

    rm -rf "${builddir}"
    mkdir -p "${builddir}"
}

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
    echo "${package}.sh"
    source "./${package}.sh"
}

function common_use_package {
    cd ${scriptsdir}
    export envfile="../env/run${package}.sh"
    echo "#!/bin/bash" >${envfile}
    echo "" >>${envfile}
    echo "package_use"
    package_use
    echo "\$*" >>${envfile}
    chmod 0755 ${envfile}
}

function env_path {
    echo "export PATH=${bindir}/$1:\$PATH" >>${envfile}
}

function env_lib_library_path {
    echo "export LD_LIBRARY_PATH=${bindir}/$1:\$LD_LIBRARY_PATH" >>${envfile}
}

function env_pkg_config_path {
    echo "export PKG_CONFIG_PATH=${bindir}/$1:\$PKG_CONFIG_PATH" >>${envfile}
}

function env_man {
    echo "export MANPATH=${bindir}/$1:\$PATH" >>${envfile}
}

function run_autoreconf {
    cd "${srcdir}"
    echo "make distclean"
    make distclean
    echo "autoreconf $*"
    autoreconf $*
}

function run_configure {
    cd "${builddir}"
    echo "configure --prefix="${bindir}" $*"
    "$srcdir"/configure --prefix="${bindir}" $*
}

function run_cmake {
    cd "${builddir}"
    echo "cmake -DCMAKE_INSTALL_PREFIX:PATH="${bindir}" "$srcdir" $*"
    cmake -DCMAKE_INSTALL_PREFIX:PATH="${bindir}" "$srcdir" $*
}

function run_make {
    echo "make"
    make
}

function run_make_install {
    echo "make install"
    make install
}

function run_git_clone {
    echo "clone git repository $1"
    git clone $1 "../src/${package}"
}

function run_hg_clone {
    echo "clone hg repository $1"
    hg clone $1 "../src/${package}"
}

function run_git_switch_branch {
    cd "${srcdir}"

    if [[ "${srcbranch}" == "" ]]; then
        export srcbranch="$1"
    fi
    echo "git checkout ${srcbranch}"
    git checkout "${srcbranch}"
}

function run_hg_switch_branch {
    cd "${srcdir}"

    if [[ "${srcbranch}" == "" ]]; then
        export srcbranch="$1"
    fi
    echo "hg update ${srcbranch}"
    hg update ${srcbranch}
}

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
        return
    fi
}

function common_clean_destination {
    echo "clean ${installname}"
    rm -rf "${installname}"
}