Instead of looking at `dist` and DIST_DIR directly in the Kati Build step, always write out information about every call to dist, then create the rules in another ckati run. So instead of having: dist: <goal> -> <dist> -> <output> \______________↑ nodist: <goal> -----------> <output> Always use another phony target in the Kati Build step: <goal> ---> <output> \----> _dist_<goal> Then in the packaging step (which is much faster), choose between dist and no dist: dist: _dist_<goal> -> <dist> -> <output> nodist: _dist_<goal> Bug: 117463001 Test: m dist Change-Id: Ic96bb6356740300dd3113f6ed699e6a619360c40gugelfrei-debug
parent
7ddc50a066
commit
78c40be560
@ -0,0 +1,45 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
# From the Android.mk pass:
|
||||
DIST_GOAL_OUTPUT_PAIRS :=
|
||||
DIST_SRC_DST_PAIRS :=
|
||||
include $(KATI_PACKAGE_MK_DIR)/dist.mk
|
||||
|
||||
$(foreach pair,$(DIST_GOAL_OUTPUT_PAIRS), \
|
||||
$(eval goal := $(call word-colon,1,$(pair))) \
|
||||
$(eval output := $(call word-colon,2,$(pair))) \
|
||||
$(eval .PHONY: _dist_$$(goal)) \
|
||||
$(if $(call streq,$(DIST),true),\
|
||||
$(eval _dist_$$(goal): $$(DIST_DIR)/$$(output))))
|
||||
|
||||
define copy-one-dist-file
|
||||
$(2): $(1)
|
||||
@echo "Dist: $$@"
|
||||
rm -f $$@
|
||||
cp $$< $$@
|
||||
endef
|
||||
|
||||
ifeq ($(DIST),true)
|
||||
$(foreach pair,$(DIST_SRC_DST_PAIRS), \
|
||||
$(eval src := $(call word-colon,1,$(pair))) \
|
||||
$(eval dst := $(DIST_DIR)/$(call word-colon,2,$(pair))) \
|
||||
$(eval $(call copy-one-dist-file,$(src),$(dst))))
|
||||
endif
|
||||
|
||||
copy-one-dist-file :=
|
||||
DIST_GOAL_OUTPUT_PAIRS :=
|
||||
DIST_SRC_DST_PAIRS :=
|
@ -0,0 +1,37 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
# Create a default rule. This is unused currently, as the real default rule is
|
||||
# still in the Kati build step.
|
||||
.PHONY: _packaging_default_rule_
|
||||
_packaging_default_rule_:
|
||||
|
||||
ifndef KATI
|
||||
$(error Only Kati is supported.)
|
||||
endif
|
||||
|
||||
$(info [1/3] initializing packaging system ...)
|
||||
|
||||
.KATI_READONLY := KATI_PACKAGE_MK_DIR
|
||||
|
||||
include build/make/common/core.mk
|
||||
include build/make/common/strings.mk
|
||||
|
||||
$(info [2/3] including distdir.mk ...)
|
||||
|
||||
include build/make/packaging/distdir.mk
|
||||
|
||||
$(info [3/3] writing packaging rules ...)
|
Loading…
Reference in new issue