2012-02-17 15 views
5

mam zmienną powiedzmy x = obr/TPMłupania zmienna w pliku make

w makefile chcę, aby móc podzielić x na połówki.

w bash to byłoby coś jak $ {x%/} i $ {x # /}

ale w jaki sposób mogę to zrobić w makefile?

z góry dzięki.

Odpowiedz

4

Jeśli jest to nazwa ścieżki (lub nawet, jeśli nie jest, a separator zawsze jest /), można użyć funkcji dir i notdir.

half1 = $(dir $(x)) 
half2 = $(notdir $(x)) 
12

Dla bardziej ogólne rozwiązanie (np jeśli istnieją więcej niż dwie części, lub jeśli separator nie zawsze jest „/”), można użyć tego podejścia:

y = $(subst /, ,$(x)) 

half1 = $(word 1, $(y)) 
half2 = $(word 2, $(y)) 
+1

to nie będzie działa zgodnie z przeznaczeniem, jeśli 'x' zawiera spacje. –

+0

@AlexReece, prawda, to nie * to * ogólne. Następnym krokiem byłoby wołanie "sed". – Beta

+0

Jeśli separator jest spacją, myślę, że działa, jeśli zadeklarujesz zmienną zawierającą spację, a następnie użyjesz tej zmiennej w 'subst'. – sclarke81