blob: ae394ccf02c0ed1ed7bcd35f0232105e74edf895 [file] [log] [blame]
# 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