Звичайно, але коли ти хочеш, щоб вони їх виплюнули?
Щоб повідомити ім'я цілі, коли воно запускає правило, введіть рядок у правило:
foo$(VAR): $(PREREQS)
@echo now making the foo target: $@
do_other_stuff...
Щоб виплюнути їх все одразу, ви можете зробити окрему ціль PHONY:
.PHONY: show_vars
show_vars:
@echo foo$(VAR)
@echo bar$(PARAM) blah$(FLAG)
# and so on
І це може бути передумовою вашої цілі за замовчуванням:
all: show_vars
...
РЕДАКТУВАННЯ:
Ви хочете, щоб показати всі можливі цілі довільного makefile, який, напевно, означає не нав'язливий. Ну...
Щоб зробити це точно і бути в змозі впоратися зі складними файлами, наприклад із використанням правил, побудованих на eval
операторах, вам доведеться написати щось наближене до емулятора Make. Непримітний.
Щоб побачити цілі простих правил, ви можете написати файл makefile, який буде виконувати роль сканера makefile, оперуючи довільним makefile:
- Отримати всі цільові імена з makefile за допомогою sed.
- `include` makefile для того, щоб використовувати його для розширення змінних.
- Використовуйте `show_%:; echo $$ * `для друку всіх цілей
Це було б вражаючий твір. Ви впевнені, що мета варта ваших зусиль?