¿Qué es exactamente un archivo MAKE y cómo podemos crear uno?

8

Sé que esta es una pregunta tonta, pero como estoy intentando aprender Linux por mi cuenta, necesito ayuda de ustedes.

Encontré esta tarea en Internet y estoy tratando de resolverla, pero no entiendo exactamente cómo puedo usar makefiles en Linux y cómo puedo crearlos.

Supongamos que mi directorio de trabajo de impresión es /home/george/Documents

Quiero crear un archivo MAKE que haga lo siguiente:

  1. Muestra un mensaje como sigue "hola trabajo, hoy es sol". El sol viene del domingo. Entonces, debo usar el datecomando en este archivo make para mostrar solo las primeras tres letras.
  2. comprimir /etc/hostsen el /tmpuso gzip(probablemente aquí debería ser algo así como

    gzip -c SOURCE DESTINATION # ?? 
    

Salud

Adrian George
fuente
Los Makefiles están ahí para construir selectivamente archivos de objetos obsoletos a partir de archivos fuente, en una actividad de desarrollo de software. No tiene nada que ver con lo que harías.
enzotib

Respuestas:

8

para responder a su pregunta, no puedo darle una respuesta de una línea / párrafo porque se ocupa de cada cosa. Lea el primer enlace que tiene todo lo que necesita con ejemplos también.

Buen tutorial que puede explicar todo sobre make

rɑːdʒɑ
fuente
3
el primer enlace debería ser: mrbook.org/blog/tutorials/make
Shahryar Saljoughi
mrbook.org/blog/tutorials/make tutorial utiliza código de C ++ obsoleto y ya no compila. Vea esta pregunta para comprender y corregir.
David
Los enlaces están muertos.
ComputerScientist
2

Un Makefile se utiliza como un "mapa" para la compilación de programas en C. Funcionan con la makeutilidad y describen cómo se debe compilar / vincular un programa para que funcione correctamente una vez convertido en un archivo ejecutable. Para las tareas globales de UNIX / shell, está buscando scripts de shell, no makefiles :)

Consulte http://en.wikipedia.org/wiki/Make_(software)#Makefiles para obtener más información sobre makefiles y http://en.wikipedia.org/wiki/Shell_script para descubrir los scripts de shell.

Un script de shell básico para lo que está intentando hacer podría ser:

#!/bin/bash
echo "Hello world, today is $(date +%a)"
gzip -c SOURCE DESTINATION

Almacenar esto en un archivo y ejecutarlo utilizando el intérprete de comandos ( bash myscript.sh, sh myscript.sh, ...). También puede hacer que el script sea ejecutable usando:

chmod +x myscript.sh

Y luego ejecútelo con su intérprete predeterminado con:

./myscript.sh
John WH Smith
fuente
1
Estoy tratando de crear un archivo MAKE que no sea un script de shell.
Adrian George
Luego, debe desarrollar un programa en C que haga esto y compilarlo usando un Makefile, si lo desea. Los Makefiles no ejecutan tareas de Linux, guían la compilación de programas en C, es una cosa completamente diferente.
John WH Smith
1
@JohnWHSmith No hay nada especial en compilar programas en C. Los Makefiles se pueden usar para realizar una variedad de tareas. (Dicho esto, muchas tareas no son adecuadas para el uso de makefiles.)
Eliah Kagan
0

¿Por qué no crear un script de shell y luego crear un enlace simbólico que apunte al script de shell que creó? Coloque el enlace simbólico en un directorio que esté en la RUTA, de modo que pueda 'ejecutar' el enlace simbólico sin importar el directorio en el que se encuentre.

usuario544202
fuente