макрос makefile, принимающий аргументы

#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, нет ничего более сложного, чем это.