Sebagian besar aplikasi linux dikompilasi dengan:
make
make install clean
Seperti yang saya pahami, make mengambil nama target yang dibangun sebagai argumen. Begitu install
juga target yang menyalin beberapa file dan setelah itu clean
adalah target yang menghapus file sementara.
Tetapi target apa yang akan make
dibangun jika tidak ada argumen yang ditentukan (mis. Perintah pertama dalam contoh saya)?
all
hanyalah sebuah konvensi.make install
sudo di dalam, daripada seluruh build.include
merupakan makefile lain, yang target utamanya adalah%.o : %.cpp
. Jadi target defaultnya adalah ... untuk membangun semua file .cpp?Untuk menyelamatkan orang lain beberapa detik, dan untuk menyelamatkan mereka dari keharusan membaca manual, inilah jawaban singkatnya. Tambahkan ini ke bagian atas file make Anda:
mytarget sekarang akan menjadi target yang dijalankan jika "make" dijalankan dan tidak ada target yang ditentukan.
Jika Anda memiliki versi make yang lebih lama (<= 3,80), ini tidak akan berfungsi. Jika ini masalahnya, maka Anda dapat melakukan apa yang disebutkan, cukup tambahkan ini di bagian atas file make Anda:
Referensi: https://www.gnu.org/software/make/manual/html_node/How-Make-Works.html
sumber
GNU Make juga memungkinkan Anda menentukan target make default menggunakan variabel khusus yang disebut
.DEFAULT_GOAL
. Anda bahkan dapat menghapus variabel ini di tengah Makefile, menyebabkan target selanjutnya dalam file menjadi target default.Ref: The Gnu Make manual - Variabel Khusus
sumber