diff options
author | Jan Jezabek <jezabek@poczta.onet.pl> | 2008-08-13 23:15:11 +0000 |
---|---|---|
committer | Jan Jezabek <jezabek@poczta.onet.pl> | 2008-08-13 23:15:11 +0000 |
commit | 15ab8ba5f34fb281a115c46a4601f4fd4d728fcf (patch) | |
tree | c69a384ea1fe8945703ae5745d399051e48fbb81 | |
parent | 607dc75d3501a4fa02d1a771e4066073a7a866ae (diff) | |
download | swig-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.in | 4 | ||||
-rw-r--r-- | Examples/test-suite/com/virtual_poly_runme.c | 4 | ||||
-rw-r--r-- | Lib/com/com.swg | 4 | ||||
-rw-r--r-- | configure.in | 29 |
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 |