Компиляция с использованием Visual C++ 2005

16.1. Компиляция с использованием Visual C++ 2005

Инструменты для компиляции с помощью Visual C++ 2005, находятся в каталоге src/tools/msvc. При компиляции, убедитесь, что в системном пути PATH нет инструментов из набора MinGW или Cygwin. Также убедитесь, что в системном пути есть все необходмые инструменты, требуемые Visual C++, которые обычно находятся в каталоге Visual Studio Command Prompt и что команды из этого каталога запускаются. Все команды на выполнение компиляции должны запускаться из каталога src\tools\msvc.

Перед компиляцией, измените config.pl, указав в нём необходимые опции настройки, включая пути к используемым библиотекам. Если вам необходимо установить какие-либо другие переменные окружения, создайте файл с именем buildenv.pl и поместите в него требуемые команды. Например, чтобы добавить путь к bison, которого нет в PATH, создайте в файл содержащий:

   $ENV{PATH}=$ENV{PATH} . ';c:\some\where\bison\bin';
  

16.1.1. Требования

PostgreSQL будет компилироваться, как Professional (любой редакции), так и Express версией Visual Studio 2005. Для сборки полного пакета также требуются нижеперечисленные дополнительные продукты. Используйте файл config.pl, чтобы указать каталоги доступных библиотек.

ActiveState Perl

ActiveState Perl требуется для запуска скриптов генерирующих процесс компиляции. MinGW или Cygwin Perl работать не будут. ActiveState Perl также должен быть в PATH. Вы можете скачать этот пакет с http://www.activestate.com (Обратите внимание: требуется версия 5.8, Standard Distribution успешно работает.)

ActiveState TCL

Требуется для компиляции PL/TCL (Обратите внимание: требуется версия 8.4, Standard Distribution успешно работает).

Bison и Flex

Для компиляции из CVS требуются Bison и Flex, но они не нужны, при компиляции из архива подготовленного выпуска. Заметьте, что будут работать только http://gnuwin32.sourceforge.net.

Diff

Diff требуется для запуска регрессионных тестов и может быть скачен с http://gnuwin32.sourceforge.net.

Gettext

Gettext требуется для сборки поддержки NLS и может быть скачен с http://gnuwin32.sourceforge.net. Обратите внимание, что необходимы бинарные пакеты и все файлы, необходимые для их работы, а также файлы для разработки.

Microsoft Platform SDK

Рекомендуется обновиться до последней доступной версии Microsoft Platform SDK, доступной для скачивания с http://www.microsoft.com/downloads/.

MIT Kerberos

Требуется для поддержки авторизации Kerberos. MIT Kerberos можно скачать с http://web.mit.edu/Kerberos/dist/index.html.

libxml2 и libxslt

Требуется для поддержки XML. Бинарные пакеты могут быть скачены с http://zlatkovic.com/pub/libxml, а исходники с http://xmlsoft.org. Обратите внимание, что libxml2 требует iconv, который доступен для скачивания с того же сайта.

openssl

Требуется для поддержки SSL. Бинарные пакеты могут быть скачены с http://www.slproweb.com/products/Win32OpenSSL.html, а исходники с http://www.openssl.org.

ossp-uuid

Требуется для поддержки UUID-OSSP (только для contrib). Исходники могут быть скачены с http://www.ossp.org/pkg/lib/uuid/.

Python

Требуется для компиляции PL/Python. Бинарные пакеты могут быть скачены с http://www.python.org.

zlib

Требуется для поддержки сжатия в pg_dump и pg_restore. Бинарные пакеты могут быть скачены с http://www.zlib.net.

16.1.2. Компиляция

Для компиляции всего PostgreSQL, с настройкам выпуска (по умолчанию), запустите команду:

         build
    
   

Для компиляции всего PostgreSQL, с настройками включающими отладочные возможности, запустите команду:

         build DEBUG
    
   

Для компиляции одного проекта, например psql, запустите команды:

         build psql
    
         build DEBUG psql
    
   

Чтобы именить настройки компиляции по умолчанию на отладочные, поместите в buildenv.pl следующую строку:

         $ENV{CONFIG}="Debug";
    
   

Также возможна компиляция из самой оболочки Visual Studio. В этом случае вам нужно запустить:

         perl mkvcbuild.pl
    
   

с командой строки и затем открыть в Visual Studio сгенерированный pgsql.sln (в корневом каталоге дерева исходных текстов).

16.1.3. Очистка и установка

В большинстве случаев, отслеживать изменённые файлы будет автоматическая система отслеживания зависимостей в Visual Studio. Но, если изменений было слишком много, вам может понадобится очистка установки. Чтобы её выполнить, просто запустите команду clean.bat, которая автоматически очистит все сгенерированные файлы. Вы также можете запустить эту команду с параметром dist, в этом случае это будет подобно make distclean и удалит также и файлы, созданные flex/bison.

По умолчанию, все файлы сохраняются в подкаталогах debug или release. Чтобы установить эти файлы, используя стандартные средства, а также сгенерировать файлы, требуемые для инициализации и использования база данных, запустите команду:

         perl install.pl c:\destination\directory
    
   

16.1.4. Запуск регрессионных тестов

Чтобы запустить регрессионные тесты, убедитесь сперва, что вы выполнили компиляцию всех требуемых частей. Также, убедитесь, что все DLL требуемые для загрузке всех частей СУБД (такие как DLL для процедурных языков Perl и Python) находятся в системном пути. Если их там нет, укажите пути к ним в файле buildenv.pl. Чтобы запустить тесты, запустите одну из следующих команд из каталога src\tools\msvc:

         vcregress check
    
         vcregress installcheck
    
         vcregress plcheck
    
         vcregress contribcheck
    
   

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

         vcregress check serial
    
   

Больше информации о регрессионных тестов можно получить в Chapter 29.

16.1.5. Компиляция документации

Компиляция документации PostgreSQL в HTML формат требует некоторых инструментов и файлов. Создайте корневой каталог для всех этих файлов и сохраните их в подкаталоги как перечислено ниже.

OpenJade 1.3.1-2

Скачайте с http://sourceforge.net/project/downloading.php?groupname=openjade&filename=openjade-1_3_1-2-bin.zip и распакуйте в подкаталог openjade-1.3.1.

DocBook DTD 4.2

Скачайте с http://www.oasis-open.org/docbook/sgml/4.2/docbook-4.2.zip и распакуйте в подкаталог docbook.

DocBook DSSSL 1.79

Скачайте с http://sourceforge.net/project/downloading.php?groupname=docbook&filename=docbook-dsssl-1.79.zip и распакуйте в подкаталог docbook-dsssl-1.79.

ISO character entities

Скачайте с http://www.oasis-open.org/cover/ISOEnts.zip and и распакуйте в подкаталог docbook.

Измените файл buildenv.pl и добавьте переменную, указывающую местоположение вышеуказанного корневого каталога, например:

    $ENV{DOCROOT}='c:\docbook';
   

Чтобы скомпилировать документаци, запустите команду builddoc.bat. Обратите внимание, что эта команда фактически запустит компиляцию дважды для генерации индексов. Сгенерированные HTML файлы будут в каталоге doc\src\sgml.

Back to top

(С) Виктор Вислобоков, 2008-2023