mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Turn build and vcregress .bat files into pure one line wrappers for
the perl scripts. Remove the now superfluous getregress.pl.
This commit is contained in:
@ -3,7 +3,7 @@ package Install;
|
|||||||
#
|
#
|
||||||
# Package that provides 'make install' functionality for msvc builds
|
# Package that provides 'make install' functionality for msvc builds
|
||||||
#
|
#
|
||||||
# $PostgreSQL: pgsql/src/tools/msvc/Install.pm,v 1.21 2007/09/23 20:32:40 adunstan Exp $
|
# $PostgreSQL: pgsql/src/tools/msvc/Install.pm,v 1.22 2007/09/27 21:13:11 adunstan Exp $
|
||||||
#
|
#
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
@ -17,6 +17,16 @@ our (@ISA,@EXPORT_OK);
|
|||||||
@ISA = qw(Exporter);
|
@ISA = qw(Exporter);
|
||||||
@EXPORT_OK = qw(Install);
|
@EXPORT_OK = qw(Install);
|
||||||
|
|
||||||
|
sub lcopy
|
||||||
|
{
|
||||||
|
my $src = shift;
|
||||||
|
my $target = shift;
|
||||||
|
|
||||||
|
unlink $target if -f $target;
|
||||||
|
|
||||||
|
copy($src,$target);
|
||||||
|
}
|
||||||
|
|
||||||
sub Install
|
sub Install
|
||||||
{
|
{
|
||||||
$| = 1;
|
$| = 1;
|
||||||
@ -43,7 +53,7 @@ sub Install
|
|||||||
'doc/contrib', 'symbols', 'share/tsearch_data');
|
'doc/contrib', 'symbols', 'share/tsearch_data');
|
||||||
|
|
||||||
CopySolutionOutput($conf, $target);
|
CopySolutionOutput($conf, $target);
|
||||||
copy($target . '/lib/libpq.dll', $target . '/bin/libpq.dll');
|
lcopy($target . '/lib/libpq.dll', $target . '/bin/libpq.dll');
|
||||||
my $sample_files = [];
|
my $sample_files = [];
|
||||||
File::Find::find({wanted =>
|
File::Find::find({wanted =>
|
||||||
sub { /^.*\.sample\z/s &&
|
sub { /^.*\.sample\z/s &&
|
||||||
@ -113,7 +123,7 @@ sub CopyFiles
|
|||||||
print ".";
|
print ".";
|
||||||
$f = $basedir . $f;
|
$f = $basedir . $f;
|
||||||
die "No file $f\n" if (!-f $f);
|
die "No file $f\n" if (!-f $f);
|
||||||
copy($f, $target . basename($f))
|
lcopy($f, $target . basename($f))
|
||||||
|| croak "Could not copy $f to $target". basename($f). " to $target". basename($f) . "\n";
|
|| croak "Could not copy $f to $target". basename($f). " to $target". basename($f) . "\n";
|
||||||
}
|
}
|
||||||
print "\n";
|
print "\n";
|
||||||
@ -131,7 +141,7 @@ sub CopySetOfFiles
|
|||||||
next if /ecpg.test/; # Skip temporary install in regression subdir
|
next if /ecpg.test/; # Skip temporary install in regression subdir
|
||||||
my $tgt = $target . basename($_);
|
my $tgt = $target . basename($_);
|
||||||
print ".";
|
print ".";
|
||||||
copy($_, $tgt) || croak "Could not copy $_: $!\n";
|
lcopy($_, $tgt) || croak "Could not copy $_: $!\n";
|
||||||
}
|
}
|
||||||
print "\n";
|
print "\n";
|
||||||
}
|
}
|
||||||
@ -173,8 +183,8 @@ sub CopySolutionOutput
|
|||||||
# Static lib, such as libpgport, only used internally during build, don't install
|
# Static lib, such as libpgport, only used internally during build, don't install
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
copy("$conf\\$pf\\$pf.$ext","$target\\$dir\\$pf.$ext") || croak "Could not copy $pf.$ext\n";
|
lcopy("$conf\\$pf\\$pf.$ext","$target\\$dir\\$pf.$ext") || croak "Could not copy $pf.$ext\n";
|
||||||
copy("$conf\\$pf\\$pf.pdb","$target\\symbols\\$pf.pdb") || croak "Could not copy $pf.pdb\n";
|
lcopy("$conf\\$pf\\$pf.pdb","$target\\symbols\\$pf.pdb") || croak "Could not copy $pf.pdb\n";
|
||||||
print ".";
|
print ".";
|
||||||
}
|
}
|
||||||
print "\n";
|
print "\n";
|
||||||
@ -297,7 +307,7 @@ sub CopyContribFiles
|
|||||||
if ($d eq 'spi');
|
if ($d eq 'spi');
|
||||||
foreach my $f (split /\s+/,$flist)
|
foreach my $f (split /\s+/,$flist)
|
||||||
{
|
{
|
||||||
copy('contrib/' . $d . '/' . $f,$target . '/share/contrib/' . basename($f))
|
lcopy('contrib/' . $d . '/' . $f,$target . '/share/contrib/' . basename($f))
|
||||||
|| croak("Could not copy file $f in contrib $d");
|
|| croak("Could not copy file $f in contrib $d");
|
||||||
print '.';
|
print '.';
|
||||||
}
|
}
|
||||||
@ -315,7 +325,7 @@ sub CopyContribFiles
|
|||||||
if ($d eq 'spi');
|
if ($d eq 'spi');
|
||||||
foreach my $f (split /\s+/,$flist)
|
foreach my $f (split /\s+/,$flist)
|
||||||
{
|
{
|
||||||
copy('contrib/' . $d . '/' . $f, $target . '/doc/contrib/' . $f)
|
lcopy('contrib/' . $d . '/' . $f, $target . '/doc/contrib/' . $f)
|
||||||
|| croak("Could not copy file $f in contrib $d");
|
|| croak("Could not copy file $f in contrib $d");
|
||||||
print '.';
|
print '.';
|
||||||
}
|
}
|
||||||
@ -359,7 +369,7 @@ sub CopyIncludeFiles
|
|||||||
$target . '/include/',
|
$target . '/include/',
|
||||||
'src/include/', 'postgres_ext.h', 'pg_config.h', 'pg_config_os.h', 'pg_config_manual.h'
|
'src/include/', 'postgres_ext.h', 'pg_config.h', 'pg_config_os.h', 'pg_config_manual.h'
|
||||||
);
|
);
|
||||||
copy('src/include/libpq/libpq-fs.h', $target . '/include/libpq/')
|
lcopy('src/include/libpq/libpq-fs.h', $target . '/include/libpq/')
|
||||||
|| croak 'Could not copy libpq-fs.h';
|
|| croak 'Could not copy libpq-fs.h';
|
||||||
|
|
||||||
CopyFiles('Libpq headers', $target . '/include/', 'src/interfaces/libpq/', 'libpq-fe.h');
|
CopyFiles('Libpq headers', $target . '/include/', 'src/interfaces/libpq/', 'libpq-fe.h');
|
||||||
@ -374,7 +384,7 @@ sub CopyIncludeFiles
|
|||||||
$target . '/include/internal/',
|
$target . '/include/internal/',
|
||||||
'src/include/', 'c.h', 'port.h', 'postgres_fe.h'
|
'src/include/', 'c.h', 'port.h', 'postgres_fe.h'
|
||||||
);
|
);
|
||||||
copy('src/include/libpq/pqcomm.h', $target . '/include/internal/libpq/')
|
lcopy('src/include/libpq/pqcomm.h', $target . '/include/internal/libpq/')
|
||||||
|| croak 'Could not copy pqcomm.h';
|
|| croak 'Could not copy pqcomm.h';
|
||||||
|
|
||||||
CopyFiles(
|
CopyFiles(
|
||||||
|
@ -1,37 +1,6 @@
|
|||||||
@echo off
|
@echo off
|
||||||
REM $PostgreSQL: pgsql/src/tools/msvc/build.bat,v 1.9 2007/06/26 11:43:56 mha Exp $
|
REM $PostgreSQL: pgsql/src/tools/msvc/build.bat,v 1.10 2007/09/27 21:13:11 adunstan Exp $
|
||||||
|
REM all the logic for this now belongs in build.pl. This file really
|
||||||
SETLOCAL
|
REM only exists so you don't have to type "perl build.pl"
|
||||||
SET STARTDIR=%CD%
|
REM Resist any temptation to add any logic here.
|
||||||
SET CONFIG=
|
@perl build.pl %*
|
||||||
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
|
|
||||||
|
|
||||||
if exist ..\msvc if exist ..\..\..\src cd ..\..\..
|
|
||||||
set CFG=
|
|
||||||
if "%1" == "DEBUG" (
|
|
||||||
set CONFIG=Debug
|
|
||||||
set CFG=1
|
|
||||||
)
|
|
||||||
if "%1" == "RELEASE" (
|
|
||||||
set CONFIG=Release
|
|
||||||
set CFG=1
|
|
||||||
)
|
|
||||||
if "%CONFIG%" == "" set CONFIG=Release
|
|
||||||
|
|
||||||
if "%CFG%" == "1" shift
|
|
||||||
|
|
||||||
echo Building %CONFIG%
|
|
||||||
|
|
||||||
if "%1" == "" msbuild pgsql.sln /verbosity:detailed /p:Configuration=%CONFIG%
|
|
||||||
if not "%1" == "" vcbuild %1.vcproj %CONFIG%
|
|
||||||
SET E=%ERRORLEVEL%
|
|
||||||
|
|
||||||
cd %STARTDIR%
|
|
||||||
|
|
||||||
REM exit fix for pre-2003 shell especially if used on buildfarm
|
|
||||||
if "%XP_EXIT_FIX%" == "yes" exit %E%
|
|
||||||
exit /b %E%
|
|
||||||
|
@ -1,46 +0,0 @@
|
|||||||
#
|
|
||||||
# Script that collects a list of regression tests from a Makefile
|
|
||||||
#
|
|
||||||
# $PostgreSQL: pgsql/src/tools/msvc/getregress.pl,v 1.2 2007/03/23 10:05:34 mha Exp $
|
|
||||||
#
|
|
||||||
use strict;
|
|
||||||
use warnings;
|
|
||||||
|
|
||||||
my $M;
|
|
||||||
|
|
||||||
open($M,"<Makefile") || open($M,"<GNUMakefile") || die "Could not open Makefile";
|
|
||||||
undef $/;
|
|
||||||
my $m = <$M>;
|
|
||||||
close($M);
|
|
||||||
|
|
||||||
$m =~ s/\\[\r\n]*//gs;
|
|
||||||
if ($m =~ /^REGRESS\s*=\s*(.*)$/gm)
|
|
||||||
{
|
|
||||||
my $t = $1;
|
|
||||||
$t =~ s/\s+/ /g;
|
|
||||||
|
|
||||||
if ($m =~ /contrib\/pgcrypto/)
|
|
||||||
{
|
|
||||||
|
|
||||||
# pgcrypto is special since the tests depend on the configuration of the build
|
|
||||||
our $config;
|
|
||||||
require '../../src/tools/msvc/config.pl';
|
|
||||||
|
|
||||||
my $cftests = $config->{openssl}?GetTests("OSSL_TESTS",$m):GetTests("INT_TESTS",$m);
|
|
||||||
my $pgptests = $config->{zlib}?GetTests("ZLIB_TST",$m):GetTests("ZLIB_OFF_TST",$m);
|
|
||||||
$t =~ s/\$\(CF_TESTS\)/$cftests/;
|
|
||||||
$t =~ s/\$\(CF_PGP_TESTS\)/$pgptests/;
|
|
||||||
}
|
|
||||||
print "SET TESTS=$t";
|
|
||||||
}
|
|
||||||
|
|
||||||
sub GetTests
|
|
||||||
{
|
|
||||||
my $testname = shift;
|
|
||||||
my $m = shift;
|
|
||||||
if ($m =~ /^$testname\s*=\s*(.*)$/gm)
|
|
||||||
{
|
|
||||||
return $1;
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
}
|
|
@ -1,128 +1,6 @@
|
|||||||
@echo off
|
@echo off
|
||||||
REM $PostgreSQL: pgsql/src/tools/msvc/vcregress.bat,v 1.14 2007/08/27 12:10:47 mha Exp $
|
REM $PostgreSQL: pgsql/src/tools/msvc/vcregress.bat,v 1.15 2007/09/27 21:13:11 adunstan Exp $
|
||||||
|
REM all the logic for this now belongs in vcregress.pl. This file really
|
||||||
SETLOCAL
|
REM only exists so you don't have to type "perl vcregress.pl"
|
||||||
SET STARTDIR=%CD%
|
REM Resist any temptation to add any logic here.
|
||||||
if exist ..\..\..\src\tools\msvc\vcregress.bat cd ..\..\..
|
@perl vcregress.pl %*
|
||||||
if exist src\tools\msvc\buildenv.bat call src\tools\msvc\buildenv.bat
|
|
||||||
|
|
||||||
set what=
|
|
||||||
if /I "%1"=="check" SET what=CHECK
|
|
||||||
if /I "%1"=="installcheck" SET what=INSTALLCHECK
|
|
||||||
if /I "%1"=="plcheck" SET what=PLCHECK
|
|
||||||
if /I "%1"=="contribcheck" SET what=CONTRIBCHECK
|
|
||||||
if /I "%1"=="ecpgcheck" SET what=ECPGCHECK
|
|
||||||
if "%what%"=="" goto usage
|
|
||||||
|
|
||||||
SET CONFIG=Debug
|
|
||||||
if exist release\postgres\postgres.exe SET CONFIG=Release
|
|
||||||
|
|
||||||
copy %CONFIG%\refint\refint.dll contrib\spi\
|
|
||||||
copy %CONFIG%\autoinc\autoinc.dll contrib\spi\
|
|
||||||
copy %CONFIG%\regress\regress.dll src\test\regress\
|
|
||||||
|
|
||||||
SET PATH=..\..\..\%CONFIG%\libpq;..\..\%CONFIG%\libpq;%PATH%
|
|
||||||
|
|
||||||
SET TOPDIR=%CD%
|
|
||||||
cd src\test\regress
|
|
||||||
SET SCHEDULE=parallel
|
|
||||||
SET TEMPPORT=54321
|
|
||||||
IF NOT "%2"=="" SET SCHEDULE=%2
|
|
||||||
|
|
||||||
IF "%what%"=="ECPGCHECK" (
|
|
||||||
cd "%STARTDIR%"
|
|
||||||
msbuild ecpg_regression.proj /p:config=%CONFIG%
|
|
||||||
REM exit fix for pre-2003 shell especially if used on buildfarm
|
|
||||||
if "%XP_EXIT_FIX%" == "yes" if errorlevel 1 exit 1
|
|
||||||
if errorlevel 1 exit /b 1
|
|
||||||
cd "%TOPDIR%"
|
|
||||||
cd src\interfaces\ecpg\test
|
|
||||||
SET SCHEDULE=ecpg
|
|
||||||
)
|
|
||||||
|
|
||||||
SET PERL5LIB=%TOPDIR%\src\tools\msvc
|
|
||||||
|
|
||||||
if "%what%"=="INSTALLCHECK" ..\..\..\%CONFIG%\pg_regress\pg_regress --psqldir="..\..\..\%CONFIG%\psql" --schedule=%SCHEDULE%_schedule --multibyte=SQL_ASCII --load-language=plpgsql --no-locale
|
|
||||||
if "%what%"=="CHECK" ..\..\..\%CONFIG%\pg_regress\pg_regress --psqldir="..\..\..\%CONFIG%\psql" --schedule=%SCHEDULE%_schedule --multibyte=SQL_ASCII --load-language=plpgsql --no-locale --temp-install=./tmp_check --top-builddir="%TOPDIR%" --temp-port=%TEMPPORT%
|
|
||||||
if "%what%"=="ECPGCHECK" ..\..\..\..\%CONFIG%\pg_regress_ecpg\pg_regress_ecpg --psqldir="..\..\..\%CONFIG%\psql" --dbname=regress1,connectdb --create-role=connectuser,connectdb --schedule=%SCHEDULE%_schedule --multibyte=SQL_ASCII --load-language=plpgsql --no-locale --temp-install=./tmp_check --top-builddir="%TOPDIR%" --temp-port=%TEMPPORT%
|
|
||||||
if "%what%"=="PLCHECK" call :plcheck
|
|
||||||
if "%what%"=="CONTRIBCHECK" call :contribcheck
|
|
||||||
SET E=%ERRORLEVEL%
|
|
||||||
|
|
||||||
cd "%STARTDIR%"
|
|
||||||
REM exit fix for pre-2003 shell especially if used on buildfarm
|
|
||||||
if "%XP_EXIT_FIX%" == "yes" exit %E%
|
|
||||||
exit /b %E%
|
|
||||||
|
|
||||||
:usage
|
|
||||||
echo "Usage: vcregress <check|installcheck|plcheck|contribcheck|ecpgcheck> [schedule]"
|
|
||||||
goto :eof
|
|
||||||
|
|
||||||
|
|
||||||
REM Check procedural languages
|
|
||||||
REM Some workarounds due to inconsistently named directories
|
|
||||||
:plcheck
|
|
||||||
cd ..\..\PL
|
|
||||||
FOR /D %%d IN (*) do if exist %%d\sql if exist %%d\expected (
|
|
||||||
if exist ..\..\%CONFIG%\%%d call :oneplcheck %%d
|
|
||||||
REM exit fix for pre-2003 shell especially if used on buildfarm
|
|
||||||
if "%XP_EXIT_FIX%" == "yes" if errorlevel 1 exit 1
|
|
||||||
if errorlevel 1 exit /b 1
|
|
||||||
if exist ..\..\%CONFIG%\pl%%d call :oneplcheck %%d
|
|
||||||
if "%XP_EXIT_FIX%" == "yes" if errorlevel 1 exit 1
|
|
||||||
if errorlevel 1 exit /b 1
|
|
||||||
)
|
|
||||||
goto :eof
|
|
||||||
|
|
||||||
REM Check a single procedural language
|
|
||||||
:oneplcheck
|
|
||||||
echo ==========================================================================
|
|
||||||
echo Checking %1
|
|
||||||
cd %1
|
|
||||||
SET PL=%1
|
|
||||||
IF %PL%==plpython SET PL=plpythonu
|
|
||||||
IF %PL%==tcl SET PL=pltcl
|
|
||||||
|
|
||||||
set TESTS=
|
|
||||||
perl ../../tools/msvc/getregress.pl > regress.tmp.bat
|
|
||||||
call regress.tmp.bat
|
|
||||||
del regress.tmp.bat
|
|
||||||
..\..\..\%CONFIG%\pg_regress\pg_regress --psqldir=..\..\..\%CONFIG%\psql --no-locale --load-language=%PL% %TESTS%
|
|
||||||
set E=%ERRORLEVEL%
|
|
||||||
cd ..
|
|
||||||
REM exit fix for pre-2003 shell especially if used on buildfarm
|
|
||||||
if "%XP_EXIT_FIX%" == "yes" exit %E%
|
|
||||||
exit /b %E%
|
|
||||||
|
|
||||||
|
|
||||||
REM Check contrib modules
|
|
||||||
:contribcheck
|
|
||||||
cd ..\..\..\contrib
|
|
||||||
set CONTRIBERROR=0
|
|
||||||
for /d %%d IN (*) do if exist %%d\sql if exist %%d\expected if exist %%d\Makefile (
|
|
||||||
call :onecontribcheck %%d
|
|
||||||
if errorlevel 1 set CONTRIBERROR=1
|
|
||||||
)
|
|
||||||
REM exit fix for pre-2003 shell especially if used on buildfarm
|
|
||||||
if "%XP_EXIT_FIX%" == "yes" if %CONTRIBERROR%==1 exit 1
|
|
||||||
if %CONTRIBERROR%==1 exit /b 1
|
|
||||||
goto :eof
|
|
||||||
|
|
||||||
REM Check a single contrib module
|
|
||||||
:onecontribcheck
|
|
||||||
REM Temporarily exclude tsearch2 tests
|
|
||||||
if %1==tsearch2 goto :eof
|
|
||||||
cd %1
|
|
||||||
|
|
||||||
echo ==========================================================================
|
|
||||||
echo Checking %1
|
|
||||||
set TESTS=
|
|
||||||
perl ../../src/tools/msvc/getregress.pl > regress.tmp.bat
|
|
||||||
call regress.tmp.bat
|
|
||||||
del regress.tmp.bat
|
|
||||||
..\..\%CONFIG%\pg_regress\pg_regress --psqldir=..\..\%CONFIG%\psql --no-locale --dbname=contrib_regression %TESTS%
|
|
||||||
set E=%ERRORLEVEL%
|
|
||||||
cd ..
|
|
||||||
REM exit fix for pre-2003 shell especially if used on buildfarm
|
|
||||||
if "%XP_EXIT_FIX%" == "yes" exit %E%
|
|
||||||
exit /b %E%
|
|
||||||
|
Reference in New Issue
Block a user