125 lines
4.4 KiB
Python
125 lines
4.4 KiB
Python
#!/usr/bin/python
|
|
# -*- coding: utf-8 -*-
|
|
#
|
|
# Licensed under the GNU General Public License, version 3.
|
|
# See the file http://www.gnu.org/licenses/gpl.txt
|
|
|
|
from pisi.actionsapi import autotools
|
|
from pisi.actionsapi import pisitools
|
|
from pisi.actionsapi import shelltools
|
|
from pisi.actionsapi import get
|
|
|
|
NoStrip = ["/usr/share/qemu"]
|
|
|
|
shelltools.export("LC_ALL", "C")
|
|
|
|
# disable debug to prevent memory exhaustion by linker
|
|
# cflags = get.CFLAGS().replace("-fpie", "").replace("-fstack-protector", "").replace("-ggdb3 -funwind-tables -fasynchronous-unwind-tables", "")
|
|
cflags = get.CFLAGS().replace("-fpie", "").replace("-fstack-protector", "")
|
|
|
|
#extraldflags="-Wl,--build-id"
|
|
#buildldflags="VL_LDFLAGS=-Wl,--build-id"
|
|
extraldflags=""
|
|
buildldflags=""
|
|
|
|
soundDrivers = "pa,sdl,alsa"
|
|
builddirkvmtest = "kvm/test"
|
|
|
|
#targetKvmList = "i386-softmmu x86_64-softmmu i386-linux-user x86_64-linux-user"
|
|
targetListKvm = "x86_64-softmmu"
|
|
targetList = "i386-softmmu x86_64-softmmu arm-softmmu cris-softmmu m68k-softmmu \
|
|
mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu ppc-softmmu \
|
|
ppcemb-softmmu ppc64-softmmu sh4-softmmu sh4eb-softmmu sparc-softmmu \
|
|
i386-linux-user x86_64-linux-user alpha-linux-user arm-linux-user \
|
|
armeb-linux-user cris-linux-user m68k-linux-user mips-linux-user \
|
|
mipsel-linux-user ppc-linux-user ppc64-linux-user ppc64abi32-linux-user \
|
|
sh4-linux-user sh4eb-linux-user sparc-linux-user sparc64-linux-user \
|
|
sparc32plus-linux-user"
|
|
|
|
|
|
cfgParamsCommon = '--prefix=/usr \
|
|
--sysconfdir=/etc \
|
|
--mandir=/usr/share/man \
|
|
--cc="%s" \
|
|
--host-cc="%s" \
|
|
--extra-cflags="%s" \
|
|
--extra-ldflags="%s" \
|
|
--audio-drv-list="%s" \
|
|
--libexecdir=/usr/lib/qemu \
|
|
--disable-xen \
|
|
--disable-werror \
|
|
--localstatedir=/ \
|
|
--disable-strip' % (get.CC(), get.CC(), cflags, extraldflags, soundDrivers)
|
|
|
|
|
|
def printfancy(msg):
|
|
print
|
|
print "===== %s =====" % msg
|
|
print
|
|
|
|
def setup():
|
|
shelltools.system("sed -i 's/ memfd_create/ qemu_memfd_create/' util/memfd.c")
|
|
|
|
# disable fdt until dtc is in repo
|
|
# pisitools.dosed("configure", 'fdt="yes"', 'fdt="no"')
|
|
|
|
shelltools.export("CFLAGS", cflags)
|
|
shelltools.export("LDFLAGS", extraldflags)
|
|
|
|
# different build dir setups are not supported yet, so we build kvm by hand for now
|
|
printfancy("configuring kvm")
|
|
autotools.rawConfigure('%s \
|
|
--target-list="%s" \
|
|
' % (cfgParamsCommon, targetListKvm))
|
|
|
|
printfancy("building kvm")
|
|
autotools.make("V=1 -j1 config-host.h %s" % buildldflags)
|
|
autotools.make("V=1 %s" % buildldflags)
|
|
shelltools.copy("x86_64-softmmu/qemu-system-x86_64", "qemu-kvm")
|
|
autotools.make("clean")
|
|
|
|
|
|
# kvmtest stuff is not in upstream tarball anymore, but they may put it back, be ready
|
|
#printfancy("configuring kvmtest")
|
|
#shelltools.cd(builddirkvmtest)
|
|
#autotools.rawConfigure("--prefix=/usr \
|
|
# --kerneldir=../../kernel")
|
|
#shelltools.cd("../..")
|
|
|
|
|
|
printfancy("configuring qemu")
|
|
autotools.rawConfigure('%s \
|
|
--target-list="%s" \
|
|
--disable-kvm \
|
|
' % (cfgParamsCommon, targetList))
|
|
#--interp-prefix=%{_prefix}/qemu-%%M \
|
|
|
|
#--enable-system \
|
|
#--enable-linux-user \
|
|
|
|
def build():
|
|
shelltools.export("CFLAGS", cflags)
|
|
shelltools.export("LDFLAGS", extraldflags)
|
|
|
|
printfancy("building qemu")
|
|
autotools.make("V=1 -j1 config-host.h %s" % buildldflags)
|
|
autotools.make("V=1 %s" % buildldflags)
|
|
|
|
#printfancy("building kvmtest")
|
|
#autotools.make("-C %s V=1 kvmtrace" % builddirkvmtest)
|
|
|
|
def install():
|
|
autotools.rawInstall('DESTDIR="%s"' % get.installDIR())
|
|
|
|
# Install kvm-tools
|
|
#pisitools.dobin("kvm/test/kvmtrace")
|
|
#pisitools.dobin("kvm/test/kvmtrace_format")
|
|
#pisitools.dobin("kvm/kvm_stat")
|
|
pisitools.dobin("qemu-kvm")
|
|
shelltools.system("chmod u+s %s/usr/lib/qemu/qemu-bridge-helper" % get.installDIR())
|
|
pisitools.insinto("/etc/sasl2/", "qemu.sasl", "qemu.conf")
|
|
|
|
for i in ["pc-bios/README", "LICENSE", "README", "COPYING*"]:
|
|
pisitools.dodoc(i)
|
|
|