@@ -474,8 +474,10 @@ sub mkvcbuild
474
474
push @contrib_excludes ,' uuid-ossp' ;
475
475
}
476
476
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' );
479
481
$pgcrypto -> AddFiles(
480
482
' contrib\pgcrypto' ,' pgcrypto.c' ,
481
483
' px.c' ,' px-hmac.c' ,
@@ -527,18 +529,9 @@ sub mkvcbuild
527
529
||die ' Could not match in conversion makefile' ." \n " ;
528
530
foreach my $sub (split /\s +/,$1 )
529
531
{
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
542
535
$p -> AddReference($postgres );
543
536
}
544
537
@@ -646,62 +639,26 @@ sub AddContrib
646
639
if ($mf =~/ ^MODULE_big\s *=\s *(.*)$ /mg )
647
640
{
648
641
my $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 );
660
644
$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
- }
680
645
AdjustContribProj($proj );
681
646
}
682
647
elsif ($mf =~/ ^MODULES\s *=\s *(.*)$ /mg )
683
648
{
684
649
foreach my $mod (split /\s +/,$1 )
685
650
{
686
- my $proj =$solution -> AddProject($mod ,' dll' ,' contrib' );
651
+ my $proj =
652
+ $solution -> AddProject($mod ,' dll' ,' contrib' ,' contrib\\ ' .$n );
687
653
$proj -> AddFile(' contrib\\ ' .$n .' \\ ' .$mod .' .c' );
688
654
$proj -> AddReference($postgres );
689
655
AdjustContribProj($proj );
690
656
}
691
657
}
692
658
elsif ($mf =~/ ^PROGRAM\s *=\s *(.*)$ /mg )
693
659
{
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 );
705
662
AdjustContribProj($proj );
706
663
}
707
664
else
@@ -717,6 +674,7 @@ sub GenerateContribSqlFiles
717
674
{
718
675
my $n =shift ;
719
676
my $mf =shift ;
677
+ $mf =~s {\\\s *[\r\n ]+} {} mg ;
720
678
if ($mf =~/ ^DATA_built\s *=\s *(.*)$ /mg )
721
679
{
722
680
my $l =$1 ;