Refactor common makefile fragments
In preparation for setting up another Kati stage, move some common settings and tools into a common folder. This way it's a bit easier to see that they're safe to use, and that they shouldn't depend on anything outside of the common folder. Bug: 117463001 Test: build-aosp_arm.ninja is the same before and after Change-Id: Ief4b75a4dbe45b73ffd03bf32c60695c816d979d
This commit is contained in:
56
common/core.mk
Normal file
56
common/core.mk
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
#
|
||||||
|
# Copyright (C) 2018 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Only use ANDROID_BUILD_SHELL to wrap around bash.
|
||||||
|
# DO NOT use other shells such as zsh.
|
||||||
|
ifdef ANDROID_BUILD_SHELL
|
||||||
|
SHELL := $(ANDROID_BUILD_SHELL)
|
||||||
|
else
|
||||||
|
# Use bash, not whatever shell somebody has installed as /bin/sh
|
||||||
|
# This is repeated from main.mk, since envsetup.sh runs this file
|
||||||
|
# directly.
|
||||||
|
SHELL := /bin/bash
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Utility variables.
|
||||||
|
empty :=
|
||||||
|
space := $(empty) $(empty)
|
||||||
|
comma := ,
|
||||||
|
# Note that make will eat the newline just before endef.
|
||||||
|
define newline
|
||||||
|
|
||||||
|
|
||||||
|
endef
|
||||||
|
# The pound character "#"
|
||||||
|
define pound
|
||||||
|
#
|
||||||
|
endef
|
||||||
|
# Unfortunately you can't simply define backslash as \ or \\.
|
||||||
|
backslash := \a
|
||||||
|
backslash := $(patsubst %a,%,$(backslash))
|
||||||
|
|
||||||
|
# Prevent accidentally changing these variables
|
||||||
|
.KATI_READONLY := SHELL empty space comma newline pound backslash
|
||||||
|
|
||||||
|
# Basic warning/error wrappers. These will be redefined to include the local
|
||||||
|
# module information when reading Android.mk files.
|
||||||
|
define pretty-warning
|
||||||
|
$(warning $(1))
|
||||||
|
endef
|
||||||
|
|
||||||
|
define pretty-error
|
||||||
|
$(error $(1))
|
||||||
|
endef
|
@@ -17,36 +17,10 @@ $(warning )
|
|||||||
$(error done)
|
$(error done)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Only use ANDROID_BUILD_SHELL to wrap around bash.
|
BUILD_SYSTEM :=$= build/make/core
|
||||||
# DO NOT use other shells such as zsh.
|
BUILD_SYSTEM_COMMON :=$= build/make/common
|
||||||
ifdef ANDROID_BUILD_SHELL
|
|
||||||
SHELL := $(ANDROID_BUILD_SHELL)
|
|
||||||
else
|
|
||||||
# Use bash, not whatever shell somebody has installed as /bin/sh
|
|
||||||
# This is repeated from main.mk, since envsetup.sh runs this file
|
|
||||||
# directly.
|
|
||||||
SHELL := /bin/bash
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Utility variables.
|
include $(BUILD_SYSTEM_COMMON)/core.mk
|
||||||
empty :=
|
|
||||||
space := $(empty) $(empty)
|
|
||||||
comma := ,
|
|
||||||
# Note that make will eat the newline just before endef.
|
|
||||||
define newline
|
|
||||||
|
|
||||||
|
|
||||||
endef
|
|
||||||
# The pound character "#"
|
|
||||||
define pound
|
|
||||||
#
|
|
||||||
endef
|
|
||||||
# Unfortunately you can't simply define backslash as \ or \\.
|
|
||||||
backslash := \a
|
|
||||||
backslash := $(patsubst %a,%,$(backslash))
|
|
||||||
|
|
||||||
# Prevent accidentally changing these variables
|
|
||||||
.KATI_READONLY := SHELL empty space comma newline pound backslash
|
|
||||||
|
|
||||||
# Mark variables that should be coming as environment variables from soong_ui
|
# Mark variables that should be coming as environment variables from soong_ui
|
||||||
# as readonly
|
# as readonly
|
||||||
@@ -138,9 +112,9 @@ endif
|
|||||||
|
|
||||||
# Set up efficient math functions which are used in make.
|
# Set up efficient math functions which are used in make.
|
||||||
# Here since this file is included by envsetup as well as during build.
|
# Here since this file is included by envsetup as well as during build.
|
||||||
include $(BUILD_SYSTEM)/math.mk
|
include $(BUILD_SYSTEM_COMMON)/math.mk
|
||||||
|
|
||||||
include $(BUILD_SYSTEM)/strings.mk
|
include $(BUILD_SYSTEM_COMMON)/strings.mk
|
||||||
|
|
||||||
# Various mappings to avoid hard-coding paths all over the place
|
# Various mappings to avoid hard-coding paths all over the place
|
||||||
include $(BUILD_SYSTEM)/pathmap.mk
|
include $(BUILD_SYSTEM)/pathmap.mk
|
||||||
|
@@ -806,29 +806,13 @@ define echo-error
|
|||||||
echo -e "$(ESC_BOLD)$(1): $(ESC_ERROR)error:$(ESC_RESET)$(ESC_BOLD)" $(2) "$(ESC_RESET)" >&2
|
echo -e "$(ESC_BOLD)$(1): $(ESC_ERROR)error:$(ESC_RESET)$(ESC_BOLD)" $(2) "$(ESC_RESET)" >&2
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# $(1): message to print
|
|
||||||
define pretty-warning
|
|
||||||
$(shell $(call echo-warning,$(LOCAL_MODULE_MAKEFILE),$(LOCAL_MODULE): $(1)))
|
|
||||||
endef
|
|
||||||
|
|
||||||
# $(1): message to print
|
|
||||||
define pretty-error
|
|
||||||
$(shell $(call echo-error,$(LOCAL_MODULE_MAKEFILE),$(LOCAL_MODULE): $(1)))
|
|
||||||
$(error done)
|
|
||||||
endef
|
|
||||||
|
|
||||||
###########################################################
|
###########################################################
|
||||||
## Output the command lines, or not
|
## Legacy showcommands compatibility
|
||||||
###########################################################
|
###########################################################
|
||||||
|
|
||||||
ifeq ($(strip $(SHOW_COMMANDS)),)
|
|
||||||
define pretty
|
define pretty
|
||||||
@echo $1
|
@echo $1
|
||||||
endef
|
endef
|
||||||
else
|
|
||||||
define pretty
|
|
||||||
endef
|
|
||||||
endif
|
|
||||||
|
|
||||||
###########################################################
|
###########################################################
|
||||||
## Commands for including the dependency files the compiler generates
|
## Commands for including the dependency files the compiler generates
|
||||||
|
29
core/main.mk
29
core/main.mk
@@ -36,8 +36,6 @@ PWD := $(shell pwd)
|
|||||||
TOP := .
|
TOP := .
|
||||||
TOPDIR :=
|
TOPDIR :=
|
||||||
|
|
||||||
BUILD_SYSTEM := $(TOPDIR)build/make/core
|
|
||||||
|
|
||||||
# This is the default target. It must be the first declared target.
|
# This is the default target. It must be the first declared target.
|
||||||
.PHONY: droid
|
.PHONY: droid
|
||||||
DEFAULT_GOAL := droid
|
DEFAULT_GOAL := droid
|
||||||
@@ -48,7 +46,7 @@ droid_targets:
|
|||||||
|
|
||||||
# Set up various standard variables based on configuration
|
# Set up various standard variables based on configuration
|
||||||
# and host information.
|
# and host information.
|
||||||
include $(BUILD_SYSTEM)/config.mk
|
include build/make/core/config.mk
|
||||||
|
|
||||||
ifneq ($(filter $(dont_bother_goals), $(MAKECMDGOALS)),)
|
ifneq ($(filter $(dont_bother_goals), $(MAKECMDGOALS)),)
|
||||||
dont_bother := true
|
dont_bother := true
|
||||||
@@ -419,6 +417,19 @@ ifneq ($(PRODUCT_ENFORCE_RRO_TARGETS),)
|
|||||||
ENFORCE_RRO_SOURCES :=
|
ENFORCE_RRO_SOURCES :=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# Color-coded warnings including current module info
|
||||||
|
# $(1): message to print
|
||||||
|
define pretty-warning
|
||||||
|
$(shell $(call echo-warning,$(LOCAL_MODULE_MAKEFILE),$(LOCAL_MODULE): $(1)))
|
||||||
|
endef
|
||||||
|
|
||||||
|
# Color-coded errors including current module info
|
||||||
|
# $(1): message to print
|
||||||
|
define pretty-error
|
||||||
|
$(shell $(call echo-error,$(LOCAL_MODULE_MAKEFILE),$(LOCAL_MODULE): $(1)))
|
||||||
|
$(error done)
|
||||||
|
endef
|
||||||
|
|
||||||
subdir_makefiles_inc := .
|
subdir_makefiles_inc := .
|
||||||
FULL_BUILD :=
|
FULL_BUILD :=
|
||||||
|
|
||||||
@@ -492,6 +503,18 @@ $(info [$(call inc_and_print,subdir_makefiles_inc)/$(subdir_makefiles_total)] fi
|
|||||||
# All module makefiles have been included at this point.
|
# All module makefiles have been included at this point.
|
||||||
# -------------------------------------------------------------------
|
# -------------------------------------------------------------------
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------
|
||||||
|
# Use basic warning/error messages now that LOCAL_MODULE_MAKEFILE
|
||||||
|
# and LOCAL_MODULE aren't useful anymore.
|
||||||
|
# -------------------------------------------------------------------
|
||||||
|
define pretty-warning
|
||||||
|
$(warning $(1))
|
||||||
|
endef
|
||||||
|
|
||||||
|
define pretty-error
|
||||||
|
$(error $(1))
|
||||||
|
endef
|
||||||
|
|
||||||
# -------------------------------------------------------------------
|
# -------------------------------------------------------------------
|
||||||
# Enforce to generate all RRO packages for modules having resource
|
# Enforce to generate all RRO packages for modules having resource
|
||||||
# overlays.
|
# overlays.
|
||||||
|
Reference in New Issue
Block a user