1

我开始使用自动工具,并且正在开发一个 C 项目,该项目需要针对不同架构(i386 和 x86_64)的不同构建路径。

到目前为止我的目录结构是

/maindir
        /arch
             /i386/code.S
             /x86_64/code.S
        /src/main.c
        /include/config.h
                /other_header.h

我对自动工具非常陌生,我不太了解它们,我遵循了几个教程但是我找不到基于当前 CPU 架构指定不同目录的方法。

有人可以为我提供一个 makefile.am 和 configure.ac 文件的简短示例来实现这一点吗?非常感谢。

4

1 回答 1

3

通常,您必须AC_CANONICAL_HOSTconfigure.ac. 它将设置变量host_cpu,然后您可以查询该变量。

这是一个示例的摘录configure.ac

...

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])

...

(注意i?86用于匹配i586i686)有了这个,你可以$(ARCHDIR)在你的Makefile.am.

于 2013-05-23T15:40:48.267 回答