ビンとコードファイルを別々のディレクトリに分割して、現在の状態で管理するのが難しくなってしまいたいと考えています。Makefileはソースコードとバイナリのために別々のディレクトリをどのように使用できますか?
私は、理想的には(すべてのプログラムがあることを心に留めて、私はこれは手作業ですべてのプログラムのためのルールを記述することなく、私の現在のシステムで動作するように取得することができませんしかし
project_dir
|-Makefile
|-run_tests.sh
|
|__source
| |-program1.cpp
| |-program2.cpp
|
|__bin
|-program1
|-program2
を持っていると思います別のプログラムではなく、一緒にリンクされたオブジェクトのシリーズ)
#Current make system
BIN=./bin/
SOURCE=./source/
LIST=program1 program2...
all: $(LIST)
%: $(SOURCE)%.cpp
$(CC) $(INC) $< $(CFLAGS) -o $(BIN)[email protected] $(LIBS)
それは常にバイナリを再構築すると思うので、それはソースファイルがいない場合でも、現在のパスにターゲットを見ることができない私、これはそれ以外作品かわった。
私の唯一の考えは、メイクファイルを作るプログラムを書くことですが、私はそれをしたくありません。使用automake
:
伝統的なアプローチは、ソースディレクトリ 'src'を呼び出してバイナリをビルドし、バイナリが' bin'ディレクトリにコピーされる別のステップ 'install'を持っています - それを行うためにインストールします。 – reinierpost