Berikut adalah ringkasan fitur-fitur GNU make, sebagai perbandingan sekaligus penghargaan terhadap versi make lainnya. Kami menjadikan fitur make pada sistem 4.2 BSD sebagai acuan. Jika Anda ingin menulis makefile yang portabel, sebaiknya Anda tidak menggunakan fitur-fitur yang tercantum di sini, maupun fitur-fitur pada bab Inkompatibilitas dan fitur yang tidak tersedia.
Banyak fitur berasal dari versi make pada System V.
VPATH dan makna khususnya. Lihat Mencari prasyarat dari direktori. Fitur ini ada pada make System V, tetapi tidak didokumentasikan. Fitur ini didokumentasikan pada make 4.3 BSD (yang disebutkan meniru fitur VPATH System V).
MAKEFLAGS ke pemanggilan make secara rekursif. Lihat Menyampaikan opsi ke sub-make.
$% diisi dengan nama anggota dalam referensi arsip. Lihat Variabel otomatis.
$@, $*, $<, $%, dan $? memiliki bentuk terkait seperti $(@F) dan $(@D). GNU make memperluas hal ini secara alami hingga ke $^. Lihat Variabel otomatis.
make System V, opsi-opsi ini benar-benar melakukan sesuatu.
make melalui variabel MAKE tetap dieksekusi meskipun ‘-n’, ‘-q’, atau ‘-t’ ditentukan. Lihat Penggunaan rekursif make.
make, karena mekanisme umum rantai aturan (lihat Rantai aturan implisit) membuat satu aturan pola untuk memasang anggota ke dalam arsip (lihat Aturan implisit untuk target anggota arsip) sudah cukup.
Fitur-fitur berikut terinspirasi dari berbagai versi make lainnya. Dalam beberapa kasus, tidak jelas persis versi mana yang memengaruhi versi lainnya.
make. Kami tidak yakin siapa yang pertama kali menciptakannya, tetapi fitur ini sudah cukup banyak tersebar. Lihat Mendefinisikan dan mendefinisikan ulang aturan pola.
make-nya untuk AT&T Eighth Edition Research Unix, dan kemudian oleh Andrew Hume dari AT&T Bell Labs dalam program mk miliknya (yang ia sebut “transitive closure”). Kami sebenarnya tidak tahu apakah ide ini kami dapatkan dari salah satu dari mereka, atau kami pikirkan sendiri pada waktu yang hampir bersamaan. Lihat Rantai aturan implisit.
$^ yang berisi daftar semua prasyarat (prerequisite) dari target saat ini. Kami tidak menciptakan ini, tetapi kami juga tidak tahu siapa yang menciptakannya. Lihat Variabel otomatis. Variabel otomatis $+ adalah perluasan sederhana dari $^.
make) sejauh yang kami ketahui diciptakan oleh Andrew Hume dalam mk. Lihat Tindakan selain menjalankan resep.
make dan program serupa, tetapi tidak terdapat pada implementasi System V maupun BSD. Lihat Eksekusi resep.
make melalui fungsi patsubst sebelum sintaksis alternatifnya diimplementasikan demi kompatibilitas dengan SunOS 4. Sama sekali tidak jelas siapa yang memengaruhi siapa, karena GNU make sudah memiliki patsubst sebelum SunOS 4 dirilis.
make SunOS 4. Lihat Menambahkan teks ke variabel.
make SunOS 4. Lihat Anggota arsip sebagai target.
-include yang meng-include makefile tanpa memunculkan error meskipun filenya tidak ada berasal dari make SunOS 4. (Namun perlu dicatat, make SunOS 4 tidak mengizinkan beberapa makefile ditentukan dalam satu direktif -include.) Fitur yang sama muncul dengan nama sinclude pada make SGI dan mungkin juga pada beberapa make lainnya.
!= ada pada banyak make versi BSD, dan sengaja diimplementasikan di sini agar berperilaku identik dengan implementasi-implementasi tersebut.
make.
Fitur-fitur yang tersisa adalah inovasi baru dalam GNU make:
make.
MAKE ke pemanggilan make secara rekursif. Lihat Penggunaan rekursif make.
define. Lihat Mendefinisikan variabel multi-baris.
.PHONY.
Andrew Hume dari AT&T Bell Labs juga mengimplementasikan fitur serupa dengan sintaksis berbeda dalam program mk miliknya. Ini tampaknya merupakan salah satu contoh penemuan paralel. Lihat Target semu (phony).
Fitur ini telah berkali-kali diimplementasikan pada berbagai versi make; fitur ini tampak sebagai perluasan alami yang berasal dari fitur preprosesor C dan bahasa makro serupa, dan bukan merupakan gagasan revolusioner. Lihat Bagian kondisional dalam makefile.
MAKEFILES.
make lainnya, sufiks harus diawali dengan ‘.’ dan tidak boleh mengandung karakter ‘/’.
make saat ini menggunakan variabel MAKELEVEL. Lihat Penggunaan rekursif make.
MAKECMDGOALS. Lihat Argumen untuk menentukan sasaran.
vpath yang selektif. Lihat Mencari prasyarat dari direktori.
make System V memiliki bentuk yang sangat, sangat terbatas dari fungsionalitas ini, yaitu meng-checkout file SCCS untuk makefile.
make. Lihat Memuat objek dinamis.