Co to jest plik Makefile i jak działa w systemie Linux?

Co to jest plik Makefile i jak działa w systemie Linux

Si chcesz uruchomić lub zaktualizować zadanie, gdy niektóre pliki są aktualizowane, narzędzie make może być bardzo przydatne. Narzędzie make wymaga pliku makefile, który definiuje zestaw zadań do wykonania.

Wielu z was zna tę nazwę, ponieważ być może używali programu make do kompilowania programu z kodu źródłowego. Większość projektów open source używa programu make do kompilowania ostatecznego wykonywalnego pliku binarnego, który można zainstalować za pomocą make install.

Tym razem Zrozumiemy, jak ten typ plików działa w Linuksie.

Plik makefile Zasadniczo wyróżnia się cztery podstawowe typy deklaracji:

  • komentarze
  • Zmienne
  • jasne zasady.
  • ukryte zasady.

Reguły jawne mówią make, które pliki zależą od innych plików, a także polecenia wymagane do skompilowania określonego pliku.

Podczas gdy te niejawne są podobne do jawnych, ale z tą różnicą, że wskazują polecenia do wykonania, make używa raczej rozszerzeń plików do określenia, które polecenia mają zostać wykonane.

W tym przykładzie nie będziemy używać tych dwóch ostatnich, Zaczniemy tylko od wydrukowania klasycznego „Hello World” w terminalu.

Aby to zrobić, utworzymy pusty katalog o żądanej nazwie.

W tym przypadku nazwijmy to „przykład-make” i wewnątrz tego Stworzymy makefile o następującej treści:

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

Teraz uruchom plik, wpisując make wewnątrz katalogu, wynik będzie następujący:

make
echo "Hola Mundo"
Hola Mundo

Jak widać, kiedy plik makefile został wykonany, wyświetlane jest polecenie echo „Hello World”, po którym następuje wyjście rzeczywistego polecenia. Często tego nie chcemy. Aby ukryć to wyjście podczas uruchamiania make, po prostu dodaj „@” przed echo:

Praktycznym tego przykładem jest:

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

Teraz możemy ponownie uruchomić makefile. Wyjście właśnie to powinno pokazać:

make
Hola Mundo

To dość podstawowe rzeczy. Ale jak wiesz, makefile zawierają wiele rzeczy, z których wskazują sekwencje, których musisz przestrzegać.

Możemy dodać kilka prostych sekwencji do tego pliku.

Lo que zamierzamy zrobić, to edytować plik w następujący sposób:

#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

Podczas ponownego uruchamiania pliku Makefile, wykona tylko pierwszy cel. To dlatego, że tylko pierwszy cel w makefile jest domyślnym celem.

Aby wykonanie odbywało się po kolei konieczne jest zaznaczenie tego w pliku za pomocą „wszystkich”. Obowiązkiem „wszystkich” jest wywoływanie innych celów.

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

Możesz ponownie uruchomić make, a zobaczysz, że plik o nazwie „plik.txt”.

W ten sam sposób możliwe jest wykonanie celu wewnątrz pliku makefile, jest to powszechnie stosowane.

Zmodyfikujemy nasz plik i na końcu dodamy:
clean:
@ echo "Voy a eliminar el archivo txt creado”
rm archivo*.txt

Mogą ponownie uruchomić program make, który odtworzy plik txt. Jak zobaczysz, zrobi to samo, co poprzednio. Ale teraz wykonamy cel znajdujący się w pliku makefile.

Robimy to za pomocą:

make clean

Dzięki temu będziemy mogli dowiedzieć się czegoś całkiem podstawowego o plikach make i o tym, jak mogą być przydatne, jeśli chcemy zautomatyzować niektóre rzeczy.

Oczywiście możesz zbudować większy i bardziej złożony plik, ale to tylko przykład dla początkujących (w tym ja), którzy poznają, jak to działa.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   arg0s powiedział

    Artykuł jest bardzo interesujący. Jedno pytanie ... to, co nazywasz „zmiennymi”, nie byłoby funkcjami ani metodami?

    1.    David naranjo powiedział

      W rzeczywistości tak, przyjacielu, dzięki za sprostowanie.
      Twoje zdrowie! 🙂

  2.   Piotr powiedział

    Świetnie. Mam nadzieję, że będziesz dalej pogłębiać.

  3.   manuelalcocer powiedział

    Cóż, ani jedno, ani drugie, https://www.gnu.org/software/make/manual/make.html, są „celami”

  4.   manuelalcocer powiedział

    zasady

  5.   Sebas powiedział

    Miejmy nadzieję, że nadal będą wyjaśniać takie rzeczy, „wszechobecne i elementarne”, z dnia na dzień działania Linuksa, których nikt nigdy nie wyjaśnia z taką samą pasją, jak te „zalety i działanie” są głoszone.