summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Jezabek <jezabek@poczta.onet.pl>2008-08-13 23:15:11 +0000
committerJan Jezabek <jezabek@poczta.onet.pl>2008-08-13 23:15:11 +0000
commit15ab8ba5f34fb281a115c46a4601f4fd4d728fcf (patch)
treec69a384ea1fe8945703ae5745d399051e48fbb81
parent607dc75d3501a4fa02d1a771e4066073a7a866ae (diff)
downloadswig-15ab8ba5f34fb281a115c46a4601f4fd4d728fcf.tar.gz
Minor fix - DllMain was not working with C89 compilers. Changed configure.in to support Digital Mars C++ for the test-suite.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2008-jezabek@10758 626c5289-ae23-0410-ae9c-e8d60b6d4f22
-rw-r--r--Examples/Makefile.in4
-rw-r--r--Examples/test-suite/com/virtual_poly_runme.c4
-rw-r--r--Lib/com/com.swg4
-rw-r--r--configure.in29
4 files changed, 29 insertions, 12 deletions
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index 798ab7111..eb0bb6cb2 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -1120,13 +1120,13 @@ COM_EXEC_SUFFIX = @COM_EXEC_SUFFIX@
com: $(SRCS)
$(SWIG) -com $(SWIGOPT) $(INTERFACE)
$(COMPILETOOL) $(COM_IDL) $(COM_IDL_COMMON_SWITCHES) $(COM_IDL_TLB_SWITCHES) $(COM_TLB_FILE) $(COM_IDL_FILE)
- $(COMPILETOOL) $(COM_RC) $(COM_RC_OUT_SWITCHES) $(COM_RES_FILE) $(COM_RC_IN_SWITCHES) $(COM_RC_FILE)
+ $(COMPILETOOL) $(COM_RC) $(COM_RC_OUT_SWITCHES)$(COM_RES_FILE) $(COM_RC_IN_SWITCHES) $(COM_RC_FILE)
$(COMPILETOOL) $(COM_CC) $(COM_CC_SHARED_SWITCHES) $(COM_CC_OUT_SWITCHES)$(TARGET).dll$(COM_EXEC_SUFFIX) $(SRCS) $(ISRCS) $(COM_RES_FILE) $(COM_DEF_FILE) $(COM_LIBS) $(INCLUDES)
com_cpp: $(SRCS)
$(SWIG) -com -c++ $(SWIGOPT) $(INTERFACE)
$(COMPILETOOL) $(COM_IDL) $(COM_IDL_COMMON_SWITCHES) $(COM_IDL_TLB_SWITCHES) $(COM_TLB_FILE) $(COM_IDL_FILE)
- $(COMPILETOOL) $(COM_RC) $(COM_RC_OUT_SWITCHES) $(COM_RES_FILE) $(COM_RC_IN_SWITCHES) $(COM_RC_FILE)
+ $(COMPILETOOL) $(COM_RC) $(COM_RC_OUT_SWITCHES)$(COM_RES_FILE) $(COM_RC_IN_SWITCHES) $(COM_RC_FILE)
$(COMPILETOOL) $(COM_CXX) $(COM_CXX_SHARED_SWITCHES) $(COM_CXX_OUT_SWITCHES)$(TARGET).dll$(COM_EXEC_SUFFIX) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(COM_RES_FILE) $(COM_DEF_FILE) $(COM_LIBS) $(INCLUDES)
com_compile: $(SRCS)
diff --git a/Examples/test-suite/com/virtual_poly_runme.c b/Examples/test-suite/com/virtual_poly_runme.c
index 4c5e411b5..3617f7e64 100644
--- a/Examples/test-suite/com/virtual_poly_runme.c
+++ b/Examples/test-suite/com/virtual_poly_runme.c
@@ -7,6 +7,10 @@
#define __RPC__deref_out
#endif
+#ifdef __DMC__
+#define __RPCNDR_H_VERSION__ ( 450 )
+#endif
+
#include "virtual_poly/virtual_poly_generated.h"
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
diff --git a/Lib/com/com.swg b/Lib/com/com.swg
index 247b469c2..10d1825f3 100644
--- a/Lib/com/com.swg
+++ b/Lib/com/com.swg
@@ -1031,10 +1031,10 @@ extern "C"
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason,
LPVOID lpvReserved) {
if (fdwReason == DLL_PROCESS_ATTACH) {
- SWIGModule = hinstDLL;
-
HRESULT hres = S_OK;
+ SWIGModule = hinstDLL;
+
#ifdef __WINE__
/*
* Wine has a broken implementation of GetModuleFileName, which does not
diff --git a/configure.in b/configure.in
index c4354b35b..e0eede42b 100644
--- a/configure.in
+++ b/configure.in
@@ -1856,17 +1856,17 @@ case $host in
COM_RUNTOOL=
fi
if test -z "$COM_CC" ; then
- AC_CHECK_PROGS(COM_CC, gcc cl)
+ AC_CHECK_PROGS(COM_CC, gcc dmc cl)
fi
if test -z "$COM_CXX" ; then
- AC_CHECK_PROGS(COM_CXX, g++ cl)
+ AC_CHECK_PROGS(COM_CXX, g++ dmc cl)
fi
if test -z "$COM_IDL" ; then
# There seems to be no IDL compiler in MinGW/Cygwin
AC_CHECK_PROGS(COM_IDL, widl midl)
fi
if test -z "$COM_RC" ; then
- AC_CHECK_PROGS(COM_RC, windres rc wrc)
+ AC_CHECK_PROGS(COM_RC, windres rcc rc wrc)
fi
if test -z "$COM_CSCRIPT" ; then
AC_CHECK_PROGS(COM_CSCRIPT, cscript)
@@ -1909,10 +1909,13 @@ elif test "midl" = "$COM_IDL" ; then
fi
if test "rc" = "$COM_RC" ; then
- COM_RC_OUT_SWITCHES=/fo
+ COM_RC_OUT_SWITCHES='/fo '
COM_RC_IN_SWITCHES=
-else
- COM_RC_OUT_SWITCHES=-o
+elif test "rcc" = "$COM_RC" ; then
+ COM_RC_OUT_SWITCHES='-o'
+ COM_RC_IN_SWITCHES=
+elif test "windres" = "$COM_RC" -o "wrc" = "$COM_RC" ; then
+ COM_RC_OUT_SWITCHES='-o '
COM_RC_IN_SWITCHES=-i
fi
@@ -1928,6 +1931,13 @@ if test "gcc" = "$COM_CC" -o "i586-mingw32msvc-gcc" = "$COM_CC" -o "winegcc" = "
COM_EXEC_SUFFIX=
COM_RES_SUFFIX=.o
fi
+elif test "dmc" = "$COM_CC" ; then
+ COM_CC_SHARED_SWITCHES='-WD -L/exetype:nt'
+ COM_CC_OUT_SWITCHES='-o'
+ COM_CC_SWITCHES='-L/exetype:nt'
+ COM_LIBS='user32.lib kernel32.lib ole32.lib uuid.lib advapi32.lib oleaut32.lib'
+ COM_EXEC_SUFFIX=
+ COM_RES_SUFFIX=.res
elif test "cl" = "$COM_CC" ; then
COM_CC_SHARED_SWITCHES=/LD
COM_CC_OUT_SWITCHES=/Fe
@@ -1939,10 +1949,13 @@ fi
if test "g++" = "$COM_CXX" -o "i586-mingw32msvc-g++" = "$COM_CXX" -o "wineg++" = "$COM_CXX" ; then
COM_CXX_SHARED_SWITCHES='-shared -mno-cygwin'
- COM_CXX_OUT_SWITCHES="-o "
+ COM_CXX_OUT_SWITCHES='-o '
+elif test "dmc" = "$COM_CXX" ; then
+ COM_CXX_SHARED_SWITCHES='-WD -Ae -Ar -L/exetype:nt'
+ COM_CXX_OUT_SWITCHES='-o'
elif test "cl" = "$COM_CC" ; then
COM_CXX_SHARED_SWITCHES=/LD
- COM_CXX_OUT_SWITCHES=/Fe
+ COM_CXX_OUT_SWITCHES='/Fe'
fi
if test "cscript" = "$COM_CSCRIPT" ; then