Не, не надо.
Оно уже прописано в makefile:
# Note what we also define the macro FT2_BUILD_LIBRARY when building
# FreeType. This is required to let our sources include the internal
# headers (something forbidden by clients).
Про сборку под Андроид я не стал писать ничего, потому что это уже раписано достаточно подробно.
А вот про использование clang почему-то в основном молчат. Видимо из-за того, что gcc совсем недавно выпилили.
Мне очень понравился подход и организация Makefile, так что на основе их подхода я организовал сборку всех своих внешних зависимостей. Среди всего прочего там есть пример как надо собирать libicu, которая может понадобится для нормальной работы с арабскими символами.
Не так давно пришло понимание, что не о чем писать вообще. :)
Потому что практически про любую ситуацию можно сказать: решение уже есть в интернете.
Я сам же его как-то нашел или пришел к нему самостоятельно, а значит и другие смогут найти.
Здесь же причиной написать стало то, что решение не гуглится с очевидных запросов.
А параметры для configure не все могут подобрать самостоятельно.
Я совсем не против этого поста. Это обмен опытом. Так и я чтобы не создавать новый пост, решил написать в комментарии, о тонкостях с которыми пришлось не так давно разобраться.
Еще важный момент у кросскомпиляции — заголовочные файлы, которые генерятся под текущую платформу при помощи ./configure Опасно может быть использовать одни и те же заголовочные файлы для всех архитектур при сборке проекта. Т.к. с добавлением amd64 могут быть проблемы с внутренними типами библиотек. Решение в следующем:
1. Собирать библиотеки с --prefix=build/$arch, как это делает вышеуказанный Makefile, так чтобы в папке build были доступны все h файлы для каждой из архитектур.
2. Потом прописать в User Header Search File что-то вроде следующей строки: "$(SRCROOT)/../libs/build/$(arch)/include". Так во время сборки каждой из архитектур приложения Xcode будет использовать правильные версии h файлов.
Кстати, в строчке конфигурации для armv7s — LDFLAGS="-arch armv7s -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk -miphoneos-version-min=4.2", а должно быть 5.0, не?
Заметка нацелена в первую очередь на тех, кто убдет искать способы собрать freetype. То есть на тех, кто уже знает что это такое.
Делать обзор в заметке особого смысла нет — freetype уже подробно разобран, в том числе и на хабре.
Пока собирал, получилось вот. На скорую руку, зато проще управлять. Цель для сборки определяется параметром [all|i386|x86_64|arm7|arm7s|arm64|universal]. Исправил возможную проблему с ranlib для arm64. Можно брать и пользоваться (или исправлять этот ужас)
Сборка FreeType2 под iOS