# HG changeset patch # User Michael Goffioul # Date 1263760358 0 # Node ID 8590f3c51868e49938f01c9f9c5ae374aca2b279 # Parent 9d1a14e12431eb18830bc00c44d7a9635d14f966 Fix a few MSVC-related problems and partially re-enable MSVC compilation. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2010-01-17 Michael Goffioul + + * bootstrap.conf: Add round module. + * configure.ac: Allow to use MSVC with *mingw* build host. Check for + opendir in -ldirent. Add -ladvapi32 to LIBS. + 2010-01-15 John W. Eaton * NEWS: Edit. diff --git a/bootstrap.conf b/bootstrap.conf --- a/bootstrap.conf +++ b/bootstrap.conf @@ -28,6 +28,7 @@ stat strftime times + round " # Additional xgettext options to use. Use "\\\newline" to break lines. diff --git a/configure.ac b/configure.ac --- a/configure.ac +++ b/configure.ac @@ -74,6 +74,22 @@ AC_USE_SYSTEM_EXTENSIONS +### Check for MSVC +have_msvc=no +case "$canonical_host_type" in + *-*-msdosmsvc) + have_msvc=yes + ;; + *-*-mingw*) + AC_MSG_CHECKING([for MSVC compiler]) + AC_PREPROC_IFELSE([ +#ifndef _MSC_VER +#error "Not MSVC compiler" +#endif], have_msvc=yes, have_msvc=no) + AC_MSG_RESULT([$have_msvc]) + ;; +esac + ### Path separator. sepchar=: AC_ARG_WITH(sepchar, @@ -280,6 +296,11 @@ ;; *-*-msdosmsvc) ;; + *-*-mingw*) + if test "$have_msvc" = "no"; then + INCLUDE_DEPS=false + fi + ;; *) INCLUDE_DEPS=false ;; @@ -349,10 +370,6 @@ case "$canonical_host_type" in ## Keep this pattern first, so that it is preferred over the ## following pattern for x86. - *-*-msdosmsvc) - CXXFLAGS="$CXXFLAGS -EHs -MD" - CFLAGS="$CFLAGS -MD" - ;; i[[3456789]]86-*-*) if test "$GCC" = yes; then OCTAVE_CC_FLAG(-mieee-fp, [ @@ -660,11 +677,9 @@ OCTAVE_HDF5_HAS_ENFORCED_16_API TEXINFO_HDF5="@set HAVE_HDF5" AC_DEFINE(HAVE_HDF5, 1, [Define if HDF5 is available and newer than version 1.6.]) - case "$canonical_host_type" in - *-*-msdosmsvc) - OCTAVE_HDF5_DLL - ;; - esac + if test "$have_msvc" = "yes"; then + OCTAVE_HDF5_DLL + fi ]) CPPFLAGS="$save_CPPFLAGS" LIBS="$save_LIBS" @@ -880,12 +895,10 @@ fi XTRA_CRUFT_SH_LDFLAGS= -case "$canonical_host_type" in - *-*-msdosmsvc) - FLIBS="$FLIBS -lkernel32" - XTRA_CRUFT_SH_LDFLAGS="-Wl,-def:cruft.def" - ;; -esac +if test "$have_msvc" = "yes"; then + FLIBS="$FLIBS -lkernel32" + XTRA_CRUFT_SH_LDFLAGS="-Wl,-def:cruft.def" +fi AC_SUBST(XTRA_CRUFT_SH_LDFLAGS) ### Checks for BLAS and LAPACK libraries: @@ -1138,17 +1151,45 @@ ldpreloadsep=":" ;; *-*-mingw*) - CPICFLAG= - CXXPICFLAG= - FPICFLAG= - SHLEXT=dll - SHLLIB=dll.a - SHLBIN=dll - DL_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc" - SH_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-auto-image-base" - SONAME_FLAGS='-Wl,--out-implib=$@.a' - library_path_var=PATH - SCRIPTS_EXE_SUFFIX='$(EXEEXT)' + if test "$have_msvc" = "yes"; then + DL_LDFLAGS="-shared" + CPICFLAG= + CXXPICFLAG= + FPICFLAG= + SHLEXT=dll + SHLLIB=lib + SHLBIN=dll + LIBPRE= + SHLPRE= + SHLLIBPRE= + SHLBINPRE= + SH_LDFLAGS="-shared" + if test -n "`echo $CFLAGS | grep -e '-g'`" -o -n "`echo $CXXFLAGS | grep -e '-g'`"; then + DL_LDFLAGS="$DL_LDFLAGS -g" + SH_LDFLAGS="$SH_LDFLAGS -g" + fi + NO_OCT_FILE_STRIP=true + library_path_var=PATH + NO_OCT_FILE_STRIP=true + ## Extra compilation flags. + CRUFT_DLL_DEFS="-DCRUFT_DLL" + OCTAVE_DLL_DEFS="-DOCTAVE_DLL" + OCTINTERP_DLL_DEFS="-DOCTINTERP_DLL" + OCTGRAPHICS_DLL_DEFS="-DOCTGRAPHICS_DLL" + SCRIPTS_EXE_SUFFIX='$(EXEEXT)' + else + CPICFLAG= + CXXPICFLAG= + FPICFLAG= + SHLEXT=dll + SHLLIB=dll.a + SHLBIN=dll + DL_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc" + SH_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-auto-image-base" + SONAME_FLAGS='-Wl,--out-implib=$@.a' + library_path_var=PATH + SCRIPTS_EXE_SUFFIX='$(EXEEXT)' + fi ;; *-*-msdosmsvc) @@ -1164,7 +1205,7 @@ SHLLIBPRE= SHLBINPRE= SH_LDFLAGS="-shared" - if test -n "`echo $CFLAGS | grep -e '-g'`" -o -n "`echo $CXXFLAGS | grep -e '-g'`"; then + if test -n "`echo $CFLAGS | grep -e '-g'`" -o -n "`echo $CXXFLAGS | grep -e '-g'`"; then DL_LDFLAGS="$DL_LDFLAGS -g" SH_LDFLAGS="$SH_LDFLAGS -g" fi @@ -1342,10 +1383,23 @@ AC_CHECK_LIB(wsock32, gethostname) LIBS="$LIBS -lwsock32" ;; - *-*-msdosmsvc* | *-*-mingw*) + *-*-mingw*) + if test "$have_msvc" = "yes"; then + AC_CHECK_LIB(dirent, opendir) + LIBS="$LIBS -ladvapi32 -lgdi32 -lws2_32 -luser32 -lkernel32" + NO_UNDEFINED_LDFLAG=-no-undefined + else + LIBS="$LIBS -lgdi32 -lws2_32 -luser32 -lkernel32" + NO_UNDEFINED_LDFLAG=-no-undefined + fi LIBS="$LIBS -lgdi32 -lws2_32 -luser32 -lkernel32" NO_UNDEFINED_LDFLAG=-no-undefined ;; + *-*-msdosmsvc*) + AC_CHECK_LIB(dirent, opendir) + LIBS="$LIBS -ladvapi32 -lgdi32 -lws2_32 -luser32 -lkernel32" + NO_UNDEFINED_LDFLAG=-no-undefined + ;; esac AC_SUBST(NO_UNDEFINED_LDFLAG) diff --git a/liboctave/ChangeLog b/liboctave/ChangeLog --- a/liboctave/ChangeLog +++ b/liboctave/ChangeLog @@ -1,3 +1,9 @@ +2010-01-16 Michael Goffioul + + * oct-time.cc: Avoid to include nonneeded headers from Win32 API, + especially winsock.h. Include unconditionally, as it is + now provided by gnulib, in order to get gettimeofday defined. + 2010-01-15 Jaroslav Hajek * Array.cc (Array::insert): Rewrite using assign. diff --git a/liboctave/oct-time.cc b/liboctave/oct-time.cc --- a/liboctave/oct-time.cc +++ b/liboctave/oct-time.cc @@ -35,11 +35,13 @@ #endif #if defined (OCTAVE_USE_WINDOWS_API) +#define WIN32_LEAN_AND_MEAN #include #undef min #undef max #endif +#include #include "strftime.h" #include "lo-error.h"