Android.mk 파일에서 보통 ifeq / ifneq / elif / else / endif 등을 이용해서 CFLAG에 대해 조건부 설정을 한다.

그런데 오늘 기존에 ifeq / endif를 이용해서 설정되어 있던 문장에 추가 조건을 or 해야하는 상황이 있었다.

나름 잘 알고 있다고 생각 했는데, or 를 어떻게 붙여야되나 막막했다. ㅠㅠ

그래서 찾아보니 직접적인 keyword는 없고 GNU make system의 filter function을 사용하면 되더라.


ifeq ($(SYMBOL), XXX)

XXX, YYY에 대한 공통 작업

endif

ifeq ($(SYMBOL), YYY)

XXX, YYY에 대한 공통작업

endif


위와같이 SYMBOL이 XXX나 YYY로 설정되어 있는 경우 공통 작업을 하도록 설정하고 싶다면 아래와 같이 수정할 수 있다.


ifneq ($(filter XXX YYY, $(SYMBOL)), )

XXX, YYY에 대한 공통작업

endif


위와 같이 filter function을 사용하면 간단하게 Android.mk 파일에서 or를 구현할 수 있다.


Posted by 세월의돌