| # Copyright 2018 Google LLC |
| # |
| # 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 |
| # |
| # https://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. |
| |
| SHELL := $(shell which /bin/bash) |
| INSIDE_DOCKER := $(shell [[ -f /.dockerenv ]] && echo yes) |
| HAVE_QEMU := $(shell [[ -f /var/lib/binfmts/qemu-aarch64 ]] && echo yes) |
| HAVE_FIXATED_QEMU := $(shell [[ -f /var/lib/binfmts/qemu-aarch64 ]] && tail -n1 /var/lib/binfmts/qemu-aarch64) |
| |
| ifeq ($(ROOTDIR),) |
| $(error $$ROOTDIR IS NOT DEFINED -- don\'t forget to source setup.sh) |
| endif |
| |
| ifeq ($(INSIDE_DOCKER),) |
| ifeq ($(HAVE_QEMU),) |
| $(error qemu-user-static is either not installed or not configured properly.) |
| endif |
| |
| ifeq ($(HAVE_FIXATED_QEMU),) |
| $(warning Your version of qemu-user-static is too old and does not support) |
| $(warning fixated binaries. On Debian-based systems, you can run) |
| $(warning `build/fix_aarch64_binfmts.sh` to update your system binfmts) |
| $(warning to fixate the aarch64 interpreter in kernel space.) |
| $(warning ) |
| $(warning NOTE: This will modify the global state of your system!) |
| $(error Build cannot continue) |
| endif |
| endif |
| |
| include $(ROOTDIR)/build/preamble.mk |
| |
| precheck: |
| +make -f $(ROOTDIR)/build/Makefile validate-bootstrap-tarball |
| +make -f $(ROOTDIR)/build/Makefile all |
| |
| out-dirs: |
| @mkdir -p $(PRODUCT_OUT)/packages/core |
| @mkdir -p $(PRODUCT_OUT)/packages/bsp |
| @mkdir -p $(PRODUCT_OUT)/obj |
| @mkdir -p $(ROOTDIR)/cache |
| |
| all: rootfs home bootloader partition-table |
| |
| dist: package-images sign-images |
| |
| lintian: packages |
| lintian $(PRODUCT_OUT)/packages/core/*.deb $(PRODUCT_OUT)/packages/bsp/*.deb |
| |
| help: targets |
| targets:: |
| @echo "Targets available for building in this Makefile:" |
| @echo |
| |
| include $(ROOTDIR)/board/boot.mk |
| include $(ROOTDIR)/board/partition-table.mk |
| |
| include $(ROOTDIR)/build/img2simg.mk |
| include $(ROOTDIR)/build/busybox.mk |
| include $(ROOTDIR)/build/prereqs.mk |
| include $(ROOTDIR)/build/home.mk |
| include $(ROOTDIR)/build/rootfs.mk |
| include $(ROOTDIR)/build/docker.mk |
| include $(ROOTDIR)/build/packages.mk |
| include $(ROOTDIR)/build/multistrap.mk |
| |
| include $(ROOTDIR)/board/bootloader.mk |
| include $(ROOTDIR)/board/dist.mk |
| -include $(ROOTDIR)/board/sdcard.mk |
| -include $(ROOTDIR)/board/flashcard.mk |
| -include $(ROOTDIR)/board/recovery.mk |
| |
| clean:: |
| rm -rf $(ROOTDIR)/out |
| |
| .PHONY:: all help targets clean boot-targets |