ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [Comm] Makefile HELP!
@ 2005-01-21  7:23 Dmytro O. Redchuk
  2005-01-24  6:07 ` [Comm] " Vitaly Ostanin
  0 siblings, 1 reply; 4+ messages in thread
From: Dmytro O. Redchuk @ 2005-01-21  7:23 UTC (permalink / raw)
  To: ALT Community

Добрый  день.

   Вот возник вопрос -- не могу справиться.

   Скажите, можно ли (хочу надеяться, что "да") в Makefile понять,
   выполнялась ли какая-то определённая цель?

   Например:
    0  a_lot_of_files = foo moo bar
    1
    2  backup: $(a_lot_of_files)
    3  ifeq($(MAKECMDGOALS),check)
    4	   # да нет, никаких бэкапов, мы только проверяем...
    5  esle
    6      # пум-пурум, пам-парам...
    7  endif
    8
    9  check: backup
   10      # а выполнялся ли backup?!
   11      # если ДА, то бэкаповых файлов НЕТ.
   12      # если НЕТ, то всё ОК.


   Пробовал где-то в строке 4 писать что-то типа define NO_BACKUP, но
   потом запроблемилось его проверить где-то в строке 10 (как ни пробовал,
   не получается:)

   Можно, конечно, играться с переменной $?, но в ней может быть слишком
   много всего, а мне нужно проверить только одну цель, например.

   Куда глянуть, народ? make tutorial читаю, но пока не вылепилось...

-- 
  _,-=._              /|_/|
  `-.}   `=._,.-=-._.,  @ @._,
     `._ _,-.   )      _,.-'
        `    G.m-"^m`m'        Dmytro O. Redchuk



^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Comm] Re: Makefile HELP!
  2005-01-21  7:23 [Comm] Makefile HELP! Dmytro O. Redchuk
@ 2005-01-24  6:07 ` Vitaly Ostanin
  2005-01-24  8:55   ` Dmytro O. Redchuk
  0 siblings, 1 reply; 4+ messages in thread
From: Vitaly Ostanin @ 2005-01-24  6:07 UTC (permalink / raw)
  To: community

