===== Инструкция для самостоятельной сборки Bombus-ng =====


==== Необходимый инструментарий ====

  * **MS Visual Studio 2005 / 2008 Professional (Team Edition)** с обязательным наличием Microsoft DeviceEmulator
  * **[[http://subversion.tigris.org|Subversion]]** - система управления версиями. //Версия >= 1.3.1// (~3.41 MB)
  * **[[http://www.boost.org/|Boost C++ Libraries]]** версии >=1.33.1 (~23,40 MB)
  * **[[http://www.microsoft.com/downloads/details.aspx?FamilyID=dc8332d6-565f-4a57-be8c-1d4718d3af65&displaylang=en|Virtual Machine Network Driver for Microsoft Device Emulator]]**

Опционально:
  * [[http://tortoisesvn.net/downloads|TortoiseSVN]] - subversion-надстройка для проводника MS Windows.




==== Порядок сборки Bombus-ng ====

  * Устанавливаем **MS Visual Studio**. При установке обязательно включаем установку **Microsoft DeviceEmulator**.
  * Устанавливаем **Subversion** и/или **TortoiseSVN**.
  * Создаём папку для текущей сборки Bombus-ng, например **c:\bombus-ng\builds\**
  * Качаем из [[http://svn.xmpp.ru/repos/bombus-ng/trunk|репозитория]] исходный код Bombus-ng.
  * Распаковываем **Boost C++ Libraries**. При распаковке будет создана директория **boost_1_33_1**. Переносим содержимое директории в предварительно созданную **c:\libs**.
**__Важно__**!
Раздел диска, на котором создаётся директория **c:\libs**, должен совпадать с разделом, на котором создана директория с **c:\bombus-ng**.
  * Если при компиляции будут выскакивать ошибки **«unable to include \libs\boost\...»**, то необходимо перенести содержимое директории в **C:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\PocketPC2003\Include** либо настраиваем **MS Visual Studio** так, чтобы путь **libs\boost\** был валидным.
  * Запускаем файл солюшена Bombus-ng **c:\bombus-ng\svn\trunk\vs2005\sockets\bombus-ng.sln**
  * После запуска **bombus-ng.sln** должны открыться пять проектов: **bombus-ng, dnsquery, regex, ui, zlib**. При этом у первых двух проектов должен быть тип **win32**, а у остальных трёх - **pocketpc2003**.
  * Если открываются только первые два проекта – значит не установлена поддержка устройств на базе **Windows Mobile**.
  * В настройках солюшена выбираем стартовым проект **ui** и в настройках зависимостей выбираем зависимость **ui** от остальных проектов.
  * Пробуем компилировать солюшен в **Debug Mode**.
  * Если всё делалось правильно, то получаем кучу ошибок **«unknown ce compiler»**.
  * Дважды кликаем на одной из ошибок и переходим к месту её возникновения, после чего просто комментируем ошибку:
<code>
//# error unknown CE compiler
</code>
  * Пробуем компилировать солюшен ещё раз.
  * Если всё прошло без ошибок, то в результате компиляции должен запуститься **Pocket PC 2003 SE Emulator** и в нём сам проект **Bombus-ng**.
  * При желании можно переключить тип устройства на реальный КПК, который должен быть подключён через **ActiveSync** к компьютеру.


----

Далее необходимо определиться со способом отладки Bombus-ng. Если в качастве отладочного устройства будет использован реальный КПК, то следующую часть инструкции можно пропустить. Если же отладка будет производиться на эмуляторе, то придётся настроить ещё и сеть для того, чтоб с эмулятора можно было выходить в Internet.








==== Настройка сети в эмуляторе ====

  * Устанавливаем поддержку сети в эмуляторе: **[[http://bombus-im.org/tools/netsvwrap.msi|netsvwrap.msi]]**.
  * Включаем в настройках соединения, через которое осуществляется подключение к интернету, в разделе **Internet Connection Sharing** опцию **Allow other network users to connect through this computer's Internet connction**, при этом соединение автоматически получит ip адрес **192.168.0.1**.
  * Активируем **Microsoft Loopback Adapter**. Для этого выбираем **Start -> Control Panel -> Add Hardware -> Yes, I have already connected the hardware -> Add a new hardware device -> Install the hardware that I manually select from a list (Advanced) -> Network adapters -> Manufacturer Microsoft -> Microsoft Loopback Adapter**.
  * Открываем свойства созданного соединения и прописываем в настройках Internet Protocol (TCP/IP **IP address: 192.168.0.2, mask: 255.255.255.0, gateway: 192.168.0.1**.
  * Запускаем **MS Visual Studio**, выбираем Device Options -> Devices -> Pocket PC 2003 SE Emulator -> Properties -> Emulator Options -> Network -> Enable NE2000 PCMCIA network adapter and bind to -> в списке выбираем **Microsoft Loopback Adapter** -> сохраняем все настройки.
  * В MS Visual Studio выбираем **Connect Device**.
  * В запущенном эмуляторе выбираем: Start -> Settings -> Connections -> Network cards -> Card connect to internet -> NE2000 Compatible Ethernet Driver -> Use server-assigned IP address-> сохраняем все настройки и делаем **soft reset** эмулятору (для применения настроек).
  * Скачиваем и уcтанавливаем на эмулятор **IPDashBoard** для проверки соединения. В настройках программы выставляем тип просмотра "full"
  * Если всё прошло успешно, то на экране today на КПК видим информацию о соединении. ip adress, gateway и т.п.
  * Через IPDash пингуем любой сервер. Если при пинге dns резолвится, но таймаут пинга истекает – проверьте настройки файервола на компьютере. При необходимости пропишите ip адрес 192.168.0.2 в список доступных.

----
Сеть настроена. Можно пробовать скомпилировать проект Bombus-ng, запустить его на эмуляторе и подключиться к Internet.

(c) evgs
(c) Disabler
(c) zet

:-)