У меня есть каталог с 50 .c
исходные файлы и каждый из них .c
файлы зависят от a .h
файл с тем же именем плюс общий заголовочный файл.
Пример:
foo.c depends on foo.h and common.h
bar.c depends on bar.h and common.h
baz.c depends on baz.h and common.h
Действительно ли возможно установить эту зависимость, не имея необходимость делать отдельную цель для каждого.c файла?
В случае, если это имеет значение, окончательный вывод этого Make-файла будет a libfoo.a
библиотека, содержащая каждый из них .o
файлы.
Если бы вообще возможный я хотел бы сделать это с gnu make
синтаксис и не имеет цель для каждого файла, была ли та цель создана вручную или чем-то как makedepend
.
Насколько я знаю, этого должно хватить.
%.o: %.c %.h common.h
\tgcc -c $<
\ t - это вкладка, а gcc -c $ <
, конечно, просто пример.
OBJECTS = $(patsubst %.c,%.o,$(wildcard *.c))
%.o: %.c %.h common.h
gcc -c $< -o $@
libfoo.a: $(OBJECTS)
ar rcs $@ $^