diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm index d109b2c90..75c7446e6 100644 --- a/src/tools/msvc/Install.pm +++ b/src/tools/msvc/Install.pm @@ -89,10 +89,10 @@ sub Install my $majorver = DetermineMajorVersion(); print "Installing version $majorver for $conf in $target\n"; - my @client_dirs = ('bin', 'lib', 'share', 'symbols'); + my @client_dirs = ('bin', 'lib', 'share', 'tools', 'share/libpq', 'tools/libpq'); my @all_dirs = ( - @client_dirs, 'doc', 'doc/contrib', 'doc/extension', 'share/contrib', - 'share/extension', 'share/timezonesets', 'share/tsearch_data'); + @client_dirs, 'doc', 'doc/libpq', 'doc/libpq/contrib', 'doc/libpq/extension', 'share/libpq/contrib', + 'share/libpq/extension', 'share/libpq/timezonesets', 'share/libpq/tsearch_data'); if ($insttype eq "client") { EnsureDirectories($target, @client_dirs); @@ -117,7 +117,7 @@ sub Install } }, @top_dir); - CopySetOfFiles('config files', $sample_files, $target . '/share/'); + CopySetOfFiles('config files', $sample_files, $target . '/share/libpq/'); CopyFiles( 'Import libraries', $target . '/lib/', @@ -131,35 +131,35 @@ sub Install CopySetOfFiles( 'timezone names', [ glob('src\timezone\tznames\*.txt') ], - $target . '/share/timezonesets/'); + $target . '/share/libpq/timezonesets/'); CopyFiles( 'timezone sets', - $target . '/share/timezonesets/', + $target . '/share/libpq/timezonesets/', 'src/timezone/tznames/', 'Default', 'Australia', 'India'); CopySetOfFiles( 'BKI files', [ glob("src\\backend\\catalog\\postgres.*") ], - $target . '/share/'); + $target . '/share/libpq/'); CopySetOfFiles( 'SQL files', [ glob("src\\backend\\catalog\\*.sql") ], - $target . '/share/'); + $target . '/share/libpq/'); CopyFiles( - 'Information schema data', $target . '/share/', + 'Information schema data', $target . '/share/libpq/', 'src/backend/catalog/', 'sql_features.txt'); CopyFiles( - 'Error code data', $target . '/share/', + 'Error code data', $target . '/share/libpq/', 'src/backend/utils/', 'errcodes.txt'); GenerateTimezoneFiles($target, $conf); GenerateTsearchFiles($target); CopySetOfFiles( 'Stopword files', [ glob("src\\backend\\snowball\\stopwords\\*.stop") ], - $target . '/share/tsearch_data/'); + $target . '/share/libpq/tsearch_data/'); CopySetOfFiles( 'Dictionaries sample files', [ glob("src\\backend\\tsearch\\dicts\\*_sample*") ], - $target . '/share/tsearch_data/'); + $target . '/share/libpq/tsearch_data/'); my $pl_extension_files = []; my @pldirs = ('src/pl/plpgsql/src'); @@ -178,7 +178,7 @@ sub Install }, @pldirs); CopySetOfFiles('PL Extension files', - $pl_extension_files, $target . '/share/extension/'); + $pl_extension_files, $target . '/share/libpq/extension/'); } GenerateNLSFiles($target, $config->{nls}, $majorver) if ($config->{nls}); @@ -293,23 +293,26 @@ sub CopySolutionOutput { if ($1 == 1) { - push(@{ $install_list{'bin'} }, "exe"); + push(@{ $install_list{'tools\\libpq'} }, "exe"); } elsif ($1 == 2) { - push(@{ $install_list{'lib'} }, "dll"); + push(@{ $install_list{'bin'} }, "dll"); if ($is_sharedlib) { push(@{ $install_list{'bin'} }, "dll"); push(@{ $install_list{'lib'} }, "lib"); } + else + { + push(@{ $install_list{'lib'} }, "lib"); + } } else { - + push(@{ $install_list{'lib'} }, "lib"); # Static libraries, such as libpgport, only used internally # during build, don't install. - next; } } elsif ($vcproj eq 'vcxproj' @@ -320,11 +320,11 @@ sub CopySolutionOutput { if ($1 eq 'Application') { - push(@{ $install_list{'bin'} }, "exe"); + push(@{ $install_list{'tools\\libpq'} }, "exe"); } elsif ($1 eq 'DynamicLibrary') { - push(@{ $install_list{'lib'} }, "dll"); + push(@{ $install_list{'bin'} }, "dll"); if ($is_sharedlib) { push(@{ $install_list{'bin'} }, "dll"); @@ -333,10 +333,9 @@ sub CopySolutionOutput } else # 'StaticLibrary' { - + push(@{ $install_list{'lib'} }, "lib"); # Static lib, such as libpgport, only used internally # during build, don't install. - next; } } else @@ -352,7 +352,7 @@ sub CopySolutionOutput || croak "Could not copy $pf.$ext\n"; } } - lcopy("$conf\\$pf\\$pf.pdb", "$target\\symbols\\$pf.pdb") + lcopy("$conf\\$pf\\$pf.pdb", "$target\\bin\\$pf.pdb") || croak "Could not copy $pf.pdb\n"; print "."; } @@ -374,5 +374,5 @@ sub GenerateTimezoneFiles print "Generating timezone files..."; - my @args = ("$conf/zic/zic", '-d', "$target/share/timezone"); + my @args = ("$conf/zic/zic", '-d', "$target/share/libpq/timezone"); foreach (@tzfiles) { @@ -398,7 +398,7 @@ sub GenerateTsearchFiles $mf =~ /^LANGUAGES\s*=\s*(.*)$/m || die "Could not find LANGUAGES line in snowball Makefile\n"; my @pieces = split /\s+/, $1; - open($F, '>', "$target/share/snowball_create.sql") + open($F, '>', "$target/share/libpq/snowball_create.sql") || die "Could not write snowball_create.sql"; print $F read_file('src/backend/snowball/snowball_func.sql.in'); @@ -483,7 +483,7 @@ sub CopySubdirFiles foreach my $f (split /\s+/, $flist) { lcopy("$subdir/$module/$f.control", - "$target/share/extension/$f.control") + "$target/share/libpq/extension/$f.control") || croak("Could not copy file $f.control in contrib $module"); print '.'; } @@ -501,7 +501,7 @@ sub CopySubdirFiles foreach my $f (split /\s+/, $flist) { lcopy("$subdir/$module/$f", - "$target/share/$moduledir/" . basename($f)) + "$target/share/libpq/$moduledir/" . basename($f)) || croak("Could not copy file $f in contrib $module"); print '.'; } @@ -516,7 +516,7 @@ sub CopySubdirFiles foreach my $f (split /\s+/, $flist) { lcopy("$subdir/$module/$f", - "$target/share/tsearch_data/" . basename($f)) + "$target/share/libpq/tsearch_data/" . basename($f)) || croak("Could not copy file $f in $subdir $module"); print '.'; } @@ -579,7 +579,7 @@ sub CopySubdirFiles if ($module eq 'spi'); foreach my $f (split /\s+/, $flist) { - lcopy("$subdir/$module/$f", "$target/doc/$moduledir/$f") + lcopy("$subdir/$module/$f", "$target/doc/libpq/$moduledir/$f") || croak("Could not copy file $f in contrib $module"); print '.'; } @@ -708,7 +708,7 @@ sub GenerateNLSFiles my $majorver = shift; print "Installing NLS files..."; - EnsureDirectories($target, "share/locale"); + EnsureDirectories($target, "share/libpq/locale"); my @flist; File::Find::find( { @@ -730,12 +730,12 @@ sub GenerateNLSFiles next unless /([^\/]+)\.po/; $lang = $1; - EnsureDirectories($target, "share/locale/$lang", - "share/locale/$lang/LC_MESSAGES"); + EnsureDirectories($target, "share/libpq/locale/$lang", + "share/libpq/locale/$lang/LC_MESSAGES"); my @args = ( "$nlspath\\bin\\msgfmt", '-o', - "$target\\share\\locale\\$lang\\LC_MESSAGES\\$prgm-$majorver.mo", + "$target\\share\\libpq\\locale\\$lang\\LC_MESSAGES\\$prgm-$majorver.mo", $_); system(@args) && croak("Could not run msgfmt on $dir\\$_"); print ".";