Как скомпилировать FireBird для Windows

Перевод FB_Build_Win32_Readme.txt из комплекта исходных текстов FB (cvs). По поводу версий, как получить исходники, в том числе и через cvs, см. http://www.ibase.ru/firebird.htm, раздел "Исходные тексты".

Перевод и комментарии KDV. http://www.ibase.ru/

Оригинальный текст и Код bat-файлов создан Paul Reeves.
Portions created by him are Copyright (C) Paul Reeves.
Contributor(s): Dmitri Kuzmenko__________________________.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

Этот документ объясняет как использовать командные файлы FB_Build_Win32 для компилфции Firebird на платформе Win32. Цель этого набора командных файлов:

ТРЕБОВАНИЯ

Операционная система

Поддерживаются следующие операционные системы:

Win NT v4.0
Win 2000

Это означает, что командные файлы также будут работать на Win XP.

Дисковое пространство

После компиляции исходные тексты, файлы obj и другое будут занимать чуть более 70 мегабайт на диске. Нет никаких противопоказаний для использования "сжатых" каталогов на NTFS.

Процессор и память

Минимальных требований нет. История Firebird начинается с дней, когда процессоры были очень медленные а память - очень дорогая. Поэтому компиляция пройдет на любой технике, главное чтобы запустилась операционная система. На медленных пентиумах процесс компиляции займет около получаса. На современных компьютерах это займет не более нескольких минут.

(KDV - на Cel466, 128Mb RAM, W2K полная компиляция (с нуля) занимает 4 минуты.)

Компилятор

Для компиляции Firebird на Windows требуется Microsoft Visual C++ v5 или новее. При установке MSVC обязательно нужно разрешить установку переменных среды для компилятора командной строки.

Другие инструменты

Для компиляции требуется утилита Borland Make, доступная практически во всех продуктах Borland (KDV: за исключением Delphi - там включена старая "неправильная" версия make.exe). Borland Touch.exe также требуется и должна находиться в пути раньше других версий touch.exe. Дополнительно, некоторые этапы процесса компиляции требуют наличия ImpLib и brc32. Эти утилиты есть в комплекте бесплатного компилятора Borland C++ 5.5.

