aboutsummaryrefslogtreecommitdiffstats
path: root/community/limine/APKBUILD
blob: 4c816ef0b3c9d25f0b5dd38081f628457234f02f (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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# Maintainer: streaksu <streaksu@member.fsf.org>
pkgname=limine
pkgver=7.4.1
pkgrel=0
pkgdesc="Advanced, portable, multiprotocol bootloader"
url="https://limine-bootloader.org"
# only these supported
arch="aarch64 x86 x86_64 riscv64"
license="BSD-2-Clause"
install="
	$pkgname.post-install
	$pkgname-efi-updater.post-upgrade
	"
makedepends="
	clang
	lld
	llvm
	mtools
	nasm
	"
subpackages="
	$pkgname-doc
	$pkgname-dev
	$pkgname-cd:_cd
	$pkgname-pxe
	$pkgname-sys
	$pkgname-x86_32:_32
	$pkgname-efi-updater:updater
	"
source="https://github.com/limine-bootloader/limine/releases/download/v$pkgver/limine-$pkgver.tar.gz
	limine-efi-updater.sh
	limine-efi.conf
	"
options="!check" # no tests in tarball

case "$CARCH" in
aarch64|riscv64|x86_64)
	# can't build these on x86
	subpackages="
		$subpackages
		$pkgname-x86_64:_64
		$pkgname-aarch64:_64_arm
		$pkgname-riscv64:_64_riscv
		"
	_conf="--enable-all"
	;;
x86)
	_conf="
		--enable-bios
		--enable-bios-cd
		--enable-bios-pxe
		--enable-uefi-cd
		--enable-uefi-ia32
		"
	;;
esac

build() {
	./configure \
		--host=$CHOST \
		--prefix=/usr \
		$_conf
	make
}

package() {
	provides="$pkgname-enroll-config=$pkgver-r$pkgrel $pkgname-deploy=$pkgver-r$pkgrel"
	make DESTDIR="$pkgdir" install

	install -Dm644 "$srcdir"/limine-efi.conf -t "$pkgdir"/etc/limine/
	install -Dm755 "$srcdir"/limine-efi-updater.sh -t "$pkgdir"/usr/bin/
}

_cd() {
	pkgdesc="$pkgdesc (cd/efi files)"
	depends="$pkgname=$pkgver-r$pkgrel $pkgname-sys=$pkgver-r$pkgrel"

	amove usr/share/limine/limine-*-cd.bin
}

pxe() {
	pkgdesc="$pkgdesc (pxe executable)"
	depends="$pkgname=$pkgver-r$pkgrel $pkgname-sys=$pkgver-r$pkgrel"

	amove usr/share/limine/limine-bios-pxe.bin
}

sys() {
	pkgdesc="$pkgdesc (sys file)"
	depends="$pkgname=$pkgver-r$pkgrel"

	amove usr/share/limine/limine-bios.sys
}

_32() {
	pkgdesc="$pkgdesc (32-bit x86 uefi image)"
	depends="$pkgname=$pkgver-r$pkgrel"

	# renamed to be less vague
	provides="$pkgname-32=$pkgver-r$pkgrel"
	replaces="$pkgname-32"

	amove usr/share/limine/BOOTIA32.EFI
}

_64() {
	pkgdesc="$pkgdesc (64-bit x86 uefi image)"
	depends="$pkgname=$pkgver-r$pkgrel"

	# renamed to be less vague
	provides="$pkgname-64=$pkgver-r$pkgrel"
	replaces="$pkgname-64"

	amove usr/share/limine/BOOTX64.EFI
}

_64_arm() {
	pkgdesc="$pkgdesc (64-bit aarch64 uefi image)"
	depends="$pkgname=$pkgver-r$pkgrel"

	amove usr/share/limine/BOOTAA64.EFI
}

_64_riscv() {
	pkgdesc="$pkgdesc (64-bit riscv64 uefi image)"
	depends="$pkgname=$pkgver-r$pkgrel"

	amove usr/share/limine/BOOTRISCV64.EFI
}

updater() {
	pkgdesc="Limine auto-updater for EFI payload"

	amove etc/limine/limine-efi.conf
	amove usr/bin/limine-efi-updater.sh
}

sha512sums="
3e1a44ed5e642fc553450162a9fc8d945b475aedbedfc9239fb8a29f1c169e5f066bba0a43ee154a30f8d5084d82323d3b1e11ac84ab75bc0c34221e9715e7c8  limine-7.4.1.tar.gz
e4a92c519e5a17bae16ec31dcdc7faeefbbaf12531744839e4ce5335a347a15c3955ac2c36ddf848abc33651b2e9536d298356dac8f2c6a54f9a8dff34a69a0d  limine-efi-updater.sh
394c5067b850eb7b8b236c172471c6b9d152a4ef823d2f6b71396199fbe798638ef4031e60402fdfdfc9425aed0b7e119d15625fc0007622d35fbfadf9457cf8  limine-efi.conf
"