# APKBUILD.sh -rw-r--r-- 2.4 KiB View raw
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# Contributor: Martijn Braam <martijn@brixit.nl>
# Maintainer: Martijn Braam <martijn@brixit.nl>
pkgname="openarena"
pkgver="0.8.8"
pkgrel=0
pkgdesc="description"
url="https://openarena.ws"
arch="all !armhf"
license="GPL-2.0"
depends=""
makedepends="sdl-dev libvorbis-dev mesa-dev glu-dev"
install=""
_commit="f507a7a87a86878d4d3b72315b9d9fe8c255e1e3"
_gc_commit="b7e01f40c433a602987be2a95fb13385e163a3c4"
source="
	$pkgname-$_commit.tar.gz::https://github.com/OpenArena/engine/archive/$_commit.tar.gz
	$pkgname-$_gc_commit.tar.gz::https://github.com/OpenArena/gamecode/archive/$_gc_commit.tar.gz
	$pkgname-data-$pkgver.zip::http://openarena.ws/request.php?4
	engine-aarch64.patch
	gamecode-aarch64.patch
"
builddir="$srcdir/engine-$_commit"
builddir_gc="$srcdir/gamecode-$_gc_commit"
builddir_data="$srcdir/openarena-$pkgver"

prepare() {
	cd "$builddir"
	patch -p1 -i "$srcdir"/engine-aarch64.patch || return 1

	cd "$builddir_gc"
	patch -p1 -i "$srcdir"/gamecode-aarch64.patch || return 1
}

build() {
	# Build engine
	cd "$builddir"
	make USE_CODEC_XMP=0
	
	# Build gamecode
	cd "$builddir_gc"
	make 
}

package() {
	_qarch=${CARCH}
	case "$_qarch" in
	armv7) _qarch="armv7l" ;;
	esac

	cd "$builddir"
	mkdir -p "$pkgdir"/usr/share/games/openarena
	
	echo Add gamedata
	cp -rv "$builddir_data"/baseoa "$pkgdir"/usr/share/games/openarena/
	
	echo Add engine
	cp -rv "$builddir"/build/release-linux-$_qarch/* "$pkgdir"/usr/share/games/openarena/

	echo Add gamecode
	cp -rv "$builddir_gc"/build/release-linux-$_qarch/* "$pkgdir"/usr/share/games/openarena/
}

sha512sums="f835fc3ff872d356f57628e2475e1f52d4a9594e897801c6eb3e6ab70fc62439014fdf84c0a0e98597a7e29cb6f765bc6aaaf10bdb4acb2bc60c10e27a12bba2  openarena-f507a7a87a86878d4d3b72315b9d9fe8c255e1e3.tar.gz
3a50e099cc5a812ed88089c801793a9ae6cf7a6a200da016623bed4980a694d10d2870d472cbfeb36ca5426bf21b2078092791e1001206f6bd5c1a03de068704  openarena-b7e01f40c433a602987be2a95fb13385e163a3c4.tar.gz
9fa4dabe8a3428dc3cbec97f3b4d20c04569c14cdd00b60e6391c6dd61e310f246ff5ec97e7549821b3d6f5f94b140eb5411a2ddd83dafcad66937b7f78ea8dd  openarena-data-0.8.8.zip
2c074da36161509501d4fd5c8bd66d6c2e04803a12eff22ee235531314d355b97214bf83d3bb6095607467c66074f2366ac100af745e86ad7b457bec4dc5fa62  engine-aarch64.patch
add8418293c016283f89eb8ca252b2b7a63b1efc5b1e2a5646e8b73eb92b9b7e0560e7d253704b98dc69c32bdcf521ca0d1a20069a43a08d97eff9c1dc1a6161  gamecode-aarch64.patch"
# engine-aarch64.patch -rw-r--r-- 1.2 KiB View raw
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
From: Martin Michlmayr <tbm@cyrius.com>
Date: Tue, 30 Jun 2015 14:22:49 -0400
Subject: Add support for Aarch64 (ARM64)

Add support for Aarch64, the 64-bit ARM architecture.

Bug-Debian: https://bugs.debian.org/790668
Applied-upstream: (in ioquake3) https://github.com/ioquake/ioq3/commit/ebb69f699cd1392cbe7a865f9f51dbbecdd99b59
---
 Makefile                  | 4 ++++
 code/qcommon/q_platform.h | 2 ++
 2 files changed, 6 insertions(+)

diff --git a/Makefile b/Makefile
index 9732cc6..d36feaf 100644
--- a/Makefile
+++ b/Makefile
@@ -227,6 +227,10 @@ ifeq ($(PLATFORM),linux)
   else
   ifeq ($(ARCH),s390x)
     LIB=lib64
+  else
+  ifeq ($(ARCH),aarch64)
+    LIB=lib64
+  endif
   endif
   endif
   endif
diff --git a/code/qcommon/q_platform.h b/code/qcommon/q_platform.h
index 0ce4c29..ed3bfbb 100644
--- a/code/qcommon/q_platform.h
+++ b/code/qcommon/q_platform.h
@@ -175,6 +175,8 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 #define ARCH_STRING "sparc"
 #elif defined __arm__
 #define ARCH_STRING "arm"
+#elif defined __aarch64__
+#define ARCH_STRING "aarch64"
 #elif defined __cris__
 #define ARCH_STRING "cris"
 #elif defined __hppa__
# gamecode-aarch64.patch -rw-r--r-- 1.1 KiB View raw
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
diff --git a/Makefile b/Makefile
index b5e8f70..b9ebe92 100644
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,6 @@
 #
 
 COMPILE_PLATFORM=$(shell uname|sed -e s/_.*//|tr '[:upper:]' '[:lower:]'|sed -e 's/\//_/g')
-
 COMPILE_ARCH=$(shell uname -m | sed -e s/i.86/x86/ | sed -e 's/^arm.*/arm/')
 
 ifeq ($(COMPILE_PLATFORM),sunos)
@@ -302,9 +301,9 @@ endif
 
 INSTALL=install
 MKDIR=mkdir
-
 ifneq (,$(findstring "$(COMPILE_PLATFORM)", "linux" "gnu_kfreebsd" "kfreebsd-gnu" "gnu"))
   TOOLS_CFLAGS += -DARCH_STRING=\"$(COMPILE_ARCH)\"
+  CFLAGS += -DARCH_STRING=\"$(COMPILE_ARCH)\"
 endif
 
 ifneq (,$(findstring "$(PLATFORM)", "linux" "gnu_kfreebsd" "kfreebsd-gnu" "gnu"))
@@ -345,6 +344,10 @@ ifneq (,$(findstring "$(PLATFORM)", "linux" "gnu_kfreebsd" "kfreebsd-gnu" "gnu")
     # -ffast-math will cause the client to die with SIGFPE on Alpha
     OPTIMIZE = $(OPTIMIZEVM)
   endif
+  ifeq ($ARCH),aarch64)
+    OPTIMIZE = -O2 -march=armv8-a+crc+crypto -mcpu=cortex-a72.cortex-a53
+    OPTIMIZEVM = -O2 -march=armv8-a+crc+crypto -mcpu=cortex-a72.cortex-a53
+  endif
   endif
   endif