glibc に付属している多くのライブラリの 1 つだけをコンパイルしたいと考えています。
つまり、必要なのは librt ライブラリ (librt.a) の静的バージョンだけです。configure/make にそれを行うように指示する方法はありますか?
現在、configure の実行時に特定の CFLAGS を設定してから glibc 全体をコンパイルし、コンパイル後に librt.a を単純に抽出するプロセスをセットアップしていますが、これは確かに 99% の無駄と 1% の収率のようです。
編集:
提案されたコマンドmake rt/librt.a
は
make -r PARALLELMFLAGS="" -C .. objdir=`pwd` rt/librt.a
make[1]: Entering directory '/data/soft/glibc-2.24'
make[1]: *** No rule to make target 'rt/librt.a'. Stop.
make[1]: Leaving directory '/data/soft/glibc-2.24'
make: *** [Makefile:9: rt/librt.a] Error 2
完全なmake実行の出力を見ると、librtは次のように構築されていました
make subdir=rt -C rt ..=../ subdir_lib
残念ながら、このコマンドも良い結果をもたらしません。
$ make subdir=rt -C rt ..=../ subdir_lib
make: Entering directory '/data/soft/glibc-2.24/build-tree/rt'
make: *** No rule to make target 'subdir_lib'. Stop.
make: Leaving directory '/data/soft/glibc-2.24/build-tree/rt'
興味深いことに、make を完全に実行した後、提案されたコマンドを実行すると、
$ make -j 4 rt/librt.a
make: 'rt/librt.a' is up to date.