Компилировать только части glibc

Я хочу собрать только одну из многих библиотек, поставляемых с glibc.

А именно все, что мне нужно, это статическая версия библиотеки librt (librt.a). Есть ли способ сказать, что configure / make делает именно это?

Прямо сейчас у меня есть процесс, в котором я устанавливаю определенные CFLAGS при запуске configure, а затем компилирую весь 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

и когда я посмотрел на вывод полного пробного запуска, 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.

2 ответа

Сборка glibc сосредоточена вокруг objdir переменная. экспортируйте его в путь, по которому вы запустили configure, а затем вы можете использовать make в подчинении.

например:

cd .../glibc/
mkdir build
cd build
../configure --prefix=/usr
export objdir=$PWD
cd ../rt
make -j4

Это должно сделать это:

mkdir build && cd build && ../configure $your_flags &&
make -j20 rt/librt.a
Другие вопросы по тегам