Comment vérifier si une variable est égale à l'une des deux valeurs à l'aide de la si/ou/et les fonctions

Dans un GNU makefile, je voudrais définir une variable de sortie à une valeur (disons-le, "true") si une variable d'entrée est égale à l'une des deux valeurs et à une autre valeur ("false") quand il ne l'est pas.

Grâce à cette SORTE de réponse que j'ai appris sur le and et la or fonctions et peu de temps après que j'ai trouvé le if fonction. Ces fonctions semblent être disponibles dans ma version de la faire, donc je tiens à les utiliser. Je voudrais écrire quelque chose comme ça:

TEST_INPUT = `hostname`
TEST_OUTPUT = $(if $(or $(eq $(TEST_INPUT),hal9000),
                        $(eq $(TEST_INPUT),pipboy)),true,false)

Malheureusement je ne peux pas, parce que je ne pouvais pas trouver tout évident que la forme de la eq fonction. Je suis en mesure de réaliser ce que je veux à l'aide de la filter fonction:

TRUE_HOSTS = hal9000 pipboy
TEST_OUTPUT = $(if $(filter $(TEST_INPUT),$(TRUE_HOSTS)),true,false)

ou la subst fonction:

TEST_OUTPUT = $(if $(and $(subst hal9000,,$(TEST_INPUT)),
                         $(subst pipboy,,$(TEST_INPUT))),
                   false,true)

mais pour moi, il n'est pas agréable à regarder, ni un code lisible. Est-il plus proche du premier exemple (l'un à l'aide de n'existant pas eq fonction)? Peut-être que je n'attrape pas le but de la if, and et or fonctions à tous?