diff src/s/cygwin32.h @ 239:41f2f0e326e9 r20-5b18

Import from CVS: tag r20-5b18
author cvs
date Mon, 13 Aug 2007 10:15:48 +0200
parents 557eaa0339bf
children 51092a27c943
line wrap: on
line diff
--- a/src/s/cygwin32.h	Mon Aug 13 10:15:04 2007 +0200
+++ b/src/s/cygwin32.h	Mon Aug 13 10:15:48 2007 +0200
@@ -1,4 +1,4 @@
-/* System description file for Windows NT.
+/* System description file for cygwin32.
    Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -18,42 +18,64 @@
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.  */
 
-/* Synched up with: FSF 19.31. */
+/* Building under cygwin
+ *
+ * The approach I have taken with this port is to use primarily the UNIX 
+ * code base adding stuff that is MS-Windows specific. This works quite 
+ * well, and is in keeping with my perception of the cygwin philosophy.
+ * Note that if you make changes to this file you do NOT want to define 
+ * WINDOWSNT, I repeat - do not define this, it will break everything 
+ * horribly. What does get defined is HAVE_MS_WINDOWS, but this is 
+ * done by configure and only applies to the window system.
+ *
+ * The important thing about building is that it is done on a binary
+ * mounted filesystem. i.e. something mounted like: mount -b c:
+ * /binary. If you do not do this then compilation of el files will
+ * produce garbage.  Make sure you have installed cygwin32 b18 +
+ * patched dll (which can be found at http://www.lexa.ru/sos or on my
+ * home page. Alternatively when b19 comes out the patched dll will be
+ * unnecessary. Also make sure your HOME path is unix style -
+ * i.e. without a drive letter.
+ *
+ * once you have done this, configure and make. The
+ * undump phase will fail but that is to be expected. To run you need
+ * to set EMACSLOADPATH, EMACSDOC, EMACSDATA etc appropriately and then do:
+ * temacs -batch -l loadup.el run-temacs
+ * 
+ * What I want to do
+ *
+ * the fileio stuff merely uses the unix system calls this means that
+ * the mount type of your fs will determine how files are edited. This
+ * is fine except in the instance that you want to convert one to the
+ * other. In this instance I would like to bring the buffer_file_type
+ * code into the picture without all the other windows-nt cruft.
+ *
+ * Also the undumped version should be able to do path guessing, I
+ * don't know why it doesn't currently.
+ *
+ * Ideally a dumped version would be done but I'm not sure I am up to
+ * the task.
+ *
+ * Andy Piper <andyp@parallax.co.uk> 8/1/98 
+ * http://parallax.co.uk/~andyp
+ */
 
-/*
-#ifndef WINDOWSNT
-#define WINDOWSNT
-#endif
-
-#ifndef DOS_NT
-#define DOS_NT 
-#endif
-*/
 
 /* Need the win32 api */
 #ifndef NOT_C_CODE
 #ifdef CONST
 #undef CONST
-#endif
+#endif 
 
 /* Start and end of text and data.  */
 extern void* _data_start__;
 extern void* _data_end__;
 
-#include <windows.h>
-#endif
-
-#ifndef HAVE_MS_WINDOWS
-#define HAVE_MS_WINDOWS
+#include <windows.h> 
 #endif
 
-/*#ifndef HAVE_SCROLLBARS
-#define HAVE_SCROLLBARS
-#endif*/
-
-#ifndef HAVE_NTGUI
 #define HAVE_NTGUI
-#endif
+#define HAVE_FACES
 
 #ifndef ORDINARY_LINK
 #define ORDINARY_LINK
@@ -73,8 +95,6 @@
 #define NO_LIM_DATA
 #define HAVE_TEXT_START
 
-#define LIBS_SYSTEM "-luser32 -lgdi32"
-
 #undef MAIL_USE_SYSTEM_LOCK
 
 /* Define NO_ARG_ARRAY if you cannot take the address of the first of a
@@ -136,7 +156,7 @@
 /* SYSTEM_TYPE should indicate the kind of system you are using.
  It sets the Lisp variable system-type.  */
 
-#define SYSTEM_TYPE "cygwin32"
+#define SYSTEM_TYPE "windows-nt"
 
 #define NO_MATHERR
 
@@ -162,10 +182,6 @@
 
 #define COFF
 
-/* NT supports Winsock which is close enough (with some hacks) */
-
-#define HAVE_SOCKETS
-
 /* define MAIL_USE_FLOCK if the mailer uses flock
    to interlock access to /usr/spool/mail/$USER.
    The alternative is that a lock file named
@@ -200,22 +216,6 @@
 #define NULL_DEVICE     "NUL:"
 #define EXEC_SUFFIXES   ".exe:.com:.bat:.cmd:"
 
-#if 0
-#define HAVE_RENAME
-
-#define HAVE_TZNAME
-
-#define HAVE_LONG_FILE_NAMES
-
-#define HAVE_BCOPY
-#define HAVE_BCMP
-
-#define HAVE_MOUSE
-#endif
-
-#define HAVE_WINDOW_SYSTEM
-#define HAVE_FACES
-
 #define MODE_LINE_BINARY_TEXT(_b_) (NILP ((_b_)->buffer_file_type) ? "T" : "B")
 
 /* For integration with MSDOS support.  
@@ -223,12 +223,6 @@
 #define getdefdir(_drv, _buf)   _getdcwd (_drv, _buf, MAXPATHLEN)
 */
 
-/* Define this so that winsock.h definitions don't get included when windows.h
-   is...  I don't know if they do the right thing for emacs.  For this to
-   have proper effect, config.h must always be included before windows.h.  
-#define _WINSOCKAPI_    1
-*/
-
 /* Defines size_t and alloca ().  */
 
 /* We need a little extra space, see ../../lisp/loadup.el */