Используете nmake на OSX? - PullRequest
       12

Используете nmake на OSX?

3 голосов
/ 14 августа 2010

Я портирую приложение на MacOS X - но система сборки первоначального разработчика использует NMAKE, и в идеале они хотели бы сохранить его вместо перехода на новое.

Мне удалось запустить NMAKE под OSX с использованием Wine (созданного с использованием MacPorts) и добавил поддержку Objective C в файлы сборки, и создал связанную с Unix оболочку PE 'run.exe', которую Wine может загружать, но использует POSIX перезвонить в такие вещи, как gcc и ld, как описано в разных местах онлайн как средство выхода из вина обратно в Unix.

Однако у меня есть несколько конкретных проблем. Они достаточно незначительны, чтобы я мог продолжить работу с портом, но это означает, что мне иногда нужно запускать сборки несколько раз из-за времени.

По сути, когда wine.exe вызывает обратно в оболочку и, таким образом, gcc, связь между дочерними процессами кажется нарушенной. gcc и ld никогда не вернут код ошибки даже в случае сбоя, потому что они не могут получить код выхода от своих порожденных потомков. ar на самом деле выведет, что не может найти своего потомка, и немедленно вернется, вызывая проблемы, когда ld пытается связать объектные файлы с библиотеками, которые все еще собираются вместе.

Кто-нибудь еще пробовал что-то подобное и видел ту же проблему, на OSX или где-то еще? Есть ли очевидное решение?

Ответы [ 2 ]

1 голос
/ 09 декабря 2010

Проект Microsoft .NET Rotor (SSCLI) включает в себя исходный код, предназначенный для сборки на OSX и в других местах.Исходный код Rotor включает исходный код NMake.Так что заставь Ротор работать, а потом используй его Nmake.Даже если вы предпочитаете продолжать использовать Nmake на основе Wine, вы, вероятно, могли бы поучиться у Rotor по использованию Nmake в Unix, его использованию Gcc и т. Д.

0 голосов
/ 14 августа 2010

Если нет ничего странного / непоследовательного в исходной системе сборки разработчиков, не могли бы вы написать автоматическое преобразование их make-файлов обратно в Unix make и оставить ваши сборки "родными"?

(в любом случае строит достаточно хрупко, без дополнительных осложнений)

...