Commit 7f58ed1a authored by Neil Conway's avatar Neil Conway

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)
parent cf57ef4e
......@@ -23,7 +23,7 @@ sub new {
includes => '',
defines => ';',
solution => $solution,
disablewarnings => '4018;4244',
disablewarnings => '4018;4244;4273',
};
bless $self;
......
......@@ -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.
......@@ -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;
}
......
@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
......
......@@ -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";
......
@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
......
@echo off
if exist src\tools\msvc\buildenv.bat call src\tools\msvc\buildenv.bat
flex -V > NUL
if errorlevel 1 goto noflex
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment