함수 만들기

두 가지 이유로 제품/보드 구성에서 새로운 make 기능을 정의하지 마십시오.

  1. 이후에 Android.mk 파일에서 함수를 사용하게 되면 제품 구성을 Starlark로 변환할 때 더 이상 정의되지 않고, Android.mk 파일이 의도한 대로 동작하지 않을 수 있습니다.
  2. Makefile to Starlark 변환기는 한 번에 하나의 파일만 보고 함수 정의는 호출된 위치와 다른 파일에 있는 경우가 많습니다.

make 함수는 실제로 내장 $(call) 함수를 사용하여 평가되는 변수일 뿐이지만 Make to Starlark 변환기는 define 키워드로 정의된 모든 변수가 함수 정의라고 가정하고 이를 거부합니다. 따라서 함수는 다음과 같습니다.

define my-func
  Some text, arg1: $(1)
enddef
$(call my-func,foo)

일부 공통 기능을 핵심 빌드 시스템 Makefiles에 정의된 기능으로 자동 교체하는 스크립트를 제공합니다. build/bazel/mk2rbc 에서 찾을 수 있습니다.