#makefile #gnu-make
#makefile #gnu-make
Вопрос:
Я хотел бы создать что-то свое, например, shell
макрос, в котором вы можете сказать $(shell command)
.
К сожалению, я ничего не нашел в Интернете о том, как это сделать.
Возможно ли это?
Комментарии:
1. Пожалуйста, не надо. Особенно, если другие люди собираются использовать ваш makefile.
2. Зачем вам это нужно?
shell
Команда уже существует.
Ответ №1:
В GNU make вы можете сделать что-то вроде следующего. Представьте, что вы хотите сгенерировать .h
и .cpp
имена файлов из простого имени файла без расширения, которые будут добавлены в качестве источников некоторого правила. Вы можете написать:
define h_and_cpp_sources
$(1).h $(1).cpp
endef
Это генерирует макрос Makefile, который получает первый параметр как $(1)
, второй как $(2)
и так далее. Затем:
target: $(call h_and_cpp_sources,file)
...
Это создаст правило:
target: file.h file.cpp
Ответ №2:
Вам следует попробовать использовать синтаксис функции вызова.
Это не совсем то, что вы хотите, но AFAIK, нет ничего более сложного, чем это.