Lampiran ini merangkum direktif, fungsi manipulasi teks, dan variabel khusus yang dipahami oleh GNU make.
Untuk ringkasan lainnya, lihat Nama target bawaan khusus, Katalog aturan bawaan, dan Ringkasan opsi.
Berikut adalah ringkasan direktif yang dikenali oleh GNU make:
define variabledefine variable =define variable :=define variable ::=define variable :::=define variable +=define variable ?=endefMendefinisikan variabel multi-baris.
Lihat Mendefinisikan variabel multi-baris.
undefine variableMembatalkan definisi variabel.
Lihat Membatalkan definisi variabel.
ifdef variableifndef variableifeq (a,b)ifeq "a" "b"ifeq 'a' 'b'ifneq (a,b)ifneq "a" "b"ifneq 'a' 'b'elseendifMengevaluasi sebagian makefile secara kondisional.
Lihat Bagian kondisional dalam makefile.
include file-include filesinclude fileMenyertakan makefile lain.
Lihat Menyertakan makefile lain.
override variable-assignmentMendefinisikan variabel, menimpa definisi sebelumnya, bahkan definisi yang berasal dari baris perintah sekalipun.
Lihat Direktif override.
exportMemerintahkan make agar secara default mengekspor semua variabel ke proses turunan (child process).
Lihat Menyampaikan variabel ke sub-make.
export variableexport variable-assignmentunexport variableMemerintahkan make apakah variabel tertentu perlu diekspor ke proses turunan atau tidak.
Lihat Menyampaikan variabel ke sub-make.
private variable-assignmentMencegah penetapan variabel ini diwariskan ke prasyarat (prerequisite).
Lihat Menekan pewarisan.
vpath pattern pathMenentukan path pencarian untuk file yang cocok dengan pola ‘%’.
Lihat Direktif vpath.
vpath patternMenghapus semua path pencarian yang sebelumnya ditentukan untuk pattern.
vpathMenghapus semua path pencarian yang sebelumnya ditentukan dalam direktif vpath mana pun.
Selanjutnya, berikut adalah ringkasan fungsi bawaan (lihat Fungsi untuk transformasi teks):
$(subst from,to,text)Mengganti from dengan to dalam text.
Lihat Fungsi untuk substitusi dan analisis string.
$(patsubst pattern,replacement,text)Mengganti kata dalam text yang cocok dengan pattern dengan replacement.
Lihat Fungsi untuk substitusi dan analisis string.
$(strip string)Menghapus whitespace berlebih dari string.
Lihat Fungsi untuk substitusi dan analisis string.
$(findstring find,text)Mencari find dalam text.
Lihat Fungsi untuk substitusi dan analisis string.
$(filter pattern…,text)Memilih kata dalam text yang cocok dengan salah satu kata pattern.
Lihat Fungsi untuk substitusi dan analisis string.
$(filter-out pattern…,text)Memilih kata dalam text yang tidak cocok dengan kata pattern mana pun.
Lihat Fungsi untuk substitusi dan analisis string.
$(sort list)Mengurutkan kata dalam list secara leksikografis, sekaligus menghapus duplikat.
Lihat Fungsi untuk substitusi dan analisis string.
$(word n,text)Mengambil kata ke-n (dimulai dari 1) dari text.
Lihat Fungsi untuk substitusi dan analisis string.
$(words text)Menghitung jumlah kata dalam text.
Lihat Fungsi untuk substitusi dan analisis string.
$(wordlist s,e,text)Mengembalikan daftar kata dalam text dari kata ke-s sampai ke-e.
Lihat Fungsi untuk substitusi dan analisis string.
$(firstword names…)Mengambil kata pertama dari names.
Lihat Fungsi untuk substitusi dan analisis string.
$(lastword names…)Mengambil kata terakhir dari names.
Lihat Fungsi untuk substitusi dan analisis string.
$(dir names…)Mengambil bagian direktori dari setiap nama file.
Lihat Fungsi untuk nama file.
$(notdir names…)Mengambil bagian non-direktori dari setiap nama file.
Lihat Fungsi untuk nama file.
$(suffix names…)Mengambil sufiks (‘.’ terakhir beserta karakter yang mengikutinya) dari setiap nama file.
Lihat Fungsi untuk nama file.
$(basename names…)Mengambil nama dasar (nama tanpa sufiks) dari setiap nama file.
Lihat Fungsi untuk nama file.
$(addsuffix suffix,names…)Menambahkan suffix di akhir setiap kata dalam names.
Lihat Fungsi untuk nama file.
$(addprefix prefix,names…)Menambahkan prefix di awal setiap kata dalam names.
Lihat Fungsi untuk nama file.
$(join list1,list2)Menggabungkan kata dari dua daftar paralel.
Lihat Fungsi untuk nama file.
$(wildcard pattern…)Mencari nama file yang cocok dengan pola nama file shell (bukan pola ‘%’).
Lihat Fungsi untuk nama file.
$(realpath names…)Untuk setiap nama file dalam names, mengekspansinya menjadi nama absolut yang tidak mengandung ., .., maupun tautan simbolis (symlink).
Lihat Fungsi untuk nama file.
$(abspath names…)Untuk setiap nama file dalam names, mengekspansinya menjadi nama absolut yang tidak mengandung komponen . atau .., tetapi tautan simbolis tetap dipertahankan.
Lihat Fungsi untuk nama file.
$(error text…)Ketika fungsi ini dievaluasi, make menghasilkan error fatal dengan pesan text.
Lihat Fungsi untuk mengendalikan make.
$(warning text…)Ketika fungsi ini dievaluasi, make menghasilkan peringatan dengan pesan text.
Lihat Fungsi untuk mengendalikan make.
$(shell command)Menjalankan perintah shell dan mengembalikan keluarannya.
Lihat Fungsi shell.
$(origin variable)Mengembalikan string yang menjelaskan bagaimana variabel make variable didefinisikan.
Lihat Fungsi origin.
$(flavor variable)Mengembalikan string yang menjelaskan jenis (flavor) variabel make variable.
Lihat Fungsi flavor.
$(let var [var ...],words,text)Mengevaluasi text dengan setiap var diikat ke kata-kata dalam words.
Lihat Fungsi let.
$(foreach var,words,text)Mengevaluasi text dengan var diikat ke setiap kata dalam words, lalu menggabungkan hasilnya.
Lihat Fungsi foreach.
$(if condition,then-part[,else-part])Mengevaluasi kondisi condition; jika tidak kosong, digantikan dengan hasil ekspansi then-part, jika tidak, digantikan dengan hasil ekspansi else-part.
Lihat Fungsi untuk percabangan kondisional.
$(or condition1[,condition2[,condition3…]])Mengevaluasi setiap kondisi conditionN satu per satu; digantikan dengan hasil ekspansi pertama yang tidak kosong. Jika semua hasil ekspansi kosong, digantikan dengan string kosong.
Lihat Fungsi untuk percabangan kondisional.
$(and condition1[,condition2[,condition3…]])Mengevaluasi setiap kondisi conditionN satu per satu; jika salah satu hasil ekspansinya berupa string kosong, digantikan dengan string kosong. Jika semua hasil ekspansi berupa string yang tidak kosong, digantikan dengan hasil ekspansi condition terakhir.
Lihat Fungsi untuk percabangan kondisional.
$(intcmp lhs,rhs[,lt-part[,eq-part[,gt-part]]])Membandingkan lhs dan rhs secara numerik; digantikan dengan hasil ekspansi lt-part, eq-part, atau gt-part, bergantung pada apakah ruas kiri lebih kecil, sama dengan, atau lebih besar daripada ruas kanan.
Lihat Fungsi untuk percabangan kondisional.
$(call var,param,…)Mengevaluasi variabel var, menggantikan referensi seperti $(1), $(2) dengan nilai param pertama, kedua, dan seterusnya.
Lihat Fungsi call.
$(eval text)Mengevaluasi text, lalu membaca hasilnya sebagai perintah makefile. Hasil ekspansinya berupa string kosong.
Lihat Fungsi eval.
$(file op filename,text)Mengekspansi argumennya, lalu membuka file filename dengan mode op dan menulis text ke file tersebut.
Lihat Fungsi file.
$(value var)Menjadi isi variabel var apa adanya, tanpa ekspansi apa pun.
Lihat Fungsi value.
Selanjutnya, berikut adalah ringkasan variabel otomatis. Untuk informasi lengkap, lihat Variabel otomatis.
$@Nama file dari target.
$%Nama anggota target, ketika target adalah anggota arsip.
$<Nama prasyarat pertama.
$?Nama semua prasyarat yang lebih baru daripada target, dipisahkan oleh spasi. Untuk prasyarat yang merupakan anggota arsip, hanya anggota yang disebutkan yang digunakan (lihat Menggunakan make untuk memperbarui file arsip).
$^$+Nama semua prasyarat, dipisahkan oleh spasi. Untuk prasyarat yang merupakan anggota arsip, hanya anggota yang disebutkan yang digunakan (lihat Menggunakan make untuk memperbarui file arsip). Nilai $^ menghilangkan prasyarat duplikat, sedangkan $+ mempertahankan duplikatnya beserta urutannya.
$*Stem yang cocok saat aturan implisit menemukan kecocokan (lihat Bagaimana pola mencocokkan).
$(@D)$(@F)Bagian direktori dan bagian file-dalam-direktori dari $@.
$(*D)$(*F)Bagian direktori dan bagian file-dalam-direktori dari $*.
$(%D)$(%F)Bagian direktori dan bagian file-dalam-direktori dari $%.
$(<D)$(<F)Bagian direktori dan bagian file-dalam-direktori dari $<.
$(^D)$(^F)Bagian direktori dan bagian file-dalam-direktori dari $^.
$(+D)$(+F)Bagian direktori dan bagian file-dalam-direktori dari $+.
$(?D)$(?F)Bagian direktori dan bagian file-dalam-direktori dari $?.
Variabel-variabel berikut digunakan secara khusus oleh GNU make:
MAKEFILESMakefile yang dibaca setiap kali make dijalankan.
Lihat Variabel MAKEFILES.
VPATHPath pencarian direktori untuk file yang tidak ditemukan di direktori saat ini.
Lihat VPATH: path pencarian untuk semua prasyarat.
SHELLNama interpreter perintah default sistem, biasanya /bin/sh.
Anda dapat menetapkan SHELL dalam makefile untuk mengubah shell yang digunakan untuk menjalankan resep (recipe). Lihat Eksekusi resep. Variabel SHELL diperlakukan secara khusus saat diimpor dari lingkungan maupun diekspor ke lingkungan. Lihat Memilih shell.
MAKESHELLKhusus pada MS-DOS, nama interpreter perintah yang digunakan oleh make. Nilai ini lebih diutamakan daripada nilai SHELL. Lihat Variabel MAKESHELL.
MAKENama yang digunakan saat make dipanggil. Menggunakan variabel ini dalam resep memiliki arti khusus. Lihat Cara kerja variabel MAKE.
MAKE_VERSIONVariabel bawaan ‘MAKE_VERSION’ diekspansi menjadi nomor versi program GNU make.
MAKE_HOSTVariabel bawaan ‘MAKE_HOST’ diekspansi menjadi string yang merepresentasikan host tempat GNU make dibangun untuk dijalankan.
MAKELEVELJumlah tingkat rekursi (sub-make).
Lihat Menyampaikan variabel ke sub-make.
MAKEFLAGSFlag yang diberikan kepada make. Anda dapat menetapkannya di lingkungan atau makefile untuk mengatur flag.
Lihat Menyampaikan opsi ke sub-make.
Tidak pernah tepat untuk menggunakan MAKEFLAGS secara langsung dalam baris resep: isinya belum tentu terkutip dengan benar untuk digunakan dalam shell. Selalu biarkan make rekursif memperoleh nilai-nilai ini melalui lingkungan dari induknya.
GNUMAKEFLAGSFlag lain yang diuraikan oleh make. Anda dapat menetapkannya di lingkungan atau makefile untuk mengatur flag baris perintah make. GNU make tidak pernah menetapkan variabel ini dengan sendirinya. Variabel ini hanya diperlukan jika Anda ingin menetapkan flag khusus GNU make dalam makefile yang sesuai POSIX. Variabel ini dikenali oleh GNU make dan diabaikan oleh implementasi make lainnya. Variabel ini tidak diperlukan jika Anda hanya menggunakan GNU make; dalam hal itu, cukup gunakan MAKEFLAGS secara langsung.
Lihat Menyampaikan opsi ke sub-make.
MAKECMDGOALSTarget yang diberikan kepada make pada baris perintah. Menetapkan variabel ini tidak memengaruhi cara kerja make.
Lihat Argumen untuk menentukan sasaran.
CURDIRDitetapkan ke nama path absolut direktori kerja saat ini (setelah semua opsi -C diproses, jika ada). Menetapkan variabel ini tidak memengaruhi cara kerja make.
Lihat Penggunaan rekursif make.
SUFFIXESDaftar sufiks default sebelum make membaca makefile apa pun.
.LIBPATTERNSMendefinisikan penamaan pustaka (library) yang dicari oleh make, beserta urutan pencariannya.
Lihat Pencarian direktori untuk pustaka tautan.