(KDV: если на вашем компьютере уже есть Delphi, то достаточно будет взять http://www.ibase.ru/v6/bortools.zip, содержащий implib, touch и правильный make)

Кроме этого потребуется набор утилит Unix, скомпилированных для Win32. Набор можно взять с

http://firebird.sourceforge.net/download/Firebird_Unix_Tools_for_Win32.zip

либо http://www.ibase.ru/v6/Firebird_Unix_Tools_for_Win32.zip

ПОДГОТОВКА К КОМПИЛЯЦИИ

Командные файлы сделают за вас почти всю работу, однако есть ряд действий, которые нужно выполнить перед запуском компиляции:

(KDV: проще всего установить временно пароль masterkey, и не использовать системные переменные пользователя и пароля, т.к. это может вызвать проблемы с безопасностью. Также не стоит компилировать исходные тексты прямо на рабочем сервере.)

НАСТРОЙКА БАЗ ДАННЫХ

Firebird 1.0 частично построен из информации, хранимой в базах данных. Вместе эти базы составляют комплект, который должен быть доступен в момент компиляции. Для построения комплекта баз данных нужно выполнить команду:

FB_Build_Win32_Build_DBs.bat drive:\path

Указанный путь должен находиться на текущем диске, и быть полным. Например, если вы создали специальный каталог на C:, то вызов командного файла будет следующим:

FB_Build_Win32_Build_DBs.bat c:\firebird\build_dbs

Командный файл создаст все нужные базы данных.

Этот комплект баз данных нужен только на время компиляции. Вы можете удалить его и пересоздать в любой момент по необходимости.

После создания баз данных вы можете переместить их в другой каталог. Процесс компиляции при старте получает корневой каталог баз данных в качестве параметра командного файла, поэтому каталог может быть любым (server:drive:\path). Однако, рекомендуется оставить комплект баз данных в месте, к которому можно получить доступ на этом же компьютере прямо из командной строки.

КОМПИЛЯЦИЯ

После того, как вы создали комплект баз данных, вы готовы к последнему шагу - к самой компиляции. Этот процесс запускается вызовом FB_Build_Win32.bat из окна консоли. Например:

FB_Build_Win32.bat x:\path\to\build_dbs

Однако здесь есть несколько моментов.

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

Когда процесс подготовки завершен, запускается 'build_lib.bat'. Этот командный файл и компилирует новый билд. В этот момент откроется еще одно консольное окно, и все сообщения процесса компиляции будут выводиться туда. Теперь можно расслабиться и просто наблюдать. Если возникнет какая либо ошибка, процесс компиляции прервется.

Когда выполнение build_lib.bat завершается или прерывается, он оставляет сообщения BUILD_FAIL или BUILD_OK на экране. Если компиляция прервалась по ошибке, то нужно открыть build_lib_PROD_nnn.log или build_lib_DEV_nnn.log (в зависимости от типа компиляции) и проверить последнее сообщение об ошибке в конце файла. После устранения ошибки просто закройте второе консольное окно, перейдите в главное консольное окно, и запустите FB_Build_Win32 еще раз.

(KDV: для упрощения процедуры я держу исходные тексты и базы данных в каталогах d:\ib6comp и d:\ib6db соответственно. Названия чисто исторические, и ни к чему не обязывают. Обновления я скачиваю WinCVS-ом, а в качестве командного файла запускаю cmp.cmd, который содержит всего одну строку с вызовом

FB_Build_Win32.bat d:\ib6db)

(KDV: нужно помнить, что при изменении переменных среды через My Computer/Properties в консольных окнах они остаются прежними. Не запускайте консольное окно для компиляции до того, как установите все переменные среды правильно. Если некоторые переменные установились неверно, и из-за этого процесс компиляции был неуспешным, исправьте проблему, и перезапустите консольное окно, в котором вы выполняете FB_Build_Win32.bat)

Если вы построили отладочный билд, то вы можете исследовать его или отлаживать в среде MSVC.

ЧТО ДАЛЬШЕ

Если вы получили сообщение BUILD_OK, то поздравляем! Firebird для Win32 успешно скомпилирован. Теперь его можно тестировать, однако это совершенно другая история.

(KDV: бинарные файлы располагаются в корне исходных текстов, в каталоге interbase. Отладочный билд, если он компилировался - в ib_debug. Внутри этих каталогов все соответствует каталогам IB/FB при установке - bin, lib, udf, include и так далее. Поэтому новые файлы можно просто скопировать на место установленной версии IB/FB, или взять такой каталог целиком, и поместить его на место существующего, временно переименовав старый. Но: НИКОГДА не ставьте новый билд, не сохранив файлы от старого - никто не гарантирует, что скомпилированный билд не будет содержать каких то фатальных ошибок, из-за которых, например, не сможет пройти компиляция нового билда)

CLEANING UP

Если вы хотите вернуть дерево исходных текстов и переменные среды в первоначальное состояние, то нужно выполнить командный файл с опцией

FB_build_Win32.bat CLEAN

При этом произойдет следующее:

Альтернативно, вы можете запустить

FB_build_Win32.bat CLEAN ENV

это только очистит переменные среды, установленные процессом компиляции.

СОВЕТЫ по работе в командной строке

Скроллируемая консоль

Откройте диалог Properties консольного окна. Установите у Screen Buffer Size размер Height = 5000 и ширину Width = 96. Сохраните для всех последующих копий окна. Таким образом вы сможете просматривать в окне все сообщения сеанса.

(KDV: на W2K этого можно не делать, т.к. там консольное окно гораздо удобнее, чем в NT 4.0, и уже со скроллингом).

Повторный вызов команд консоли

Найдите в registry ключ

HKEY_CURRENT_USER\Software\Microsoft\Command Processor

и измените переменную

CompletionChar = 9

Теперь, если вы нажмете букву в приглашении командной строки, и нажмете TAB, то процессор командной строки попытается найти в списке команд похожую. Отдаленно похоже на Unix shell, но лучше чем ничего.

(KDV: рекомендую в консольном окне выдать help doskey - вы увидите много интересных команд, включая спецклавиши для вызова истории команд)

Сохранение команд сеанса

Консоль не сохраняет историю команд от сеанса к сеансу. Тем не менее это можно сделать:

Doskey /history > %temp%\history.txt

Вызов команд

Нажмите F7 для получения списка команд, которые вы вводили в этом сеансе.

(Если у вас есть комментарии или дополнения - обратитесь по электронной почте на preeves@ibphoenix.com (английский) или support@ibase.ru)


http://www.ibase.ru/
http://sourceforge.net/projects/firebird