             1 Чем компилировать DN/2

     Начиная  с  версии  2.13,  в  которой введена поддержка больших
файлов,  для  компиляции  DN/2  однозначно  необходима версия VP 2.1
build  279,  плюс  расширения  от Veit Kannegieser.
     К сожалению, на "родном" сайте (http://www.vpascal.com/) VP уже
недоступен (и это естественно, так как его поддержка авторами прекращена).
Расширения на сайте VK (http://kannegieser.net/~veit/vpascal/) тоже
почему-то недоступны (это выглядит, скорее, недоразумением).
    Поэтому всё необходимое выложено рядом с исходниками DN:
http://dn2.byte.nsk.su/VP21B279/VP21B279.ZIP
http://dn2.byte.nsk.su/VP21B279/dpmi32_lfs_279_2.rar
http://dn2.byte.nsk.su/VP21B279/dpmi32_e.htm


             2 Как скомпилировать DN2 в пакетном режиме

     Теперь  кодами целевой платформы для OS/2 и Windows являются не
OS2  и  W32,  а  OLF  и WLF. Соответственно, прежний каталог EXE.OS2
теперь  называется  EXE.OLF  (и  аналогично  переименованы  EXE.W32,
LIB.OS2, LIB.W32).

     Основным  скриптом  пакетной компиляции является файл _dnc.cmd,
но  напрямую  его вызывать не следует: для компиляции под OS/2 и для
OS/2  служит файл _dnco.cmd, аналогично под Win NT (2000, XP) - файл
_dncw.cmd.  Возможна и кросс-компиляция (_dncow.cmd и _dncwo.cmd) но
в  этом  случае будут проблемы с ресурсами (иконками), см. ниже. Для
компиляции под Win 9x следует файлы .cmd переименовать в .bat.

     Для подключения ресурсов (иконок) к dn.exe используются внешние
компиляторы   ресурсов.   Под   OS/2   это  RC.EXE,  под  Win32  это
BRC32.EXE. Если с их вызовом возникают проблемы, можно просто убрать
ссылку  на  ресурсы в dn.pas (прагмат {$R DN.res}). На работу DN это
никак  не  влияет,  просто  DN.EXE  не  будет  содержать стандартной
иконки,  которую  видит  Presentation  Manager в OS/2 или Explorer в
Win32.

     Скрипты  компиляции  можно вызывать либо без параметров (в этом
случае  будет  собрана  неплагинная  версия),  либо  с  параметром P
(плагинная  версия).  Например,  чтобы  собрать  под Win32 плагинную
версию для Win32, следует сделать такой вызов: '_dncw.cmd P'. Только
сейчас плагинная версия не поддерживается (возможно, временно).

     Для  правильного  подключения стандартных модулей VP необходимо
перед  первой  компиляцией  откорректировать  пути  к каталогам VP в
файле  vpc.cfg  (в  первых  четырех  строках). Если VP установлен со
стандартной  структурой  каталогов,  то  достаточно  будет  заменить
только букву диска.

     Скрипт  _dnc.cmd в исходном виде компилирует DN без остановок и
с  минимальным  выводом  на  экран.  Если  желательно более детально
следить  за  процессом  построения,  то  следует  'сделать  наоборот'
признак комментария в двух строках в начале скрипта: вместо

      @Echo off
      @set pause=rem

сделать

      @rem Echo off
      @set pause=pause

     Для  кросс-компиляции (в частности, для компиляции DPMI-версии)
нужно сначала скомпилировать версию для собственной (host) платформы.
Фактически   нужны  только  вспомогательные  программы,  а не dn.exe.
После  этого  можно  запустить  соответствующий пакетный файл, например,
_dncwd.cmd  -  компиляция DPMI из-под WinNT, _dncow.cmd - компиляция
Win32 из-под OS/2.

     Если компиляция выполняется под Windows 9x/ME (что не рекомендуется),
то все *.cmd следует переименовать в *.bat.

                 3 Как выполнять DN под отладчиком

     Первым  делом,  надо сделать пакетную компиляцию, чтобы создать
генерируемые файлы (version.pas, менюшки, хелпы и т.д.).

     Режимы  IDE  VP задаются в файла VP.VPO (для работы под OS/2) и
VPD.VPO  (для  работы под OS/2 с DPMI32). Для работы под Win32 нужно
запустить   IDE   и  откорректировать  целевую  платформу.  Только с
отладкой DPMI32 под Win32 вряд ли получится что-то хорошее.

     Прежде   всего,  в  файлах  *.VPO  надо  откорректировать  пути
(аналогично  vpc.cfg).  Затем надо вызвать IDE и задать главный файл
(Compile  /  Primary  file)  dn.pas.

     Затем  следует скомпилировать DN, обязательно в режиме Build, а
не  Make,  иначе  могут  подключиться модули из библиотеки VP вместо
одноименных   модулей  DN  (например,  objects).  В  дальнейшем  при
перекомпиляциях   можно   пользоваться   Make,  если  каталог  EXE.*
не очищался от *.vpi, *.lib.

     Ну  и  еще одна мелочь. Чтобы при работе под виндой в самой IDE
не   портил   нервы   жуткий  клавиатурный  модуль  VP,  есть  смысл
перекомпилить  VP21\BIN.W32\vpkbdw32.dll из vpkbdw32.pas, лежащего в
LIB.W32.

             4 Выполнение DPMI32 версии под отладчиком

     Реально это только под host OS/2, так что только этот вариант и
рассматривается.
     Стандартно DN/2 DPMI32 собирается с расширителем dos32a, который
лежит в каталоге LIB.D32.
     Использование именно этого расширителя следует прописать либо в
конфигурации   утилит   компилятора   (\VP21\COMMON\VP.INI),  либо в
локальной  конфигурации  IDE  (файл *.vpo). Следует также установить
Target DPMI32 и определить символ условной трансляции DPMIDEBUG. Всё
это  уже  сделано в имеющемся в комплекте файле vpd.vpo. В нём нужно
откорректировать  при необходимости пути к VP. Запускать IDE так: vp
-cVPD.VPO.
     При   такой  компиляции  IDE  будет  строить  не  файл  dn.prg,
требующий  для  запуска  маленького невыгружаемого dn.com, а большой
dn.com,  вызываемый из IDE. Для самостоятельного использования он не
пригоден.  Следствием  отсутствия  перезапуска  из маленького dn.com
будет то, что при попытке вызова внешней программы под отладчиком dn
необратимо завершится. Остальное отлаживается достаточно комфортно.
