summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore4
-rwxr-xr-xpackages/SDL_image.sh20
-rwxr-xr-xpackages/cmake.sh17
-rwxr-xr-xpackages/physfs.sh21
-rwxr-xr-xpackages/qemu.sh30
-rwxr-xr-xpackages/virglrenderer.sh20
-rwxr-xr-xpackages/zlib.sh21
-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
13 files changed, 332 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..7e8e612
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+/bin/
+/env/
+/src/
+/tmp/
diff --git a/packages/SDL_image.sh b/packages/SDL_image.sh
new file mode 100755
index 0000000..37ad7d8
--- /dev/null
+++ b/packages/SDL_image.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+function package_build {
+# run_git_switch_branch v1.2.11
+ run_autoreconf -i
+ run_configure --disable-jpg-shared --disable-tif-shared --disable-png-shared --disable-webp-shared
+
+ run_make
+ run_make_install
+}
+
+function package_get_source {
+# run_git_clone https://
+ echo nothing
+}
+
+function package_use {
+ env_lib_library_path "lib"
+ env_pkg_config_path "lib/pkgconfig"
+}
diff --git a/packages/cmake.sh b/packages/cmake.sh
new file mode 100755
index 0000000..e54720d
--- /dev/null
+++ b/packages/cmake.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+function package_build {
+ run_git_switch_branch master
+ run_cmake
+
+ run_make
+ run_make_install
+}
+
+function package_get_source {
+ run_git_clone git://cmake.org/cmake.git
+}
+
+function package_use {
+ env_path "bin"
+}
diff --git a/packages/physfs.sh b/packages/physfs.sh
new file mode 100755
index 0000000..d32d303
--- /dev/null
+++ b/packages/physfs.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+function package_build {
+ run_hg_switch_branch stable-2.0
+ run_cmake
+
+ run_make
+ run_make_install
+}
+
+function package_get_source {
+ run_hg_clone https://hg.icculus.org/icculus/physfs/
+}
+
+function package_use {
+ env_path "bin"
+ env_path "lib"
+ env_path "include"
+ env_lib_library_path "lib"
+ env_pkg_config_path "lib/pkgconfig"
+}
diff --git a/packages/qemu.sh b/packages/qemu.sh
new file mode 100755
index 0000000..8e86740
--- /dev/null
+++ b/packages/qemu.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+function package_build {
+ run_git_switch_branch master
+ run_configure \
+ --target-list=x86_64-linux-user,x86_64-softmmu \
+ --disable-nettle \
+ --enable-spice \
+ --enable-vte \
+ --audio-drv-list=sdl,alsa \
+ --enable-virglrenderer \
+ --enable-sdl \
+ --with-sdlabi=2.0
+
+ run_make
+ run_make_install
+}
+
+function package_get_source {
+ run_git_clone git://git.qemu-project.org/qemu.git
+}
+
+function package_deps {
+ run_add_dep virglrenderer
+}
+
+function package_use {
+ env_bin "bin"
+ env_man "share/man"
+}
diff --git a/packages/virglrenderer.sh b/packages/virglrenderer.sh
new file mode 100755
index 0000000..5ce3ba8
--- /dev/null
+++ b/packages/virglrenderer.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+function package_build {
+ run_git_switch_branch master
+ run_autoreconf -v --install
+ run_configure
+ run_make
+ run_make_install
+}
+
+function package_get_source {
+ run_git_clone git://people.freedesktop.org/~airlied/virglrenderer
+}
+
+function package_use {
+ env_path "bin"
+ env_lib_library_path "lib"
+ env_pkg_config_path "lib/pkgconfig"
+ env_man "share/man"
+}
diff --git a/packages/zlib.sh b/packages/zlib.sh
new file mode 100755
index 0000000..b95f940
--- /dev/null
+++ b/packages/zlib.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+function package_build {
+ run_git_switch_branch v1.2.11
+ run_configure
+
+ run_make
+ run_make_install
+}
+
+function package_get_source {
+ run_git_clone https://github.com/madler/zlib.git
+}
+
+function package_use {
+ env_path "lib"
+ env_path "include"
+ env_man "share/man"
+ env_lib_library_path "lib"
+ env_pkg_config_path "lib/pkgconfig"
+}
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