summaryrefslogtreecommitdiff
path: root/scripts/include/common.sh
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2017-01-24 00:05:53 +0300
committerAndrei Karas <akaras@inbox.ru>2017-01-24 00:05:53 +0300
commit65ddf15dfbb4bba0b9fb7ca18aa922eeaed11d2a (patch)
tree09bfbe176dc56aa661ce93c2e48e0c3b542e4b1c /scripts/include/common.sh
downloadspm-65ddf15dfbb4bba0b9fb7ca18aa922eeaed11d2a.tar.gz
spm-65ddf15dfbb4bba0b9fb7ca18aa922eeaed11d2a.tar.bz2
spm-65ddf15dfbb4bba0b9fb7ca18aa922eeaed11d2a.tar.xz
spm-65ddf15dfbb4bba0b9fb7ca18aa922eeaed11d2a.zip
Initial commit.
Diffstat (limited to 'scripts/include/common.sh')
-rw-r--r--scripts/include/common.sh154
1 files changed, 154 insertions, 0 deletions
diff --git a/scripts/include/common.sh b/scripts/include/common.sh
new file mode 100644
index 0000000..cd5f399
--- /dev/null
+++ b/scripts/include/common.sh
@@ -0,0 +1,154 @@
+#!/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
+
+ 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}"
+}