Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Fix MSVC installations with multiple "configure" files detected
authorMichael Paquier <michael@paquier.xyz>
Thu, 21 May 2020 05:41:33 +0000 (14:41 +0900)
committerMichael Paquier <michael@paquier.xyz>
Thu, 21 May 2020 05:41:33 +0000 (14:41 +0900)
When installing binaries and libraries using the MSVC installation
routines, the operation gets done after moving to the root folder, whose
location is detected by checking if "configure" exists two times in a
row.  So, calling the installation script from src/tools/msvc/ with an
extra "configure" file four levels up the root path of the code tree
causes the execution to go further up, leading to a failure in finding
the builds.  This commit fixes the issue by moving to the root folder of
the code tree only once, when necessary.

Author: Arnold Müller
Reviewed-by: Daniel Gustafsson
Discussion: https://postgr.es/m/16343-f638f67e7e52b86c@postgresql.org
Backpatch-through: 9.5

src/tools/msvc/Install.pm

index 1e388ca3b6e5d3b59ce3d5e99fdac829d7f386a0..97f543044e96b7c686051027a1fc96edb5324c78 100644 (file)
@@ -63,8 +63,16 @@ sub Install
        do "./config.pl" if (-f "config.pl");
    }
 
-   chdir("../../..")    if (-f "../../../configure");
-   chdir("../../../..") if (-f "../../../../configure");
+   # Move to the root path depending on the current location.
+   if (-f "../../../configure")
+   {
+       chdir("../../..");
+   }
+   elsif (-f "../../../../configure")
+   {
+       chdir("../../../..");
+   }
+
    my $conf = "";
    if (-d "debug")
    {