¿Cómo se realiza un OR lógico con el ifeqoperador make ?
por ejemplo, tengo (simplificado):
ifeq ($(GCC_MINOR), 4)
CFLAGS += -fno-strict-overflow
endif
ifeq ($(GCC_MINOR), 5)
CFLAGS += -fno-strict-overflow
endif
pero quisiera consolidar estas líneas.
(sí, sí, autotools, configure, etc, etc; demasiado torpe para la situación actual, me gustaría mantener todo dentro del Makefile aquí)
[opuesto lógico de esta pregunta: cómo usar una condición múltiple en la declaración 'ifeq' ]

ifdefoperadores, esta pregunta está relacionada con el encadenamiento deifeqoperadores, similar, pero las respuestas son definitivamente diferentes.ORoperador lógico paraifneq?Respuestas:
Como se encuentra en el archivo de la lista de correo,
se puede utilizar la función de filtro .
Por ejemplo
el filtro X, AB devolverá los de A, B que son iguales a X.
Una variación de esto es
donde se usa una comparación negativa con una cadena vacía (el filtro devolverá una cadena vacía si GCC_MINOR no coincide con los argumentos)
La desventaja de esos métodos es que los argumentos deben ser palabras sueltas.
fuente
ifneq (,$(filter 4 5,$(GCC_MINOR))):)if(flagA == TRUE || flagB == true), pero si lo hace$(filter true, $(flagA) $(flagB)y ambos son ciertos, obtieneifeq(true, true true)Puede introducir otra variable. No consolida ambos controles, pero al menos evita tener que meter el cuerpo dos veces:
fuente
No creo que haya una forma concisa y sensata de hacer eso, pero hay formas detalladas y sensatas (como la de Foo Bah) y formas concisas y patológicas, como
(que ejecutará el comando siempre que la cadena $ (GCC_MINOR) aparezca dentro de la cadena 4-5).
fuente
Aquí una variante más flexible: usa un shell externo, pero permite verificar condiciones arbitrarias:
fuente
Otro que puede considerar usar en este caso es:
En realidad yo uso el mismo en mi código porque no quiero mantener una por separado
configoConfigure.Pero tienes que usar un portátil, no anémico
make, como GNU make (gmake), y no el de Posixmake.Y no aborda la cuestión de la lógica
ANDyOR.fuente