ตามที่พบในที่เก็บรายชื่ออีเมล
สามารถใช้filterฟังก์ชันนี้ได้
ตัวอย่างเช่น
ifeq ($(GCC_MINOR),$(filter $(GCC_MINOR),4 5))
filter X, A Bจะส่งคืนค่า A, B ที่เท่ากับ X หมายเหตุแม้ว่าจะไม่เกี่ยวข้องกับตัวอย่างข้างต้น แต่เป็นการดำเนินการ XOR เช่นถ้าคุณมีสิ่งที่ต้องการแทน:
ifeq (4, $(filter 4, $(VAR1) $(VAR2)))
แล้วทำเช่นmake VAR1=4 VAR2=4กรองจะกลับซึ่งไม่เท่ากับ4 44
รูปแบบที่ดำเนินการ OR แทนคือ:
ifneq (,$(filter $(GCC_MINOR),4 5))
ซึ่งใช้การเปรียบเทียบเชิงลบกับสตริงว่างแทน ( filterจะส่งคืนสตริงว่างหากGCC_MINORไม่ตรงกับอาร์กิวเมนต์) การใช้VAR1/ VAR2ตัวอย่างจะมีลักษณะดังนี้:
ifneq (, $(filter 4, $(VAR1) $(VAR2)))
ข้อเสียของวิธีการเหล่านั้นคือคุณต้องแน่ใจว่าอาร์กิวเมนต์เหล่านี้จะเป็นคำเดียวเสมอ ตัวอย่างเช่น if VAR1is 4 fooผลลัพธ์ตัวกรองยังคงเป็น4และifneqนิพจน์ยังคงเป็นจริง ถ้าVAR1เป็น4 5ผลการกรองจะเป็น4 5และifneqนิพจน์เป็นจริง
ทางเลือกหนึ่งที่ง่ายคือการดำเนินการเดียวกันทั้งในifeqและelse ifeqสาขาเช่นนี้:
ifeq ($(GCC_MINOR),4)
    @echo Supported version
else ifeq ($(GCC_MINOR),5)
    @echo Supported version
else
    @echo Unsupported version
endif