본문 바로가기
안드로이드

[안드로이드] Android.mk 사용하는 이미 정의된 문법

by 호군 2012. 3. 5.
반응형

안드로이드에서 Android.mk 파일에서는 app을 어떻게 빌드할지를 기술합니다.
아래는 packages/apps/DeskClock/Android.mk 파일에 기술된 내용입니다.
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_STATIC_JAVA_LIBRARIES := android-support-v13

LOCAL_SRC_FILES := $(call all-java-files-under, src)

LOCAL_PACKAGE_NAME := DeskClock

LOCAL_OVERRIDES_PACKAGES := AlarmClock

LOCAL_SDK_VERSION := current

include $(BUILD_PACKAGE)

# Use the following include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))

이 Android.mk 파일을 보면 $(call ....) 이라는 구문이 있습니다.
이런 내용은 어디에 정의된 걸까요??

저는 (call all-makefiles-under) 라는 구문이 어디에 저장되어있는지 궁금해서 구글링을 해봤습니다.
all-makefiles-under는 아래 같이 간단하게 정의가 되어있습니다.
define all-makefiles-under
$(wildcard $(1)/*/Android.mk)
endef
wildcard가 정확히 무엇을 하는지 모르지만, 첫번째 인자로 넘어오는 경로의 하위에 있는 모든 Android.mk에 무언가를 한다는 것은 알 수가 있습니다.
wildcard character는 * 을 의미하는데.. 이와같지 않을까 생각합니다.

이 정의는 build/core/definitions.mk 에 정의되어있습니다. 더 많은 정보를 보시려면 이 파일에 가서 보셔야 합니다.

반응형