Tentu, tapi kapan Anda ingin dia meludahkannya?
Untuk melaporkan nama target saat menjalankan aturan, letakkan baris di aturan:
foo$(VAR): $(PREREQS)
@echo now making the foo target: $@
do_other_stuff...
Untuk melontarkan semuanya sekaligus, Anda dapat membuat target PHONY terpisah:
.PHONY: show_vars
show_vars:
@echo foo$(VAR)
@echo bar$(PARAM) blah$(FLAG)
# and so on
Dan ini dapat dijadikan prasyarat dari target default Anda:
all: show_vars
...
EDIT:
Anda menginginkan cara untuk menampilkan semua kemungkinan target dari makefile sewenang-wenang, yang menurut saya berarti tidak mengganggu. Baik...
Untuk melakukannya dengan tepat, dan dapat menangani makefile yang canggih, misalnya melibatkan aturan yang dibuat oleh eval
pernyataan, Anda harus menulis sesuatu yang mirip dengan emulator Make. Tidak praktis.
Untuk melihat target dari aturan sederhana, Anda dapat menulis makefile yang akan bertindak sebagai pemindai makefile, yang beroperasi pada makefile sewenang-wenang:
- Dapatkan semua nama target dari makefile menggunakan sed.
- `include` makefile untuk menggunakannya untuk memperluas variabel.
- Gunakan `show_%:; echo $$ * `untuk mencetak semua target
Ini akan menjadi karya yang mengesankan. Apakah Anda yakin tujuannya sepadan dengan usaha?