Table of Contents
¿Que hace un Makefile?
¡Aprende a crear Archivos Makefile con este tutorial!
Make es una herramienta de generación o automatización de código, muy usada en los sistemas operativos tipo Unix/Linux.
Por defecto lee las instrucciones para generar el programa u otra acción del fichero Makefile. Las instrucciones escritas en este fichero se llaman dependencias. La herramienta make se usa para las labores de creación de fichero ejecutable o programa, para su instalación y/o ejecución.
¿Por qué usar Make?
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 mano, o si tenemos un montón de archivos no queremos recompilar todo el tiempo.
¿Cómo funciona el comando make?
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.
- 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.
¿En que proyectos son usados?
Los proyectos en donde más se usa son en los backend como por ejemplo, en el desarrollo de tus APIs, pero no quiere decir que no se pueda usar en otros para facilitar las tareas de ejecutar lineas de comando largas, por ejemplo, para poder tener una serie de comandos a ejecutar sin necesidad de los scripts dentro de un package.json
Instalación de CMake
Cmake en MacOS
brew install cmake
ShellScriptCmake en Linux
apt-get install cmake
ShellScriptCmake en Windows
Puedes entrar a la pagina Download CMake y descargar el instalador para tu arquitectura.
¿Que es un Makefile?
Contiene las órdenes que debe ejecutar la utilidad make, así como las dependencias entre los distintos módulos del proyecto. Este archivo de descripción es un fichero de texto.
La sintaxis de un fichero makefile
varía ligeramente de un sistema a otro, si bien las líneas básicas son similares
Sintaxis de un fichero Makefile
Comentarios
Los comentarios tienen como objeto clarificar el contenido del fichero makefile. Una línea del comentario tiene en su primera columna el símbolo #. Los comentarios tienen el ámbito de una línea.
# Esto es un comentario
ShellScriptÓrdenes
Se puede incluir cualquier orden válida del sistema operativo en el que se ejecute la utilidad make. Pueden incluirse cuantas órdenes se requieran como parte de una regla, cada una en una línea distinta, y como nota importante, recordamos que es imprescindible que cada línea empiece con un tabulador para que make interprete correctamente el fichero makefile.
target: dependencies
command
ShellScripttarget
El nombre del archivo o acción objetivo que se va a realizar.dependencies
Los archivos o objetivos en los que el objetivo depende.command
El comando que se ejecutará para construir el objetivo.
Crear un Makefile
- Crear un archivo
Makefile
- Agregar la acción
saludar: echo "Saludo"
En este casostart
es el target (el nombre de la acción que hay que llamar) yecho "Saludo"
que es el comando que se ejecutara al llamar el target - Ejecución
$ make saludar
En la linea de comandos de tu terminal se pone la palabramake
seguido de eltarget
que desea ejecutar en este casosaludar
- Resultado
Mostrara la linea del comando que se ejecuto y la salida de ese comandoecho "Saludo" Saludo
Ejemplo práctico de Makefile
bootstrap:
npm install
start:
npm run dev
test:
npm run test
build:
make test && npm run build
stage:
npm run stage
MakefileSi te ha gustado este artículo y te aporta valor te pido me sigas en mi:
🖥️ Youtube: https://www.youtube.com/@eightdev?sub_confirmation=1
🎵 Tik Tok: https://www.tiktok.com/@8devmx
✅ Facebook: https://www.facebook.com/8devmx/
📸 Instagram: https://www.instagram.com/8devmx/