ДЛЯ СБОРКИ НУЖНА Visual Studio .NET 2003
Скачать исходник Мозиллы
http://ftp.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.8b1/source/mozilla-source-1.8b1.tar.bz2
Распаковать в C:\
Скачать инструменты для компиляции с помощью MS VisualStudio .NET 2003 (VC++ v7.1)
http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools-dotnet.zip
распаковать в C:\ переименовав папку buildtools в moztools
Скачать glib и libIDL для VC++ v7.1
http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/vc71-glib-1.2.10-bin.zip
http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/vc71-libIDL-0.6.8-bin.zip
Распаковать в C:\
Скачать и установить cygwin (достаточно пакетов, предлагаемых в установке по умолчанию. При установке убедитесть что пакеты make, tar, zip также будут установлены)
Скачать и установить ActivePerl в C:\Perl
Скачать и установить Platform SDK (на данный момент последняя версия MS PSDK for Win2003 sp1)
Скачать и установить MS Visual C++ ToolKit 2003 (не обязательный шаг... я устанавливал для подстраховки)
Пишем BAT-файл для автоматизации сборки (C:\build.bat)
@ECHO OFF SET PATH=C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin;C:\Program Files\Microsoft Platform SDK\Bin;C:\vc71\bin;C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin;C:\Program Files\Microsoft Platform SDK\Bin;C:\Program Files\Microsoft.NET\SDK\v1.1\Bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\wbem;C:\moztools\bin;C:\cygwin\bin;C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE;C:\Program Files\Microsoft Platform SDK\Bin\win64;C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322;C:\masm32\BIN;C:\Perl\bin SET LIB=C:\Program Files\Microsoft.NET\SDK\v1.1\Lib;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Lib;C:\masm32\LIB;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\lib;C:\Program Files\Microsoft Platform SDK\Lib\IA64;C:\Program Files\Microsoft Platform SDK\Lib;C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib; SET INCLUDE=C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include;C:\Program Files\Microsoft Visual C++ Toolkit 2003\include;C:\Program Files\Microsoft.NET\SDK\v1.1\include;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include;C:\Program Files\Microsoft Platform SDK\include\Win64\crt;C:\masm32\INCLUDE;C:\Program Files\Microsoft Platform SDK\Include\mfc;C:\Program Files\Microsoft Platform SDK\include SET GLIB_PREFIX=C:\vc71 SET LIBIDL_PREFIX=C:\vc71 SET MOZ_TOOLS=C:\moztools SET CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot SET HOME=C:\mozilla SET CVS_RSH=ssh SET MOZ_BUILD_APP=suite SET MOZILLA_OFFICIAL=1 SET BUILD_OFFICIAL=1 SET OS_TARGET=WINNT SET WINOS=%OS_TARGET% SET NO_MFC=1 SET ENABLE_TESTS= SET DISABLE_TESTS=1 SET MOZ_NO_ACTIVEX_SUPPORT=1 ECHO Installation environment variables set! @ECHO ON cd .\mozilla make -f client.mk build pause
В c:\mozilla\configure в строках
if test "$_MIDL_MAJOR_VERSION" != "5" -a "$_MIDL_FULL_VERSION" != "6.00.0347" -a "$_MIDL_FULL_VERSION" != "6.00.0361" -a "$_MIDL_FULL_VERSION" != "6.00.0364"; then { echo "configure: error: Midl version $_MIDL_FULL_VERSION was found. Midl version must be 5.x.x (VC6*) or 6.00.0347 (VC7) or 6.00.0361 (VC.net 2003) or 6.00.0364 (VC 2005)." 1>&2; exit 1; } fi
заменить 6.00.0361 на 6.00.0366 т.к. midl.exe в Platform SDK имеет версию 6.00.0366
Всё, теперь можно собирать
Запускаем cmd
Из из консоли
и ждем
Вроде ничего не упустил
Отредактировано T-Rex (13-01-2006 18:30:58)
Отсутствует
Добавил в Wiki.
http://forum.mozilla.ru/doku.php?id=general:build_vsnet2003:mozilla
Отредактировано igorsub (13-01-2006 21:36:21)
От оно че!
Отсутствует
А еще я пришел к выводу, что не стОит слушать всяких умных дядек из-за бугра, т.к. их мануалы все-равно не работают (почти правильный мануал нашел здесь на mozilla.ru - по сборке FF и TB из сырцов)... немного пришлось позаморачиваться, но эффект есть.
Это точно! Я Мозиллу собирал на VS6 SP5, хотя везде написано, что при установленном SP5 сборка становится невозможной...
Непослушные локоны горничной выбивались из-под её кружевного фартука...
Отсутствует
А у кого-нибудь есть опыт встраивания Gecko по средствам VS 2005?
Необходимо встроить движок Gecko в приложение под .NET, пробую разобраться с исходниками риложения wxEmbed - ничего не выходить. Приложение требует скомпилированной Mozilla ... Попытался сделать всё как описано - реакции 0! make не находиться (пишет что make.exe незнакомая команда).
Ещё не понятна последовательность запуска:
из moztools необходимо запустить install.bat - но переменную MOZ_TOOLS устанавливается ПОТОМ при вызове build.bat
Где логика?
P.S. С С++ сталкивался ооочень не надолго и очень давно....
Отредактировано softmax (08-05-2006 12:25:11)
Отсутствует
Я думаю вам встраивание Gecko на данном этапе не осилить. Это ведь не плюшки лопать Тем более что
С С++ сталкивался ооочень не надолго и очень давно....
.
Даже если вы скомпилите Gecko, то после этого его надо будет использовать.
К сожалению, с Gecko не связывался, по решению проблемы
пишет что make.exe незнакомая команда
могу порекомендовать вот это. Там под win32 все есть.
Копайтесь, разбирайтесь.
Black holes were created when the God divided by zero.
Отсутствует
ЭЭЭ Ну мне нужно всего-лишь сделать wrapping. Думаю справлюсь (плюшки я впрочем тоже люблю)
Так с make похоже облажался я, неправильно установив cygwin. Сейчас попробую переставить.....
Отсутствует
Ну мне нужно всего-лишь сделать wrapping.
Ну тогда ладно, прощаю
Black holes were created when the God divided by zero.
Отсутствует
Так, вроде компиляция сдвинулась с мёртвой точки, но до конца не дошла. Запнувшись вот на этом
LINK : fatal error LNK1117: syntax error in option 'DEBUGTYPE:BOTH'
make[6]: *** [nsldap32v50.dll] Error 93
make[6]: Leaving directory `/cygdrive/d/dotNetProjects/embed/mozilla/directory/c-sdk/ldap/libraries/libldap'
make[5]: *** [export] Error 2
make[5]: Leaving directory `/cygdrive/d/dotNetProjects/embed/mozilla/directory/c-sdk/ldap/libraries'
make[4]: *** [export] Error 2
make[4]: Leaving directory `/cygdrive/d/dotNetProjects/embed/mozilla/directory/c-sdk/ldap'
make[3]: *** [export] Error 2
make[3]: Leaving directory `/cygdrive/d/dotNetProjects/embed/mozilla/directory/c-sdk'
make[2]: *** [ldap] Error 2
make[2]: Leaving directory `/cygdrive/d/dotNetProjects/embed/mozilla'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/cygdrive/d/dotNetProjects/embed/mozilla'
make: *** [build] Error 2
Отсутствует
Крайне рекомендую пользоваться туториалом в Wiki. Только что перепроверил у себя - работает.
На счет wrapper'а... я тут немного перековырял сырцы примера и wxMozilla, сделал немного попроще... вроде работает.
Будет желание - пишите на e-mail, попробуем разобраться с вашей проблемой
Ещё не понятна последовательность запуска:
из moztools необходимо запустить install.bat - но переменную MOZ_TOOLS устанавливается ПОТОМ при вызове build.bat
Где логика?
Логика в том что писал я универсальный батник чтобы без проблем компилилось собственно, свою функцию он выполняет (для VS2003). На счет 2005й... ухъ.. там столько всего в новом компиляторе наворочено, что я не могу сказать точно на счет того, удастся ли скомпилить им... на днях попробую, может получится... я пока пользуюсь сборкой созданной с VC++ ToolKit 2003
Кстати, я тоже заинтересован во wrapper'е для .NET, если все удастся - просьба поделиться
Ыыы.. и еще одно, там вроде неплохой ActiveX был для Mozilla'овского броузера.. и он даже работает, может было бы проще поиспользовать именно его?
Отсутствует
ActiveX нашёл - но клиенту это не подходит он НЕ хочет завязываться на всяких COM activeX и прочее...
Насчёт ЭТОЙ проблемки я её убил просто убрав строку 'DEBUGTYPE:BOTH' из параметров вызова sh.exe. Вроде проходит, но вот теперь другая трабла - вылетает xpidl.exe с сообщением:
The application failed to initialize properly (0x80000003).
/cygdrive/d/dotNetProjects/daVinchi/mozilla/build/cygwin-wrapper ../../dist/bin/xpidl.exe -m header -w -I/cyg
drive/d/dotNetProjects/embed/mozilla/xpcom/base -I../../dist/idl -o _xpidlgen/nsIConsoleListener /cygdrive
/d/dotNetProjects/embed/mozilla/xpcom/base/nsIConsoleListener.idl
make[4]: *** [_xpidlgen/nsIConsoleListener.h] Error 3
make[4]: Leaving directory `/cygdrive/d/dotNetProjects/embed/mozilla/xpcom/base'
make[3]: *** [export] Error 2
make[3]: Leaving directory `/cygdrive/d/dotNetProjects/embed/mozilla/xpcom'
make[2]: *** [tier_2] Error 2
make[2]: Leaving directory `/cygdrive/d/dotNetProjects/embed/mozilla'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/cygdrive/d/dotNetProjects/embed/mozilla'
make: *** [build] Error 2
Отсутствует
Мммм... а если попробовать поиграться с флагами для SHARED/STATIC build? Я уже не помню.. где-то в makefile'ах было... Я тогда пытался сделать полностью статическую сборку и у меня не получилось... как-то оно по умолчанию собиралось всё с Multithreaded DLL.
Еще возможно что инструменты для сборки или библиотеки из пункта "Скачать glib и libIDL для VC++ v7.1" коряво работают с 8й версией компилятора... Уточните plz, вы все-таки с помошью 2005й студии пытаетесь собрать или с помощью тех инструментов, которые указаны выше?
Отредактировано T-Rex (08-05-2006 19:48:38)
Отсутствует
Собираю руководствуясь документацией из WIKI. MS Visual C++ ToolKit 2003 не устанавливал.
Пути в батнике переписаны с учётом путей для VS 2005.
Кстати по поводу "Скачать glib и libIDL для VC++ v7.1" я использовал вот эти библиотеки: http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/historic/vc8/vc8_moztools.zip а не VC71.
Отредактировано softmax (08-05-2006 20:00:52)
Отсутствует
OK, я тогда тоже сегодня попытаюсь скачать всё что нужно для компиляции с VS2005 и посмотрим что получится... все равно пора бы уже перевести мой компонентик на 2005ю
Да, еще одно.. что-то я не могу на mozilla'овском сайте найти те библиотеки libIDL и glib для 8й версии компилятора... вы пользуетесь теми что для 7.1 или где-то можно взять и для 8й?
...
Вопрос снят
Отредактировано T-Rex (08-05-2006 20:08:39)
Отсутствует
Хммм.. у меня та же ошибка выскакивает.
В общем-то проблему удалось локализировать.
в moztools libIDL и glib упорно требуют msvcr80.dll ... решил проблему, скормив им библиотеки из папки C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT, после чего начала проявляться та же ошибка что и у вас. Складывается такое впечатление что библиотеки эти откомпилированы с Code Generation = MultiThreaded DLL и компиляция Мозиллы тоже происходит с этим же флагом (принудительная установка аргументов --disable-shard --enable-final в client.mk при каждом вызове configure не дала результатов, как и в случае с VC7.1) По идее статическая линковка должна решить эти проблемы.
Или еще вариант, попытаться найти чего нехватает libIDL и остальным ДЛЛкам из moztools и скормить им то что им нужно. Очень похоже что они скомпилированы с использованием Managed Extensions и им нехватает каких-то Assemblies, которые должны валяться рядом с ними в одной папке
Отсутствует
У меня тут еще вопросик образовался, вы часом не знаете, как пользоваться .mozconfig-файлом, в какую папку его ложить и что в батнике дописывать чтобы он использовался?
В нем как бы должны настройки сборки описываться, но что-то не получается у меня с ним собрать.
Файлик следующего содержания
. $topsrcdir/browser/config/mozconfig export BUILD_OFFICIAL=1 export MOZILLA_OFFICIAL=1 mk_add_options BUILD_OFFICIAL=1 mk_add_options MOZILLA_OFFICIAL=1 ac_add_options --disable-shared ac_add_options --enable-static ac_add_options --disable-activex ac_add_options --disable-activex-scripting ac_add_options --disable-debug ac_add_options --disable-tests ac_add_options --disable-logging ac_add_options --enable-svg ac_add_options --enable-canvas
Отсутствует
Честно говоря не знаю. Боюсь такие тонкости не для меня. Хотя попытаюсь покопаться в сети может что-нибудь и нарою....
Проблемку msvcr80.dll решил аналогично.
Теперь по проблемке - в забугорных ресурсах проскальзывала инфа, что мол надо прописывать пути к libIDL и glib - самыми первыми в PATH, но мне такое решение не помогло, спотыкается как и раньше ....
Отсутствует
T-Rex
как пользоваться .mozconfig-файлом
Просто пользоваться. Писать в него нужные параметры.
в какую папку его ложить
Туда, где находятся исходники Mozilla, то есть в одну папку с файлом configure
Это кстати написано в http://forum.mozilla.ru/doku.php?id=general:build_msvc2003:firefox_thunderbird_msvc_.net_2003
и что в батнике дописывать чтобы он использовался?
Ничего не дописывать, он используется автоматически.
Do not meddle in the affairs of Wizards, for they are subtle and quick to anger.
Отсутствует
Unghost
Спасибо
Странно как-то... configure вызывается у меня с параметрами --disable-shared --enable-static, а на размер исполняемого файла того же xpidl.exe это никак не повлияло. Даже не знаю что и делать... может параемтры из .mozconfig считываются но не используются?
Может у кого-нибудь получалось собрать Мозиллу 2005й студией? Поделитесь опытом plz.
Отредактировано T-Rex (09-05-2006 04:34:45)
Отсутствует
softmax, еще вариант попробовать скомпилить сырцы FF, говорят для них Static Build работает (лично не пробовал, только слухи... у меня исходник v1.5 валяется, всё руки не доходят чтобы скомпилить).
Если у вас есть время, попробуйте, может чего хорошего получится.
И еще.. кажись без исходников той же libIDL, которая ну явно собрана с флагом MultiThreaded DLL, вряд ли получится сделать полностью статический билд, не зависящий от библиотек рантайма, которые поставляются с 2005й студией.
Я не уверен что у меня в ближайшие дни будет время собрать FF из исходников, поэтому предлагаю вам сделать это раньше меня и поделиться впечатлениями. Если будут проблемы и с этим, тогда "будем посмотреть" что можно еще придумать.
Как я уже говорил, я тоже заинтересован в сборке всего этого хозяйства под 2005ю студию, поэтому постараюсь помочь чем могу...
Да.. попробуйте в мэйл-листах гугловских распросить людей, как они с этой проблемой борются, ... у меня тут где-то адреса пары форумов были в архивах... я поспрашиваю там, может чего получится узнать
Отредактировано T-Rex (11-05-2006 00:27:16)
Отсутствует
Если будет время обязательно попробую с FF. Как временную меру, сделал следующее:
Поставил VirtualPC, под на него WinXP + VS2003. Откомпилировал - ессно всё ок!
Но вот беда не скомпилялся wxEmbed... Он должен компиляться вместе с mozilla? Или нет? Поясните плиз....
Отсутствует
Вобще-то должен... но там таааааак коряво все сделано.. (хотя сам по себе у меня он скомпилился, но вот проект на его основе создать... это было нечто.. 4 часа мучился )
У меня есть упрощенный вариант wxEmbed. Вроде компилился нормально.. если интересует - могу сбросить на e-mail.. там гибрид из wxEmbed и wxMozilla старого (т.к. новую версию я нашел только в исполнении на Python)
Отредактировано T-Rex (11-05-2006 17:28:08)
Отсутствует