Jak zabránit GNU Udělat z provádění kdy proměnná definice má koncové mezery

hlasů
1

Měl jsem jednoduchou proměnnou definici v mém makefile:

THIS         := ~/edan 

a to už koncové mezery v řadě.

Později, když jsem je definován další proměnnou, pokud jde o tento:

WARES       := $(THIS)/wares

skutečné proměnné definované byl /home/directory/edan wares

a pak se make cleanpravidlo odstranit /home/directory/edanmísto toho, co jsem chtěl, aby to.

Jak mohu zabránit Makefile popravu jestliže linka koncové mezery?

Položena 29/10/2010 v 16:32
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
3

I když byste mohli psát Makefile tak, že zkontroluje proměnnou pro koncové mezery a východy, pokud zjistí nějaké existují lepší způsoby, jak se vypořádat s touto situací.

V tomto případě bych doporučil používat addsuffixfunkci Catenate $(THIS)a /waresmísto toho dělá ručně. addsuffixFunkce odstraňte koncové mezery pro vás. Jinými slovy:

WARES := $(addsuffix /wares,$(THIS))

Pokud si opravdu chcete, aby to ukončit, pokud zjistí, koncové mezery, jsi to mohl udělat:

THIS := ~/edan
ifneq "$(THIS)" "$(strip $(THIS))"
    $(error Found trailing whitespace)
endif
Odpovězeno 29/10/2010 v 17:09
zdroj uživatelem

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