diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/build.sh | 12 | ||||
-rwxr-xr-x | scripts/clean.sh | 10 | ||||
-rwxr-xr-x | scripts/example.sh | 6 | ||||
-rwxr-xr-x | scripts/getsrc.sh | 9 | ||||
-rw-r--r-- | scripts/include/common.sh | 154 | ||||
-rwxr-xr-x | scripts/updatesrc.sh | 8 |
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 |