[devel] нужна консультация по autotools (mc 4.8.6)

Mikhail Efremov sem на altlinux.ru
Сб Сен 22 22:39:59 MSK 2012


On Sat, 22 Sep 2012 22:07:46 +0400 Sergey Y. Afonin wrote:
> On Saturday 22 September 2012, Mikhail Efremov wrote:
> 
> > Прежде чем подозревать ошибку в Makefile нужно убедиться, что
> > DESTDIR действительно определяется при make install. Есть
> > %makeinstall_std, кстати.
> 
> Так 4.7.5.6 собирается, а там аналогичная конструкция тоже
> встречается. Да и в 4.8.6 есть 
> 
> install-man1: $(man_MANS)
>         @$(NORMAL_INSTALL)
>         test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
> 
> И оно работает:
> 
> Making install in man
> make[2]: Entering directory `/home/asy/RPM/BUILD/mc-4.8.6/doc/man'
> Making install in es
> make[3]: Entering directory `/home/asy/RPM/BUILD/mc-4.8.6/doc/man/es'
> make[4]: Entering directory `/home/asy/RPM/BUILD/mc-4.8.6/doc/man/es'
> make[4]: Nothing to be done for `install-exec-am'.
> test -z "/home/asy/tmp-build/mc-buildroot/usr/share/man/man1"
> || /bin/mkdir -p "/home/asy/tmp-build/mc-buildroot/usr/share/man/man1"
> 
> То есть, тут DESTDIR получается определён. А попытка сделать как-то
> так %makeinstall DESTDIR=$RPM_BUILD_ROOT,  предсказуемо приводит к
> помещению основного набора файлов в $RPM_BUILD_ROOT$RPM_BUILD_ROOT.
> Можно, конечно, вытащить всё это в правильное место и собрать пакет,
> но это как-то неправильно.

%makeinstall не определяет DESTDIR. Зато переопределяет mandir и еще
кучу переменных куда-то в %buildroot. Поэтому при одновременном
определении DESTDIR в %buildroot и получается %buildroot%buildroot.
Используйте %makeinstall_std.

-- 
WBR, Mikhail Efremov


Подробная информация о списке рассылки Devel