summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/build.sh12
-rwxr-xr-xscripts/clean.sh10
-rwxr-xr-xscripts/example.sh6
-rwxr-xr-xscripts/getsrc.sh9
-rw-r--r--scripts/include/common.sh154
-rwxr-xr-xscripts/updatesrc.sh8
6 files changed, 199 insertions, 0 deletions
diff --git a/scripts/build.sh b/scripts/build.sh
new file mode 100755
index 0000000..61109a7
--- /dev/null
+++ b/scripts/build.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+export package=$1
+source ../scripts/include/common.sh
+
+common_package_init
+
+common_build_init
+
+common_run_package
+package_build
+common_use_package
diff --git a/scripts/clean.sh b/scripts/clean.sh
new file mode 100755
index 0000000..461fc54
--- /dev/null
+++ b/scripts/clean.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+export package=$1
+source ../scripts/include/common.sh
+
+common_package_init
+
+common_build_init
+
+common_clean_destination
diff --git a/scripts/example.sh b/scripts/example.sh
new file mode 100755
index 0000000..5d1b823
--- /dev/null
+++ b/scripts/example.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+export installname=zlib
+./build.sh zlib
+export srcbranch="stable-2.0"
+../env/runzlib.sh ./build.sh physfs
diff --git a/scripts/getsrc.sh b/scripts/getsrc.sh
new file mode 100755
index 0000000..982453c
--- /dev/null
+++ b/scripts/getsrc.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+export package=$1
+source ../scripts/include/common.sh
+
+common_package_init
+
+common_run_package
+package_get_source
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}"
+}
diff --git a/scripts/updatesrc.sh b/scripts/updatesrc.sh
new file mode 100755
index 0000000..9bcbfb3
--- /dev/null
+++ b/scripts/updatesrc.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+export package=$1
+source ../scripts/include/common.sh
+
+common_package_init
+
+package_update_source