ARM A-32的条件自动生成编译?

ARM A-32的条件自动生成编译?,arm,autotools,automake,Arm,Autotools,Automake,我有一个需要为ARM a-32编译的源文件。A-32包括ARMv4和ARMv7(但不包括AARC32或AARC64)。我们的GNU makefile具有: IS_ARM32 := $(shell echo "$(HOSTX)" | $(GREP) -i -c -E 'arm|armhf|arm7l|eabihf') ... ifeq ($(IS_ARM32),1) AES_ARCH = -march=armv7-a -marm SRCS += aes-armv4.S endif ... if

我有一个需要为ARM a-32编译的源文件。A-32包括ARMv4和ARMv7(但不包括AARC32或AARC64)。我们的GNU makefile具有:

IS_ARM32 := $(shell echo "$(HOSTX)" | $(GREP) -i -c -E 'arm|armhf|arm7l|eabihf')
...

ifeq ($(IS_ARM32),1)
AES_ARCH = -march=armv7-a -marm
SRCS += aes-armv4.S
endif
...

ifeq ($(IS_ARM32),1)
aes-armv4.o : aes-armv4.S
    $(CC) $(strip $(CXXFLAGS) $(AES_ARCH) -mfloat-abi=$(FP_ABI) -c) $<
endif
在这种情况下,configure.ac应该使用 有条件的(参见)

在链接到条件之后,我没有看到示例中使用的像
LINUX
这样的条件列表。它还缺少对架构(如ARM和PowerPC)的条件编译的讨论

汽车制造商对ARM A-32使用什么条件

或者如何有条件地编译ARM A-32

在连接到条件句之后,我没有看到 本手册示例中的条件,如
LINUX
。它还缺少一个 讨论ARM和IBM等平台的条件编译 PowerPC

您似乎忽略了手册引用摘录中的以下内容:

if ARM32
hello_SOURCES = hello-arm32.c hello-common.c
else
hello_SOURCES = hello-generic.c hello-common.c
endif
在这种情况下,configure.ac应该使用 有条件的

AM_CONDITIONAL
是一个Autoconf宏,您可以使用它定义一个谓词以用于自动生成条件。没有预制谓词

汽车制造商在ARM A-32上使用什么

或者如何有条件地编译ARM A-32

鉴于您现有的方法是基于

您可以在
configure.ac中执行此操作:

AM_CONDITIONAL([ARM32], [echo "$HOSTX" | $GREP -i -c -E 'arm|armhf|arm7l|eabihf'])
这假设
HOSTX
GREP
是已经设置了值的autoconf输出变量。如果你不是这样的话,那么我相信它至少为你提供了一个模型

使用configure.ac中定义的
ARM32
谓词,您可以在
Makefile.am
文件中使用它,就像手册中的示例一样:

if ARM32
hello_SOURCES = hello-arm32.c hello-common.c
else
hello_SOURCES = hello-generic.c hello-common.c
endif
if ARM32
hello_SOURCES = hello-arm32.c hello-common.c
else
hello_SOURCES = hello-generic.c hello-common.c
endif