Apa itu Makefile dan bagaimana cara kerjanya di Linux?

Apa itu Makefile dan bagaimana cara kerjanya di dalam Linux

Si ingin menjalankan atau memperbarui tugas ketika file tertentu diperbarui, utilitas make bisa berguna. Utilitas make memerlukan file, makefile, yang mendefinisikan sekumpulan tugas yang akan dijalankan.

Nama ini akan terdengar familiar bagi banyak dari Anda karena Anda mungkin pernah menggunakan make untuk mengkompilasi program dari kode sumber. Sebagian besar proyek open source menggunakan make untuk mengompilasi biner akhir yang dapat dieksekusi, yang dapat diinstal menggunakan make install.

Kali ini mari kita pahami bagaimana jenis file ini bekerja di dalam Linux.

File makefile Ini pada dasarnya dibedakan menjadi empat tipe dasar pernyataan:

  • Komentar
  • Variabel.
  • Aturan eksplisit.
  • Aturan implisit.

Aturan Eksplisit memberi tahu membuat file mana yang bergantung pada file lain, serta perintah yang diperlukan untuk mengompilasi file tertentu.

Sementara yang implisit mirip dengan yang eksplisit, tetapi dengan perbedaan mereka menunjukkan perintah untuk dieksekusi, tetapi membuat menggunakan ekstensi file untuk menentukan perintah mana yang akan dieksekusi.

Dalam contoh ini kita tidak akan menggunakan dua yang terakhir ini, Kami hanya akan memulai dengan mencetak "Hello World" klasik di terminal.

Untuk ini kita akan membuat direktori kosong dengan nama yang Anda inginkan.

Dalam hal ini sebut saja "membuat contoh" dan di dalamnya Kami akan membuat makefile dengan konten berikut:

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

sekarang Jalankan file dengan mengetik make di dalam direktori, outputnya adalah:

make
echo "Hola Mundo"
Hola Mundo

Seperti yang Anda lihat saat makefile dijalankan, perintah echo "Hello World" ditampilkan, diikuti dengan output dari perintah sebenarnya. Kami sering tidak menginginkan itu. Untuk menyembunyikan keluaran ini saat Anda menjalankan make, cukup tambahkan "@" sebelum echo:

Contoh praktisnya adalah:

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

sekarang kita dapat melanjutkan untuk menjalankan makefile lagi. Outputnya hanya ini harus menunjukkan:

make
Hola Mundo

Ini sangat mendasar. Tapi seperti yang Anda ketahui, makefile mengandung banyak hal, yang menunjukkan urutan yang harus diikuti.

Kami dapat menambahkan beberapa urutan sederhana ke file ini.

Apa yang akan kita lakukan adalah mengedit file sebagai berikut:

#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

Saat menjalankan ulang makefile, ini hanya akan menjalankan tujuan pertama. Itu karena hanya target pertama di makefile yang merupakan target default.

Untuk berjalan secara berurutan itu perlu untuk menunjukkannya di dalam file dengan "semua". Ini adalah tanggung jawab "di sana" untuk memanggil target lain.

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

Anda dapat melanjutkan untuk menjalankan make lagi dan Anda akan melihat bahwa di dalam direktori ada file bernama "File.txt".

Dengan cara yang sama dimungkinkan untuk dapat mengeksekusi target di dalam file makefile, ini biasanya sangat digunakan.

Kami akan memodifikasi file kami dan kami akan menambahkan yang berikut di akhir:
clean:
@ echo "Voy a eliminar el archivo txt creado”
rm archivo*.txt

Anda dapat menjalankan ulang make dan itu akan membuat ulang file txt. Seperti yang akan Anda lihat, ini akan melakukan hal yang sama seperti sebelumnya. Tapi sekarang kita akan mengeksekusi target yang ada di dalam file makefile.

Kami melakukan ini dengan:

make clean

Dengan ini kita dapat mempelajari sesuatu yang cukup mendasar tentang membuat file dan bagaimana mereka bisa sangat berguna jika kita ingin mengotomatiskan beberapa hal.

Jelas Anda dapat membuat file yang lebih besar dan lebih kompleks, tetapi ini hanyalah contoh untuk pemula (saya termasuk saya sendiri) yang mulai mengetahui cara kerjanya.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   arg0s dijo

    Artikel yang sangat menarik. Sebuah pertanyaan ... apa yang Anda sebut "variabel" bukanlah fungsi atau metode?

    1.    David naranjo dijo

      Malah ya sobat, terima kasih atas koreksinya.
      Bersulang! 🙂

  2.   Petrus dijo

    Luar biasa, saya harap Anda terus menggali.

  3.   manuelalcocer dijo

    Baik, baik satu hal maupun yang lainnya, https://www.gnu.org/software/make/manual/make.html, adalah "target"

  4.   manuelalcocer dijo

    aturan

  5.   sebas dijo

    Mudah-mudahan mereka terus menjelaskan hal-hal seperti ini, "ada di mana-mana dan mendasar", dari pengoperasian Linux sehari-hari, yang tidak pernah dijelaskan oleh siapa pun dengan semangat yang sama seperti bagaimana "keunggulan dan operasi" itu diberitakan.