CleanSpec.mk revision c7e5040aa8b8e4da86814bf560346c7571e48087
14fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# Copyright (C) 2012 The Android Open Source Project
24fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor#
34fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# Licensed under the Apache License, Version 2.0 (the "License");
44fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# you may not use this file except in compliance with the License.
54fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# You may obtain a copy of the License at
64fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor#
74fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor#      http://www.apache.org/licenses/LICENSE-2.0
84fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor#
94fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# Unless required by applicable law or agreed to in writing, software
104fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# distributed under the License is distributed on an "AS IS" BASIS,
114fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
124fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# See the License for the specific language governing permissions and
134fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# limitations under the License.
144fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor#
154fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor
164fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# If you don't need to do a full clean build but would like to touch
174fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# a file or delete some intermediate files, add a clean step to the end
184fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# of the list.  These steps will only be run once, if they haven't been
194fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# run before.
204fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor#
214fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# E.g.:
224fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor#     $(call add-clean-step, touch -c external/sqlite/sqlite3.h)
234fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor#     $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates)
244fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor#
254fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with
264fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# files that are missing or have been moved.
274fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor#
284fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory.
294fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# Use $(OUT_DIR) to refer to the "out" directory.
304fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor#
314fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# If you need to re-do something that's already mentioned, just copy
324fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# the command and add it to the bottom of the list.  E.g., if a change
334fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# that you made last week required touching a file and a change you
344fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# made today requires touching the same file, just copy the old
3542f42c0dd5cf71fbfc6fa282d03079a902f6e342Eli Friedman# touch step and add it to the end of the list.
364fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor#
374fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# ************************************************
384fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
394fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# ************************************************
404fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor
414fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# For example:
424fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates)
434fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates)
444fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f)
454fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
464fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libmedia_native_intermediates)
474fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/lib/libmedia_native.so)
484fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor$(call add-clean-step, rm -rf $(PRODUCT_OUT)/symbols/system/lib/libmedia_native.so)
494fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/libmedia_native.so)
504fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libaudioflinger_intermediates)
514fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/libaudioflinger.so)
524fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# ************************************************
534fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
544fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor# ************************************************
554fe0c8e9c76b96e7aff21696a40dacc09d0237bcDouglas Gregor