Home | History | Annotate | Download | only in build
      1 # Copyright (C) 2007 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 # If you don't need to do a full clean build but would like to touch
     17 # a file or delete some intermediate files, add a clean step to the end
     18 # of the list.  These steps will only be run once, if they haven't been
     19 # run before.
     20 #
     21 # E.g.:
     22 #     $(call add-clean-step, touch -c external/sqlite/sqlite3.h)
     23 #     $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates)
     24 #
     25 # Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with
     26 # files that are missing or have been moved.
     27 #
     28 # Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory.
     29 # Use $(OUT_DIR) to refer to the "out" directory.
     30 #
     31 # If you need to re-do something that's already mentioned, just copy
     32 # the command and add it to the bottom of the list.  E.g., if a change
     33 # that you made last week required touching a file and a change you
     34 # made today requires touching the same file, just copy the old
     35 # touch step and add it to the end of the list.
     36 #
     37 # ************************************************
     38 # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
     39 # ************************************************
     40 
     41 # For example:
     42 #$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates)
     43 #$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates)
     44 #$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f)
     45 #$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
     46 
     47 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS)
     48 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS)
     49 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system)
     50 
     51 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libmediaplayerservice_intermediates)
     52 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libmedia_jni_intermediates)
     53 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libstagefright_omx_intermediates)
     54 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
     55 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/default.prop)
     56 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/default.prop)
     57 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/vendor)
     58 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/android-info.txt)
     59 $(call add-clean-step, find $(PRODUCT_OUT) -name "*.apk" | xargs rm)
     60 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
     61 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
     62 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/app/*)
     63 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
     64 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
     65 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
     66 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/*/LINKED)
     67 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
     68 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
     69 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
     70 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
     71 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
     72 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
     73 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
     74 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/lib/*.so)
     75 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/*.so)
     76 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/symbols/system/lib/*.so)
     77 $(call add-clean-step, rm -rf $(HOST_OUT_EXECUTABLES)/iself)
     78 $(call add-clean-step, rm -rf $(HOST_OUT_EXECUTABLES)/lsd)
     79 $(call add-clean-step, rm -rf $(HOST_OUT_EXECUTABLES)/apriori)
     80 $(call add-clean-step, rm -rf $(HOST_OUT_EXECUTABLES)/isprelinked)
     81 $(call add-clean-step, rm -rf $(HOST_OUT_EXECUTABLES)/soslim)
     82 
     83 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/lib/*.so)
     84 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/*.so)
     85 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/symbols/system/lib/*.so)
     86 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
     87 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
     88 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
     89 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/YouTube*)
     90 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
     91 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
     92 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
     93 
     94 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libstagefright_intermediates)
     95 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libstagefright_omx_intermediates)
     96 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/librtp_jni_intermediates)
     97 
     98 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/android-info.txt)
     99 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    100 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    101 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/app/*)
    102 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    103 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/JAVA_LIBRARIES/*)
    104 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/framework/*)
    105 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    106 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    107 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    108 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    109 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libbcinfo_intermediates)
    110 
    111 # ICS MR2!!!!!!!!!!!!
    112 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    113 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    114 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    115 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libbcinfo_intermediates)
    116 
    117 # WAIT, I MEAN JELLY BEAN!!!!!!!!!!!!
    118 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    119 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    120 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    121 
    122 # Changing where ro.carrier value is instantiated for system/build.prop
    123 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    124 
    125 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    126 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    127 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/app/*)
    128 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    129 
    130 # Now we switched to build against Mac OS X SDK 10.6
    131 $(call add-clean-step, rm -rf $(OUT_DIR)/host/darwin-x86/obj)
    132 
    133 $(call add-clean-step, rm -f $(OUT_DIR)/versions_checked.mk)
    134 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    135 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    136 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    137 
    138 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES)
    139 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES)
    140 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/EXECUTABLES)
    141 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/lib/*.o)
    142 
    143 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES)
    144 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES)
    145 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/EXECUTABLES)
    146 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/lib/*.o)
    147 
    148 # JB MR2!!!!!!!  AND *NO*, THIS WILL NOT BE K-WHATEVER.
    149 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    150 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    151 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    152 
    153 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    154 
    155 # Start of "K" development!
    156 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    157 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    158 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    159 
    160 # GCC 4.7
    161 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES)
    162 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES)
    163 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/EXECUTABLES)
    164 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/lib/*.o)
    165 
    166 # Wait, back to some JB development!
    167 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    168 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    169 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    170 
    171 # And on to KLP...
    172 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    173 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    174 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    175 
    176 # KLP now based off API 18.
    177 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    178 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    179 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    180 
    181 # Clean up around the /system/app -> /system/priv-app migration
    182 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    183 
    184 # Clean up old location of generated Java files from aidl
    185 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src)
    186 
    187 # Clean up ApplicationsProvider which is being removed.
    188 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/ApplicationsProvider_intermediates)
    189 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/priv-app/ApplicationsProvider.apk)
    190 
    191 # Clean up Moto OMA DM client which isn't ready yet.
    192 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/com.android.omadm.plugin.dev_intermediates)
    193 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/com.android.omadm.plugin.diagmon_intermediates)
    194 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/com.android.omadm.pluginhelper_intermediates)
    195 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/com.android.omadm.plugin_intermediates)
    196 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/com.android.omadm.service.api_intermediates)
    197 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/DMService_intermediates)
    198 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/SprintDM_intermediates)
    199 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/priv-app/DMService.apk)
    200 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/SprintDM.apk)
    201 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/omadm)
    202 
    203 # GCC 4.8
    204 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES)
    205 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES)
    206 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/EXECUTABLES)
    207 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/lib/*.o)
    208 
    209 # KLP I mean KitKat now API 19.
    210 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    211 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    212 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    213 
    214 # 4.4.1
    215 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    216 
    217 # 4.4.2
    218 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    219 
    220 # "L" and beyond.
    221 # Make libart the default runtime
    222 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    223 
    224 # Rename persist.sys.dalvik.vm.lib to allow new default
    225 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    226 
    227 # KKWT development
    228 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    229 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    230 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    231 
    232 # L development
    233 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    234 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    235 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    236 
    237 # L development
    238 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    239 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    240 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    241 
    242 # Add ro.product.cpu.abilist{32,64} to build.prop.
    243 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    244 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    245 
    246 # Unset TARGET_PREFER_32_BIT_APPS for 64 bit targets.
    247 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    248 
    249 # Adding dalvik.vm.dex2oat-flags to eng builds
    250 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    251 
    252 # Unset TARGET_PREFER_32_BIT_APPS for 64 bit targets.
    253 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    254 
    255 # Switching the x86 emulator over to a 64 bit primary zygote.
    256 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    257 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/default.prop)
    258 
    259 # Rename persist.sys.dalvik.vm.lib.1 to allow new default
    260 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    261 
    262 # Switching PRODUCT_RUNTIMES default for some devices
    263 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    264 
    265 # Switching to 32-bit-by-default host multilib build
    266 $(call add-clean-step, rm -rf $(HOST_OUT_INTERMEDIATES))
    267 
    268 # KKWT has become API 20
    269 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    270 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    271 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    272 
    273 # ims-common.jar added to BOOTCLASSPATH
    274 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/ETC/init.environ.rc_intermediates)
    275 
    276 # Change ro.zygote for core_64_bit.mk from zygote32_64 to zygote64_32
    277 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/default.prop)
    278 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/default.prop)
    279 
    280 # Adding dalvik.vm.dex2oat-Xms, dalvik.vm.dex2oat-Xmx
    281 # dalvik.vm.image-dex2oat-Xms, and dalvik.vm.image-dex2oat-Xmx
    282 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/default.prop)
    283 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/default.prop)
    284 
    285 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system)
    286 
    287 # Switch host builds to Clang by default
    288 $(call add-clean-step, rm -rf $(OUT_DIR)/host)
    289 
    290 # Adding dalvik.vm.dex2oat-filter
    291 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    292 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/default.prop)
    293 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/default.prop)
    294 
    295 # API 21?
    296 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    297 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    298 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    299 
    300 # API 21!
    301 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    302 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    303 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    304 
    305 # API 22!
    306 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    307 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    308 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    309 
    310 # Move to libc++ as the default STL.
    311 $(call add-clean-step, rm -rf $(OUT_DIR))
    312 
    313 # dex2oat instruction-set changes
    314 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    315 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/default.prop)
    316 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/default.prop)
    317 
    318 # Make GNU++11 the default standard version. This requires a cleanspec because
    319 # char16_t/char32_t will be real types now instead of typedefs, which means
    320 # an ABI change since the names will mangle differently.
    321 $(call add-clean-step, rm -rf $(OUT_DIR))
    322 
    323 # 5.1!
    324 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    325 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    326 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    327 
    328 # Remove ro.product.locale.language/country and add ro.product.locale
    329 # instead.
    330 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    331 
    332 # On to MNC
    333 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    334 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    335 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    336 
    337 # Adding dalvik.vm.usejit
    338 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    339 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/default.prop)
    340 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/default.prop)
    341 
    342 # Rename dalvik.vm.usejit to debug.dalvik.vm.usejit
    343 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    344 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/default.prop)
    345 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/default.prop)
    346 
    347 # Revert rename dalvik.vm.usejit to debug.dalvik.vm.usejit
    348 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    349 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/default.prop)
    350 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/default.prop)
    351 
    352 # Change from interpret-only to verify-at-runtime.
    353 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    354 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/default.prop)
    355 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/default.prop)
    356 
    357 # New York, New York!
    358 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    359 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    360 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    361 
    362 # 23 is becoming alive!!!
    363 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    364 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    365 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    366 
    367 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    368 
    369 # Change PLATFORM_VERSION from NYC to N
    370 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
    371 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    372 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
    373 
    374 # $(PRODUCT_OUT)/recovery/root/sdcard goes from symlink to folder.
    375 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/sdcard)
    376 
    377 # Add BOARD_USES_SYSTEM_OTHER_ODEX
    378 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*)
    379 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/priv-app/*)
    380 
    381 $(call add-clean-step, rm -rf $(TARGET_OUT_COMMON_INTERMEDIATES)/APPS/previous_overlays.txt)
    382 $(call add-clean-step, rm -rf $(TARGET_OUT_COMMON_INTERMEDIATES)/APPS/current_packages.txt)
    383 
    384 $(call add-clean-step, rm -rf $(HOST_OUT_INTERMEDIATES)/include)
    385 
    386 $(call add-clean-step, rm -rf $(HOST_OUT_COMMON_INTERMEDIATES)/APPS/*_intermediates/src)
    387 $(call add-clean-step, rm -rf $(HOST_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/*_intermediates/src)
    388 $(call add-clean-step, rm -rf $(TARGET_OUT_COMMON_INTERMEDIATES)/APPS/*_intermediates/src)
    389 $(call add-clean-step, rm -rf $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/*_intermediates/src)
    390 $(call add-clean-step, rm -rf $(TARGET_OUT_COMMON_INTERMEDIATES)/previous_gen_java_config.mk)
    391 $(call add-clean-step, rm -rf $(TARGET_OUT_COMMON_INTERMEDIATES)/current_gen_java_config.mk)
    392 
    393 $(call add-clean-step, rm -rf $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/*/package-res.apk)
    394 $(call add-clean-step, rm -rf $(TARGET_OUT_INTERMEDIATES)/APPS/*/package-res.apk)
    395 $(call add-clean-step, rm -rf $(TARGET_OUT_COMMON_INTERMEDIATES)/APPS/*_intermediates/src)
    396 $(call add-clean-step, rm -rf $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/*_intermediates/src)
    397 
    398 $(call add-clean-step, rm -rf $(HOST_OUT_TESTCASES))
    399 $(call add-clean-step, rm -rf $(TARGET_OUT_TESTCASES))
    400 
    401 $(call add-clean-step, rm -rf $(TARGET_OUT_ETC)/init)
    402 
    403 # Libraries are moved from {system|vendor}/lib to ./lib/framework, ./lib/vndk, etc.
    404 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib*)
    405 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/lib*)
    406 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/vendor/lib*)
    407 
    408 # Revert that move
    409 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib*)
    410 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/lib*)
    411 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/vendor/lib*)
    412 
    413 # Sanitized libraries now live in a different location.
    414 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/lib*)
    415 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/vendor/lib*)
    416 
    417 # Soong module variant change, remove obsolete intermediates
    418 $(call add-clean-step, rm -rf $(OUT_DIR)/soong/.intermediates)
    419 
    420 # ************************************************
    421 # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
    422 # ************************************************
    423