Re: [HACKERS] msvc, build and install with cygwin in the PATH - Mailing list pgsql-patches
From | Andrew Dunstan |
---|---|
Subject | Re: [HACKERS] msvc, build and install with cygwin in the PATH |
Date | |
Msg-id | 469D5CA0.9030101@dunslane.net Whole thread Raw |
In response to | Re: [HACKERS] msvc, build and install with cygwin in the PATH (Magnus Hagander <magnus@hagander.net>) |
List | pgsql-patches |
I am fighting some fires in my day job. My pesonal TODO list for pg up to beta is: . fix chunking muddle (see recent emails) . complete CSV logs patch . harden MSVC builds I'll get to this when I can. I can dig up the patch I did if you want it again. cheers andrew Magnus Hagander wrote: > I used to have a different patch from Andrew that did part of this, and > more, and conflicted rather badly with it. However, I never got around > to applying that one, and I can't seem to find it anymore. > > Andrew -do you recall if you had all this in yours, and is it still > something you want in, or should we just go with this one? > > //Magnus > > Bruce Momjian wrote: > >> Magnus, what is your reaction to this patch? >> >> --------------------------------------------------------------------------- >> >> Hannes Eder wrote: >> >>> Magnus Hagander wrote: >>> >Hannes Eder wrote: >>> >> Is it worth doing this the "Perl-way" and using File::Find? If so, I >>> can >>> >> work an a patch for that. >>> >> >>> > It's certainly cleaner that way, but I don't find it a major issue. >>> But I'd >>> > rather see that fix than the other one. >>> >>> Here we go. See attached patch. Your comments are welcome. >>> >>> Hannes. >>> >>> >>> *** ..\pgsql-cvshead\src\tools\msvc\Install.pm Mo Mai 14 16:36:10 2007 >>> --- src\tools\msvc\Install.pm Mi Jun 6 20:39:47 2007 >>> *************** >>> *** 10,15 **** >>> --- 10,18 ---- >>> use Carp; >>> use File::Basename; >>> use File::Copy; >>> + use File::Find; >>> + use File::Glob; >>> + use File::Spec; >>> >>> use Exporter; >>> our (@ISA,@EXPORT_OK); >>> *************** >>> *** 99,104 **** >>> --- 102,142 ---- >>> print "\n"; >>> } >>> >>> + sub FindFiles >>> + { >>> + my $spec = shift; >>> + my $nonrecursive = shift; >>> + my $pat = basename($spec); >>> + my $dir = dirname($spec); >>> + >>> + if ($dir eq '') { $dir = '.'; } >>> + >>> + -d $dir || croak "Could not list directory $dir: $!\n"; >>> + >>> + if ($nonrecursive) >>> + { >>> + return glob($spec); >>> + } >>> + >>> + # borrowed from File::DosGlob >>> + # escape regex metachars but not glob chars >>> + $pat =~ s:([].+^\-\${}[|]):\\$1:g; >>> + # and convert DOS-style wildcards to regex >>> + $pat =~ s/\*/.*/g; >>> + $pat =~ s/\?/.?/g; >>> + >>> + $pat = '^' . $pat . '\z'; >>> + >>> + my @res; >>> + find( >>> + { >>> + wanted => sub { /$pat/s && push (@res, File::Spec->canonpath($File::Find::name)); } >>> + }, >>> + $dir >>> + ); >>> + return @res; >>> + } >>> + >>> sub CopySetOfFiles >>> { >>> my $what = shift; >>> *************** >>> *** 106,126 **** >>> my $target = shift; >>> my $silent = shift; >>> my $norecurse = shift; >>> - my $D; >>> >>> - my $subdirs = $norecurse?'':'/s'; >>> print "Copying $what" unless ($silent); >>> ! open($D, "dir /b $subdirs $spec |") || croak "Could not list $spec\n"; >>> ! while (<$D>) >>> { >>> - chomp; >>> next if /regress/; # Skip temporary install in regression subdir >>> ! my $tgt = $target . basename($_); >>> print "."; >>> ! my $src = $norecurse?(dirname($spec) . '/' . $_):$_; >>> ! copy($src, $tgt) || croak "Could not copy $src: $!\n"; >>> } >>> ! close($D); >>> print "\n"; >>> } >>> >>> --- 144,161 ---- >>> my $target = shift; >>> my $silent = shift; >>> my $norecurse = shift; >>> >>> print "Copying $what" unless ($silent); >>> ! >>> ! foreach (FindFiles($spec, $norecurse)) >>> { >>> next if /regress/; # Skip temporary install in regression subdir >>> ! my $src = $_; >>> ! my $tgt = $target . basename($src); >>> print "."; >>> ! copy($src, $tgt) || croak "Could not copy $src to $tgt: $!\n"; >>> } >>> ! >>> print "\n"; >>> } >>> >>> *************** >>> *** 371,395 **** >>> { >>> my $target = shift; >>> my $nlspath = shift; >>> - my $D; >>> >>> print "Installing NLS files..."; >>> EnsureDirectories($target, "share/locale"); >>> ! open($D,"dir /b /s nls.mk|") || croak "Could not list nls.mk\n"; >>> ! while (<$D>) >>> { >>> - chomp; >>> s/nls.mk/po/; >>> my $dir = $_; >>> next unless ($dir =~ /([^\\]+)\\po$/); >>> my $prgm = $1; >>> $prgm = 'postgres' if ($prgm eq 'backend'); >>> - my $E; >>> - open($E,"dir /b $dir\\*.po|") || croak "Could not list contents of $_\n"; >>> >>> ! while (<$E>) >>> { >>> - chomp; >>> my $lang; >>> next unless /^(.*)\.po/; >>> $lang = $1; >>> --- 406,425 ---- >>> { >>> my $target = shift; >>> my $nlspath = shift; >>> >>> print "Installing NLS files..."; >>> EnsureDirectories($target, "share/locale"); >>> ! >>> ! foreach (FindFiles("nls.mk")) >>> { >>> s/nls.mk/po/; >>> my $dir = $_; >>> next unless ($dir =~ /([^\\]+)\\po$/); >>> my $prgm = $1; >>> $prgm = 'postgres' if ($prgm eq 'backend'); >>> >>> ! foreach (FindFiles("$dir\\*.po", 1)) >>> { >>> my $lang; >>> next unless /^(.*)\.po/; >>> $lang = $1; >>> *************** >>> *** 401,409 **** >>> && croak("Could not run msgfmt on $dir\\$_"); >>> print "."; >>> } >>> - close($E); >>> } >>> ! close($D); >>> print "\n"; >>> } >>> >>> --- 431,438 ---- >>> && croak("Could not run msgfmt on $dir\\$_"); >>> print "."; >>> } >>> } >>> ! >>> print "\n"; >>> } >>> >>> >>> ---------------------------(end of broadcast)--------------------------- >>> TIP 6: explain analyze is your friend >>> > >
pgsql-patches by date: