Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

Re: [Lug-bg] Makefile variables overrides


  • Subject: Re: [Lug-bg] Makefile variables overrides
  • From: Румен Петров <help@xxxxxxxxxxxxxxxxx>
  • Date: Mon, 14 May 2012 02:22:56 +0300

Georgi Chorbadzhiyski wrote:
Имам 2 Makefile [1], [2]. При пускане на make както се очаква резултат е:
CROSS=sh4-linux-
При пускане на make CROSS=blah резултатът пак е:
CROSS=sh4-linux-

/CROSS се сетва два пъти, защото $(MAKE) е еквивалента на това,
което е изпълнено като "make xxxxxx" и разбира се се получава
make CROSS=blah --no-print-directory -f Makefile2 CROSS=sh4-linux-/

Искам да мога при дадените Makefile's да изпълня make CROSS=blah
и вторият Makefile да получи CROSS=blah променлива. Ефективно да
мога да override-на променливите които задавам на командният ред
при викането make.

Идеи?

[1]: Makefile
-----cut-----
all: test
test:
@$(MAKE) --no-print-directory -f Makefile2 CROSS=sh4-linux-
-----cut-----

[2]: Makefile2
-----cut-----
all: show
show:
@echo CROSS=$(CROSS)
-----cut-----



За припокриване на макросите, наречени променливи в документацията на ГНУ make, може да се използва следното:

================================
all: test

CROSS?=sh4-linux-

test:
	$(MAKE) -f Makefile2 CROSS=$(CROSS)
================================

Номера би трябвало да мине и на позабравени ОС с малка промяна $(MAKE) -e ....

Ако има притеснения от макрос във вида CROSS?=sh4-linux-, то става и така:
================================
all: test

CROSS=sh4-linux-

test:
	$(MAKE) -f Makefile2 CROSS=$${CROSS-$(CROSS)}
================================

Примера отново е без -е флаг, защото на почти неизползвани ОС може да се ползва и така:
	CROSS=$${CROSS-$(CROSS)} \
	$(MAKE) -f Makefile2 CROSS=$${CROSS-$(CROSS)}

Горните примери работят и с CROSS=нещоси make, което не сработва при правило от вида $(MAKE) ..... $(MAKEFLAGS)

Румен



_______________________________________________
Lug-bg mailing list
Lug-bg@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg



 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.