我开始使用autotools,我正在研究一个C项目,它需要不同的架构(i386和x86_64)的不同构建路径。
到目前为止,我的目录结构是
/maindir
/arch
/i386/code.S
/x86_64/code.S
/src/main.c
/include/config.h
/other_header.h
我对autotools很陌生,我并不太了解它们,我遵循了一些教程,但是我找不到基于当前CPU架构指定不同目录的方法。
有人能给我一个makefile.am和configure.ac文件的简短例子吗?非常感谢你。
最佳答案
通常,您必须在AC_CANONICAL_HOST
中的某个地方调用configure.ac
。它将设置变量host_cpu
,然后您可以查询该变量。
以下是一个例子的摘录:
...
AC_CANONICAL_HOST
AS_CASE([$host_cpu],
[i?86], [ARCHDIR=arch/i386],
[x86_64], [ARCHDIR=arch/x86_64],
[AC_MSG_ERROR("No assembler code for CPU $host_cpu")]
)
AC_SUBST([ARCHDIR])
...
(注意
configure.ac
用于匹配i?86
,i586
等)与此匹配,您可以在i686
中使用$(ARCHDIR)
。关于c - 如何使用自动工具构建与Arch/机器相关的代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16713205/