configure
обычно довольно хорошо разбирается, на какой ОС / архитектуре он работает, и предоставляет эту информацию через несколько макросов : AC_CANONICAL_BUILD
, AC_CANONICAL_HOST
и AC_CANONICAL_TARGET
.
Конечный пользователь configure
может изменить это предположение, добавив flags к вызову configure
. Определение «build», «host» и «target» также можно найти по этой ссылке.
Я не уверен, о какой ОС или ЦП вы заботитесь. На сборочной машине вы выполняете компиляцию программного обеспечения. Это может быть то же самое, что и хост-компьютер, на котором выполняется вывод компиляции сборки. Так что, думаю, ты заботишься о хозяине, так что ...
configure.ac
...
AC_CANONICAL_HOST
HOST_OS=""
AS_CASE([$host_cpu],
[x86_64|aarch64*|mips64*|ppc64*|sparc64],
[
HOST_OS="64"
],
[i?86|arm*|mips*|ppc*|sparc],
[
HOST_OS="32"
])
AC_SUBST([HOST_OS])
Makefile.am
foo_CPPFLAGS = -DHOST_OS=$(HOST_OS)