¿Por qué usar Make?
En este episodio te presento Make, una herramienta muy extendida en la programación UNIX y Linux y popularizada por lenguajes de programación como C o C++, con la que podrás compilar tus programas de ordenador o realizar tareas de desarrollo repetitivas (como ejecutar tests) de una forma más ergonómica.
Notas del episodio
Make es una herramienta de apoyo a la hora de compilar programas compuestos de múltiples archivos de código fuente.
La manera tradicional de compilar un código fuente escrito en C, o cualquier otro lenguaje, es invocando directamente al compilador, como GCC, por ejemplo, desde la terminal: gcc -o programa codigo.c
. Sin embargo, cuando un programa está compuesto de múltiples archivos de código fuente, la situación se puede volver un poco inmanejable si tenemos que invocar continuamente a GCC a mano, o si tenemos un montón de archivos no queremos recompilar todo el tiempo.
Otra situación en la que compilar a mano un código fuente tiene dependencias que deben ser especificadas a mano a la hora de compilar, como puede ser proporcionar una serie de parámetros extra a la hora de invocar el compilador para que tenga referencias a otras librerías y archivos de cabecera que vayamos a ejecutar. En estos casos, los comandos a ejecutar pueden ser verdaderamente largos y puede ser molesto de tener que teclear cada vez.
Make nos aporta las siguientes ventajas:
- Nos facilitará establecer una conexión entre los distintos archivos que conforman nuestro proyecto, tanto código objeto como código fuente.
- Se ocupará de hacer compilaciones incrementales: es decir, si detecta que no hemos modificado un archivo desde la última vez que lo compilamos, no lo compilará de nuevo.
- Facilidad a la hora de ejecutar comandos, porque con decir
make
, se invocarán múltiples acciones, parecido a los shell scripts.
Make es una herramienta UNIX disponible en sistemas operativos como GNU/Linux, macOS o BSD. En el caso de Windows, es posible usar herramientas como MSYS, Cygwin, o más recientemente, el subsistema Windows para Linux, para poder tener acceso a Make.
Nota en postscript: la variante de Make que se va a explicar en esta lista de reproducción usa el dialecto GNU Make, y puede que no funcione en otras herramientas Make que no sean de GNU, como BSD Make.