Autotools предоставляют основу для построения и поддержки систем сборки. Они обеспечивают некоторую стандартизацию, но в значительной степени возможности системы сборки на основе Autotools зависят от проекта.
Но при этом ваш сценарий не передает что-либо configure
через CFLAGS
, CC
или любое другое. Это переменные среды , распознаваемые configure
, но вместо этого вы пытаетесь передать их в качестве аргументов. Это лучший способ сделать это, если вы хотите вставить эти аргументы на шаге make
, но по умолчанию он не работает вообще для configure
. Синтаксис оболочки требует назначения переменных перед именем команды, например:
"CC=${CC}" \
"CFLAGS=${CFLAGS} -miphoneos-version-min=${MIN_SDK_VERSION} -arch ${ARCH} -isysroot ${SYSROOT} ${PLATFORM_CFLAGS}" \
"CXX=${CXX}" \
"CXXFLAGS=${CXXFLAGS} -miphoneos-version-min=${MIN_SDK_VERSION} -arch ${ARCH} -isysroot ${SYSROOT}" \
LDFLAGS="-arch ${ARCH} -miphoneos-version-min=${MIN_SDK_VERSION} ${LDFLAGS}" \
"LIBS=${LIBS}" \
./configure \
--build=x86_64-apple-${DARWIN} \
--host=${HOST} \
--with-protoc=${PROTOC} \
--disable-shared \
--prefix=${PREFIX} \
--exec-prefix=${PREFIX}/platform/${PLATFORM_NAME}
Или вы можете просто установить и export
эти переменные с помощью одной или нескольких отдельных команд, предшествующих configure
.
Кроме того, make distclean
не делает то, что вы хотите, когда нет make-файла, как в случае проекта Autotools, который еще не был настроен. Вы должны защититься от сбоев, сделав выполнение этой команды условным существованием make-файла верхнего уровня.