1#! /bin/bash 2##CL Replace is-board-platform[-in-list] with is-board-platform[-in-list]2 3##CL 4##CL The regular is-board-platform[-in-list] functions are defined in 5##CL some product/board configuration makefiles, and sometimes also 6##CL used in Android.mk files. When the product/board configuration 7##CL is converted to starlark, the functions will no longer be defined 8##CL for the Android.mk files to use. Switch to using a version of 9##CL these functions that is defined inside the core build system 10##CL makefiles, so it will still be defined when the configuration 11##CL is in Starlark. 12##CL 13##CL The new function returns either an empty string or the matching 14##CL platform, while the old one returned either an empty string or true. 15##CL So now if statements are compared against an empty string instead of 16##CL true. 17##CL 18##CL Bug: 201477826 19##CL Test: treehugger 20declare -r files="$(grep -rlP '^[^#]*call +is-board-platform' --include '*.mk' --exclude 'utils_test.mk' --exclude 'utils_sample_usage.mk')" 21[[ -z "$files" ]] || sed -i -r -f <(cat <<"EOF" 22s/ifeq +\(\$\(call is-board-platform,(.*)\), *true\)/ifneq (,$(call is-board-platform2,\1))/ 23s/ifeq +\(\$\(call is-board-platform,(.*)\), *\)/ifeq (,$(call is-board-platform2,\1))/ 24s/ifneq +\(\$\(call is-board-platform,(.*)\), *true\)/ifeq (,$(call is-board-platform2,\1))/ 25s/ifeq +\(\$\(call is-board-platform-in-list,(.*)\), *true\)/ifneq (,$(call is-board-platform-in-list2,\1))/ 26s/ifeq +\(\$\(call is-board-platform-in-list,(.*)\), *\)/ifeq (,$(call is-board-platform-in-list2,\1))/ 27s/ifeq +\(\$\(call is-board-platform-in-list,(.*)\), *false\)/ifeq (,T) # TODO: remove useless check/ 28s/ifneq +\(\$\(call is-board-platform-in-list,(.*)\), *true\)/ifeq (,$(call is-board-platform-in-list2,\1))/ 29s/\$\(call is-board-platform,(.*)\)/$(call is-board-platform2,\1)/ 30EOF 31) $files 32