blob: 2c15f86abc72f935e9a0718c2a64100ea9eec38d [file] [log] [blame]
// Copyright (C) 2020 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
cc_defaults {
name: "kvmtool-defaults",
cflags: [
"-D_FILE_OFFSET_BITS=64",
"-D_GNU_SOURCE",
"-DKVMTOOLS_VERSION=\"android\"",
"-Wall",
"-Wformat=2",
"-Winit-self",
"-Wmissing-declarations",
"-Wmissing-prototypes",
"-Wnested-externs",
"-Wno-system-headers",
"-Wold-style-definition",
"-Wredundant-decls",
"-Wsign-compare",
"-Wstrict-prototypes",
"-Wundef",
"-Wvolatile-register-var",
"-Wwrite-strings",
"-Wno-format-nonliteral",
// Needed because Android makes these an error by default.
"-Wno-unused-parameter",
"-Wno-pointer-arith",
],
local_include_dirs: [ "include" ],
arch: {
arm64: {
cflags: [
"-DCONFIG_ARM64",
"-DBUILD_ARCH=\"arm64\"",
"-DCONFIG_HAS_LIBFDT",
],
local_include_dirs: [
"arm/include",
"arm/aarch64/include"
],
},
x86_64: {
cflags: [
"-DCONFIG_X86",
"-DCONFIG_X86_64",
"-DBUILD_ARCH=\"x86_64\"",
],
local_include_dirs: [ "x86/include" ],
},
},
}
cc_library_static {
name: "libkvmtool_static",
defaults: ["kvmtool-defaults"],
srcs: [
"builtin-balloon.c",
"builtin-debug.c",
"builtin-help.c",
"builtin-list.c",
"builtin-stat.c",
"builtin-pause.c",
"builtin-resume.c",
"builtin-run.c",
"builtin-setup.c",
"builtin-stop.c",
"builtin-version.c",
"devices.c",
"disk/core.c",
"framebuffer.c",
"guest_compat.c",
"hw/rtc.c",
"hw/serial.c",
"ioport.c",
"irq.c",
"kvm-cpu.c",
"kvm.c",
"mmio.c",
"pci.c",
"term.c",
"vfio/core.c",
"vfio/pci.c",
"virtio/blk.c",
"virtio/scsi.c",
"virtio/console.c",
"virtio/core.c",
"virtio/net.c",
"virtio/rng.c",
"virtio/balloon.c",
"virtio/pci.c",
"disk/blk.c",
"disk/qcow.c",
"disk/raw.c",
"ioeventfd.c",
"net/uip/core.c",
"net/uip/arp.c",
"net/uip/icmp.c",
"net/uip/ipv4.c",
"net/uip/tcp.c",
"net/uip/udp.c",
"net/uip/buf.c",
"net/uip/csum.c",
"net/uip/dhcp.c",
"kvm-cmd.c",
"util/init.c",
"util/iovec.c",
"util/rbtree.c",
"util/threadpool.c",
"util/parse-options.c",
"util/rbtree-interval.c",
"util/strbuf.c",
"util/read-write.c",
"util/util.c",
"virtio/9p.c",
"virtio/9p-pdu.c",
"kvm-ipc.c",
"builtin-sandbox.c",
"virtio/mmio.c",
],
arch: {
arm64: {
cflags: [
"-DCONFIG_ARM64",
"-DBUILD_ARCH=\"arm64\"",
"-DCONFIG_HAS_LIBFDT",
],
local_include_dirs: [
"arm/include",
"arm/aarch64/include"
],
srcs: [
"arm/fdt.c",
"arm/gic.c",
"arm/gicv2m.c",
"arm/ioport.c",
"arm/kvm.c",
"arm/kvm-cpu.c",
"arm/pci.c",
"arm/timer.c",
"arm/pmu.c",
"arm/aarch64/arm-cpu.c",
"arm/aarch64/kvm-cpu.c",
"arm/aarch64/kvm.c",
"hw/cfi_flash.c",
],
static_libs: [ "libfdt", ],
},
x86_64: {
srcs: [
"hw/i8042.c",
"x86/boot.c",
"x86/cpuid.c",
"x86/interrupt.c",
"x86/ioport.c",
"x86/irq.c",
"x86/kvm.c",
"x86/kvm-cpu.c",
"x86/mptable.c",
"x86/bios.c", // depends on "bios-rom.h"
"x86/bios/bios-rom.S", // depends on "bios.bin"
// TODO: build "bios.bin", generate "bios-rom.h"
],
},
},
}
cc_binary {
name: "kvmtool",
defaults: ["kvmtool-defaults"],
srcs: [ "main.c" ],
static_libs: [ "libfdt", "libkvmtool_static" ],
}