summaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-10-16 13:50:29 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-10-16 13:50:29 +0000
commita8c6a52a1ac9240c15a38f9b9a50b01096e09b41 (patch)
tree4f98a7f6fb4f72ebc4c5a66b037d99db503738f1 /win32
parent8ead78806cd0f3b3e76c953c1f11181b9332db62 (diff)
win32/setup.mak: check psapi.h
* win32/setup.mak (check-psapi.h): check if psapi.h is available. * win32/win32.c (CHECK_CONSOLE_EMULATOR): enable console emulator DLL check only when psapi.h is available. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'win32')
-rw-r--r--win32/Makefile.sub3
-rw-r--r--win32/setup.mak15
-rw-r--r--win32/win32.c13
3 files changed, 28 insertions, 3 deletions
diff --git a/win32/Makefile.sub b/win32/Makefile.sub
index 39c63b9dcf..02e7339ad6 100644
--- a/win32/Makefile.sub
+++ b/win32/Makefile.sub
@@ -678,6 +678,9 @@ $(CONFIG_H): $(MKFILES) $(srcdir)/win32/Makefile.sub $(win_srcdir)/Makefile.sub
#define HAVE_DAYLIGHT 1
#define HAVE_GMTIME_R 1
#define HAVE_TYPE_NET_LUID 1
+!if defined(HAVE_PSAPI_H) && $(HAVE_PSAPI_H)
+#define HAVE_PSAPI_H 1
+!endif
#define SETPGRP_VOID 1
#define RSHIFT(x,y) ((x)>>(int)y)
#define HAVE_RB_FD_INIT 1
diff --git a/win32/setup.mak b/win32/setup.mak
index 515271b85e..aa1a754cdd 100644
--- a/win32/setup.mak
+++ b/win32/setup.mak
@@ -70,11 +70,11 @@ USE_RUBYGEMS = $(USE_RUBYGEMS)
@echo !endif>> $(MAKEFILE)
!endif
--system-vars-: -osname- -runtime-
+-system-vars-: -osname- -runtime- -headers-
--system-vars32-: -osname32- -runtime-
+-system-vars32-: -osname32- -runtime- -headers-
--system-vars64-: -osname64- -runtime-
+-system-vars64-: -osname64- -runtime- -headers-
-osname32-: nul
@echo TARGET_OS = mswin32>>$(MAKEFILE)
@@ -100,6 +100,15 @@ int main(void) {FILE *volatile f = stdin; return 0;}
@$(WIN32DIR:/=\)\rtname conftest.exe >>$(MAKEFILE)
@$(WIN32DIR:/=\)\rm.bat conftest.*
+-headers-: check-psapi.h
+
+check-psapi.h: nul
+ ($(CC) -MD <<conftest.c psapi.lib -link && echo>>$(MAKEFILE) HAVE_PSAPI_H=1) & $(WIN32DIR:/=\)\rm.bat conftest.*
+#include <windows.h>
+#include <psapi.h>
+int main(void) {return (EnumProcesses(NULL,0,NULL) ? 0 : 1);}
+<<
+
-version-: nul
@$(APPEND)
@$(CPP) -I$(srcdir) -I$(srcdir)/include <<"Creating $(MAKEFILE)" | findstr "=" >>$(MAKEFILE)
diff --git a/win32/win32.c b/win32/win32.c
index 85daa61e88..46bdbf99e4 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -39,7 +39,12 @@
#include <share.h>
#include <shlobj.h>
#include <mbstring.h>
+#ifdef HAVE_PSAPI_H
#include <psapi.h>
+# define CHECK_CONSOLE_EMULATOR 1
+#else
+# define CHECK_CONSOLE_EMULATOR 0
+#endif
#include <shlwapi.h>
#if _MSC_VER >= 1400
#include <crtdbg.h>
@@ -606,7 +611,11 @@ static CRITICAL_SECTION select_mutex;
static int NtSocketsInitialized = 0;
static st_table *socklist = NULL;
static st_table *conlist = NULL;
+#if CHECK_CONSOLE_EMULATOR
#define conlist_disabled ((st_table *)-1)
+#else
+#define conlist_disabled ((st_table *)NULL)
+#endif
static char *envarea;
static char *uenvarea;
@@ -5834,6 +5843,7 @@ rb_w32_pipe(int fds[2])
return 0;
}
+#if CHECK_CONSOLE_EMULATOR
/* License: Ruby's */
static int
console_emulator_p(void)
@@ -5860,6 +5870,9 @@ console_emulator_p(void)
return 0;
}
+#else
+#define console_emulator_p() 0
+#endif
/* License: Ruby's */
static struct constat *