URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4105
[ Назад ]

Исходное сообщение
"Переменные в make-файлах"

Отправлено Aptimist , 29-Мрт-05 14:33 
Подскажите, пожалуйста, как можно провернуть в make-файле что-то на подобие такого:

DEPS = common.o

first: $(DEPS) DEPS += first.o
    g++ -o first $(DEPS)

second: $(DEPS) DEPS += second.o
    g++ -o second $(DEPS)


Содержание

Сообщения в этом обсуждении
"Переменные в make-файлах"
Отправлено Pablo , 29-Мрт-05 15:03 
>Подскажите, пожалуйста, как можно провернуть в make-файле что-то на подобие такого:
>
>DEPS = common.o
>
>first: $(DEPS) DEPS += first.o
>    g++ -o first $(DEPS)
>
>second: $(DEPS) DEPS += second.o
>    g++ -o second $(DEPS)

Попробуй посмотреть этот пример

# cat Makefile

CC = gcc
TARGETS = first second
DEPS = common.o

all: $(TARGETS)

common.o: common.c
first.o: second.c
second.o: second.c

$(TARGETS): %: %.o $(DEPS)
        $(CC) -o $@ $< $(DEPS)

#
# make
gcc    -c -o first.o first.c
gcc    -c -o common.o common.c
gcc -o first first.o common.o
gcc    -c -o second.o second.c
gcc -o second second.o common.o


"Переменные в make-файлах"
Отправлено MaximKuznetsov , 29-Мрт-05 19:16 
>Подскажите, пожалуйста, как можно провернуть в make-файле что-то на подобие такого:
>
>DEPS = common.o
>
>first: $(DEPS) DEPS += first.o
>    g++ -o first $(DEPS)
>
>second: $(DEPS) DEPS += second.o
>    g++ -o second $(DEPS)

а что по старинке, с умалчиваемыми правилами и шаблонами не катит ?

DEPS = common.o
CC = gcc

all: first second

first: first.o $(DEPS)

second: second.o first.o $(DEPS)

...