]> granicus.if.org Git - python/commitdiff
Issue #4494: Fix build with Py_NO_ENABLE_SHARED on Windows.
authorMartin v. Löwis <martin@v.loewis.de>
Mon, 2 Feb 2009 14:23:16 +0000 (14:23 +0000)
committerMartin v. Löwis <martin@v.loewis.de>
Mon, 2 Feb 2009 14:23:16 +0000 (14:23 +0000)
Misc/NEWS
PC/getpathp.c

index c403b61ae495c44d5dc53a4bfe373148dacb0ddb..454ad41779ea29a84be1c3fbabe31fc7814dd486 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -397,6 +397,8 @@ Tools/Demos
 Build
 -----
 
+- Issue #4494: Fix build with Py_NO_ENABLE_SHARED on Windows.
+
 - Issue #4895: Use _strdup on Windows CE.
 
 - Issue #4472: "configure --enable-shared" now works on OSX
index e62b936f2d360c86b7206bfcb512d2229f22dce3..78f446599a26a9ff5df95b9ba73ff51ff197e622 100644 (file)
@@ -201,6 +201,7 @@ search_for_prefix(char *argv0_path, char *landmark)
 }
 
 #ifdef MS_WINDOWS
+#ifdef Py_ENABLE_SHARED
 
 /* a string loaded from the DLL at startup.*/
 extern const char *PyWin_DLLVersionString;
@@ -363,6 +364,7 @@ done:
                free(keyBuf);
        return retval;
 }
+#endif /* Py_ENABLE_SHARED */
 #endif /* MS_WINDOWS */
 
 static void
@@ -380,6 +382,7 @@ get_progpath(void)
           but makes no mention of the null terminator.  Play it safe.
           PLUS Windows itself defines MAX_PATH as the same, but anyway...
        */
+#ifdef Py_ENABLE_SHARED
        wprogpath[MAXPATHLEN]=_T('\0');
        if (PyWin_DLLhModule &&
            GetModuleFileName(PyWin_DLLhModule, wprogpath, MAXPATHLEN)) {
@@ -388,6 +391,9 @@ get_progpath(void)
                                    dllpath, MAXPATHLEN+1, 
                                    NULL, NULL);
        }
+#else
+       dllpath[0] = 0;
+#endif
        wprogpath[MAXPATHLEN]=_T('\0');
        if (GetModuleFileName(NULL, wprogpath, MAXPATHLEN)) {
                WideCharToMultiByte(CP_ACP, 0, 
@@ -398,9 +404,13 @@ get_progpath(void)
        }
 #else
        /* static init of progpath ensures final char remains \0 */
+#ifdef Py_ENABLE_SHARED
        if (PyWin_DLLhModule)
                if (!GetModuleFileName(PyWin_DLLhModule, dllpath, MAXPATHLEN))
                        dllpath[0] = 0;
+#else
+       dllpath[0] = 0;
+#endif
        if (GetModuleFileName(NULL, progpath, MAXPATHLEN))
                return;
 #endif
@@ -501,8 +511,10 @@ calculate_path(void)
        }
  
        skiphome = pythonhome==NULL ? 0 : 1;
+#ifdef Py_ENABLE_SHARED
        machinepath = getpythonregpath(HKEY_LOCAL_MACHINE, skiphome);
        userpath = getpythonregpath(HKEY_CURRENT_USER, skiphome);
+#endif
        /* We only use the default relative PYTHONPATH if we havent
           anything better to use! */
        skipdefault = envpath!=NULL || pythonhome!=NULL || \