Как перезаписать переменную в make-файле из терминала

Я создал простой make-файл, т.е.

COMMON=hello
all:
  gcc $(COMMON).c -o $(COMMON).o

Каталог, в котором я запускаю make-файл, содержит три файла: hello.c, add.c,multiple.c, factorial.c и subtraction.c.

Когда я компилирую это в терминале с помощью команды make, выводится приветствие. Теперь я хочу внести изменения в программу таким образом, чтобы когда я пишу «сделать сложение», «сделать умножение» или «сделать факториал», соответствующая программа будет скомпилирована.


person user1511590    schedule 09.07.2012    source источник


Ответы (1)


Просто укажите его в командной строке.

make COMMON=bye

Если цель предсказуема по именам файлов в текущем каталоге, вам вообще не нужен Makefile, потому что Make уже знает, как сделать multiply из multiply.c.

.PHONY: all
all: hello add multiply factorial

Если вам действительно нужен явный рецепт, попробуйте что-то вроде этого.

%: %.c
        gcc -o $@ $^
person tripleee    schedule 09.07.2012
comment
это я уже знаю....... но если пользователь не знает, что COMMON есть в файле............. пользователь просто хочет использовать make ‹filename› для компиляции программа.... - person user1511590; 09.07.2012