2017-05-17 10 views
0

私はそこに複数のアプリケーションを含むゴランモノリスレポを持っています。私は各アプリケーションのルートにMakefileを持っていて、root/app1/のようなアプリディレクトリにいればmake buildを実行する必要があります。個々の実行可能ファイルを作成したり、特定のアプリケーションのみをビルドするために、すべてのアプリケーションを一度にビルドするために使用できるトップレベルのMakefileを各サービスでこれらのMakefileを削除したいと考えています。これを達成するために何か Makefileは名前でサブディレクトリを構築します

make build app1 # builds only app1 
make build # builds all apps 

のような明白な方法は、すべてのアプリケーションのための目標を持つようにしてコマンドを構築してきているが、ちょうどにおいても、ターゲットごとにそのビルドコマンドを繰り返していないことにより、これを行うための簡単な方法があるかどうかを知りたいと思いましたMakefileの

+0

メイクファイルには、デフォルトターゲットの名前は何ですか? – Beta

+0

私の個々のアプリでは、 "ビルド" – tazo

答えて

1

最も簡単な方法は、root/までのMakefileを移動し、その上でこれらの行を追加することです:

APPS := app1 app2 ... 
TARGETS := $(addsuffix /build, $(APPS)) 

all: $(TARGETS) 

%/build: 
    $(MAKE) -C $* -f ../Makefile build 

あなたが再帰的に作成し使用したくない場合は、我々は内部を見なければなりませんあなたのmakefileを変更する方法を知るために。

関連する問題