AC Ну, начнем с того, что это уже ошибка. Потому что файл dict/dict.h не
AC менялся. Нет, я в курсе, что гнутый мейк в этом месте ничем не
AC лучше. А вот makepp - лучше.
gcc хорошо умеет генерить депендсы от .h файлов
-MMD ключ ЕМНИП
проблема в том что для С/С++ депендсы генерить можно, а вот
Dmitry E. Oboukhov - debian-russian@lists.debian.org @ Mon, 6 Oct 2008
10:14:39 +0400:
AC Ну, начнем с того, что это уже ошибка. Потому что файл dict/dict.h не
AC менялся. Нет, я в курсе, что гнутый мейк в этом месте ничем не
AC лучше. А вот makepp - лучше.
DEO gcc хорошо умеет генерить
AC Я уж молчу про тот факт, что gcc - это не единственный существующий в
AC природе компилятор... Я не дзенский программист, мне надо, чтобы и с
AC cl.exe работало...
собственно ты про этот факт молчишь, а я именно на него обращаю
внимание:
если *make* не позволяет вытаскивать депендсы ИЗ СЕБЯ,
On Mon, Oct 06, 2008 at 12:07:54AM +0400, Artem Chuprina wrote:
Stanislav Maslovski - debian-russian@lists.debian.org @ Sun, 5 Oct 2008
21:53:55 +0400:
SM Комментарии-то будут?
Пригодно только для нескольких phony целей.
SM В смысле, что в общем случае для
Dmitry E. Oboukhov - debian-russian@lists.debian.org @ Mon, 6 Oct 2008
10:43:48 +0400:
AC Я уж молчу про тот факт, что gcc - это не единственный существующий в
AC природе компилятор... Я не дзенский программист, мне надо, чтобы и с
AC cl.exe работало...
DEO собственно ты про этот факт
Stanislav Maslovski - debian-russian@lists.debian.org @ Mon, 6 Oct 2008
11:03:50 +0400:
SM Комментарии-то будут?
Пригодно только для нескольких phony целей.
SM В смысле, что в общем случае для работы с phony целями не
SM годится? Так понимать? Или?
Artem Chuprina пишет:
Dmitry E. Oboukhov - debian-russian@lists.debian.org @ Mon, 6 Oct 2008
10:43:48 +0400:
AC Я уж молчу про тот факт, что gcc - это не единственный существующий в
AC природе компилятор... Я не дзенский программист, мне надо, чтобы и с
AC cl.exe работало...
DEO
Stanislav Maslovski - debian-russian@lists.debian.org @ Fri, 3 Oct 2008
20:57:26 +0400:
SM Комментарии-то будут?
Пригодно только для нескольких phony целей.
SM В смысле, что в общем случае для работы с phony целями не годится?
SM Так понимать? Или?
Для работы с настоящими целями не
On Sun, Oct 05, 2008 at 09:32:38PM +0400, Artem Chuprina wrote:
Stanislav Maslovski - debian-russian@lists.debian.org @ Fri, 3 Oct 2008
20:57:26 +0400:
SM Комментарии-то будут?
Пригодно только для нескольких phony целей.
SM В смысле, что в общем случае для работы с phony
On Sun, Oct 05, 2008 at 09:51:16PM +0400, Stanislav Maslovski wrote:
On Sun, Oct 05, 2008 at 09:32:38PM +0400, Artem Chuprina wrote:
Stanislav Maslovski - debian-russian@lists.debian.org @ Fri, 3 Oct 2008
20:57:26 +0400:
SM Комментарии-то будут?
Пригодно только для
Stanislav Maslovski - debian-russian@lists.debian.org @ Sun, 5 Oct 2008
21:53:55 +0400:
SM Комментарии-то будут?
Пригодно только для нескольких phony целей.
SM В смысле, что в общем случае для работы с phony целями не
SM годится? Так понимать? Или?
Для
Aleksey Cheusov - debian-russian@lists.debian.org @ Fri, 03 Oct 2008 18:23:12
+0300:
all:
make -C ../dirB
make a.tar.gz
AC Вот это - ровно то же самое, что предложил я - _unconditional_
AC последовательное построение всех зависимостей.
Если бы всех... А то только одной
Aleksey Cheusov - debian-russian@lists.debian.org @ Fri, 03 Oct 2008 16:01:20
+0300:
DEO и проблема автогена депендсов везде решена?
Это наиболее тяжкая часть, но по сравнению с make оно гораздо лучше во
всех. Подробности я не смотрел, и подозреваю, что полностью корректного
решения
Испробовать ваш вариант с bmake в Debian.
В lenny я его не нашёл.
Да, чуть не забыл. NetBSD make - центральная часть pkgsrc (pkgsrc.org).
Поставив pkgsrc само собой получаешь NetBSD make из коробки.
pkgsrc - хороший пример того, как на BSD make-е можно писать сложные
системы. Кроме, конечно,
3 октября 2008 г. 16:19 пользователь Aleksey Cheusov [EMAIL PROTECTED]
написал:
Испробовать ваш вариант с bmake в Debian.
В lenny я его не нашёл.
Да, чуть не забыл. NetBSD make - центральная часть pkgsrc (pkgsrc.org).
Поставив pkgsrc само собой получаешь NetBSD make из коробки.
pkgsrc -
DEO и проблема автогена депендсов везде решена?
Это наиболее тяжкая часть, но по сравнению с make оно гораздо лучше во
всех. Подробности я не смотрел, и подозреваю, что полностью корректного
решения нет ни в одном. Но во всяком случае грабли, по которым ходит
make, там убраны.
Не из
3 октября 2008 г. 16:19 пользователь Aleksey Cheusov [EMAIL PROTECTED]
написал:
Испробовать ваш вариант с bmake в Debian.
В lenny я его не нашёл.
Да, чуть не забыл. NetBSD make - центральная часть pkgsrc (pkgsrc.org).
Поставив pkgsrc само собой получаешь NetBSD make из коробки.
On Fri, Oct 03, 2008 at 03:33:00AM +0400, Stanislav Maslovski wrote:
Всё та же задача, но под соусом Recursive make considered useful ;)
% ls -R contest
contest:
dirA dirB
contest/dirA:
Makefile
contest/dirB:
Makefile b.c c.c
all:
make -C ../dirB
make a.tar.gz
Вот это - ровно то же самое, что предложил я - _unconditional_
последовательное построение всех зависимостей.
В целом нормальный метод.
Только bsd.subdir.mk лучше, потому как не велосипед...
Он не херит -jN, например.
%: %.c
Stanislav Maslovski - debian-russian@lists.debian.org @ Fri, 3 Oct 2008
19:06:34 +0400:
Всё та же задача, но под соусом Recursive make considered useful ;)
% ls -R contest
contest:
dirA dirB
contest/dirA:
Makefile
contest/dirB:
On Fri, Oct 03, 2008 at 07:50:26PM +0400, Artem Chuprina wrote:
SM Комментарии-то будут?
Пригодно только для нескольких phony целей.
В смысле, что в общем случае для работы с phony целями не годится?
Так понимать? Или?
--
Stanislav
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a
Aleksey Cheusov - debian-russian@lists.debian.org @ Wed, 01 Oct 2008 19:35:40
+0300:
В первую очередь это письмо обращено к Диме Обухову, который утверждает,
что все легко, вот тут добавим еще пару зависимостей, и эта задача тоже
решится. С удовольствием увижу присоединившимся к контесту
SM ДАННАЯ задача может решаться так:
SM
SM A/Makefile:
SM
SM all: ../a.tgz
SM
SM ../a.tgz: $(DIR_SRC)/c $(DIR_SRC)/b
SM make -C ../B
SM tar -czvf $@ $^
SM
SM и ничего страшного что make -C ../B вызывается постоянно, поскольку он
SM ничего не делает.
SM DIR_SRC=../B, вероятно?
SM Не
SM С флагом решение напрашивающееся. Может, Артём имел в виду, что нельзя
SM модифицировать ./dirB/Makefile, и что он производит бинарники a и b и
только?
видимо он именно это и имел ввиду, но в этом случае получается что
практически любое решение даст в аналогичных случаях сложности (разве
что
Stanislav Maslovski - debian-russian@lists.debian.org @ Thu, 2 Oct 2008
09:32:01 +0400:
ДАННАЯ задача может решаться так:
A/Makefile:
all: ../a.tgz
../a.tgz: $(DIR_SRC)/c $(DIR_SRC)/b
make -C ../B
tar -czvf $@ $^
и ничего страшного что make -C ../B вызывается
Stanislav Maslovski - debian-russian@lists.debian.org @ Thu, 2 Oct 2008
09:32:01 +0400:
ДАННАЯ задача может решаться так:
A/Makefile:
all: ../a.tgz
../a.tgz: $(DIR_SRC)/c $(DIR_SRC)/b
make -C ../B
tar -czvf $@ $^
и ничего страшного что make -C ../B вызывается
Dmitry E. Oboukhov - debian-russian@lists.debian.org @ Wed, 1 Oct 2008
22:30:42 +0400:
DEO о у меня примерно такая шняга в одном из проектов есть, примерно так и
DEO работает (архив создается с бинарником и из исходников),
DEO работа твоего примера (я вместо gcc cp использовал чтобы не
AC Сгенерить список зависимостей - это как раз задача, которую я в полной
AC постановке решить не сумел. Ставить?
в ПОЛНОЙ постановке задача нерешабельна, это да
я упирался в рекурсии на make'ах и дальше не шло
(то есть в настоящие рекурсии)
AC Нет, руками не годится - оно зависит, в частности,
Stanislav Maslovski - debian-russian@lists.debian.org @ Thu, 2 Oct 2008
09:46:24 +0400:
А так? :)
all:
make -C ../dirB
@if test ! -f a.tar.gz; then tar czf a.tar.gz ../dirB/b ../dirB/c
rm -f ../dirB/rebuild; fi
@if test -f ../dirB/rebuild; then tar czf
Dmitry E. Oboukhov - debian-russian@lists.debian.org @ Thu, 2 Oct 2008
11:20:53 +0400:
AC Сгенерить список зависимостей - это как раз задача, которую я в полной
AC постановке решить не сумел. Ставить?
DEO в ПОЛНОЙ постановке задача нерешабельна, это да
DEO я упирался в рекурсии на make'ах
AC Ну вот когда у человека накапливается к make десяток претензий подобного
AC рода в _разных_ местах - он и пишет заменитель... Потому что десяток -
AC это уже проще заменить, чем исправить.
но я пока не видел УНИВЕРСАЛЬНОГО заменителя
да типа там функций добавят, там других вкусностей
а там
On Thu, Oct 02, 2008 at 11:56:13AM +0400, Artem Chuprina wrote:
Stanislav Maslovski - debian-russian@lists.debian.org @ Thu, 2 Oct 2008
09:46:24 +0400:
SM Можно еще прощe: два условия в одно с -o.
После чего возникает резонный вопрос. А make тут зачем? По условию
задачи? Задача-то на
Hello!
Раз тут такие специалисты по мэйкфайлам собрались, подскажите одну вещь. Нужно
мне в проект добавить пару дополнительных файлов, которые должны линковаться
с дополнительными библиотеками. Сейчас делаю так
TCC += -lz -DSQLITE_ENABLE_ICU=1 `icu-config --ldflags`
Где-то далее в мэйке идет
AC .include bsd.subdir.mk
Ты решал не ту задачу. Решил ты ее или нет, я уж не могу сказать,
поскольку непонятно, какую решал, но решал - не ту.
Ну ёпрст 8-) Я решил ту задачу, именно ту - строю пакет из бинарей,
которые строятся из .с файлов. При желании построить пакет измененные
.c таки
On 2008.10.02 at 13:07:47 +0400, Alexey Pechnikov wrote:
Hello!
Раз тут такие специалисты по мэйкфайлам собрались, подскажите одну вещь.
Нужно
мне в проект добавить пару дополнительных файлов, которые должны линковаться
с дополнительными библиотеками. Сейчас делаю так
TCC += -lz
make -C ../dirB
@if test ! -f a.tar.gz; then tar czf a.tar.gz ../dirB/b ../dirB/c
rm -f ../dirB/rebuild; fi
@if test -f ../dirB/rebuild; then tar czf a.tar.gz ../dirB/b
../dirB/c rm ../dirB/rebuild; fi
После чего возникает резонный вопрос. А make тут
Hello!
Либо мои файлики собираются в отдельный бинарник и никому кроме него
эти библиотеки не нужны. Тогда использовать первый данный совет - про
target specific variables.
Но на это как-то не похоже. Разве что этот бинарник потом в отдельный
пакет кладется.
В результате несколько
%: %.c
cc -o $* $
Да-да-да. Вот именно такие вот квадратные колеса и приходится потом
закруглять, чтобы оно хотя бы собиралось, как надо. Gr-r-r-r-r.
Я понимаю, что это всего лишь пример, но уж очень он показателен.
(ничего личного)
--
Best regards, Aleksey Cheusov.
--
To
On 2008.10.02 at 13:57:18 +0400, Alexey Pechnikov wrote:
Hello!
Либо мои файлики собираются в отдельный бинарник и никому кроме него
эти библиотеки не нужны. Тогда использовать первый данный совет - про
target specific variables.
Но на это как-то не похоже. Разве что этот бинарник
Hello!
В сообщении от Thursday 02 October 2008 14:08:27 Victor Wagner написал(а):
В результате несколько деб-пакетов генерится. Сборка с помощью make
проходит нормально, а при debuild вот сообщения вылезли. Значит, проблема
именно в том, что добавленные зависимости нужны не всем пакетам. А
On 2008.10.02 at 14:20:53 +0400, Alexey Pechnikov wrote:
Hello!
В сообщении от Thursday 02 October 2008 14:08:27 Victor Wagner написал(а):
В результате несколько деб-пакетов генерится. Сборка с помощью make
проходит нормально, а при debuild вот сообщения вылезли. Значит, проблема
2 октября 2008 г. 11:56 пользователь Artem Chuprina [EMAIL PROTECTED] написал:
Stanislav Maslovski - debian-russian@lists.debian.org @ Thu, 2 Oct 2008
09:46:24 +0400:
А так? :)
all:
make -C ../dirB
@if test ! -f a.tar.gz; then tar czf a.tar.gz ../dirB/b
2 октября 2008 г. 13:55 пользователь Aleksey Cheusov [EMAIL PROTECTED]
написал:
make -C ../dirB
@if test ! -f a.tar.gz; then tar czf a.tar.gz ../dirB/b
../dirB/c rm -f ../dirB/rebuild; fi
@if test -f ../dirB/rebuild; then tar czf a.tar.gz ../dirB/b
Dmitry E. Oboukhov - debian-russian@lists.debian.org @ Thu, 2 Oct 2008
12:47:44 +0400:
AC Ну вот когда у человека накапливается к make десяток претензий подобного
AC рода в _разных_ местах - он и пишет заменитель... Потому что десяток -
AC это уже проще заменить, чем исправить.
DEO но я
Alexey Pechnikov wrote:
Hello!
Раз тут такие специалисты по мэйкфайлам собрались, подскажите одну вещь.
Нужно
мне в проект добавить пару дополнительных файлов, которые должны линковаться
с дополнительными библиотеками. Сейчас делаю так
TCC += -lz -DSQLITE_ENABLE_ICU=1 `icu-config
Aleksey Cheusov - debian-russian@lists.debian.org @ Thu, 02 Oct 2008 12:09:42
+0300:
AC .include bsd.subdir.mk
Ты решал не ту задачу. Решил ты ее или нет, я уж не могу сказать,
поскольку непонятно, какую решал, но решал - не ту.
AC Ну ёпрст 8-) Я решил ту задачу, именно ту - строю
make -C ../dirB
@if test ! -f a.tar.gz; then tar czf a.tar.gz ../dirB/b
../dirB/c rm -f ../dirB/rebuild; fi
@if test -f ../dirB/rebuild; then tar czf a.tar.gz ../dirB/b
../dirB/c rm ../dirB/rebuild; fi
После чего возникает резонный вопрос. А make
AC .include bsd.subdir.mk
Ты решал не ту задачу. Решил ты ее или нет, я уж не могу сказать,
поскольку непонятно, какую решал, но решал - не ту.
AC Ну ёпрст 8-) Я решил ту задачу, именно ту - строю пакет из бинарей,
AC которые строятся из .с файлов. При желании построить пакет
AC
2 октября 2008 г. 15:52 пользователь Aleksey Cheusov [EMAIL PROTECTED]
написал:
make -C ../dirB
@if test ! -f a.tar.gz; then tar czf a.tar.gz ../dirB/b
../dirB/c rm -f ../dirB/rebuild; fi
@if test -f ../dirB/rebuild; then tar czf a.tar.gz
../dirB/b
AC Ну вот когда у человека накапливается к make десяток претензий подобного
AC рода в _разных_ местах - он и пишет заменитель... Потому что десяток -
AC это уже проще заменить, чем исправить.
AC но я пока не видел УНИВЕРСАЛЬНОГО заменителя
AC да типа там функций добавят, там других вкусностей
Aleksey Cheusov - debian-russian@lists.debian.org @ Thu, 02 Oct 2008 15:05:17
+0300:
AC .include bsd.subdir.mk
Ты решал не ту задачу. Решил ты ее или нет, я уж не могу сказать,
поскольку непонятно, какую решал, но решал - не ту.
AC Ну ёпрст 8-) Я решил ту задачу, именно ту - строю
Как воспользоваться вашим решением в Debian?
Какая проблема стоит?
Испробовать ваш вариант с bmake в Debian.
В lenny я его не нашёл.
В Debian есть pmake. Это древний вариант NetBSD make-а. Но лучше
запакетить более свежий, и лучше под именем nbmake для предотвращения
коллизий. Исходно,
Dmitry E. Oboukhov - debian-russian@lists.debian.org @ Thu, 2 Oct 2008
16:24:57 +0400:
AC Ну вот когда у человека накапливается к make десяток претензий подобного
AC рода в _разных_ местах - он и пишет заменитель... Потому что десяток -
AC это уже проще заменить, чем исправить.
AC но я
AC Задача стояла построить _зависящую_ цель (пакет) при измениях в
AC исходных файлах _зависимых_ целей (конкретные программы). Эта
AC задача решена.
Задача подразумевала некоторую вполне конкретную раскладку по
директориям. А не как понравится тебе.
Извини подвинься. Вот уж каталоги я
On 2008.10.02 at 16:50:27 +0300, Aleksey Cheusov wrote:
AC Задача стояла построить _зависящую_ цель (пакет) при измениях в
AC исходных файлах _зависимых_ целей (конкретные программы). Эта
AC задача решена.
Задача подразумевала некоторую вполне конкретную раскладку по
директориям. А
Aleksey Cheusov - debian-russian@lists.debian.org @ Thu, 02 Oct 2008 16:50:27
+0300:
AC Задача стояла построить _зависящую_ цель (пакет) при измениях в
AC исходных файлах _зависимых_ целей (конкретные программы). Эта
AC задача решена.
Задача подразумевала некоторую вполне конкретную
Извини подвинься. Вот уж каталоги я будут делать так, как удобно мне :)
В идеологии mk scripts: один проект (екзешник или библиотека) -
Ну и? Поменяли мы один файлик в библиотеке. Теперь надо пересобрать
четыре экзешника (каждый, естественно, в своем каталоге), которые с этой
библиотекой
AC Задача стояла построить _зависящую_ цель (пакет) при измениях в
AC исходных файлах _зависимых_ целей (конкретные программы). Эта
AC задача решена.
Задача подразумевала некоторую вполне конкретную раскладку по
директориям. А не как понравится тебе.
AC Извини подвинься. Вот уж каталоги
Всё таже задача, но под соусом Recursive make considered useful ;)
% ls -R contest
contest:
dirA dirB
contest/dirA:
Makefile
contest/dirB:
Makefile b.c c.c
% cat dirA/Makefile
binaries = ../dirB/b ../dirB/c
В первую очередь это письмо обращено к Диме Обухову, который утверждает,
что все легко, вот тут добавим еще пару зависимостей, и эта задача тоже
решится. С удовольствием увижу присоединившимся к контесту Алексея
Чеусова, с BSD make (видимо, pmake, чтобы было топичнее - но если что, я
и netbsd
В первую очередь это письмо обращено к Диме Обухову, который утверждает,
что все легко, вот тут добавим еще пару зависимостей, и эта задача тоже
решится. С удовольствием увижу присоединившимся к контесту Алексея
Чеусова, с BSD make (видимо, pmake, чтобы было топичнее - но если что, я
и
о у меня примерно такая шняга в одном из проектов есть, примерно так и
работает (архив создается с бинарником и из исходников),
работа твоего примера (я вместо gcc cp использовал чтобы не париться с
ошибками):
nbw:[~/test.mk]$ touch B/b.c
nbw:[~/test.mk]$ make -C A all
make: Entering directory
1 октября 2008 г. 19:41 пользователь Artem Chuprina [EMAIL PROTECTED] написал:
Дерево проекта:
dirA
Makefile
dirB
Makefile
b.c
c.c
Makefile в dirA собирает пакет. Допустим, для простоты a.tar.gz. Он
туда кладет dirB/b и dirB/c, которые собирает путем компиляции из b.c и
c.c
On Wed, Oct 01, 2008 at 11:10:55PM +0400, Yuri Kozlov wrote:
Не понял в чём подвох.
./dirA
./dirA/Makefile
all:
make -C ../dirB
@if test -f ../dirB/rebuild; then tar czf a.tar.gz ../dirB/b
../dirB/c rm ../dirB/rebuild; fi
тут маленький недочет вижу: если после
On Wed, Oct 01, 2008 at 10:30:42PM +0400, Dmitry E. Oboukhov wrote:
ДАННАЯ задача может решаться так:
A/Makefile:
all: ../a.tgz
../a.tgz: $(DIR_SRC)/c $(DIR_SRC)/b
make -C ../B
tar -czvf $@ $^
и ничего страшного что make -C ../B вызывается постоянно, поскольку он
ничего не
2 октября 2008 г. 9:13 пользователь Stanislav Maslovski
[EMAIL PROTECTED] написал:
On Wed, Oct 01, 2008 at 11:10:55PM +0400, Yuri Kozlov wrote:
Не понял в чём подвох.
./dirA
./dirA/Makefile
all:
make -C ../dirB
@if test -f ../dirB/rebuild; then tar czf a.tar.gz ../dirB/b
On Thu, Oct 02, 2008 at 09:13:43AM +0400, Stanislav Maslovski wrote:
С флагом решение напрашивающееся. Может, Артём имел в виду, что нельзя
модифицировать ./dirB/Makefile, и что он производит бинарники a и b и только?
Очепятка, следует читать: ... b и с и только.
--
Stanislav
--
To
On Thu, Oct 02, 2008 at 09:32:37AM +0400, Yuri Kozlov wrote:
А так? :)
all:
make -C ../dirB
@if test ! -f a.tar.gz; then tar czf a.tar.gz ../dirB/b ../dirB/c
rm -f ../dirB/rebuild; fi
@if test -f ../dirB/rebuild; then tar czf a.tar.gz ../dirB/b
../dirB/c rm
68 matches
Mail list logo