Loading Changes.md +26 −0 Original line number Diff line number Diff line # Build System Changes for Android.mk Writers ## `DIST_DIR`, `dist_goal`, and `dist-for-goals` {#dist} `DIST_DIR` and `dist_goal` are no longer available when reading Android.mk files (or other build tasks). Always use `dist-for-goals` instead, which takes a PHONY goal, and a list of files to copy to `$DIST_DIR`. Whenever `dist` is specified, and the goal would be built (either explicitly on the command line, or as a dependency of something on the command line), that file will be copied into `$DIST_DIR`. For example, ``` make $(call dist-for-goals,foo,bar/baz) ``` will copy `bar/baz` into `$DIST_DIR/baz` when `m foo dist` is run. #### Renames during copy Instead of specifying just a file, a destination name can be specified, including subdirectories: ``` make $(call dist-for-goals,foo,bar/baz:logs/foo.log) ``` will copy `bar/baz` into `$DIST_DIR/logs/foo.log` when `m foo dist` is run. ## `.PHONY` rule enforcement {#phony_targets} There are several new warnings/errors meant to ensure the proper use of Loading CleanSpec.mk +3 −0 Original line number Diff line number Diff line Loading @@ -512,6 +512,9 @@ $(call add-clean-step, rm -rf $(addsuffix /lib,\ # Remove strip.sh intermediates to save space $(call add-clean-step, find $(OUT_DIR) \( -name "*.so.debug" -o -name "*.so.dynsyms" -o -name "*.so.funcsyms" -o -name "*.so.keep_symbols" -o -name "*.so.mini_debuginfo.xz" \) -print0 | xargs -0 rm -f) # Clean up old ninja files $(call add-clean-step, rm -f $(OUT_DIR)/build-*-dist*.ninja) # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************ common/core.mk 0 → 100644 +56 −0 Original line number Diff line number Diff line # # 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 core/math.mk→common/math.mk +0 −0 File moved. View file core/strings.mk→common/strings.mk +0 −0 File moved. View file Loading
Changes.md +26 −0 Original line number Diff line number Diff line # Build System Changes for Android.mk Writers ## `DIST_DIR`, `dist_goal`, and `dist-for-goals` {#dist} `DIST_DIR` and `dist_goal` are no longer available when reading Android.mk files (or other build tasks). Always use `dist-for-goals` instead, which takes a PHONY goal, and a list of files to copy to `$DIST_DIR`. Whenever `dist` is specified, and the goal would be built (either explicitly on the command line, or as a dependency of something on the command line), that file will be copied into `$DIST_DIR`. For example, ``` make $(call dist-for-goals,foo,bar/baz) ``` will copy `bar/baz` into `$DIST_DIR/baz` when `m foo dist` is run. #### Renames during copy Instead of specifying just a file, a destination name can be specified, including subdirectories: ``` make $(call dist-for-goals,foo,bar/baz:logs/foo.log) ``` will copy `bar/baz` into `$DIST_DIR/logs/foo.log` when `m foo dist` is run. ## `.PHONY` rule enforcement {#phony_targets} There are several new warnings/errors meant to ensure the proper use of Loading
CleanSpec.mk +3 −0 Original line number Diff line number Diff line Loading @@ -512,6 +512,9 @@ $(call add-clean-step, rm -rf $(addsuffix /lib,\ # Remove strip.sh intermediates to save space $(call add-clean-step, find $(OUT_DIR) \( -name "*.so.debug" -o -name "*.so.dynsyms" -o -name "*.so.funcsyms" -o -name "*.so.keep_symbols" -o -name "*.so.mini_debuginfo.xz" \) -print0 | xargs -0 rm -f) # Clean up old ninja files $(call add-clean-step, rm -f $(OUT_DIR)/build-*-dist*.ninja) # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************
common/core.mk 0 → 100644 +56 −0 Original line number Diff line number Diff line # # 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