У меня есть исходный файл, который нужно скомпилировать для ARM A-32. A-32 включает ARMv4 и ARMv7 (но не Aarch32 или Aarch64). В нашем make-файле GNU есть:
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
Согласно условной компиляции с использованием Руководство Automake Conditionals:
Часто более простым способом условной компиляции исходных файлов является использование условных операторов Automake. Например, вы можете использовать эту конструкцию Makefile.am для создания того же примера приветствия:
bin_PROGRAMS = hello if LINUX hello_SOURCES = hello-linux.c hello-common.c else hello_SOURCES = hello-generic.c hello-common.c endif
В этом случае configure.ac должен настроить условное выражение LINUX с помощью AM_CONDITIONAL (см. Условные выражения).
После ссылки на условные выражения я не вижу списка условных операторов, таких как LINUX
, которые используются в примере. В нем также отсутствует обсуждение условной компиляции для архитектур, таких как ARM и PowerPC.
Какие условия использует Automake для ARM A-32?
Или как условно компилировать под ARM A-32?