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를 구현할 수 있다.