Re: make contest
AC>>>> .include <bsd.subdir.mk>
>>> Ты решал не ту задачу. Решил ты ее или нет, я уж не могу сказать,
>>> поскольку непонятно, какую решал, но решал - не ту.
AC>> Ну ёпрст 8-) Я решил ту задачу, именно ту - строю пакет из бинарей,
AC>> которые строятся из .с файлов. При желании построить пакет
AC>> измененные .c таки учитываются, и перед построением пакета строятся
AC>> перестраиваются бинари. Дописать pkg/Makefile ты и сам в состоянии.
> А я не ставил задачу "построить пакет". Если кто не заметил.
> Я просто оставил один аспект реальной задачи и максимально упростил
> модель. Могу показать полную. Это, правда, будет довольно длинное
> письмо...
Задача стояла построить _зависящую_ цель (пакет) при измениях в
исходных файлах _зависимых_ целей (конкретные программы). Эта задача решена.
Но решения ты не понял. Ладно, я расшифрую - решение в том, чтобы
unconditionally запустить make последовательно вначале для зависимостей,
затем для главной задачи - именно это делает bsd.subdir.mk.
Обрати внимание на директиву .WAIT, это для make -jN.
Вот недостающее звено, которое мне к вечеру было просто лень реализовывать.
pkg/Makefile:
.PHONY: all
all : pkg.tgz
pkg.tgz : ../projA/a ../projB/b
tar -xfz ${.TARGET} ${.ALLSRC}
Решение, которое ты ожидал увидеть я делать не буду, это банальное
переписывание Makefile-а с одного диалекта на другой. Мне это не
интересно.
В свою очередь я тоже могу привести немного более длинный пример тоже
из реальной жизни. Каркас для родного мне dictd, где есть библиотека
(.so), общий код для екзешников и собственно сами екзешники.
--
Best regards, Aleksey Cheusov.
Reply to: