我开始使用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?86i586等)与此匹配,您可以在i686中使用$(ARCHDIR)

关于c - 如何使用自动工具构建与Arch/机器相关的代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16713205/

10-10 03:32