* [devel] нужна консультация по autotools (mc 4.8.6)
@ 2012-09-22 13:25 Sergey Y. Afonin
2012-09-22 13:59 ` Mikhail Efremov
0 siblings, 1 reply; 5+ messages in thread
From: Sergey Y. Afonin @ 2012-09-22 13:25 UTC (permalink / raw)
To: ALT Devel discussion list
Приветствую.
Опять появилось время поковыряться с обновлением mc. Столкнулся
с проблемой, что не отрабатывается make install. При установке
вновь появившегося набора скриптов происходит попытка установки
не в сборочный каталог, а в корень. Makefile.am выглядит вот так:
https://www.midnight-commander.org/browser/misc/ext.d/Makefile.am
Сборка тормозится вот так:
Making install in misc
make[1]: Entering directory `/home/asy/RPM/BUILD/mc-4.8.6/misc'
Making install in ext.d
make[2]: Entering directory `/home/asy/RPM/BUILD/mc-4.8.6/misc/ext.d'
make[3]: Entering directory `/home/asy/RPM/BUILD/mc-4.8.6/misc/ext.d'
make[3]: Nothing to be done for `install-exec-am'.
test -z "/usr/lib/mc/ext.d" || /bin/mkdir -p "/usr/lib/mc/ext.d"
/bin/mkdir: cannot create directory `/usr/lib/mc/ext.d': Permission denied
make[3]: *** [install-extSCRIPTS] Error 1
Соответствующее место в получившемся Makefile выглядит так:
install-extSCRIPTS: $(ext_SCRIPTS)
@$(NORMAL_INSTALL)
test -z "$(extdir)" || $(MKDIR_P) "$(DESTDIR)$(extdir)"
Почему тут $(DESTDIR) оказался пустой ? Или передача переменной из
вышестоящего Makefile должна описываться ? Всё равно, а как ?
С autotools у меня не ахти...
--
С уважением, Сергей Афонин
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [devel] нужна консультация по autotools (mc 4.8.6)
2012-09-22 13:25 [devel] нужна консультация по autotools (mc 4.8.6) Sergey Y. Afonin
@ 2012-09-22 13:59 ` Mikhail Efremov
2012-09-22 18:07 ` Sergey Y. Afonin
0 siblings, 1 reply; 5+ messages in thread
From: Mikhail Efremov @ 2012-09-22 13:59 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Sat, 22 Sep 2012 17:25:01 +0400 Sergey Y. Afonin wrote:
> install-extSCRIPTS: $(ext_SCRIPTS)
> @$(NORMAL_INSTALL)
> test -z "$(extdir)" || $(MKDIR_P) "$(DESTDIR)$(extdir)"
>
> Почему тут $(DESTDIR) оказался пустой ? Или передача переменной из
> вышестоящего Makefile должна описываться ? Всё равно, а как ?
> С autotools у меня не ахти...
Прежде чем подозревать ошибку в Makefile нужно убедиться, что DESTDIR
действительно определяется при make install. Есть %makeinstall_std,
кстати.
--
WBR, Mikhail Efremov
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [devel] нужна консультация по autotools (mc 4.8.6)
2012-09-22 13:59 ` Mikhail Efremov
@ 2012-09-22 18:07 ` Sergey Y. Afonin
2012-09-22 18:39 ` Mikhail Efremov
0 siblings, 1 reply; 5+ messages in thread
From: Sergey Y. Afonin @ 2012-09-22 18:07 UTC (permalink / raw)
To: ALT Linux Team development discussions
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. Можно, конечно,
вытащить всё это в правильное место и собрать пакет, но это как-то
неправильно.
--
С уважением, Сергей Афонин
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [devel] нужна консультация по autotools (mc 4.8.6)
2012-09-22 18:07 ` Sergey Y. Afonin
@ 2012-09-22 18:39 ` Mikhail Efremov
2012-09-22 18:58 ` Sergey Y. Afonin
0 siblings, 1 reply; 5+ messages in thread
From: Mikhail Efremov @ 2012-09-22 18:39 UTC (permalink / raw)
To: ALT Linux Team development discussions
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
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-09-22 18:58 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-09-22 13:25 [devel] нужна консультация по autotools (mc 4.8.6) Sergey Y. Afonin
2012-09-22 13:59 ` Mikhail Efremov
2012-09-22 18:07 ` Sergey Y. Afonin
2012-09-22 18:39 ` Mikhail Efremov
2012-09-22 18:58 ` Sergey Y. Afonin
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git