IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Пингвинятник (ОС *NIX) (http://www.imho.ws/forumdisplay.php?f=76)
-   -   make.conf и make (http://www.imho.ws/showthread.php?t=137853)

Plague 30.01.2009 14:32

make.conf и make
 
вопрос тут возник.

имеем общий make.conf в который make смотрит каждый раз когда запускается.
В него можно прописать определенные переменные, как общие, так и для определенных условий, типа

.if ${.CURDIR} == ${PORTSDIR}/ftp/pure-ftpd
WITH_LANG= russian
.endif

как посмотреть какие переменные будет собственно make использовать при запуске конкретно в данном месте?

ось - FreeBSD, но не думаю, что ответ будет другим для чего-то еще.

Hubbitus 08.02.2009 22:56

Код:

-p, --print-data-base
            Print the data base (rules and variable values) that results from reading the makefiles; then execute as usual or as
            otherwise  specified.  This  also  prints the version information given by the -v switch (see below).  To print the
            data base without trying to remake any files, use make -p -f/dev/null.

Не оно случаем?

Plague 08.02.2009 23:59

нет, пишет illegal option -- -

Hubbitus 09.02.2009 02:10

Ты и длинную и корткую опцию пробовал? Ман что говорит, может во Фре оно как-то по другому зовется просто? Я на Линуксе, ты же знаешь...

Hatifnatt 09.02.2009 04:35

Во FreeBSD опции make иначе выглядят
man тут
на мой взгляд ключ -d с какой-то из опций то что нужно. Может быть ключa -v будет достаточно.

Plague 09.02.2009 08:48

Цитата:

Сообщение от Hubbitus (Сообщение 1631866)
Ты и длинную и корткую опцию пробовал?

обе..
Цитата:

Сообщение от Hatifnatt (Сообщение 1631880)
Может быть ключa -v будет достаточно.

make -v
`all' is up to date.
Цитата:

Сообщение от Hatifnatt (Сообщение 1631880)
ключ -d с какой-то из опций то что нужно

логично предположить, что эта опция v,
но от make -dv оно за секунду выплюнуло 260 кб лога, при этом даже близко не упомянув о добавленной переменной... :(

возможно порт существует какой, надо поискать. portsopt - пробовал, не кажет.

Hubbitus 09.02.2009 11:02

Цитата:

Сообщение от Hatifnatt (Сообщение 1631880)
Во FreeBSD опции make иначе выглядят
man тут

Из него стоит попробовать:
Код:

-V variable
Print 's idea of the value of variable in the global context. Do not build any targets. Multiple instances of this option may be specified; the variables will be printed one per line, with a blank line for each null or undefined variable.

и, возможно (не совсем то все же) стоит взглянуть на опцию -n.

Plague 09.02.2009 11:39

не, не катит.

опции заданные конфигуратором порта показывает только когда задаешь конкретную переменнуй, типа:
# make -V WITH_MYSQL
true

что во-первых, не соответствует задаче:
Цитата:

Сообщение от Plague (Сообщение 1629685)
как посмотреть какие переменные будет собственно make использовать при запуске конкретно в данном месте?

а во-вторых, все это я могу посмотреть посредством упоминавшегося выше мной portsopt и сразу, а не перебирая переменные.
и в-третьих, опции из глобального make.conf не видит вообще.

make -n сообщает
`all' is up to date.

и всё... :idontnow:

Hubbitus 09.02.2009 11:48

Цитата:

Сообщение от Plague (Сообщение 1631962)
что во-первых, не соответствует задаче:

Так а там нельзя вместо имени указать что-то вроде звездочки, не прокатывает?


Цитата:

Сообщение от Plague (Сообщение 1631962)
make -n сообщает
`all' is up to date.

и всё...

Ну так а если перед сделать
make clean distclean
?

Plague 09.02.2009 11:56

звездочка не канает. ни просто, ни экранированная.
make clean делал.
а make distclean мне что-то не хочется делать, да и не относится это стопудова к делу..

Hubbitus 09.02.2009 12:01

Цитата:

Сообщение от Plague (Сообщение 1631967)
звездочка не канает. ни просто, ни экранированная.

Жаль. Хм, как всегда в Линуксе все проще...


Цитата:

Сообщение от Plague (Сообщение 1631967)
а make distclean мне что-то не хочется делать, да и не относится это стопудова к делу..

Еще как относится! distclean очистит дистрибутив, после этого потребуются действия для компиляции, и с ключом -n он покажет что делал бы. Если там будут указаны не только комманды, но и установки переменных, то их можно будет легко выцепить тем юе grep'ом.

Plague 09.02.2009 12:03

Цитата:

Сообщение от Hubbitus (Сообщение 1631969)
distclean очистит дистрибутив

он сорцы удалит. вот и все. переменные компиляции здесь абсолютно не причем.

Hubbitus 09.02.2009 12:16

distclean обычно удаляет далеко не только сурцы (посмотреть что он делает можно в соответствующей секции Makefile).
Собственно после него, компиляция должна будет начаться полностью сначала, если запустить make, а не будет сообщать что "`all' is up to date."

Plague 09.02.2009 12:31

тогда проще просто запустить make, и грепить его вывод.
речь идет о том как посмотреть переменные, а не результат их деятельности.

Hubbitus 09.02.2009 13:42

Так я и говорю запустить make! Только с ключем -n он покажет что делать будет, НО не будет делать ничего! В том-то и суть.


Часовой пояс GMT +4, время: 21:34.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.