me gustaría construir una regla como ésta en mi Makefile:hacer: ejecutar una acción para cada requisito
log: test_A test_B
./test_A >> [email protected]
./test_B >> [email protected]
pero test_A
y test_B
son parte de una variable $(TESTS)
.
Entonces, ¿es posible hacer una acción (aquí: llamar al programa) para cada prerrequisito en GNU/make?
Nota: How do I make a makefile rule execute its prerequisites? no resuelve completamente este problema, ya que se requiere el objetivo log
(make log
).
Gracias por su respuesta, se confirma lo que terminó con: '$ (prueba foreach, $ ^, $ (shell ./$(test) >> $ @)) ' – CJlano
Si esos son los comandos para su regla _log_, entonces' $ (shell ...) 'está subvirtiendo cosas: los comandos para la regla estarán vacíos , y las ejecuciones 'test_?' ocurrirán como un subproducto de descifrar los comandos (en lugar de suceder al ejecutar los comandos). Filosóficamente incorrecto, y más práctico, imposible de extender para detectar el error de uno de tus scripts 'test_?'. (Sin embargo, parece que desea marcar esta respuesta como aceptada ...) –
¿No hace este ciclo dos veces, una para test_A y una para test_B? Tengo un problema similar y el comportamiento es muy extraño. – Jaseem