|
| 1 | + |
| 2 | +DEPENDS = "glib-2.0 zlib pixman gnutls dtc" |
| 3 | +LICENSE = "GPLv2" |
| 4 | +FILESEXTRAPATHS_prepend := "${THISDIR}/files:" |
| 5 | +LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \ |
| 6 | + file://COPYING.LIB;endline=24;md5=8c5efda6cf1e1b03dcfd0e6c0d271c7f" |
| 7 | + |
| 8 | +SRCREV = "b1aa9923432b55765d3dc3a93d8398783887233e" |
| 9 | +SRC_URI = "git://github.com/Xilinx/qemu.git;protocol=https \ |
| 10 | +" |
| 11 | + |
| 12 | +BBCLASSEXTEND = "native nativesdk" |
| 13 | +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" |
| 14 | +INHIBIT_PACKAGE_STRIP = "1" |
| 15 | + |
| 16 | +S = "${WORKDIR}/git" |
| 17 | + |
| 18 | +xilinx_qemu_prefix = "${base_prefix}/usr/xilinx" |
| 19 | + |
| 20 | +inherit autotools pkgconfig |
| 21 | + |
| 22 | +# Standard options: |
| 23 | +# --prefix=PREFIX install in PREFIX [$prefix] |
| 24 | +# --interp-prefix=PREFIX where to find shared libraries, etc. |
| 25 | +# use %M for cpu name [$interp_prefix] |
| 26 | +# --target-list=LIST set target list (default: build everything) |
| 27 | +# $(echo Available targets: $default_target_list | \ |
| 28 | +# fold -s -w 53 | sed -e 's/^/ /') |
| 29 | +# |
| 30 | +# Advanced options (experts only): |
| 31 | +# --source-path=PATH path of source code [$source_path] |
| 32 | +# --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix] |
| 33 | +# --cc=CC use C compiler CC [$cc] |
| 34 | +# --iasl=IASL use ACPI compiler IASL [$iasl] |
| 35 | +# --host-cc=CC use C compiler CC [$host_cc] for code run at |
| 36 | +# build time |
| 37 | +# --cxx=CXX use C++ compiler CXX [$cxx] |
| 38 | +# --objcc=OBJCC use Objective-C compiler OBJCC [$objcc] |
| 39 | +# --extra-cflags=CFLAGS append extra C compiler flags QEMU_CFLAGS |
| 40 | +# --extra-ldflags=LDFLAGS append extra linker flags LDFLAGS |
| 41 | +# --make=MAKE use specified make [$make] |
| 42 | +# --install=INSTALL use specified install [$install] |
| 43 | +# --python=PYTHON use specified python [$python] |
| 44 | +# --smbd=SMBD use specified smbd [$smbd] |
| 45 | +# --static enable static build [$static] |
| 46 | +# --mandir=PATH install man pages in PATH |
| 47 | +# --datadir=PATH install firmware in PATH$confsuffix |
| 48 | +# --docdir=PATH install documentation in PATH$confsuffix |
| 49 | +# --bindir=PATH install binaries in PATH |
| 50 | +# --libdir=PATH install libraries in PATH |
| 51 | +# --sysconfdir=PATH install config in PATH$confsuffix |
| 52 | +# --localstatedir=PATH install local state in PATH (set at runtime on win32) |
| 53 | +# --with-confsuffix=SUFFIX suffix for QEMU data inside datadir/libdir/sysconfdir [$confsuffix] |
| 54 | +# --enable-modules enable modules support |
| 55 | +# --enable-debug-tcg enable TCG debugging |
| 56 | +# --disable-debug-tcg disable TCG debugging (default) |
| 57 | +# --enable-debug-info enable debugging information (default) |
| 58 | +# --disable-debug-info disable debugging information |
| 59 | +# --enable-debug enable common debug build options |
| 60 | +# --enable-sparse enable sparse checker |
| 61 | +# --disable-sparse disable sparse checker (default) |
| 62 | +# --disable-strip disable stripping binaries |
| 63 | +# --disable-werror disable compilation abort on warning |
| 64 | +# --disable-stack-protector disable compiler-provided stack protection |
| 65 | +# --disable-sdl disable SDL |
| 66 | +# --enable-sdl enable SDL |
| 67 | +# --with-sdlabi select preferred SDL ABI 1.2 or 2.0 |
| 68 | +# --disable-gtk disable gtk UI |
| 69 | +# --enable-gtk enable gtk UI |
| 70 | +# --with-gtkabi select preferred GTK ABI 2.0 or 3.0 |
| 71 | +# --disable-virtfs disable VirtFS |
| 72 | +# --enable-virtfs enable VirtFS |
| 73 | +# --disable-vnc disable VNC |
| 74 | +# --enable-vnc enable VNC |
| 75 | +# --disable-cocoa disable Cocoa (Mac OS X only) |
| 76 | +# --enable-cocoa enable Cocoa (default on Mac OS X) |
| 77 | +# --audio-drv-list=LIST set audio drivers list: |
| 78 | +# Available drivers: $audio_possible_drivers |
| 79 | +# --block-drv-whitelist=L Same as --block-drv-rw-whitelist=L |
| 80 | +# --block-drv-rw-whitelist=L |
| 81 | +# set block driver read-write whitelist |
| 82 | +# (affects only QEMU, not qemu-img) |
| 83 | +# --block-drv-ro-whitelist=L |
| 84 | +# set block driver read-only whitelist |
| 85 | +# (affects only QEMU, not qemu-img) |
| 86 | +# --disable-xen disable xen backend driver support |
| 87 | +# --enable-xen enable xen backend driver support |
| 88 | +# --disable-xen-pci-passthrough |
| 89 | +# --enable-xen-pci-passthrough |
| 90 | +# --disable-brlapi disable BrlAPI |
| 91 | +# --enable-brlapi enable BrlAPI |
| 92 | +# --disable-vnc-tls disable TLS encryption for VNC server |
| 93 | +# --enable-vnc-tls enable TLS encryption for VNC server |
| 94 | +# --disable-vnc-sasl disable SASL encryption for VNC server |
| 95 | +# --enable-vnc-sasl enable SASL encryption for VNC server |
| 96 | +# --disable-vnc-jpeg disable JPEG lossy compression for VNC server |
| 97 | +# --enable-vnc-jpeg enable JPEG lossy compression for VNC server |
| 98 | +# --disable-vnc-png disable PNG compression for VNC server (default) |
| 99 | +# --enable-vnc-png enable PNG compression for VNC server |
| 100 | +# --disable-vnc-ws disable Websockets support for VNC server |
| 101 | +# --enable-vnc-ws enable Websockets support for VNC server |
| 102 | +# --disable-curses disable curses output |
| 103 | +# --enable-curses enable curses output |
| 104 | +# --disable-curl disable curl connectivity |
| 105 | +# --enable-curl enable curl connectivity |
| 106 | +# --disable-fdt disable fdt device tree |
| 107 | +# --enable-fdt enable fdt device tree |
| 108 | +# --disable-bluez disable bluez stack connectivity |
| 109 | +# --enable-bluez enable bluez stack connectivity |
| 110 | +# --disable-slirp disable SLIRP userspace network connectivity |
| 111 | +# --disable-kvm disable KVM acceleration support |
| 112 | +# --enable-kvm enable KVM acceleration support |
| 113 | +# --disable-rdma disable RDMA-based migration support |
| 114 | +# --enable-rdma enable RDMA-based migration support |
| 115 | +# --enable-tcg-interpreter enable TCG with bytecode interpreter (TCI) |
| 116 | +# --enable-system enable all system emulation targets |
| 117 | +# --disable-system disable all system emulation targets |
| 118 | +# --enable-user enable supported user emulation targets |
| 119 | +# --disable-user disable all user emulation targets |
| 120 | +# --enable-linux-user enable all linux usermode emulation targets |
| 121 | +# --disable-linux-user disable all linux usermode emulation targets |
| 122 | +# --enable-bsd-user enable all BSD usermode emulation targets |
| 123 | +# --disable-bsd-user disable all BSD usermode emulation targets |
| 124 | +# --enable-guest-base enable GUEST_BASE support for usermode |
| 125 | +# emulation targets |
| 126 | +# --disable-guest-base disable GUEST_BASE support |
| 127 | +# --enable-pie build Position Independent Executables |
| 128 | +# --disable-pie do not build Position Independent Executables |
| 129 | +# --fmod-lib path to FMOD library |
| 130 | +# --fmod-inc path to FMOD includes |
| 131 | +# --oss-lib path to OSS library |
| 132 | +# --cpu=CPU Build for host CPU [$cpu] |
| 133 | +# --enable-uuid enable uuid support |
| 134 | +# --disable-vde disable support for vde network |
| 135 | +# --enable-vde enable support for vde network |
| 136 | +# --disable-netmap disable support for netmap network |
| 137 | +# --enable-netmap enable support for netmap network |
| 138 | +# --disable-linux-aio disable Linux AIO support |
| 139 | +# --enable-linux-aio enable Linux AIO support |
| 140 | +# --disable-cap-ng disable libcap-ng support |
| 141 | +# --enable-cap-ng enable libcap-ng support |
| 142 | +# --disable-attr disables attr and xattr support |
| 143 | +# --enable-attr enable attr and xattr support |
| 144 | +# --disable-blobs disable installing provided firmware blobs |
| 145 | +# --enable-docs enable documentation build |
| 146 | +# --disable-docs disable documentation build |
| 147 | +# --disable-vhost-net disable vhost-net acceleration support |
| 148 | +# --enable-vhost-net enable vhost-net acceleration support |
| 149 | +# --enable-trace-backends=B Set trace backend |
| 150 | +# Available backends: $($python $source_path/scripts/tracetool.py --list-backends) |
| 151 | +# --with-trace-file=NAME Full PATH,NAME of file to store traces |
| 152 | +# Default:trace-<pid> |
| 153 | +# --disable-spice disable spice |
| 154 | +# --enable-spice enable spice |
| 155 | +# --enable-rbd enable building the rados block device (rbd) |
| 156 | +# --disable-libiscsi disable iscsi support |
| 157 | +# --enable-libiscsi enable iscsi support |
| 158 | +# --disable-libnfs disable nfs support |
| 159 | +# --enable-libnfs enable nfs support |
| 160 | +# --disable-smartcard-nss disable smartcard nss support |
| 161 | +# --enable-smartcard-nss enable smartcard nss support |
| 162 | +# --disable-libusb disable libusb (for usb passthrough) |
| 163 | +# --enable-libusb enable libusb (for usb passthrough) |
| 164 | +# --disable-usb-redir disable usb network redirection support |
| 165 | +# --enable-usb-redir enable usb network redirection support |
| 166 | +# --enable-lzo enable the support of lzo compression library |
| 167 | +# --enable-snappy enable the support of snappy compression library |
| 168 | +# --disable-guest-agent disable building of the QEMU Guest Agent |
| 169 | +# --enable-guest-agent enable building of the QEMU Guest Agent |
| 170 | +# --with-vss-sdk=SDK-path enable Windows VSS support in QEMU Guest Agent |
| 171 | +# --with-win-sdk=SDK-path path to Windows Platform SDK (to build VSS .tlb) |
| 172 | +# --disable-seccomp disable seccomp support |
| 173 | +# --enable-seccomp enables seccomp support |
| 174 | +# --with-coroutine=BACKEND coroutine backend. Supported options: |
| 175 | +# gthread, ucontext, sigaltstack, windows |
| 176 | +# --disable-coroutine-pool disable coroutine freelist (worse performance) |
| 177 | +# --enable-coroutine-pool enable coroutine freelist (better performance) |
| 178 | +# --enable-glusterfs enable GlusterFS backend |
| 179 | +# --disable-glusterfs disable GlusterFS backend |
| 180 | +# --enable-gcov enable test coverage analysis with gcov |
| 181 | +# --gcov=GCOV use specified gcov [$gcov_tool] |
| 182 | +# --disable-tpm disable TPM support |
| 183 | +# --enable-tpm enable TPM support |
| 184 | +# --disable-libssh2 disable ssh block device support |
| 185 | +# --enable-libssh2 enable ssh block device support |
| 186 | +# --disable-vhdx disables support for the Microsoft VHDX image format |
| 187 | +# --enable-vhdx enable support for the Microsoft VHDX image format |
| 188 | +# --disable-quorum disable quorum block filter support |
| 189 | +# --enable-quorum enable quorum block filter support |
| 190 | +# --disable-numa disable libnuma support |
| 191 | +# --enable-numa enable libnuma support |
| 192 | + |
| 193 | +#--disable-fdt: Cannot use if supporting arm-generic-fdt machine type |
| 194 | + |
| 195 | +QEMUS_BUILT = "aarch64-softmmu" |
| 196 | +QEMU_FLAGS = "--disable-docs --disable-sdl --disable-debug-info --disable-cap-ng \ |
| 197 | + --disable-libnfs --disable-libusb --disable-libiscsi --disable-usb-redir --disable-linux-aio \ |
| 198 | + --disable-guest-agent --disable-libssh --disable-vnc-png --disable-seccomp \ |
| 199 | + --disable-tpm --disable-numa --disable-glusterfs --disable-blobs \ |
| 200 | + --disable-virtfs --disable-xen --disable-curl --disable-attr --disable-curses --disable-iconv \ |
| 201 | + " |
| 202 | + |
| 203 | +# NOTE: Once --prefix is set, QEMU configure script automatically figures out adequate sysconfdir, |
| 204 | +# libexecdir and localstatedir based on the prefix directory; therefore, it is not necessary |
| 205 | +# to manually specify these directories. Using the global directory variables to specify |
| 206 | +# these directories will lead to shared file conflict with the upstream QEMU that resides in |
| 207 | +# /usr. |
| 208 | + |
| 209 | +do_configure() { |
| 210 | + ${S}/configure ${QEMU_FLAGS} --target-list="${QEMUS_BUILT}" --prefix=${xilinx_qemu_prefix} |
| 211 | +} |
| 212 | + |
| 213 | +FILES_${PN} = " \ |
| 214 | + /opt/zephyr-sdk \ |
| 215 | + " |
| 216 | + |
| 217 | +INSANE_SKIP_${PN} = "already-stripped" |
0 commit comments