2012-08-29 14 views
12

Ho un makefile in cui voglio leggere il nome del modulo dall'input e quindi creare la directory in base al suo nome. qui è il mio codice:legge la variabile di input nel makefile e imposta la variabile sul suo nome

build: 
    @read -p "Enter Module Name:" module; 
    module_dir=./modules/$$module 
    mkdir -p $$module_dir/build; 

Ma dopo aver impostato module_dir, contiene solo ./modules/ (senza nome del modulo concatenato).
Cosa c'è di sbagliato nel mio codice?

grazie per le vostre risposte

risposta

36

Ogni comando viene eseguito nel proprio subshell, quindi le variabili non possono sopravvivere da un comando a quella successiva. Mettili sulla stessa riga e funzioneranno:

build: 
    @read -p "Enter Module Name:" module; \ 
    module_dir=./modules/$$module; \ 
    mkdir -p $$module_dir/build 
+0

+1 per fornire sfondo – migu

Problemi correlati