Я установил Xcode 3.2 в /Xcode3.2 и не установил что-либо в / Developer. Когда я хочу заняться разработкой, я запускаю оболочку следующим образом
alias sysroot='PATH=${PATH}:${XCODE}/usr/bin CFLAGS=--sysroot\ ${SDK_ROOT} CXXFLAGS=--sysroot\ ${SDK_ROOT} LDFLAGS=--sysroot\ ${SDK_ROOT} CPPFLAGS=--sysroot\ ${SDK_ROOT}'
, где XCODE
равно /Xcode3.2
, а SDK_ROOT
равно ${XCODE}/SDKs/MacOSX10.6.sdk
. Это позволяет справиться с большинством странностей при попытке создания проектов. Однако недавно я столкнулся со случаем, когда я хотел перезапустить aclocal
и получил следующую ошибку:
autom4te: m4sugar/m4sugar.m4: no such file or directory
aclocal: /Xcode3.2/usr/bin/autom4te failed with exit status: 1
Задание -I
флагов для aclocal
для указания альтернативы /Xcode3.2/usr/share/aclocal-1.10
и /Xcode3.2/usr/share/aclocal
, похоже, не помогает. Если я использую --verbose
, а затем повторно запускаю команду m4
, которую он перечисляет вручную, с добавленным флагом -I
, чтобы указать на /Xcode3.2/usr/share/autoconf
, то это работает, но я не могу передать его через aclocal
, Кроме того, переменная окружения M4PATH
, которую предлагают man
страницы для m4
, позволит мне добавлять пути, похоже, не имеет значения. (И установка переменной среды была бы моей предпочтительной настройкой, просто чтобы я мог добавить ее к псевдониму выше.)
До сих пор я не придумал иного решения, кроме «грязной» процедуры создания символической ссылки от /usr/share/autoconf
до /Xcode3.2/usr/share/autoconf
. Есть ли другой лучший способ?
ПРИМЕЧАНИЕ. Причина, по которой я придерживаюсь таких четких граней между установками инструментов разработчика и ОС, заключается в том, чтобы предоставлять надежные кросс-ОС-компиляции (например, чтобы инструменты одной версии Xcode не нарушали поведение сборки другой версии Xcode.)