私はすでに別のターゲットや味(デバッグ・リリース)をコンパイルすることもできますが、私が作るときに問題がある:make debug
またはmake release
これは、オブジェクトと、各フォルダのフォルダ内のライブラリーを生成します。autotoolsを使用して、異なるパスの異なるターゲットを再コンパイルしないでください。
これはMakefile.amです:
AM_CXXFLAGS = @[email protected]
ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS}
lib_LIBRARIES = libInitDB.a
libInitDB_a_SOURCES = \
InitDB.cpp
.PHONY: debug release
debug:
make CXXFLAGS='$(CXX_DEBUG_FLAGS) $(CXXFLAGS)'
mkdir -p $(DEBUG_DIR)
mv $(lib_LIBRARIES) $(DEBUG_DIR)/$(lib_LIBRARIES)
mv *.o $(DEBUG_DIR)
release:
make CXXFLAGS='$(CXX_RELEASE_FLAGS) $(CXXFLAGS)'
mkdir -p $(RELEASE_DIR)
mv $(lib_LIBRARIES) $(RELEASE_DIR)/$(lib_LIBRARIES)
mv *.o $(RELEASE_DIR)
が、私が作るときに問題がある:make debug
またはmake release
再び、私はオブジェクトやライブラリを移動すると、それは再び、すでにオブジェクトやライブラリを生成し、デバッグフォルダまたはリリースフォルダに格納されます。
誰かがこれを避けるため、私は正しいフォルダにその検索をコンパイルするときにする方法を見つけるために私を助けてもらえますか?代わりに、あなたのターゲットの両方の味を生成する1 Makefile
を持つことの
+1、s/could/should/ –
こんにちは、回答ありがとうございますが、configure.acに2回コールする代わりに、Makefile.amで何かを行うことが可能です私のために。 – arimaujinn
@arimaujinnいいえ、私はそれを行うにはどのような方法を知っていないと私は実際に知っている必要はありません。あなたが欲しいものを考えてみて:異なる2は、さまざまな設定オプションを使用して、同じソースのビルド、独自の中間ファイルで各1(* .o)は、最終的な目標(LIBSおよび実行可能)。これはまさにビルドディレクトリのためのものです。今では、上のディレクトリにある 'Makefile'を使ってビルドディレクトリの作成/設定を自動化することはできません。 – Francesco