Re: pthread option of msvc build. - Mailing list pgsql-patches
From | Magnus Hagander |
---|---|
Subject | Re: pthread option of msvc build. |
Date | |
Msg-id | 45A69182.9050209@hagander.net Whole thread Raw |
In response to | pthread option of msvc build. ("Hiroshi Saito" <z-saito@guitar.ocn.ne.jp>) |
Responses |
Re: pthread option of msvc build.
Re: pthread option of msvc build. |
List | pgsql-patches |
Hiroshi Saito wrote: > Hi Magnus-san. > > I am trying simple construction by operating config.pl. > It has changed wonderfully now. however, I do not use ecpg, and see the > simplest construction. At that time, even pthread might not be needed. > It was simple. Good point, but the patch doesn't work. Simply removing the check doesn't work, it will cause warnings and errors all over when doing a complete build. Please try the attached patch which actually disables the building of ecpg if pthreads is not specified. //Magnus Index: src\tools\msvc/Project.pm =================================================================== RCS file: c:/prog/cvsrepo/pgsql/pgsql/src/tools/msvc/Project.pm,v retrieving revision 1.5 diff -c -r1.5 Project.pm *** src\tools\msvc/Project.pm 4 Jan 2007 17:58:19 -0000 1.5 --- src\tools\msvc/Project.pm 11 Jan 2007 18:54:19 -0000 *************** *** 367,377 **** } $libs =~ s/ $//; $libs =~ s/__CFGNAME__/$cfgname/g; print $f <<EOF; <Configuration Name="$cfgname|Win32" OutputDirectory=".\\$cfgname\\$self->{name}" IntermediateDirectory=".\\$cfgname\\$self->{name}" ConfigurationType="$cfgtype" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="FALSE" CharacterSet="2" WholeProgramOptimization="$p->{wholeopt}"> <Tool Name="VCCLCompilerTool" Optimization="$p->{opt}" ! AdditionalIncludeDirectories="src/include;src/include/port/win32;src/include/port/win32_msvc;$self->{solution}->{options}->{pthread};$self->{includes}" PreprocessorDefinitions="WIN32;_WINDOWS;__WINDOWS__;__WIN32__;EXEC_BACKEND;WIN32_STACK_RLIMIT=4194304;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE$self->{defines}$p->{defs}" StringPooling="$p->{strpool}" RuntimeLibrary="$p->{runtime}" DisableSpecificWarnings="$self->{disablewarnings}" --- 367,379 ---- } $libs =~ s/ $//; $libs =~ s/__CFGNAME__/$cfgname/g; + my $pth = $self->{solution}->{options}->{pthread}; + $pth = '' unless $pth; print $f <<EOF; <Configuration Name="$cfgname|Win32" OutputDirectory=".\\$cfgname\\$self->{name}" IntermediateDirectory=".\\$cfgname\\$self->{name}" ConfigurationType="$cfgtype" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="FALSE" CharacterSet="2" WholeProgramOptimization="$p->{wholeopt}"> <Tool Name="VCCLCompilerTool" Optimization="$p->{opt}" ! AdditionalIncludeDirectories="src/include;src/include/port/win32;src/include/port/win32_msvc;$pth;$self->{includes}" PreprocessorDefinitions="WIN32;_WINDOWS;__WINDOWS__;__WIN32__;EXEC_BACKEND;WIN32_STACK_RLIMIT=4194304;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE$self->{defines}$p->{defs}" StringPooling="$p->{strpool}" RuntimeLibrary="$p->{runtime}" DisableSpecificWarnings="$self->{disablewarnings}" Index: src\tools\msvc/Solution.pm =================================================================== RCS file: c:/prog/cvsrepo/pgsql/pgsql/src/tools/msvc/Solution.pm,v retrieving revision 1.5 diff -c -r1.5 Solution.pm *** src\tools\msvc/Solution.pm 29 Dec 2006 16:49:02 -0000 1.5 --- src\tools\msvc/Solution.pm 11 Jan 2007 18:52:16 -0000 *************** *** 6,12 **** sub new { my $junk = shift; my $options = shift; - die "Pthreads is required.\n" unless $options->{pthread}; my $self = { projects => {}, options => $options, --- 6,11 ---- Index: src\tools\msvc/mkvcbuild.pl =================================================================== RCS file: c:/prog/cvsrepo/pgsql/pgsql/src/tools/msvc/mkvcbuild.pl,v retrieving revision 1.9 diff -c -r1.9 mkvcbuild.pl *** src\tools\msvc/mkvcbuild.pl 9 Jan 2007 06:00:43 -0000 1.9 --- src\tools\msvc/mkvcbuild.pl 11 Jan 2007 18:52:32 -0000 *************** *** 90,117 **** $pgtypes->AddReference($postgres,$libpgport); $pgtypes->AddIncludeDir('src\interfaces\ecpg\include'); ! my $libecpg = $solution->AddProject('libecpg','dll','interfaces','src\interfaces\ecpg\ecpglib'); ! $libecpg->AddDefine('FRONTEND'); ! $libecpg->AddIncludeDir('src\interfaces\ecpg\include'); ! $libecpg->AddIncludeDir('src\interfaces\libpq'); ! $libecpg->AddIncludeDir('src\port'); ! $libecpg->AddLibrary('wsock32.lib'); ! $libecpg->AddLibrary($config->{'pthread'} . '\pthreadVC2.lib'); ! $libecpg->AddReference($libpq,$pgtypes); ! ! my $libecpgcompat = $solution->AddProject('libecpg_compat','dll','interfaces','src\interfaces\ecpg\compatlib'); ! $libecpgcompat->AddIncludeDir('src\interfaces\ecpg\include'); ! $libecpgcompat->AddIncludeDir('src\interfaces\libpq'); ! $libecpgcompat->AddReference($pgtypes,$libecpg); ! ! my $ecpg = $solution->AddProject('ecpg','exe','interfaces','src\interfaces\ecpg\preproc'); ! $ecpg->AddIncludeDir('src\interfaces\ecpg\include'); ! $ecpg->AddIncludeDir('src\interfaces\libpq'); ! $ecpg->AddFiles('src\interfaces\ecpg\preproc','pgc.l','preproc.y'); ! $ecpg->AddDefine('MAJOR_VERSION=4'); ! $ecpg->AddDefine('MINOR_VERSION=2'); ! $ecpg->AddDefine('PATCHLEVEL=1'); ! $ecpg->AddReference($libpgport); # src/bin --- 90,122 ---- $pgtypes->AddReference($postgres,$libpgport); $pgtypes->AddIncludeDir('src\interfaces\ecpg\include'); ! if ($config->{pthread}) { ! my $libecpg = $solution->AddProject('libecpg','dll','interfaces','src\interfaces\ecpg\ecpglib'); ! $libecpg->AddDefine('FRONTEND'); ! $libecpg->AddIncludeDir('src\interfaces\ecpg\include'); ! $libecpg->AddIncludeDir('src\interfaces\libpq'); ! $libecpg->AddIncludeDir('src\port'); ! $libecpg->AddLibrary('wsock32.lib'); ! $libecpg->AddLibrary($config->{'pthread'} . '\pthreadVC2.lib'); ! $libecpg->AddReference($libpq,$pgtypes); ! ! my $libecpgcompat = $solution->AddProject('libecpg_compat','dll','interfaces','src\interfaces\ecpg\compatlib'); ! $libecpgcompat->AddIncludeDir('src\interfaces\ecpg\include'); ! $libecpgcompat->AddIncludeDir('src\interfaces\libpq'); ! $libecpgcompat->AddReference($pgtypes,$libecpg); ! ! my $ecpg = $solution->AddProject('ecpg','exe','interfaces','src\interfaces\ecpg\preproc'); ! $ecpg->AddIncludeDir('src\interfaces\ecpg\include'); ! $ecpg->AddIncludeDir('src\interfaces\libpq'); ! $ecpg->AddFiles('src\interfaces\ecpg\preproc','pgc.l','preproc.y'); ! $ecpg->AddDefine('MAJOR_VERSION=4'); ! $ecpg->AddDefine('MINOR_VERSION=2'); ! $ecpg->AddDefine('PATCHLEVEL=1'); ! $ecpg->AddReference($libpgport); ! } ! else { ! print "Not building ecpg due to lack of pthreads.\n"; ! } # src/bin
pgsql-patches by date: