Learn makefile in Learn Makefile atau Penggunaan GNU Make dalam Kegiatan Pemrograman C atau GNU make
Suatu source code dari suatu sistem, khususnya suatu uav, membutuhkan suatu alat untuk menggabungkan semua source code yang telah disusun sehingga menjadi satu kesatuan yang siap dijalankan
Apa yang disebutkan di atas merupakan proses Build. Dalam proses build, terdapat proses compile dan linking. GNU Make merupakan salah satu tool yang membantu proses build tersebut.
Kalau bisa melakukan tutorial ini menggunakan OS Linux dan telah terinstall paket-paket pengembangan yang lengkap. Umum dikenal dengan nama devel-packages Untuk tutorialnya dapat dicari di internet dengan kata kunci linux debian how to install complete full development packages
Lakukan perintah-perintah berikut di dalam terminal untuk mengecek apakah sudah siap sedia atau belum
cc --version
gcc --version
make --version
Cara kerja make latihan1 adalah sebagai berikut
- Apakah sudah ada latihan1?
- Jika tidak ada, apakah ada file yang namanya latihan1?
- Ya, ada, latihan1.c. Apakah GNU make dapat mengcompile .c?
- Ya, bisa. GNU make langsung menjalankan perintah cc latihan.c -0 latihan1
- GNU make mengompile latihan1.c menggunakan compiler cc.
Apa itu Makefile? Bagaimana struktur dari Makefile?
Makefile merupakan sebuah database referensi atau informasi mengenai apa saja yang harus dilakukan dalam proses build
Struktur Makefile sendiri terdiri dari
- Variable
- Rules
Variable merupakan sebuah variable biasa yang dapat dipake dalam Rules Cara melakukan deklarasi variable dalam Makefile yaitu sebagai berikut
CC = gcc
SRC_DIR = src
VAR_SUKA_SUKA_SAYA = value suka suka saya
Cara mengakses variable
$(CC)
$(SRC_DIR)
$(VAR_SUKA_SUKA_SAYA)
Sebuah Rule memiliki pola standar yang terdiri dari tiga struktur
- TARGET
- PREREQUISITES
- RECEIPES
Target adalah apa yang kita ingin hasilnya dari proses build. Biasanya file berekstensi .o atau file executable
Prereq merupakan file apa saja yang dibutuhkan untuk melakukan proses build. biasanya file berekstensi .c atau .h kalau sedang dalam bahasa c atau cpp.
Receipes merupakan langkah proses apa saja yang harus dilakukan secara berurutan untuk melakukan proses build