Секция %prep готовит процесс сборки, который выполняется секцией %build. Секцию сборки необходимо заполнить всеми нужными для сборки командами. В простых случаях это будет примерно следующее:
В данном случае выполняется две команды, ./configure для запуска скрипта конфигурации и make для сборки ПО. Вместо запуска скрипта ./configure часто используется макрос %configure. Скрипт ./configure как правило имеет множество опций, которые можно вывести по команде ./configure --help . Как правило, большая часть этих опций заведует установкой переменных окружения сборки. Макрос %configure может задать часть переменных по умолчанию. Если требуется посмотреть, как макрос разворачивается, следует выполнить команду rpm --eval '%configure' :
|
$ rpm --eval '%configure'
CFLAGS="${CFLAGS:--O2 -march=i386 -mcpu=i686}" ; export CFLAGS ;
CXXFLAGS="${CXXFLAGS:--O2 -march=i386 -mcpu=i686}" ; export CXXFLAGS ;
FFLAGS="${FFLAGS:--O2 -march=i386 -mcpu=i686}" ; export FFLAGS ;
[ -f configure.in ] && libtoolize --copy --force ;
./configure i386-redhat-linux \
--prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--sysconfdir=/etc \
--datadir=/usr/share \
--includedir=/usr/include \
--libdir=/usr/lib \
--libexecdir=/usr/libexec \
--localstatedir=/var \
--sharedstatedir=/usr/com \
--mandir=/usr/share/man \
--infodir=/usr/share/info
|
Важное значение имеет то обстоятельство, что команды в секции %build должны быть согласованы с конструкцией Makefile, и цели сборки должны указываться те, которые определены в Makefile. В данном случае указана команда make без параметров, которая по умолчанию использует цель all.
Не рекомендуется помещать слишком много логики в spec-файл, это затруднит тестирование приложения или библиотеки.
Если необходимо изменить каталог, куда будет устанавливаться ПО при установке пакета, указывают параметр --prefix. Например:
|
%build
./configure --prefix=$RPM_BUILD_ROOT/usr
make
|
В данном примере ПО будет устанавливаться в RPM_BUILD_ROOT и именно там rpmbuild будет искать файлы для упаковки их в пакет.
Далее - Инсталляция ПО
Назад - Подготовка к сборке
Содержание