Los archivos complejos de gran complejidad pueden ser difíciles de leer y examinar. ¿Qué herramientas son buenas para visualizar o examinar un archivo gnu make?¿Hay alguna buena herramienta para examinar Makefiles?
Respuesta
No sé de una herramienta que puede dar sentido a un conjunto de archivos make. De hecho, puede ser casi imposible crear uno, ya que la mayoría de los grandes entornos de compilación basados en make son un alboroto de comandos aleatorios, una macro sustitución aterradora y un flujo de control enormemente dependiente del contexto.
Como un aparte, escuché cosas buenas acerca de SCons que estoy viendo porque estoy involucrado con un entorno de sistema que se ha convertido en una pesadilla de mantenimiento en sí mismo.
SCons es mi sistema de compilación favorito , pero tiene una gran ventaja. Puede escribir rápidamente un archivo make para ejecutar cualquier programa en un conjunto de archivos. SCons usa varios complementos para diferentes tareas de compilación, incluye complementos para compiladores comunes, pero en algunos casos puede que tenga que escribir los suyos propios. – mikerobi
He tenido mucho éxito con la opción --print-data-base (-p).
Combinado con --just-print (-n, --dry-run) y la redirección de stdout a un archivo crea un nuevo archivo make que contiene todas las reglas y variables en un formato genérico que puede resultar más fácil de comprender.
Con makefiles realmente malos he llegado al extremo de analizar esta salida en Perl para generar un nuevo sistema de compilación.
He intentado usar el visualizador de CPAN y he fallado. Entonces, escribí mi propio visualizador Makefile rápido y sucio.
Es posible que desee probarlo: http://github.com/vak/makefile2dot
Si pudiera haberte dado +10 lo habría hecho. Su solución funciona mejor que cualquiera de las soluciones de Perl publicadas. – synthesizerpatel
oh, gracias, me alegro de que haya ayudado :) – vak
@synthesizerpatel de alguna manera publicar una recompensa y aceptar vak's? – n611x007
- 1. Herramienta para depurar makefiles
- 2. ¿Existe alguna utilidad para validar makefiles?
- 3. ¿Alguna buena herramienta para resolver programas enteros en Linux?
- 4. ¿Hay alguna buena alternativa para Visio/PowerPoint?
- 5. ¿Hay alguna herramienta para actualizar Javadoc automáticamente?
- 6. ¿Hay alguna herramienta como mecanizar para Android?
- 7. ¿Hay alguna herramienta ORM para Haskell?
- 8. ¿Hay alguna herramienta como doxygen para XSLT?
- 9. ¿Alguna buena herramienta de traducción comunitaria para Android?
- 10. ¿Alguna buena herramienta para la generación de archivos MAKE?
- 11. ¿Hay una buena herramienta para las vistas previas de XSL?
- 12. ¿Hay alguna herramienta XSL Lint?
- 13. ¿Hay alguna buena documentación/libros/tutoriales para xUnit.NET?
- 14. ¿Hay alguna buena herramienta para refactorizar el código web de Perl?
- 15. ¿Hay alguna buena herramienta para encontrar estadísticas de uso de GUI, paneles desglosados y componentes?
- 16. ¿Hay alguna herramienta o proyecto para generar archivos AZW?
- 17. ¿Hay alguna herramienta para convertir Managed C++ a C++/CLI?
- 18. ¿Hay alguna herramienta que admita matemáticas discretas?
- 19. ¿hay alguna buena fuente de antipatrones?
- 20. buena herramienta para sangrar archivos de JavaScript
- 21. ¿Hay alguna herramienta que pueda incorporar CSS?
- 22. ¿Hay alguna herramienta de DRYer por ahí?
- 23. ¿Hay alguna buena alternativa a WebSVN?
- 24. ¿Hay alguna buena implementación genérica JPA DAO?
- 25. ¿Hay alguna herramienta que detecte GUID duplicados?
- 26. ¿Hay alguna herramienta uml en Ubuntu?
- 27. ¿Alguna vez hay una buena razón para usar Insertion Sort?
- 28. ¿Hay alguna buena biblioteca XPath para Delphi 2007 o superior?
- 29. ¿Alguna vez hay una buena razón para usar eval()?
- 30. ¿Hay alguna buena razón para usar Websockets fuera del navegador?
gato? ¿Menos? gvim? –
Por lo que vale, simplemente uso el Mk. Combo eyeball plus editor ... la mayoría de las personas escriben makefiles bastante similares y uno se acostumbra. Eso no es cierto para los archivos makefiles generados por la máquina, pero para esos probablemente deba comenzar con la entrada al generador. – dmckee
Puede usar make -d (y opcionalmente -n) para que imprima lo que está sucediendo, lo que a menudo es útil. –