[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