summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD170
1 files changed, 170 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..8f1e3e1b205e
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,170 @@
+# Maintainer: Artem 'skybon' Vorotnikov <artem@vorotnikov.me>
+# Contributor: Remy 'spyhawk' Marquis <remy.marquis@gmail.com>
+
+_gitname=etlegacy
+pkgbase=$_gitname-git
+pkgname=('etlegacy-git' 'etlegacy-mod-git')
+pkgver=LATEST
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://etlegacy.com/"
+license=('GPL3')
+makedepends=('git' 'cmake' 'zip' 'alsa-lib' 'curl' 'freetype2' 'glew' 'libjpeg-turbo' 'libvorbis' 'lua' 'sdl2')
+options=(!strip)
+source=('git+https://github.com/etlegacy/etlegacy.git')
+sha512sums=('SKIP')
+
+pkgver() {
+ cd "$srcdir/$_gitname"
+ git describe --always | sed -r 's/^v//;s/-/./g;'
+}
+
+prepare() {
+ # cleanup
+ [[ -e "$HOME/.etlegacy/legacy" ]] && cd $HOME/.etlegacy/legacy && rm -f *.so && rm -f *.dat
+ cd "$srcdir/$_gitname"
+ rm -rf CMakeFiles include legacy glsl
+ rm -f etl etlded *.so *.a *.cmake CMakeCache.txt install_manifest.txt
+}
+
+build() {
+ cd "$srcdir/$_gitname"
+
+ # build type and path
+ cmakeopts+=(
+ "-D CMAKE_BUILD_TYPE=Debug"
+ "-D CMAKE_INSTALL_PREFIX=/usr"
+ "-D INSTALL_DEFAULT_BASEDIR=/usr/lib/etlegacy"
+ "-D INSTALL_DEFAULT_BINDIR=bin"
+ "-D INSTALL_DEFAULT_MODDIR=lib/etlegacy"
+ )
+
+ # arch && cross-compilation
+ cmakeopts+=(
+ "-D CMAKE_LIBRARY_PATH=/usr/lib"
+ "-D CMAKE_INCLUDE_PATH=/usr/include"
+ "-D CROSS_COMPILE32=0"
+ )
+
+ # options
+ cmakeopts+=(
+ "-D BUILD_SERVER=1"
+ "-D BUILD_CLIENT=1"
+ "-D BUILD_MOD=1"
+ )
+ # packing
+ cmakeopts+=(
+ "-D BUILD_MOD_PK3=1"
+ "-D BUILD_PAK3_PK3=1"
+ )
+ # bundled libs
+ cmakeopts+=(
+ "-D BUNDLED_LIBS=0"
+ "-D BUNDLED_SDL=0"
+ "-D BUNDLED_CURL=0"
+ "-D BUNDLED_JPEG=0"
+ "-D BUNDLED_LUA=0"
+ "-D BUNDLED_OGG_VORBIS=0"
+ "-D BUNDLED_GLEW=0"
+ "-D BUNDLED_FREETYPE=0"
+ "-D BUNDLED_JANSSON=0"
+ )
+ # features
+ cmakeopts+=(
+ "-D FEATURE_CURL=1"
+ "-D FEATURE_OGG_VORBIS=1"
+ "-D FEATURE_OPENAL=0"
+ "-D FEATURE_FREETYPE=1"
+ "-D FEATURE_TRACKER=0"
+ "-D FEATURE_LUA=1"
+ "-D FEATURE_MULTIVIEW=0"
+ "-D FEATURE_ANTICHEAT=1"
+ "-D FEATURE_CURSES=0"
+ "-D FEATURE_AUTOUPDATE=0"
+ "-D FEATURE_RENDERER2=0"
+ "-D FEATURE_RENDERER_GLES=0"
+ "-D FEATURE_IPV6=0"
+ "-D FEATURE_IRC_CLIENT=0"
+ "-D RENDERER_DYNAMIC=0"
+ "-D FEATURE_WINDOWS_CONSOLE=1"
+ "-D FEATURE_GETTEXT=1"
+ "-D FEATURE_JANSSON=0"
+ "-D FEATURE_SERVERMDX=1"
+ "-D FEATURE_LIVEAUTH=1"
+ )
+ # omnibot
+ cmakeopts+=(
+ "-D FEATURE_OMNIBOT=1"
+ "-D INSTALL_OMNIBOT=0"
+ )
+
+ cmake ${cmakeopts[@]} .
+ make
+}
+
+package_etlegacy-git() {
+ pkgdesc="Wolfenstein: Enemy Territory 2.60b compatible client/server (etlegacy engine)"
+ depends=('etlegacy-mod-git' 'alsa-lib' 'curl' 'freetype2' 'gcc-libs' 'glew' 'libjpeg-turbo' 'libvorbis' 'lua' 'sdl2')
+ provides=('etlegacy')
+ conflicts=('etlegacy')
+ conflicts_x86_64=('etlegacy64-git')
+ replaces_x86_64=('etlegacy64-git')
+ backup=('etc/xdg/etlegacy/etmain/etl_server.cfg'
+ 'etc/xdg/etlegacy/etmain/legacy.cfg'
+ 'etc/xdg/etlegacy/etmain/campaigncycle.cfg'
+ 'etc/xdg/etlegacy/etmain/lmscycle.cfg'
+ 'etc/xdg/etlegacy/etmain/mapvotecycle.cfg'
+ 'etc/xdg/etlegacy/etmain/objectivecycle.cfg')
+ install=etlegacy.install
+
+ cd "$srcdir/$_gitname"
+
+ # engine
+ make DESTDIR="$pkgdir/" install
+
+ # mod
+ rm -rf $pkgdir/usr/lib/$_gitname/legacy
+
+ # assets
+ ln -s /usr/share/enemy-territory/etmain/{pak0,pak1,pak2}.pk3 $pkgdir/usr/lib/$_gitname/etmain/
+
+ # doc
+ mkdir -p $pkgdir/usr/share/doc/$_gitname
+ mv $pkgdir/usr/lib/$_gitname/INSTALL.txt $pkgdir/usr/share/doc/$_gitname/
+ install -m 644 docs/game/anticheat.html $pkgdir/usr/share/doc/$_gitname/
+
+ # license
+ mkdir -p $pkgdir/usr/share/licenses/$_gitname
+ mv $pkgdir/usr/lib/$_gitname/COPYING.txt $pkgdir/usr/share/licenses/$_gitname/
+
+ # systemd
+ mkdir -p $pkgdir/etc/xdg/$_gitname/etmain
+ mkdir -p $pkgdir/usr/lib/systemd/system
+ install -m 644 misc/etlegacy.conf $pkgdir/etc/xdg/$_gitname/
+ install -m 644 misc/etlegacy.service $pkgdir/usr/lib/systemd/system/
+
+ # config
+ mv $pkgdir/usr/lib/$_gitname/etmain/*.cfg $pkgdir/etc/xdg/$_gitname/etmain/
+ ln -s /etc/xdg/$_gitname/etmain/{etl_server,legacy,{campaign,lms,mapvote,objective}cycle}.cfg $pkgdir/usr/lib/$_gitname/etmain/
+
+ # server
+ mkdir -p $pkgdir/var/lib/$_gitname-server
+ ln -s /etc/xdg/$_gitname/etmain $pkgdir/var/lib/$_gitname-server/
+}
+
+package_etlegacy-mod-git() {
+ pkgdesc="Wolfenstein: Enemy Territory 2.60b compatible client/server (etlegacy mod)"
+ depends=('enemy-territory-data' 'geoip-database')
+ optdepends=('etlegacy-omnibot: artificial intelligence (AI) controlled opponent')
+ provides=('etlegacy-mod')
+ conflicts=('etlegacy-mod')
+
+ cd "$srcdir/$_gitname"
+
+ # mod
+ mkdir -p $pkgdir/usr/lib/$_gitname/legacy
+ install legacy/{*.pk3,qagame.*.so} -t $pkgdir/usr/lib/$_gitname/legacy
+
+ # geoip
+ ln -s /usr/share/GeoIP/GeoIP.dat $pkgdir/usr/lib/$_gitname/legacy
+}