run phony makefile

phony - makefile windows



Makefile If-Then Else y Loops (4)

¿Puede alguien explicar cómo usar declaraciones if-then y para bucles en Makefiles? Parece que no puedo encontrar ninguna buena documentación con ejemplos.


Ustedes ven bucles muchas veces, pero generalmente no son necesarios. Aquí hay un ejemplo de cómo se puede realizar un bucle for sin recurrir al shell

LIST_OF_THINGS_TO_DO = do_this do_that $(LIST_OF_THINGS_TO_DO): run $@ > [email protected] SUBDIRS = snafu fubar $(SUBDIRS): cd $@ && $(MAKE)



Aquí hay un ejemplo si:

ifeq ($(strip $(OS)),Linux) PYTHON = /usr/bin/python FIND = /usr/bin/find endif

Tenga en cuenta que esto viene con una advertencia de que las diferentes versiones de Make tienen una sintaxis ligeramente diferente, ninguna de las cuales parece estar documentada muy bien.


Formularios condicionales

Sencillo

conditional-directive text-if-true endif

Moderadamente complejo

conditional-directive text-if-true else text-if-false endif

Mas complejo

conditional-directive text-if-one-is-true else conditional-directive text-if-true else text-if-false endif endif

Directivas condicionales

Si la sintaxis es igual

ifeq (arg1, arg2) ifeq ''arg1'' ''arg2'' ifeq "arg1" "arg2" ifeq "arg1" ''arg2'' ifeq ''arg1'' "arg2"

Si no es igual sintaxis

ifneq (arg1, arg2) ifneq ''arg1'' ''arg2'' ifneq "arg1" "arg2" ifneq "arg1" ''arg2'' ifneq ''arg1'' "arg2"

Si la sintaxis definida

ifdef variable-name

Si no se define la sintaxis

ifndef variable-name

Función foreach

foreach Función Sintaxis

$(foreach var, list, text)

Semántica de foreach
Para cada palabra separada en blanco en "lista", la variable nombrada por "var" se establece en esa palabra y se ejecuta el texto.