LINUX.ORG.RU

make: как получить basename?


0

0

OBJS=file1.o file2.o file3.o

$(OBJS): <SOME-VAR>.c <SOME-VAR>.h
       @gcc $(CFLAGS) <SOME-VAR>.c -o <SOME-VAR>.o

<SOME-VAR> -- это basename каждого файла. Как получить эту самую <SOME-VAR>?

Пробовал:
  $(OBJS): ($add suffix .c, $(basename $(OBJS)))

Но это вроде тоже не работает.

Спасибо.
 
anonymous

info make

Functions -> File Name Functions

`$(basename NAMES...)'
     Extracts all but the suffix of each file name in NAMES.  If the
     file name contains a period, the basename is everything starting
     up to (and not including) the last period.  Periods in the
     directory part are ignored.  If there is no period, the basename
     is the entire file name.  For example,

          $(basename src/foo.c src-1.0/bar hacks)

     produces the result `src/foo src-1.0/bar hacks'.

Slavaz ★★★★★
()

> $(OBJS): ($add suffix .c, $(basename $(OBJS)))

Возможно, это не работает без «second expansion»

Sphinx ★★☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.