run configurar makefile

makefile - configurar - Hacer un error para ifeq: error de sintaxis cerca del token inesperado



makefile windows (2)

Además, si las instrucciones condicionales se utilizan en funciones definidas, como:

define myFunc ifeq (foo, bar) ... endif endef

En este caso, Make también lo tratará como un script de shell.

Este problema se puede resolver utilizando if-function en su lugar:

define myFunc $(if condition,then-part[,else-part]) endef

Estoy escribiendo un Makefile que hace coincidir las cadenas en un lugar, el código es como:

if test ...; / then / shell scripts... / fi ifeq ($(DIST_TYPE),nightly) shell scripts ... endif

Aquí el primero if es shell script, el segundo ifeq es condicional de GNU Make. Sin embargo el siguiente error genera:

ifeq (nocturno, nocturno)

/ bin / sh: -c: línea 0: error de sintaxis cerca del token inesperado `nightly, nightly ''

/ bin / sh: -c: línea 0: `ifeq (nightly nightly) ''

¿Que esta pasando aqui? Parece que Make está intentando llamar al shell.

Gracias.


Jugué alrededor del código y encontré que las declaraciones condicionales deberían escribirse sin sangría, y esto resolvió mi problema.

Si no hay sangría, Make la tratará como una directiva por sí misma; De lo contrario, es considerado como un script de shell.

Código de ejemplo

Incorrecto:

target: ifeq (foo, bar) ... endif

Correcto:

target: ifeq (foo, bar) ... endif