1

以前は不明な番号と名前のc++ソースファイルを生成するスクリプトがあります。これらのファイルを1つのライブラリにコンパイルする必要があります。これまでのところ、Makefileの単純な(シェル)forループを使用してこれを行っています。

compile:
        for f in `ls -1 *.cpp` ; do g++ -c ...
        ...

ディレクトリには他のc++ソースがないので、そこにあるものをすべてコンパイルします。

今度はビルドシステムをautoconf/automakeに変更したいのですが、これを行うための「正しい」方法は何でしょうか。私が見つけたチュートリアルは、生成されるソースの数と名前を知っている場合のみをカバーしています。

たとえば、コンパイラ名とautoconf / automakeがまとめたすべてのフラグにアクセスして、自分のコンパイルコマンドに挿入できるようにする方法はありますか?

前もって感謝します。

4

3 に答える 3

2

スクリプトを変更して、Makefile.amこれらすべてのファイルのリストを明示的に生成します。

于 2012-04-15T22:08:36.367 に答える
0

したがって、次のようなものがあります。

FOO_SCRIPT=script.sh
libfoo_la_SOURCES=foo.cpp bar.cpp baz.cpp

foo.cpp : foo.input
        $(FOO_SCRIPT) $<

bar.cpp baz.cpp : bar.input
        $(FOO_SCRIPT) $<
于 2012-04-18T17:07:26.163 に答える
0
SRC= $(wildcard *.cpp)
OBJ= $(SRC:.cpp=.o)
[...]
target: $(OBJ)
于 2012-05-16T14:37:00.447 に答える