2017-03-21 7 views
0

こんにちは私はLinux上でかなり大きなmakefileを持っており、私はそれを減らしています。そのようなタスクのために私は、変数宣言セクション(小さな例が怒鳴る)は次のように動作し、何かをやろうとしメークファイルの中に

DIRHEA := include/ 

DIRHEA_MANAGERS := $(DIRHEA)managers/ 
DIRHEA_ENTITIES := $(DIRHEA)entities/ 

CXXFLAGS := -I$(DIRHEA_MANAGERS) -I$(DIRHEA_ENTITIES) 

for dir in $(DIRHEA)/*; do \ 
    if [[ -d $dir ]]; then \ 
     CXXFLAGS += -I$dir \ 
    fi; \ 
done 
働いていない

を削減しようとしています。誰も私にそうする方法を提案できますか?

答えて

1

まずディレクトリのリストを取得する:それは魅力のように働いた

SUBDIRS := $(shell ls -p $(DIRHEA) | grep /) 

その後

CXXFLAGS := $(addprefix -I(DIRHEA), $(SUBDIRS)) 
+0

おかげで先生を – gomezportillo

1

forこのようなループは、シェルという構文で、Makefileではありません。文字列を連結するには、シェルの構文(POSIX互換シェルでfoo="${foo} bar")を使用する必要があります。

関連する問題