Support MSVC build with newer versions of Visual Studio.
authorEli Zaretskii <eliz@gnu.org>
Sat, 5 Nov 2011 11:34:56 +0000 (13:34 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 5 Nov 2011 11:34:56 +0000 (13:34 +0200)
commita6fc3b5c539c0a35e4447a12cc395294952d7561
tree1e04d32fc9bdb6972987c95b0f8bb96e050846a8
parent27f5a13648b2f5b2873803c9338e77e61acfd1a5
Support MSVC build with newer versions of Visual Studio.

Small portions of the changes by Fabrice Popineau <fabrice.popineau@supelec.fr>.

 src/makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
 Nmake barfs on that.  Use $(OBJ*_c) variables instead, defined on
 nt/gmake.defs.
 src/lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
 which are not supported by MSVC.
 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
 bitfields.
 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
 types in bitfields.
 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
 src/w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
 src/w32.c: Don't include w32api.h for MSVC.
 (init_environment) [_MSC_VER]: Call sys_access, not _access.
 src/s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
 e_* cousins.
 (alloca) [_MSC_VER]: Define to _alloca.
 src/lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
 src/regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
 nt/makefile.w32-in (clean-other-dirs-nmake)
 (distclean-other-dirs-nmake, maintainer-clean-other-dirs-nmake):
 Update for current structure of doc/ subdirectories.
 nt/gmake.defs (OBJ0_c, OBJ1_c, OBJ2_c): New variables.
 nt/INSTALL: Update for newer versions of MSVC.
 lib/makefile.w32-in (FRC): New dummy target.
 (TAGS): Depend on FRC.

Fixes: debbugs:9960
14 files changed:
ChangeLog
lib/makefile.w32-in
nt/ChangeLog
nt/INSTALL
nt/gmake.defs
nt/makefile.w32-in
nt/nmake.defs
src/ChangeLog
src/lisp.h
src/makefile.w32-in
src/regex.c
src/s/ms-w32.h
src/w32.c
src/w32fns.c