From 7f58ed1a106981e020df549e842e93d2250bbe75 Mon Sep 17 00:00:00 2001 From: Neil Conway Date: Tue, 16 Jan 2007 21:43:19 +0000 Subject: [PATCH] vcbuild updates from Magnus: * After Markos patch, now builds pgcrypto without zlib again * Updates README with xml info * xml requires xslt and iconv * disable unnecessary warning about __cdecl() * Add a buildenv.bat called from all other bat files to set up things like PATH for flex/bison. (Can't just set it before calling, doesn't always work when building from the GUI) --- src/tools/msvc/Project.pm | 2 +- src/tools/msvc/README | 9 +++++++++ src/tools/msvc/Solution.pm | 5 +++++ src/tools/msvc/build.bat | 2 ++ src/tools/msvc/mkvcbuild.pl | 31 ++++++++++++++----------------- src/tools/msvc/pgbison.bat | 2 ++ src/tools/msvc/pgflex.bat | 2 ++ 7 files changed, 35 insertions(+), 18 deletions(-) diff --git a/src/tools/msvc/Project.pm b/src/tools/msvc/Project.pm index e64b6a6a3a..4b84c98ea2 100644 --- a/src/tools/msvc/Project.pm +++ b/src/tools/msvc/Project.pm @@ -23,7 +23,7 @@ sub new { includes => '', defines => ';', solution => $solution, - disablewarnings => '4018;4244', + disablewarnings => '4018;4244;4273', }; bless $self; diff --git a/src/tools/msvc/README b/src/tools/msvc/README index c2a30fd40f..ebc7d90506 100644 --- a/src/tools/msvc/README +++ b/src/tools/msvc/README @@ -9,6 +9,11 @@ environment variables "leaking" through. First, edit config.pl to reflect what "configure options" you want set. +If you need to modify the environment for calling external tools, such as +flex or bison, create a file called "buildenv.bat". This file will be called +by all scripts before anything is done, so the environment can be set up. +(for example, include SET PATH=%PATH%;c:\some\where\bison\bin) + Then, to build all of PostgreSQL in debug configuration, run the command build from a Visual Studio Command Prompt (to get all environment @@ -54,3 +59,7 @@ Get from http://web.mit.edu/Kerberos/dist/index.html zlib - required for compression support in pg_dump/pg_restore Get from http://www.zlib.net + +libxml2 and libxslt - required for XML support +Get from http://www.zlatkovic.com/pub/libxml or build from source from +http://xmlsoft.org. Note that libxml2 requires iconv. diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index 3b9c64cd0a..c55f35d2dc 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -14,6 +14,11 @@ sub new { strver => '', }; bless $self; + if ($options->{xml}) { + if (!($options->{xslt} && $options->{iconv})) { + die "XML requires both XSLT and ICONV\n"; + } + } return $self; } diff --git a/src/tools/msvc/build.bat b/src/tools/msvc/build.bat index 61b85645b2..8ef282cef4 100755 --- a/src/tools/msvc/build.bat +++ b/src/tools/msvc/build.bat @@ -1,5 +1,7 @@ @echo off SET STARTDIR=%CD% +if exist src\tools\msvc\buildenv.bat call src\tools\msvc\buildenv.bat +if exist buildenv.bat call buildenv.bat perl mkvcbuild.pl if errorlevel 1 goto :eof diff --git a/src/tools/msvc/mkvcbuild.pl b/src/tools/msvc/mkvcbuild.pl index 91d28bfcd3..c87420b0dc 100644 --- a/src/tools/msvc/mkvcbuild.pl +++ b/src/tools/msvc/mkvcbuild.pl @@ -187,24 +187,21 @@ if (!$solution->{options}->{openssl}) { } # Pgcrypto makefile too complex to parse.... -# Pgcrypto requires zlib -if ($solution->{options}->{zlib}) { - my $pgcrypto = $solution->AddProject('pgcrypto','dll','crypto'); - $pgcrypto->AddFiles('contrib\pgcrypto','pgcrypto.c','px.c','px-hmac.c','px-crypt.c', - 'crypt-gensalt.c','crypt-blowfish.c','crypt-des.c','crypt-md5.c','mbuf.c', - 'pgp.c','pgp-armor.c','pgp-cfb.c','pgp-compress.c','pgp-decrypt.c','pgp-encrypt.c', - 'pgp-info.c','pgp-mpi.c','pgp-pubdec.c','pgp-pubenc.c','pgp-pubkey.c','pgp-s2k.c', - 'pgp-pgsql.c'); - if ($solution->{options}->{openssl}) { - $pgcrypto->AddFiles('contrib\pgcrypto', 'openssl.c','pgp-mpi-openssl.c'); - } - else { - $pgcrypto->AddFiles('contrib\pgcrypto', 'md5.c','sha1.c','sha2.c','internal.c','internal-sha2.c', - 'blf.c','rijndael.c','fortuna.c','random.c','pgp-mpi-internal.c','imath.c'); - } - $pgcrypto->AddReference($postgres); - $pgcrypto->AddLibrary('wsock32.lib'); +my $pgcrypto = $solution->AddProject('pgcrypto','dll','crypto'); +$pgcrypto->AddFiles('contrib\pgcrypto','pgcrypto.c','px.c','px-hmac.c','px-crypt.c', + 'crypt-gensalt.c','crypt-blowfish.c','crypt-des.c','crypt-md5.c','mbuf.c', + 'pgp.c','pgp-armor.c','pgp-cfb.c','pgp-compress.c','pgp-decrypt.c','pgp-encrypt.c', + 'pgp-info.c','pgp-mpi.c','pgp-pubdec.c','pgp-pubenc.c','pgp-pubkey.c','pgp-s2k.c', + 'pgp-pgsql.c'); +if ($solution->{options}->{openssl}) { + $pgcrypto->AddFiles('contrib\pgcrypto', 'openssl.c','pgp-mpi-openssl.c'); } +else { + $pgcrypto->AddFiles('contrib\pgcrypto', 'md5.c','sha1.c','sha2.c','internal.c','internal-sha2.c', + 'blf.c','rijndael.c','fortuna.c','random.c','pgp-mpi-internal.c','imath.c'); +} +$pgcrypto->AddReference($postgres); +$pgcrypto->AddLibrary('wsock32.lib'); my $D; opendir($D, 'contrib') || croak "Could not opendir on contrib!\n"; diff --git a/src/tools/msvc/pgbison.bat b/src/tools/msvc/pgbison.bat index cacd82cb16..f433e0774b 100755 --- a/src/tools/msvc/pgbison.bat +++ b/src/tools/msvc/pgbison.bat @@ -1,4 +1,6 @@ @echo off +if exist src\tools\msvc\buildenv.bat call src\tools\msvc\buildenv.bat + SET BV= for /F "tokens=4 usebackq" %%f in (`bison -V`) do if "!BV!"=="" SET BV=%%f if "%BV%"=="" goto novarexp diff --git a/src/tools/msvc/pgflex.bat b/src/tools/msvc/pgflex.bat index ae20042814..17ea4ff6e2 100755 --- a/src/tools/msvc/pgflex.bat +++ b/src/tools/msvc/pgflex.bat @@ -1,4 +1,6 @@ @echo off +if exist src\tools\msvc\buildenv.bat call src\tools\msvc\buildenv.bat + flex -V > NUL if errorlevel 1 goto noflex