2013년 8월 7일 수요일

user_tags.mk


안드로이드 버전이 올라가면서 GRANDFATHERED_USER_MODULES
 
 
사라진 하다.
 
User_tags.mk 있던 건데 같은 폴더(android/build/core) 있는 base_rules.mk에서 쓰고 있었다.
 
 
ifneq ($(filter $(LOCAL_MODULE_TAGS),user),)
  ifeq ($(filter $(GRANDFATHERED_USER_MODULES),$(LOCAL_MODULE)),)
    $(warning *** Module name: $(LOCAL_MODULE))
    $(warning *** Makefile location: $(LOCAL_PATH))
    $(warning * )
    $(warning * Each module must use a LOCAL_MODULE_TAGS in its)
    $(warning * Android.mk. Possible tags declared by a module:)
    $(warning * )
    $(warning *     optional, debug, eng, tests, samples)
    $(warning * )
    $(warning * If the module is expected to be in all builds)
    $(warning * of a product, then it should use the)
    $(warning * "optional" tag: )
    $(warning * )
    $(warning *    Add "LOCAL_MODULE_TAGS := optional" in the)
    $(warning *    Android.mk for the affected module, and add)
    $(warning *    the LOCAL_MODULE value for that component)
    $(warning *    into the PRODUCT_PACKAGES section of product)
    $(warning *    makefile(s) where it's necessary, if)
    $(warning *    appropriate.)
    $(warning * )
    $(warning * If the component should be in EVERY build of ALL)
    $(warning * products, then add its LOCAL_MODULE value to the)
    $(warning * PRODUCT_PACKAGES section of)
    $(warning * build/target/product/core.mk)
    $(warning * )
    $(error user tag detected on new module - user tags are only supported on legacy modules)
  endif
endif
 
 
 
 
filter : $(filter pattern...,text)
  * 공백으로 분리된 내용의 text에서 pattern 맞는 내용만 추려내라.
 
 
 
User 모드 빌드인 경우(optional, tests, eng, debug, samples 들이 아닌) 로컬 모듈에 사용자 모듈과
이름이 같은 놈이 있으면 안된다는 코드로 보인다.
 
 상위 버전에서는
 
이렇게 바뀌어 버렸다.
 
User_tags.mk 검색되는 곳이 base_rules.mk밖에 없어서 컴파일을 위하여 user_tags.mk 만들었다기
보다 user 모듈 필터링해서 warning 띄워주기 위해서 만든 같다. 그렇게 보면 안드로이드 4.2 이상에서
찾는게 당연한 건지도.
 
새로 모듈을 만들 때는 PRODUCT_PACKAGES에만 들어가게 하면 어떤 상황에서든 탑재가 되도록 보인다.

댓글 없음:

댓글 쓰기

국정원의 댓글 공작을 지탄합니다.

UPBIT is a South Korean company, and people died of suicide cause of coin investment.

 UPBIT is a South Korean company, and people died of suicide cause of coin. The company helps the people who control the market price manipu...