LINUX.ORG.RU

История изменений

Исправление grem, (текущая версия) :

Я уже вообще подумываю, а нужны ли мне здесь вообще промежуточные объектники кроме lib.o?

будет в результате конкатенации более элементарного инструмента $(DEXE)$(TESTS)

Тут я в примере, действительно накосячил при переносе с более большого makefile, так как должен использоваться $(addprefix ), как указали выше и я его почему-то в примере не использовал.

Для другого примера даже добился (только путь подменить не могу никак), чтобы в одном случае он исполняемой цели «test-2», например, требовал только «test-2.o» из списка объектников. Но вот дальше ничего не вышло.

Задача в том, чтобы не писать правило для каждой цели в директории отдельно, учитывая, что имена у целей отличаются только номером (но это вообще не важно, главное, что исходники в одном каталоге): т.е. если есть список файлов /test/test-1.c, /test/test-2.c, /test/test-3.c b и т.д., то хочется описать шаблонное правило для цели сборки исполняемых файлов exe/test-1, exe/test-2 и т.д. такое, чтобы для каждого элемента из списка целей «exe/test-N» брался только соответствующий элемент из «/test/test-N.c».

Но мне уже кажется, что проще либо вручную их размножить, либо опакетить наконец собственную систему сборки от того разработчика, которую он использует.

Исходная версия grem, :

Я уже вообще подумываю, а нужны ли мне здесь вообще промежуточные объектники кроме lib.o?

будет в результате конкатенации более элементарного инструмента $(DEXE)$(TESTS)

Тут я в примере, действительно накосячил при переносе с более большого makefile, так как должен использоваться $(addprefix ), как указали выше и я его почему-то в примере не использовал.

Для другого примера даже добился, чтобы в одном случае он исполняемой цели «test-2», например, требовал только «test-2.o» из списка объектников. Но вот дальше ничего не вышло.

Задача в том, чтобы не писать правило для каждой цели в директории отдельно, учитывая, что имена у целей отличаются только номером (но это вообще не важно, главное, что исходники в одном каталоге): т.е. если есть список файлов /test/test-1.c, /test/test-2.c, /test/test-3.c b и т.д., то хочется описать шаблонное правило для цели сборки исполняемых файлов exe/test-1, exe/test-2 и т.д. такое, чтобы для каждого элемента из списка целей «exe/test-N» брался только соответствующий элемент из «/test/test-N.c».

Но мне уже кажется, что проще либо вручную их размножить, либо опакетить наконец собственную систему сборки от того разработчика, которую он использует.