Jak mohu uplatnit GNU aby makro vytvořené pomocí definovat?

hlasů
10

Je nějaký rozdíl mezi těmito dvěma způsoby GREP se odvolává ve svém Makefile? Z nějakého důvodu mám použít jedno nebo druhé? Obojí se zdá produkovat stejný výsledek.

define GREP
$(word 3,$(shell echo #define  FOO     0xfff00100))
endef

all:
        @echo $(GREP)
        @echo $(call GREP)
Položena 23/07/2009 v 02:38
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
16

Způsob, jakým se používá, není žádný rozdíl. Nicméně, pokud vaše makro GREP byly funkce, která se parametry, měli byste použít $ (hovor) předat parametry k němu. Například:

define GREP
$(shell grep $1 $2)
endef

FOO:=$(call GREP,abc,words.txt)

To způsobí, že $1má být nahrazen s „ABC“ a $2s „words.txt“.

Více v GNU aby manuálu na uživatelem definované funkce zde: http://www.gnu.org/software/make/manual/make.html#Call-Function

Snad to pomůže,

Eric Melski

Odpovězeno 23/07/2009 v 03:40
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more