如何让 automake 在双架构 Linux 平台上将 libdir 设置为 /usr/lib64
How to get automake to set libdir to /usr/lib64 on dual-arch Linux platforms
我正在维护一个自动工具配置的项目,我注意到在一个普通的自动工具设置中:
libtoolize --verbose --copy --force
aclocal --verbose -I m4 -Wall
autoheader -Wall --verbose
autoconf -Wall --verbose
automake --add-missing --force-missing --copy --warnings=override -Wall
./configure --prefix=/usr
make
make install
Installing libexample.so in /usr/lib
我的构建(在 x86_64 arch,linux 上)生成的 make install
在 $prefix/lib
.
中生成的库
我希望图书馆将 $LIBDIR
设置为 $prefix/lib64
。
- 有什么我应该做的不同的事情,或者
- 是否有 'secret' m4 宏来自动确定这个,或者
- 是预期的行为吗?
我能够在 CentOS 6.9 上重现这个。不幸的是,official Upstream Vendor response to having a reasonable config.site
installed 已关闭 WONTFIX。我也能够在 CentOS 7.4 上重现这个。
config.site
是大多数发行版的常用方式。他们确实提供了解决方法的建议:基本上向后移植 Fedora 的 config.site
所做的一切。
FWIW,我目前使用的发行版是通过在 /etc/profile.d/site.sh
中导出 CONFIG_SITE
来实现的:
CONFIG_SITE="/usr/share/site/x86_64-unknown-linux-gnu"
export CONFIG_SITE
/usr/share/site/x86_64-unknown-linux-gnu
的相关部分做类似的事情:
if test "$libdir" = '${exec_prefix}/lib' ; then
ac_config_site_64bit_host=NONE
case "$host" in
"" )
... sort through 32-bit cross-compilation ...
*x86_64* | ... other 64-bit architectures ...)
ac_config_site_64bit_host=YES
;;
esac
if test "x$ac_config_site_64bit_host" = xYES; then
libdir='${exec_prefix}/lib64'
fi
fi
类似的东西可能对你有用。
或者,您可以像 RPM 包那样指定 --libdir
。
我正在维护一个自动工具配置的项目,我注意到在一个普通的自动工具设置中:
libtoolize --verbose --copy --force
aclocal --verbose -I m4 -Wall
autoheader -Wall --verbose
autoconf -Wall --verbose
automake --add-missing --force-missing --copy --warnings=override -Wall
./configure --prefix=/usr
make
make install
Installing libexample.so in /usr/lib
我的构建(在 x86_64 arch,linux 上)生成的 make install
在 $prefix/lib
.
我希望图书馆将 $LIBDIR
设置为 $prefix/lib64
。
- 有什么我应该做的不同的事情,或者
- 是否有 'secret' m4 宏来自动确定这个,或者
- 是预期的行为吗?
我能够在 CentOS 6.9 上重现这个。不幸的是,official Upstream Vendor response to having a reasonable config.site
installed 已关闭 WONTFIX。我也能够在 CentOS 7.4 上重现这个。
config.site
是大多数发行版的常用方式。他们确实提供了解决方法的建议:基本上向后移植 Fedora 的 config.site
所做的一切。
FWIW,我目前使用的发行版是通过在 /etc/profile.d/site.sh
中导出 CONFIG_SITE
来实现的:
CONFIG_SITE="/usr/share/site/x86_64-unknown-linux-gnu"
export CONFIG_SITE
/usr/share/site/x86_64-unknown-linux-gnu
的相关部分做类似的事情:
if test "$libdir" = '${exec_prefix}/lib' ; then
ac_config_site_64bit_host=NONE
case "$host" in
"" )
... sort through 32-bit cross-compilation ...
*x86_64* | ... other 64-bit architectures ...)
ac_config_site_64bit_host=YES
;;
esac
if test "x$ac_config_site_64bit_host" = xYES; then
libdir='${exec_prefix}/lib64'
fi
fi
类似的东西可能对你有用。
或者,您可以像 RPM 包那样指定 --libdir
。