Makefile и $ (подстановочный знак): использование сложного регулярного выражения

#makefile

#makefile

Вопрос:

Учитывая сложную взаимосвязь между bash и make , я был королем надежды $(wildcard ) , что вместо этого команда будет командой $(globbing ) , которая, по крайней мере, примет bash шаблон «глобус», такой как восклицательный знак ? или фигурные скобки {} .

Мои исследования, похоже, показывают, что он не делает ничего, кроме расширения подстановочных знаков.

Есть ли какой-либо известный способ использовать более сложное «регулярное выражение»?

Источник: функция подстановочного знака на GNU.org

Комментарии:

1. make обычно использует sh , а не bash . И вы можете использовать что-то вроде $(bash -c 'echo <your_pattern_here>')

Ответ №1:

Связь не ближе, чем make ожидается, что она будет предоставлена с $ (ОБОЛОЧКОЙ), которая достаточно близка к /bin/sh в определенных отношениях. В Windows многие люди используют cmd.exe .

Вы всегда можете использовать функцию $ (shell) для вызова любой утилиты, установленной вами через оболочку:

 C_SOURCE_FILES = $(shell echo *.[ch])
IMAGES = $(shell find * -maxdepth 2 -type f | egrep -i '.(gif|png|jpg)$$')
  

Все, что вам заблагорассудится.