diff -rpcd a/doc/src/sgml/install-windows.sgml b/doc/src/sgml/install-windows.sgml
*** a/doc/src/sgml/install-windows.sgml 2014-01-22 13:17:06.000000000 +0900
--- b/doc/src/sgml/install-windows.sgml 2014-01-24 15:31:05.000000000 +0900
*************** $ENV{CONFIG}="Debug";
*** 410,415 ****
--- 410,423 ----
install c:\destination\directory
+
+
+ If you want to install only the client applications and
+ interface libraries, then you can use these commands:
+
+ install c:\destination\directory client
+
+
diff -rpcd a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm
*** a/src/tools/msvc/Install.pm 2014-01-22 13:17:06.000000000 +0900
--- b/src/tools/msvc/Install.pm 2014-01-24 15:10:36.000000000 +0900
*************** our (@ISA, @EXPORT_OK);
*** 17,22 ****
--- 17,35 ----
@ISA = qw(Exporter);
@EXPORT_OK = qw(Install);
+ my $insttype;
+ my @client_contribs = (
+ 'oid2name', 'pgbench', 'vacuumlo'
+ );
+ my @client_program_files = (
+ 'clusterdb', 'createdb', 'createlang', 'createuser', 'dropdb',
+ 'droplang', 'dropuser', 'ecpg', 'libecpg', 'libecpg_compat',
+ 'libpgtypes', 'libpq', 'pg_basebackup', 'pg_config', 'pg_dump',
+ 'pg_dumpall', 'pg_isready', 'pg_receivexlog', 'pg_restore',
+ 'psql', 'reindexdb', 'vacuumdb',
+ @client_contribs
+ );
+
sub lcopy
{
my $src = shift;
*************** sub Install
*** 37,42 ****
--- 50,57 ----
$| = 1;
my $target = shift;
+ $insttype = shift;
+ $insttype = "all" unless ($insttype);
# if called from vcregress, the config will be passed to us
# so no need to re-include these
*************** sub Install
*** 65,88 ****
my $majorver = DetermineMajorVersion();
print "Installing version $majorver for $conf in $target\n";
! EnsureDirectories(
! $target, 'bin',
! 'lib', 'share',
! 'share/timezonesets', 'share/extension',
! 'share/contrib', 'doc',
! 'doc/extension', 'doc/contrib',
! 'symbols', 'share/tsearch_data');
CopySolutionOutput($conf, $target);
lcopy($target . '/lib/libpq.dll', $target . '/bin/libpq.dll');
my $sample_files = [];
File::Find::find(
{ wanted => sub {
/^.*\.sample\z/s
&& push(@$sample_files, $File::Find::name);
}
},
! "src");
CopySetOfFiles('config files', $sample_files, $target . '/share/');
CopyFiles(
'Import libraries',
--- 80,112 ----
my $majorver = DetermineMajorVersion();
print "Installing version $majorver for $conf in $target\n";
! my @client_dirs = ('bin', 'lib', 'share', 'symbols');
! my @all_dirs = (@client_dirs,
! 'doc', 'doc/contrib', 'doc/extension',
! 'share/contrib', 'share/extension', 'share/timezonesets',
! 'share/tsearch_data'
! );
! if ($insttype eq "client")
! {
! EnsureDirectories($target, @client_dirs);
! }
! else
! {
! EnsureDirectories($target, @all_dirs);
! }
CopySolutionOutput($conf, $target);
lcopy($target . '/lib/libpq.dll', $target . '/bin/libpq.dll');
my $sample_files = [];
+ my @top_dir = ("src");
+ @top_dir = ("src\\bin", "src\\interfaces") if ($insttype eq "client");
File::Find::find(
{ wanted => sub {
/^.*\.sample\z/s
&& push(@$sample_files, $File::Find::name);
}
},
! @top_dir);
CopySetOfFiles('config files', $sample_files, $target . '/share/');
CopyFiles(
'Import libraries',
*************** sub Install
*** 95,100 ****
--- 119,129 ----
"libpgport\\libpgport.lib",
"libpgtypes\\libpgtypes.lib",
"libecpg_compat\\libecpg_compat.lib");
+ CopyContribFiles($config, $target);
+ CopyIncludeFiles($target);
+
+ if ($insttype ne "client")
+ {
CopySetOfFiles(
'timezone names',
[ glob('src\timezone\tznames\*.txt') ],
*************** sub Install
*** 125,132 ****
'Dictionaries sample files',
[ glob("src\\backend\\tsearch\\*_sample.*") ],
$target . '/share/tsearch_data/');
- CopyContribFiles($config, $target);
- CopyIncludeFiles($target);
my $pl_extension_files = [];
my @pldirs = ('src/pl/plpgsql/src');
--- 154,159 ----
*************** sub Install
*** 142,147 ****
--- 169,175 ----
@pldirs);
CopySetOfFiles('PL Extension files',
$pl_extension_files, $target . '/share/extension/');
+ }
GenerateNLSFiles($target, $config->{nls}, $majorver) if ($config->{nls});
*************** sub CopySolutionOutput
*** 218,223 ****
--- 246,253 ----
$sln =~ s/$rem//;
+ next if ($insttype eq "client" && !grep { $_ eq $pf } @client_program_files);
+
my $proj = read_file("$pf.$vcproj")
|| croak "Could not open $pf.$vcproj\n";
if ($vcproj eq 'vcproj' && $proj =~ qr{ConfigurationType="([^"]+)"})
*************** sub CopyContribFiles
*** 378,383 ****
--- 408,415 ----
{
next if ($d =~ /^\./);
next unless (-f "contrib/$d/Makefile");
+ next if ($insttype eq "client" && !grep { $_ eq $d } @client_contribs);
+
next if ($d eq "uuid-ossp" && !defined($config->{uuid}));
next if ($d eq "sslinfo" && !defined($config->{openssl}));
next if ($d eq "xml2" && !defined($config->{xml}));
diff -rpcd a/src/tools/msvc/install.bat b/src/tools/msvc/install.bat
*** a/src/tools/msvc/install.bat 2014-01-22 13:17:06.000000000 +0900
--- b/src/tools/msvc/install.bat 2014-01-24 15:08:47.000000000 +0900
*************** CALL bldenv.bat
*** 20,26 ****
del bldenv.bat
:nobuildenv
! perl install.pl "%1"
REM exit fix for pre-2003 shell especially if used on buildfarm
if "%XP_EXIT_FIX%" == "yes" exit %ERRORLEVEL%
--- 20,26 ----
del bldenv.bat
:nobuildenv
! perl install.pl "%1" %2
REM exit fix for pre-2003 shell especially if used on buildfarm
if "%XP_EXIT_FIX%" == "yes" exit %ERRORLEVEL%
diff -rpcd a/src/tools/msvc/install.pl b/src/tools/msvc/install.pl
*** a/src/tools/msvc/install.pl 2014-01-22 13:17:06.000000000 +0900
--- b/src/tools/msvc/install.pl 2014-01-24 15:20:23.000000000 +0900
*************** use warnings;
*** 9,18 ****
use Install qw(Install);
my $target = shift || Usage();
! Install($target);
sub Usage
{
! print "Usage: install.pl \n";
exit(1);
}
--- 9,20 ----
use Install qw(Install);
my $target = shift || Usage();
! my $insttype = shift;
! Install($target, $insttype);
sub Usage
{
! print "Usage: install.pl [installtype]\n";
! print "installtype: client\n";
exit(1);
}
diff -rpcd a/src/tools/msvc/vcregress.pl b/src/tools/msvc/vcregress.pl
*** a/src/tools/msvc/vcregress.pl 2014-01-22 13:17:06.000000000 +0900
--- b/src/tools/msvc/vcregress.pl 2014-01-24 15:08:47.000000000 +0900
*************** sub upgradecheck
*** 252,258 ****
(mkdir $tmp_root || die $!) unless -d $tmp_root;
my $tmp_install = "$tmp_root/install";
print "Setting up temp install\n\n";
! Install($tmp_install, $config);
# Install does a chdir, so change back after that
chdir $cwd;
--- 252,258 ----
(mkdir $tmp_root || die $!) unless -d $tmp_root;
my $tmp_install = "$tmp_root/install";
print "Setting up temp install\n\n";
! Install($tmp_install, "all", $config);
# Install does a chdir, so change back after that
chdir $cwd;