1# Copyright (C) 2020 The Android Open Source Project 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14# 15 16# Package binary build of Trusty, QEMU, AOSP, and scripts for standalone use 17 18# Inputs: 19# QEMU_PACKAGE_ARCHIVE: output package archive to create (.zip or .tar.gz) 20# QEMU_PACKAGE_FILES: files and folders to include in the package archive 21# These files/folders must be valid make targets, as they will be included 22# as pre-requisites to the package zip. 23# QEMU_PACKAGE_EXTRA_FILES: additional files and folders to include in the 24# package archive, which are not make targets. These files must be created 25# by a target in QEMU_PACKAGE_FILES. 26 27QEMU_PACKAGE_LICENSE := $(BUILDDIR)/LICENSE 28 29ifeq (,$(QEMU_PREBUILTS)) 30QEMU_PACKAGE_LICENSE_FILES := \ 31 $(call FIND_EXTERNAL,qemu/LICENSE) \ 32 $(call FIND_EXTERNAL,qemu/COPYING) \ 33 $(call FIND_EXTERNAL,linux/COPYING) \ 34 $(call FIND_EXTERNAL,linux/LICENSES/preferred/GPL-2.0) \ 35 $(call FIND_EXTERNAL,linux/LICENSES/exceptions/Linux-syscall-note) \ 36 37else 38QEMU_PACKAGE_LICENSE_FILES := $(QEMU_PREBUILTS)/../NOTICE 39endif 40 41QEMU_PACKAGE_LICENSE_FILES += \ 42 $(call FIND_EXTERNAL,arm-trusted-firmware/docs/license.rst) \ 43 prebuilts/android-emulator/NOTICE \ 44 45# Some of these files might be missing 46QEMU_PACKAGE_LICENSE_FILES := $(wildcard $(QEMU_PACKAGE_LICENSE_FILES)) 47 48# TODO: Unify with SDK license construction when it lands 49$(QEMU_PACKAGE_LICENSE): LOCAL_DIR := $(GET_LOCAL_DIR) 50$(QEMU_PACKAGE_LICENSE): $(QEMU_PACKAGE_LICENSE_FILES) 51 @$(MKDIR) 52 @echo Generating QEMU package license 53 $(NOECHO)rm -f $@.tmp 54 $(NOECHO)cat $(LOCAL_DIR)/../LICENSE >> $@.tmp; 55 $(NOECHO)for license in $^; do \ 56 printf "\n-------------------------------------------------------------------\n" >> $@.tmp;\ 57 printf "Copied from $$license\n\n\n" >> $@.tmp;\ 58 cat "$$license" >> $@.tmp;\ 59 done 60 $(call TESTANDREPLACEFILE,$@.tmp,$@) 61 62QEMU_PACKAGE_FILES += $(QEMU_PACKAGE_LICENSE) 63 64ifneq (,$(filter %.zip,$(QEMU_PACKAGE_ARCHIVE))) 65$(QEMU_PACKAGE_ARCHIVE): BUILDDIR := $(BUILDDIR) 66$(QEMU_PACKAGE_ARCHIVE): QEMU_PACKAGE_EXTRA_FILES := $(QEMU_PACKAGE_EXTRA_FILES) 67$(QEMU_PACKAGE_ARCHIVE): $(QEMU_PACKAGE_FILES) 68 @$(MKDIR) 69 @echo Creating QEMU archive package 70 $(NOECHO)rm -f $@ 71 $(NOECHO)(cd $(BUILDDIR) && zip -q -u -r $@ $(subst $(BUILDDIR)/,,$^)) 72 $(NOECHO)(cd $(BUILDDIR) && zip -q -u -r $@ $(subst $(BUILDDIR)/,,$(QEMU_PACKAGE_EXTRA_FILES))) 73else 74 75ifneq (,$(filter %.tar.gz,$(QEMU_PACKAGE_ARCHIVE))) 76$(QEMU_PACKAGE_ARCHIVE): BUILDDIR := $(BUILDDIR) 77$(QEMU_PACKAGE_ARCHIVE): QEMU_PACKAGE_EXTRA_FILES := $(QEMU_PACKAGE_EXTRA_FILES) 78$(QEMU_PACKAGE_ARCHIVE): $(QEMU_PACKAGE_FILES) 79 @$(MKDIR) 80 @echo Creating QEMU archive package 81 $(NOECHO)rm -f $@ 82 $(NOECHO)(cd $(BUILDDIR) && tar -c -z -f $@ $(subst $(BUILDDIR)/,,$^) $(subst $(BUILDDIR)/,,$(QEMU_PACKAGE_EXTRA_FILES))) 83 84else 85$(error QEMU_PACKAGE_ARCHIVE must end in either .zip or .tar.gz) 86endif 87 88endif 89 90EXTRA_BUILDDEPS += $(QEMU_PACKAGE_ARCHIVE) 91 92QEMU_PACKAGE_CONFIG := 93QEMU_PACKAGE_FILES := 94QEMU_PACKAGE_EXTRA_FILES := 95QEMU_PACKAGE_LICENSE := 96QEMU_PACKAGE_LICENSE_FILES := 97QEMU_PACKAGE_ARCHIVE := 98