summaryrefslogtreecommitdiffstats
path: root/main/qemu/APKBUILD
blob: abf3c855a790ced4a5e5a17b4185afedf0cd56b6 (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
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=qemu
pkgver=0.14.0
pkgrel=1
pkgdesc="QEMU is a generic machine emulator and virtualizer"
url="http://www.nongnu.org/qemu/"
arch="all"
license="GPL-2 LGPL-2"
makedepends="zlib-dev sdl-dev alsa-lib-dev gnutls-dev ncurses-dev"
depends=
install="qemu.pre-install"
subpackages="
$pkgname-arm
$pkgname-cris
$pkgname-m68k
$pkgname-microblaze
$pkgname-mips
$pkgname-mips64
$pkgname-mips64el
$pkgname-mipsel
$pkgname-ppc
$pkgname-ppc64
$pkgname-ppcemb
$pkgname-sh4
$pkgname-sh4eb
$pkgname-sparc
$pkgname-sparc64
$pkgname-x86_64
$pkgname-img
"
source="http://savannah.nongnu.org/download/$pkgname/$pkgname-$pkgver.tar.gz
	qemu-libm.patch
	qemu-vhost-fix-dirty-page-handling.patch
	80-kvm.rules
	"

prepare() {
	cd "$srcdir"/$pkgname-$pkgver
	for i in $source; do
		case $i in
		*.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
		esac
	done

	# avoid fdt till an updated release appears
	sed -i -e 's:fdt="yes":fdt="no":' configure
	# prevent docs to get automatically installed
	sed -i '/$(DESTDIR)$(docdir)/d' Makefile
	# Alter target makefiles to accept CFLAGS
	sed -i 's/^\(C\|OP_C\|HELPER_C\)FLAGS=/\1FLAGS+=/' \
		Makefile Makefile.target tests/Makefile
	sed -i 's/^VL_LDFLAGS=$/VL_LDFLAGS=-Wl,-z,execheap/' \
		Makefile.target
}

build() {
	cd "$srcdir"/$pkgname-$pkgver
	./configure --prefix=/usr \
		--audio-drv-list=oss,alsa,sdl \
		--audio-card-list=ac97,sb16,es1370,adlib \
		--disable-darwin-user \
		--disable-bsd-user \
		--disable-linux-user \
		--cc="${CC:-gcc}"

	make V=1 || return 1
}

package() {
	cd "$srcdir"/$pkgname-$pkgver
	make DESTDIR="$pkgdir" install || return 1
	install -Dm644 "$srcdir"/80-kvm.rules \
		"$pkgdir"/lib/udev/rules.d/80-kvm.rules
}

_subsys() {
	pkgdesc="Qemu $1 system emulator"
	depend="qemu"
	mkdir -p "$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/bin/qemu-system-$1 "$subpkgdir"/usr/bin/
}

arm() { _subsys arm; }
cris() { _subsys cris; }
m68k() { _subsys m68k; }
microblaze() { _subsys microblaze; }
mips() { _subsys mips; }
mips64() { _subsys mips64; }
mips64el() { _subsys mips64el; }
mipsel() { _subsys mipsel; }
ppc() { _subsys ppc; }
ppc64() { _subsys ppc64; }
ppcemb() { _subsys ppcemb; }
sh4() { _subsys sh4; }
sh4eb() { _subsys sh4eb; }
sparc() { _subsys sparc; }
sparc64() { _subsys sparc64; }
x86_64() { _subsys x86_64; }

img() {
	pkgdesc="QEMU command line tool for manipulating disk images"
	replaces="qemu"
	mkdir -p "$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/bin/qemu-img \
		"$pkgdir"/usr/bin/qemu-io \
		"$subpkgdir"/usr/bin/
}

md5sums="f9d145d5c09de9f0984ffe9bd1229970  qemu-0.14.0.tar.gz
70a4336c31600ce00838b056f0d08452  qemu-libm.patch
07ac0525259a8a5a98c441cbbdceceef  qemu-vhost-fix-dirty-page-handling.patch
66660f143235201249dc0648b39b86ee  80-kvm.rules"