我开始使用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文件的简短示例吗?非常感谢你。
答案 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
用于匹配i586
,i686
等。)有了这个,您可以在$(ARCHDIR)
中使用Makefile.am
。