summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 676d8ed2c450bde275a51d5c7476ae34f8bf11fc (plain)
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# Maintainer: Darjan Krijan [https://disc-kuraudo.eu]

_target="spu"
_newlib_pkgver="1.20.0"
_gmp_pkgver="6.1.0"
_isl_pkgver="0.18"
_mpc_pkgver="1.0.3"
_mpfr_pkgver="3.1.4"
_pkgname="gcc"
pkgname="ps3-${_target}-${_pkgname}"
pkgver="9.5.0"
pkgrel=3
pkgdesc="GCC for cross-compiling to ${_target} (PS3 GameOS)"
arch=(x86_64 aarch64 powerpc64le powerpc64 powerpc riscv64)
url='https://gcc.gnu.org/'
license=(GPL LGPL)
makedepends=(patch python)
checkdepends=(dejagnu expect inetutils python-pytest tcl)
depends=(ps3-env ps3-spu-binutils)
options=(!emptydirs !strip staticlibs !lto)
source=(
	"https://ftp.gnu.org/gnu/${_pkgname}/${_pkgname}-${pkgver}/${_pkgname}-${pkgver}.tar.xz"
	"${_pkgname}-${pkgver}-ps3-${_target}.patch"
	"http://sourceware.org/pub/newlib/newlib-${_newlib_pkgver}.tar.gz"
	"newlib-${_newlib_pkgver}-ps3-${_target}.patch"
	"http://ftp.gnu.org/gnu/gmp/gmp-${_gmp_pkgver}.tar.bz2"
	"http://gcc.gnu.org/pub/gcc/infrastructure/isl-${_isl_pkgver}.tar.bz2"
	"http://ftp.gnu.org/gnu/mpc/mpc-${_mpc_pkgver}.tar.gz"
	"http://ftp.gnu.org/gnu/mpfr/mpfr-${_mpfr_pkgver}.tar.bz2"
)
sha256sums=(
	'27769f64ef1d4cd5e2be8682c0c93f9887983e6cfd1a927ce5a0a2915a95cf8f'
	'86d3dca49e0a8cf0d0b56619c19da2047c5b6bda939e4856f4de78e4866fd55b'
	'c644b2847244278c57bec2ddda69d8fab5a7c767f3b9af69aa7aa3da823ff692'
	'9ffcdfc74871b267d53b66e525162467ce248d89b77506bb8db2409f3d0b51ae'
	'498449a994efeba527885c10405993427995d3f86b8768d8cdf8d9dd7c6b73e8'
	'6b8b0fd7f81d0a957beb3679c81bbb34ccc7568d5682844d8924424a0dadcb1b'
	'617decc6ea09889fb08ede330917a00b16809b8db88c29c31bfbb49cbf88ecc3'
	'd3103a80cdad2407ed581f3618c4bed04e0c92d1cf771a65ead662cc397f7775'
)

source /opt/ps3dev/ps3toolchain.sh

_prefix="${PS3DEV}/${_target}"

prepare() {
	patch -p1 -d "newlib-${_newlib_pkgver}" < "${srcdir}/newlib-${_newlib_pkgver}-ps3-${_target}.patch"

	cd "${_pkgname}-${pkgver}"

	patch -p1 < "${srcdir}/${_pkgname}-${pkgver}-ps3-${_target}.patch"

	ln -s "${srcdir}/newlib-${_newlib_pkgver}/newlib" .
	ln -s "${srcdir}/newlib-${_newlib_pkgver}/libgloss" .

	ln -s "${srcdir}/gmp-${_gmp_pkgver}.tar.bz2" .
	ln -s "${srcdir}/isl-${_isl_pkgver}.tar.bz2" .
	ln -s "${srcdir}/mpc-${_mpc_pkgver}.tar.gz" .
	ln -s "${srcdir}/mpfr-${_mpfr_pkgver}.tar.bz2" .
}

build() {
	cd "${_pkgname}-${pkgver}"

	# symlinked in prepare(), just unpack
	./contrib/download_prerequisites

	mkdir -p "build-${_target}"
	cd "build-${_target}"

	unset CFLAGS CXXFLAGS LDFLAGS
	local _configure_flags=(
		--prefix="${_prefix}"
		--target="${_target}"

		--with-newlib
		--with-pic

		#--enable-languages="c,c++"
		--enable-languages="c"
		--enable-lto
		--enable-threads
		--enable-newlib-multithread
		--enable-newlib-hw-fp
		--enable-obsolete

		--disable-dependency-tracking
		--disable-libcc1
		--disable-libssp
		--disable-multilib
		--disable-nls
		--disable-shared
		--disable-win32-registry
	)
	../configure "${_configure_flags[@]}"

	make
}

check() {
	cd "${_pkgname}-${pkgver}/build-${_target}"

	LDFLAGS="" make --keep-going check |& tee -a "ps3-${_target}-${_pkgname}-check.log" || true
}

package() {
	cd "${_pkgname}-${pkgver}/build-${_target}"

	make DESTDIR="${pkgdir}" install -j1

	if [ -f "ps3-${_target}-${_pkgname}-check.log" ]; then
		cp "ps3-${_target}-${_pkgname}-check.log" "${pkgdir}/${_prefix}/"
	fi

	rm -f "${pkgdir}/${_prefix}/share/info/dir"
}