Diálogo Generar Makefile
Este cuadro de diálogo se muestra al seleccionar la opción Generar Makefile... del menú Ejecutar. Esta opción solo está disponible para proyectos.
Un archivo Makefile es un archivo que contine las reglas de compilación de un programa para ser utilizadas por la herramienta make. Esta herramienta analiza las reglas y determina (comparando las fechas de modificación de los objetos y los fuentes y cabeceras de los que estos dependen) qué archivos debe compilar y qué archivos ya estan compilados, para luego construir el programa.
ZinjaI genera este archivo a partir de la configuración del proyecto y determina las dependencias analizando las directivas #include de los fuentes. Las opciones especifica que se pueden configurar en este diálogo son:
- Configuracion: Determina cual de las configuraciones de proyecto disponible se utilizará en la generación del Makefile.
- Reemplazar "${MING_DIR}" con: En las opciones de compilación y enlazado del proyecto se puede utilizar la palabra clave ${MINGW_DIR}, la cual será reemplazada por la ubicación real de la instalación de MinGW que ZinjaI esté utilizando. Esto se debe a que cuando se compila un proyecto los comandos de la compilación se ejecutan en el directorio del proyecto. Si el compilador necesita un archivo que esté en los directorios de MinGW (por ejemplo las cabeceras o librerías de wxWidgets, las cuales, en la distribución para Windows, fueron agregadas en un subdirectorio particular dentro de MinGW), este debe especificarse utilizando esta palabra clave. En esta opción puede establecer que ruta de MinGW se utilizará en la generación del Makefile (para reemplazar las ocurrencias); o introducir nuevamente "${MING_DIR}" para no realizar los reemplazos. En este último caso, se agrega en las primeras lineas del Makefile una variable denominada MINGW_DIR con el valor real utilizado por ZinjaI para la compilación.
- Expandir subcomandos: En las opciones Parametros extra para la compilacion y Parametros extra para el enlazado del Diálogo Opciones de Compilación y Ejecución de Proyecto Zinja permite introducir comandos entre acentos (caracter ASCII 96). Estos comandos se ejecutarán en la fase de preparación de la compilación y se reemplazarán por la salida de dichos programas. Cuando esta opcion esta activada ZinjaI generará el Makefile con los reemplazos necesarios ya efectuados (util para sistemas Windows, ya que su intérprete de comandos no realiza este reemplazo), mientras que si está desactivado se introduciran las opciones en el Makefile exáctamente como fueron definidas para el proyecto (sin realizar los reemplazos). Este tipo de prácticas es más frecuente en sistemas Linux ya que la mayoría de sus intérpretes de comandos soportan esta notación, la cual se utiliza para evitar introducir manualmente la lista de librerias, los directorios a incluir, las opciones de compilación, etc; utilizando en su lugar una llamada al programa pkg-config o alguna de sus alternativas específicas (como wx-config), los cuales imprimen en pantalla las opciones textuales que se le deben pasar al compilador para utilizar la librería especificada con la configuración particular de ese sistema.
- Destino: Especifica la ruta completa (carpeta y nombre de archivo) en la que se generará el archivo Makefile. Para el formato Por partes: solo objetos solo se considera el directorio del nombre de archivo que se ingrese, ya que el nombre se fuerza a Makefile.common
- Formato: El formato basico es el formato completo, en el que un archivo Makefile contiene toda la información necesaria para la compilación. Cuando se quieren generar archivos Makefile para todos los perfiles de configuración (por ejemplo, modos debug y release, o para distintos sistemas operativos), hay una gran parte del archivo (la correspondiente a la compilación de los objetos intermedios) que se repite en todos ellos. El formato por partes permite colocar la parte comun en un archivo Makefile.common y generar otros archivos makefile que contengan solo los fragmentos particulares de cada configuración y una referencia a Makefile.common. De esta forma, cuando se agregan, renombran o quitan archivos fuentes del proyecto solo es necesario regenerar la parte comun. Es decir, se regenera un solo archivo y los cambios repercuten en todos los Makefiles restantes.