如何使用autotools构建与arch / machine相关的代码

时间:2013-05-23 11:52:07

标签: c architecture build autotools

我开始使用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文件的简短示例吗?非常感谢你。

1 个答案:

答案 0 :(得分:3)

通常,您必须在AC_CANONICAL_HOST的某个地方拨打configure.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