| # |
| # Copyright (c) 2018, Google, Inc. All rights reserved |
| # |
| # 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. |
| # |
| |
| # |
| # This makefile contains rules for building QEMU for running Trusty. |
| # It is expected that it will be included by the project that uses QEMU |
| # and the caller will configure the following variables: |
| # |
| # QEMU_ROOT - Root of qemu project |
| # QEMU_BUILD_BASE - location that will be used to store temp files and |
| # build results. |
| # QEMU_ARCH - qemu arch to build |
| # QEMU_TARGET - targets to build, use comma to separate targets |
| # if multiple targets are specified. |
| # |
| # The following variable is returned to the caller: |
| # QEMU_BIN - resulting qemu image |
| # QEMU_BUILD_BASE - location that will be used to store temp files and |
| # build results. |
| # |
| # |
| |
| QEMU_BIN:=$(QEMU_BUILD_BASE)/$(QEMU_ARCH)-softmmu/qemu-system-$(QEMU_ARCH) |
| QEMU_MAKEFILE:=$(QEMU_BUILD_BASE)/Makefile |
| |
| $(QEMU_MAKEFILE): QEMU_ROOT:=$(QEMU_ROOT) |
| $(QEMU_MAKEFILE): QEMU_BUILD_BASE:=$(QEMU_BUILD_BASE) |
| $(QEMU_MAKEFILE): QEMU_TARGET:=$(QEMU_TARGET) |
| $(QEMU_MAKEFILE): |
| mkdir -p $(QEMU_BUILD_BASE) |
| #--with-git=true sets the "git" program to /bin/true - it essentially disables git |
| #--disable-git-update may look like what we want, but it requests manual intervention, not disables git |
| # TODO(b/148904400): Our prebuilt Clang can't build QEMU yet, and there is no |
| # prebuilts GCC, i.e. currently we can only build QEMU with host toolchain. On |
| # some hosts compiler will complain about stringop truncation. |
| cd $(QEMU_BUILD_BASE) && $(abspath $(QEMU_ROOT)/configure) \ |
| --target-list=$(QEMU_TARGET) --with-git=true --disable-werror |
| |
| $(QEMU_BIN): QEMU_BUILD_BASE:=$(QEMU_BUILD_BASE) |
| $(QEMU_BIN): $(QEMU_MAKEFILE) .PHONY |
| $(MAKE) -C $(QEMU_BUILD_BASE) |
| |
| # Add QEMU_BIN to the list of project dependencies |
| EXTRA_BUILDDEPS += $(QEMU_BIN) |
| |
| QEMU_ARCH:= |
| QEMU_ROOT:= |
| QEMU_TARGET:= |