Autotools:将 x86_64 转换为 amd64 等
Autotools: Convert x86_64 to amd64 and so on
我正在尝试为我的 C 项目启用打包。我知道我可以使用 AC_CANONICAL_BUILD
宏来获取 @build_cpu@
。但问题是,debian control
文件需要 amd64
而不是 x86_64
。有没有一种简单的方法可以将这些 uname
输出转换为 dpkg
想要的格式,或者我是否需要在 if 语句中检查所有可能的架构?
不完全清楚您要做什么,以及为什么需要此映射。我的印象是您可能正在尝试做错事。
对于可移植的包,您应该简单地使用 Architecture 字段的通配符之一。例如 any,或者如果出于某种原因它是特定于内核的,那么类似于 linux-any 或 kfreebsd -任何.
如果您确实需要在 GNU 三元组或组件与 dpkg 体系结构之间进行映射,您始终可以使用 dpkg-architecture 命令(请查看其手册页),但同样,这通常听起来像是错误的处理方式,从上游的角度来看更是如此,这应该是分配中立的。
或许您可以在您的 autotools 文件中使用 sed 来进行这些转换?例如,
echo `uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/`
将在 ARM aarch64 系统上输出 arm64,在 x86_64 系统上输出 amd64。
我现在正好用它来自动安装 Visual Studio 代码服务器,适用于多种架构,如下所示:
export VERSION=3.12.0 \
&& export ARCH=`uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/` \
&& curl -fOL https://github.com/cdr/code-server/releases/download/v$VERSION/code-server_"$VERSION"_"$ARCH".deb \
&& dpkg -i code-server_"$VERSION"_"$ARCH".deb \
&& rm code-server_"$VERSION"_"$ARCH".deb
我正在尝试为我的 C 项目启用打包。我知道我可以使用 AC_CANONICAL_BUILD
宏来获取 @build_cpu@
。但问题是,debian control
文件需要 amd64
而不是 x86_64
。有没有一种简单的方法可以将这些 uname
输出转换为 dpkg
想要的格式,或者我是否需要在 if 语句中检查所有可能的架构?
不完全清楚您要做什么,以及为什么需要此映射。我的印象是您可能正在尝试做错事。
对于可移植的包,您应该简单地使用 Architecture 字段的通配符之一。例如 any,或者如果出于某种原因它是特定于内核的,那么类似于 linux-any 或 kfreebsd -任何.
如果您确实需要在 GNU 三元组或组件与 dpkg 体系结构之间进行映射,您始终可以使用 dpkg-architecture 命令(请查看其手册页),但同样,这通常听起来像是错误的处理方式,从上游的角度来看更是如此,这应该是分配中立的。
或许您可以在您的 autotools 文件中使用 sed 来进行这些转换?例如,
echo `uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/`
将在 ARM aarch64 系统上输出 arm64,在 x86_64 系统上输出 amd64。
我现在正好用它来自动安装 Visual Studio 代码服务器,适用于多种架构,如下所示:
export VERSION=3.12.0 \
&& export ARCH=`uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/` \
&& curl -fOL https://github.com/cdr/code-server/releases/download/v$VERSION/code-server_"$VERSION"_"$ARCH".deb \
&& dpkg -i code-server_"$VERSION"_"$ARCH".deb \
&& rm code-server_"$VERSION"_"$ARCH".deb