[-- Attachment #1: Type: text/plain, Size: 1226 bytes --]

Dmytro O. Redchuk пишет:
> Добрый  день.
> 
>    Вот возник вопрос -- не могу справиться.
> 
>    Скажите, можно ли (хочу надеяться, что "да") в Makefile понять,
>    выполнялась ли какая-то определённая цель?
> 
>    Например:
>     0  a_lot_of_files = foo moo bar
>     1
>     2  backup: $(a_lot_of_files)
>     3  ifeq($(MAKECMDGOALS),check)
>     4	   # да нет, никаких бэкапов, мы только проверяем...
>     5  esle
>     6      # пум-пурум, пам-парам...
>     7  endif
>     8
>     9  check: backup
>    10      # а выполнялся ли backup?!
>    11      # если ДА, то бэкаповых файлов НЕТ.
>    12      # если НЕТ, то всё ОК.
> 
> 
>    Пробовал где-то в строке 4 писать что-то типа define NO_BACKUP, но
>    потом запроблемилось его проверить где-то в строке 10 (как ни пробовал,
>    не получается:)
> 
>    Можно, конечно, играться с переменной $?, но в ней может быть слишком
>    много всего, а мне нужно проверить только одну цель, например.

Можно попробовать поиск вхождения этой цели в $?, ну и $^ может 
пригодиться.

В вашем случае можно указать зависимость бакапных файлов от 
исходных и не делать цели с циклическими зависимостями.

<skipped/>

-- 
Regards, Vyt
mailto:  vyt@vzljot.ru
JID:     vyt@vzljot.ru

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 256 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Comm] Re: Makefile HELP!
  2005-01-24  6:07 ` [Comm] " Vitaly Ostanin
@ 2005-01-24  8:55   ` Dmytro O. Redchuk
  2005-01-24  9:06     ` Vitaly Ostanin
  0 siblings, 1 reply; 4+ messages in thread
From: Dmytro O. Redchuk @ 2005-01-24  8:55 UTC (permalink / raw)
  To: community

On Mon, Jan 24, 2005 at 09:07:32AM +0300, Vitaly Ostanin wrote:
> 
> Dmytro O. Redchuk пишет:
> >Добрый  день.
> >
> >   Вот возник вопрос -- не могу справиться.
> >
> >   Скажите, можно ли (хочу надеяться, что "да") в Makefile понять,
> >   выполнялась ли какая-то определённая цель?
> >
> >   Например:
> >    0  a_lot_of_files = foo moo bar
> >    1
> >    2  backup: $(a_lot_of_files)
> >    3  ifeq($(MAKECMDGOALS),check)
> >    4	   # да нет, никаких бэкапов, мы только проверяем...
> >    5  esle
> >    6      # пум-пурум, пам-парам...
> >    7  endif
> >    8
> >    9  check: backup
> >   10      # а выполнялся ли backup?!
> >   11      # если ДА, то бэкаповых файлов НЕТ.
> >   12      # если НЕТ, то всё ОК.
> >
> >
> >   Пробовал где-то в строке 4 писать что-то типа define NO_BACKUP, но
> >   потом запроблемилось его проверить где-то в строке 10 (как ни пробовал,
> >   не получается:)
> >
> >   Можно, конечно, играться с переменной $?, но в ней может быть слишком
> >   много всего, а мне нужно проверить только одну цель, например.
> 
> Можно попробовать поиск вхождения этой цели в $?, ну и $^ может 
> пригодиться.
Тут проблема в том, что переменные $?, $^ и иже с ними становятся
переменными *внутри* цели. А проверки ifeq () делаются на верхнем уровне,
гед эти переменные ещё не... Насколько я понял. А пытаться перекидывать
эти переменные в окружение показалось "кострубатым".

> В вашем случае можно указать зависимость бакапных файлов от 
> исходных и не делать цели с циклическими зависимостями.

(Может, кому пригодится..)

Пока что больше всего нравится такое (Makefile получается более
читабельный):

check:
# check for backup files:
	@$(MAKE) -q backup >/dev/null 2>&1 \
		&& echo 'Backup files present.' \
		|| echo 'Backup files NOT present.'
# check for filter files:
	@$(MAKE) -q filters 2>/dev/null 2>&1 \
		&& echo 'Filter files present.' \
		|| echo 'Filter files NOT present.'

(Не пинайте за велосипед, плиз)


Хотя "академически" вопрос остался открыт -- можно ли красиво проверить,
выполнялась ли какая-то цель :-) Но занудствовать не буду, пока
остановлюсь, а там видно будет... Пусть подкорка ещё помолотит...

> 
> <skipped/>
> 
> -- 
> Regards, Vyt
> mailto:  vyt@vzljot.ru
> JID:     vyt@vzljot.ru


-- 
  _,-=._              /|_/|
  `-.}   `=._,.-=-._.,  @ @._,
     `._ _,-.   )      _,.-'
        `    G.m-"^m`m'        Dmytro O. Redchuk



^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Comm] Re: Makefile HELP!
  2005-01-24  8:55   ` Dmytro O. Redchuk
@ 2005-01-24  9:06     ` Vitaly Ostanin
  0 siblings, 0 replies; 4+ messages in thread
From: Vitaly Ostanin @ 2005-01-24  9:06 UTC (permalink / raw)
  To: community

[-- Attachment #1: Type: text/plain, Size: 419 bytes --]

Dmytro O. Redchuk пишет:

<skipped/>

> Хотя "академически" вопрос остался открыт -- можно ли красиво проверить,
> выполнялась ли какая-то цель :-) Но занудствовать не буду, пока
> остановлюсь, а там видно будет... Пусть подкорка ещё помолотит...

Как правило, если определённого красивого способа нет, то 
правильно делать другим способом :)

<skipped/>

-- 
Regards, Vyt
mailto:  vyt@vzljot.ru
JID:     vyt@vzljot.ru

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 256 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2005-01-24  9:06 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-01-21  7:23 [Comm] Makefile HELP! Dmytro O. Redchuk
2005-01-24  6:07 ` [Comm] " Vitaly Ostanin
2005-01-24  8:55   ` Dmytro O. Redchuk
2005-01-24  9:06     ` Vitaly Ostanin

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git