Aunque este no fue el caso para usted, me encontré con el mismo mensaje de error con una diferente razón. Así que estoy respondiendo aquí también para que pueda ayudar a las personas en el futuro cuando encuentren el mensaje de error, pero la razón no es tan obvia como en su caso.
Aquí está un ejemplo de un mínimo de provocar la condición de error por el mero hecho de tener un archivo con un signo igual en su nombre coincide con el $(wildcard)
(obviamente aquí con fines de demostración estoy a juego sólo nombres de archivo con un =
). Estrictamente hablando, no importa qué método use para recuperar los nombres de la variable $(FILES)
.
FILES := $(wildcard ./*=*)
.PHONY: all
define foo
all: something-$(1)
something-$(1): $(1)
cat $$^ > [email protected]
endef
$(foreach goal,$(sort $(FILES)),$(eval $(call foo,$(goal))))
El problema parece ser la forma en que ocurre la expansión, en este caso y solo ocurrirá debido a la macro.
De todos modos, me quedé perplejo cuando terminé con este mensaje de error mientras que el archivo make en sí, también según el control de versión, no había cambiado. Hasta que caí en la cuenta de que debe haber alguna razón circunstancial para el problema entonces. Puede ayudar a la persona futura en busca de una respuesta.
¿Están esos espacios en el margen izquierdo en el archivo MAKE? ¿O pestañas? – Beta
Hay pestañas en makefile – user1284151