Čo je Makefile a ako funguje v systéme Linux?

Čo je Makefile a ako funguje v systéme Linux

Si chcete spustiť alebo aktualizovať úlohu, keď sa aktualizujú určité súbory, môže byť užitočná pomôcka make. Obslužný program make vyžaduje súbor, makefile, ktorý definuje množinu úloh, ktoré sa majú vykonať.

Tento názov bude mnohým z vás znieť dobre, pretože ste možno použili program make na zostavenie programu zo zdrojového kódu. Väčšina open source projektov používa make na zostavenie konečného spustiteľného binárneho súboru, ktorý je možné nainštalovať pomocou make install.

Pri tejto príležitosti Poďme pochopiť, ako tento typ súborov funguje v systéme Linux.

Súbor makefile V zásade sa rozlišuje do štyroch základných typov vyhlásení:

  • komentáre
  • Premenné.
  • Výslovné pravidlá.
  • Implicitné pravidlá.

Explicitné pravidlá určujú, ktoré súbory závisia od iných súborov, ako aj príkazy potrebné na zostavenie konkrétneho súboru.

Implicitné sú podobné tým explicitným, ale s tým rozdielom, že označujú príkazy, ktoré sa majú vykonať, ale značka make pomocou prípon súborov určuje, ktoré príkazy sa majú vykonať.

V tomto príklade nebudeme používať tieto posledné dve, Začneme iba tlačením klasického „Hello World“ v termináli.

Za týmto účelom vytvoríme prázdny adresár s požadovaným menom.

V tomto prípade nazvime to „ukážka“ a v rámci toho Chystáme sa vytvoriť makefile s nasledujúcim obsahom:

#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
echo "Hola Mundo"

Teraz spustite súbor zadaním make do adresára, výstup bude:

make
echo "Hola Mundo"
Hola Mundo

Ako vidíte, keď bol makefile vykonaný, zobrazí sa príkazová ozvena „Hello World“, po ktorej bude nasledovať výstup skutočného príkazu. To často nechceme. Ak chcete potlačiť tento výstup pri spustení príkazu make, stačí pred ozvenu pridať znak „@“:

Praktickým príkladom je:

#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
@echo "Hola Mundo"

Teraz môžeme pokračovať v spustení makefile znova. Tento výstup by mal ukázať:

make
Hola Mundo

To je dosť základné. Ale ako viete, makefiles obsahujú veľa vecí, z ktorých označujú postupnosti, ktoré majú nasledovať.

Do tohto súboru môžeme pridať niekoľko jednoduchých sekvencií.

Čo urobíme, je upraviť súbor nasledovne:

#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
@echo "Hola Mundo"
crear_un_archivo_nuevo:
@ echo "Estoy creando un archivo.txt ..."
touch  archivo.txt

Pri opätovnom spustení súboru makefile týmto sa vykoná iba prvý cieľ. Je to preto, že predvoleným cieľom je iba prvý cieľ v makefile.

Vykonanie sa má vykonať postupne je potrebné to v súbore označiť „all“. Je zodpovednosťou „tam“ zavolať ďalšie ciele.

all: esta_es_una_variable crear_un_archivo_nuevo
#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
@echo "Hola Mundo"
crear_un_archivo_nuevo:
@ echo "Estoy creando un archivo.txt ..."
touch  archivo.txt

Môžete pokračovať v spustení značky a uvidíte, že v adresári je súbor s názvom „File.txt“.

Rovnakým spôsobom je možné byť schopný vykonať cieľ vo vnútri súboru makefile, je to všeobecne veľmi používané.

Chystáme sa upraviť náš súbor a na koniec pridáme nasledujúce:
clean:
@ echo "Voy a eliminar el archivo txt creado”
rm archivo*.txt

Môžete znova spustiť značku a znova vytvorí súbor txt. Ako uvidíte, urobí sa to isté ako predošlé obdobie. Teraz však vykonáme cieľ, ktorý je vo vnútri súboru makefile.

Robíme to pomocou:

make clean

Vďaka tomu sa môžeme naučiť niečo celkom základné o vytváraní súborov a o tom, ako môžu byť celkom užitočné, ak si chceme niektoré veci zautomatizovať.

Je zrejmé, že môžete vytvoriť väčší a zložitejší súbor, ale toto je iba príklad pre nováčikov (vrátane seba), ktorí spoznávajú, ako to funguje.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   arg0s dijo

    Veľmi zaujímavý článok. Otázka ... to, čo nazývate „premenné“, by neboli funkcie alebo metódy?

    1.    David naranjo dijo

      V skutočnosti áno, priateľu, ďakujem za opravu.
      Na zdravie! 🙂

  2.   pedro dijo

    Výborne, dúfam, že budete kopať ďalej.

  3.   manuelalkocer dijo

    No, ani jedna vec, ani druhá, https://www.gnu.org/software/make/manual/make.html, sú „ciele“

  4.   manuelalkocer dijo

    Pravidlá

  5.   sebas dijo

    Dúfajme, že budú aj naďalej vysvetľovať také veci, ktoré sú „všadeprítomné a elementárne“, týkajúce sa každodenného fungovania systému Linux, čo nikto nikdy nevysvetľuje s takou vášňou, ako je hlásané tieto „výhody a prevádzka“.