@@ -474,8 +474,10 @@ sub mkvcbuild
474474push @contrib_excludes ,' uuid-ossp' ;
475475}
476476
477- # Pgcrypto makefile too complex to parse....
478- my $pgcrypto =$solution -> AddProject(' pgcrypto' ,' dll' ,' crypto' );
477+ # AddProject() does not recognize the constructs used to populate OBJS in
478+ # the pgcrypto Makefile, so it will discover no files.
479+ my $pgcrypto =
480+ $solution -> AddProject(' pgcrypto' ,' dll' ,' crypto' ,' contrib\\ pgcrypto' );
479481$pgcrypto -> AddFiles(
480482' contrib\pgcrypto' ,' pgcrypto.c' ,
481483' px.c' ,' px-hmac.c' ,
@@ -527,18 +529,9 @@ sub mkvcbuild
527529 ||die ' Could not match in conversion makefile' ." \n " ;
528530foreach my $sub (split /\s +/,$1 )
529531{
530- my $mf = Project::read_file(
531- ' src\backend\utils\mb\conversion_procs\\ ' .$sub .' \Makefile' );
532- my $p =$solution -> AddProject($sub ,' dll' ,' conversion procs' );
533- $p -> AddFile(' src\backend\utils\mb\conversion_procs\\ '
534- .$sub .' \\ '
535- .$sub
536- .' .c' );
537- if ($mf =~m { ^SRCS\s *\+ =\s *(.*)$} m )
538- {
539- $p -> AddFile(
540- ' src\backend\utils\mb\conversion_procs\\ ' .$sub .' \\ ' .$1 );
541- }
532+ my $dir =' src\backend\utils\mb\conversion_procs\\ ' .$sub ;
533+ my $p =$solution -> AddProject($sub ,' dll' ,' conversion procs' ,$dir );
534+ $p -> AddFile(" $dir \\ $sub .c" );# implicit source file
542535$p -> AddReference($postgres );
543536}
544537
@@ -646,62 +639,26 @@ sub AddContrib
646639if ($mf =~/ ^MODULE_big\s *=\s *(.*)$ /mg )
647640{
648641my $dn =$1 ;
649- $mf =~s {\\\s *[\r\n ]+} {} mg ;
650- my $proj =$solution -> AddProject($dn ,' dll' ,' contrib' );
651- $mf =~/ ^OBJS\s *=\s *(.*)$ /gm
652- || croak" Could not find objects in MODULE_big for$n \n " ;
653- my $objs =$1 ;
654- while ($objs =~/ \b ([\w -]+\. o)\b /g )
655- {
656- my $o =$1 ;
657- $o =~s /\. o$/ .c/ ;
658- $proj -> AddFile(' contrib\\ ' .$n .' \\ ' .$o );
659- }
642+ my $proj =
643+ $solution -> AddProject($dn ,' dll' ,' contrib' ,' contrib\\ ' .$n );
660644$proj -> AddReference($postgres );
661- if ($mf =~/ ^SUBDIRS\s *:?=\s *(.*)$ /mg )
662- {
663- foreach my $d (split /\s +/,$1 )
664- {
665- my $mf2 = Project::read_file(
666- ' contrib\\ ' .$n .' \\ ' .$d .' \Makefile' );
667- $mf2 =~s {\\\s *[\r\n ]+} {} mg ;
668- $mf2 =~/ ^SUBOBJS\s *=\s *(.*)$ /gm
669- || croak
670- " Could not find objects in MODULE_big for$n , subdir$d \n " ;
671- $objs =$1 ;
672- while ($objs =~/ \b ([\w -]+\. o)\b /g )
673- {
674- my $o =$1 ;
675- $o =~s /\. o$/ .c/ ;
676- $proj -> AddFile(' contrib\\ ' .$n .' \\ ' .$d .' \\ ' .$o );
677- }
678- }
679- }
680645AdjustContribProj($proj );
681646}
682647elsif ($mf =~/ ^MODULES\s *=\s *(.*)$ /mg )
683648{
684649foreach my $mod (split /\s +/,$1 )
685650{
686- my $proj =$solution -> AddProject($mod ,' dll' ,' contrib' );
651+ my $proj =
652+ $solution -> AddProject($mod ,' dll' ,' contrib' ,' contrib\\ ' .$n );
687653$proj -> AddFile(' contrib\\ ' .$n .' \\ ' .$mod .' .c' );
688654$proj -> AddReference($postgres );
689655AdjustContribProj($proj );
690656}
691657}
692658elsif ($mf =~/ ^PROGRAM\s *=\s *(.*)$ /mg )
693659{
694- my $proj =$solution -> AddProject($1 ,' exe' ,' contrib' );
695- $mf =~s {\\\s *[\r\n ]+} {} mg ;
696- $mf =~/ ^OBJS\s *=\s *(.*)$ /gm
697- || croak" Could not find objects in PROGRAM for$n \n " ;
698- my $objs =$1 ;
699- while ($objs =~/ \b ([\w -]+\. o)\b /g )
700- {
701- my $o =$1 ;
702- $o =~s /\. o$/ .c/ ;
703- $proj -> AddFile(' contrib\\ ' .$n .' \\ ' .$o );
704- }
660+ my $proj =
661+ $solution -> AddProject($1 ,' exe' ,' contrib' ,' contrib\\ ' .$n );
705662AdjustContribProj($proj );
706663}
707664else
@@ -717,6 +674,7 @@ sub GenerateContribSqlFiles
717674{
718675my $n =shift ;
719676my $mf =shift ;
677+ $mf =~s {\\\s *[\r\n ]+} {} mg ;
720678if ($mf =~/ ^DATA_built\s *=\s *(.*)$ /mg )
721679{
722680my $l =$1 ;