Como puede leer en the GNU make manual, el porcentaje actúa como un comodín. El primer argumento de patsubst
function forma el patrón. Cada elemento/palabra en el último argumento se compara con este patrón, y si coincide, se reemplaza con el segundo argumento. Si hay un símbolo de comodín (%) en el patrón, esto coincidirá con cualquier número de caracteres, y estos caracteres se copian en la cadena de reemplazo en el lugar del% en el segundo argumento.
En su ejemplo, el patrón es simplemente el símbolo comodín, por lo que coincidirá con cualquier palabra en el último argumento de la función, y esta palabra se copiará en la cadena de reemplazo (el segundo argumento) en el lugar del% .
Un ejemplo puede aclarar las cosas. Supongamos TEST_SUBDIRS
contiene dos nombres.
TEST_SUBDIRS := test1 test2
include $(patsubst %,$(src)/%/Make.tests, $(TEST_SUBDIRS))
Esto es equivalente a lo siguiente.
include $(src)/test1/Make.tests $(src)/test2/Make.tests
Un archivo MAKE se procesa secuencialmente, línea por línea. Las asignaciones de variables se "internalizan", y las instrucciones de inclusión hacen que los contenidos de otros archivos se inserten literalmente en esa ubicación después de la cual ese contenido se procesa como parte del archivo MAKE.
Un gráfico de dependencia se forma a partir de las reglas a medida que se leen, y después de que se procesa todo el archivo, se ejecutan las recetas necesarias para actualizar el objetivo solicitado.