¿Cómo puedo solicitar el comando make
en el archivo Makefile para ejecutar recursivamente en todos los subdirectorios make
comandos (definidos en el archivo Makefile en los subdirectorios)?Marca recursiva en subdirectorios
Respuesta
- Leer Recursive Use of Make capítulo de GNU Make manual.
- Conozca Peter Miller Recursive Make Considered Harmful artículo.
- ...
- PROFIT !!!
P. S. Un fragmento de código de my answer a una pregunta diferente pero relacionada podría usarse como una aproximación aproximada.
@ eldar-abusalimov, el primer enlace que ha publicado asume que el archivo MAKE sabe cuales son las subcarpetas. Esto no siempre es cierto, y supongo que eso es lo que @tyranitar quisiera saber. En ese caso, una solución de este tipo puede hacer el trabajo: (Me tomó algún tiempo, pero necesitaba también)
SHELL=/bin/bash
all:
@for a in $$(ls); do \
if [ -d $$a ]; then \
echo "processing folder $$a"; \
$(MAKE) -C $$a; \
fi; \
done;
@echo "Done!"
Se podría lograr en Make puro: 'SUBDIRS: = $ (comodín * /.)'. Y luego iterar sobre 'SUBDIRS' e invocar una subfacturación. –
@Eldar Abusalimov: Suena bien. Estoy interesado, ¿podrías detallar un poco más y publicar un fragmento de muestra? (¿Qué quiere decir con 'iterar'?) – kebs
Me refiero a usar una solución, que he propuesto en mi otra respuesta: http://stackoverflow.com/a/11206700/545027 –
voy a presentar aquí mi solución particular. Supongamos que tenemos un directorio con muchos sub-directorios, todos ellos con su propio makefile:
root-dir\
+----subdir1
+----subdir2
...
+----subdirn
a continuación, sólo tienes que copiar en la raíz-dir este Makefile:
SUBDIRS = $(shell ls -d */)
all:
for dir in $(SUBDIRS) ; do \
make -C $$dir ; \
done
- 1. Forma no recursiva de obtener todos los archivos en un directorio y sus subdirectorios en Java
- 2. Fuentes de subdirectorios en Makefile
- 3. bucle de fiesta a través de todo el hallazgo de forma recursiva en subdirectorios
- 4. Comprobación recursiva usando Clearcase
- 5. Eliminar carpeta y todos los archivos/subdirectorios
- 6. Ignorando subdirectorios en .ackrc
- 7. crear subdirectorios en Ruby
- 8. Parar subdirectorios en Git?
- 9. Búsqueda recursiva de un directorio en Java
- 10. ¿Es esta implementación recursiva recursiva
- 11. Grep recursiva y el conde
- 12. ¿Cómo descomprime archivos de manera recursiva en un directorio y sus subdirectorios desde la línea de comandos de Unix?
- 13. archivos grep basados en la marca de tiempo
- 14. recursiva IO en Haskell
- 15. retorno en función recursiva
- 16. XML recursiva en Scala
- 17. función recursiva en bash
- 18. Selección recursiva en SQL
- 19. subdirectorios Agregando Load Path
- 20. ¿Cómo cargar todos los archivos de símbolos de forma recursiva desde una ruta determinada, incluidos los subdirectorios?
- 21. Favicon automático en subdirectorios y archivos
- 22. subdirectorios en el archivo Zip utilizando ZipOutputStream
- 23. .htaccess Opciones de archivo -Indicadores en subdirectorios
- 24. obtener todos los subdirectorios inmediatos en ruby
- 25. ¿Cómo hacer coincidir los subdirectorios en RewriteCond?
- 26. ¿Cómo incluir subdirectorios en Visual Studio?
- 27. CoffeeScript - orden de compilación en subdirectorios
- 28. llamada recursiva en C++ principal
- 29. Herencia prototípica recursiva en javascript?
- 30. Función recursiva anónima en Scala
también re: Hacer recursiva Considerado perjudicial: http://evbergen.home.xs4all.nl/nonrecursive-make.html –
@Mali que vale la pena leer, sin duda! He experimentado un poco sobre este tema hace mucho tiempo también, FYI: http://abusalimov.blogspot.ru/2009/12/yet-another-implementation-of-non.html –
@ wil93 ¡gracias por la edición propuesta! Agregué un enlace a otra respuesta que sugiere una solución similar a la tuya. –