comparison 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
comparison
equal deleted inserted replaced
238:b5f2e56b938d 239:41f2f0e326e9
1 /* System description file for Windows NT. 1 /* System description file for cygwin32.
2 Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc. 2 Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
3 3
4 This file is part of GNU Emacs. 4 This file is part of GNU Emacs.
5 5
6 GNU Emacs is free software; you can redistribute it and/or modify 6 GNU Emacs is free software; you can redistribute it and/or modify
16 You should have received a copy of the GNU General Public License 16 You should have received a copy of the GNU General Public License
17 along with XEmacs; see the file COPYING. If not, write to 17 along with XEmacs; see the file COPYING. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. */ 19 Boston, MA 02111-1307, USA. */
20 20
21 /* Synched up with: FSF 19.31. */ 21 /* Building under cygwin
22 22 *
23 /* 23 * The approach I have taken with this port is to use primarily the UNIX
24 #ifndef WINDOWSNT 24 * code base adding stuff that is MS-Windows specific. This works quite
25 #define WINDOWSNT 25 * well, and is in keeping with my perception of the cygwin philosophy.
26 #endif 26 * Note that if you make changes to this file you do NOT want to define
27 27 * WINDOWSNT, I repeat - do not define this, it will break everything
28 #ifndef DOS_NT 28 * horribly. What does get defined is HAVE_MS_WINDOWS, but this is
29 #define DOS_NT 29 * done by configure and only applies to the window system.
30 #endif 30 *
31 */ 31 * The important thing about building is that it is done on a binary
32 * mounted filesystem. i.e. something mounted like: mount -b c:
33 * /binary. If you do not do this then compilation of el files will
34 * produce garbage. Make sure you have installed cygwin32 b18 +
35 * patched dll (which can be found at http://www.lexa.ru/sos or on my
36 * home page. Alternatively when b19 comes out the patched dll will be
37 * unnecessary. Also make sure your HOME path is unix style -
38 * i.e. without a drive letter.
39 *
40 * once you have done this, configure and make. The
41 * undump phase will fail but that is to be expected. To run you need
42 * to set EMACSLOADPATH, EMACSDOC, EMACSDATA etc appropriately and then do:
43 * temacs -batch -l loadup.el run-temacs
44 *
45 * What I want to do
46 *
47 * the fileio stuff merely uses the unix system calls this means that
48 * the mount type of your fs will determine how files are edited. This
49 * is fine except in the instance that you want to convert one to the
50 * other. In this instance I would like to bring the buffer_file_type
51 * code into the picture without all the other windows-nt cruft.
52 *
53 * Also the undumped version should be able to do path guessing, I
54 * don't know why it doesn't currently.
55 *
56 * Ideally a dumped version would be done but I'm not sure I am up to
57 * the task.
58 *
59 * Andy Piper <andyp@parallax.co.uk> 8/1/98
60 * http://parallax.co.uk/~andyp
61 */
62
32 63
33 /* Need the win32 api */ 64 /* Need the win32 api */
34 #ifndef NOT_C_CODE 65 #ifndef NOT_C_CODE
35 #ifdef CONST 66 #ifdef CONST
36 #undef CONST 67 #undef CONST
37 #endif 68 #endif
38 69
39 /* Start and end of text and data. */ 70 /* Start and end of text and data. */
40 extern void* _data_start__; 71 extern void* _data_start__;
41 extern void* _data_end__; 72 extern void* _data_end__;
42 73
43 #include <windows.h> 74 #include <windows.h>
44 #endif 75 #endif
45 76
46 #ifndef HAVE_MS_WINDOWS
47 #define HAVE_MS_WINDOWS
48 #endif
49
50 /*#ifndef HAVE_SCROLLBARS
51 #define HAVE_SCROLLBARS
52 #endif*/
53
54 #ifndef HAVE_NTGUI
55 #define HAVE_NTGUI 77 #define HAVE_NTGUI
56 #endif 78 #define HAVE_FACES
57 79
58 #ifndef ORDINARY_LINK 80 #ifndef ORDINARY_LINK
59 #define ORDINARY_LINK 81 #define ORDINARY_LINK
60 #endif 82 #endif
61 83
71 #define VK_APPS 0x5D 93 #define VK_APPS 0x5D
72 #define SIGPROF 0 94 #define SIGPROF 0
73 #define NO_LIM_DATA 95 #define NO_LIM_DATA
74 #define HAVE_TEXT_START 96 #define HAVE_TEXT_START
75 97
76 #define LIBS_SYSTEM "-luser32 -lgdi32"
77
78 #undef MAIL_USE_SYSTEM_LOCK 98 #undef MAIL_USE_SYSTEM_LOCK
79 99
80 /* Define NO_ARG_ARRAY if you cannot take the address of the first of a 100 /* Define NO_ARG_ARRAY if you cannot take the address of the first of a
81 * group of arguments and treat it as an array of the arguments. */ 101 * group of arguments and treat it as an array of the arguments. */
82 102
134 #define _CALLBACK_ __cdecl 154 #define _CALLBACK_ __cdecl
135 155
136 /* SYSTEM_TYPE should indicate the kind of system you are using. 156 /* SYSTEM_TYPE should indicate the kind of system you are using.
137 It sets the Lisp variable system-type. */ 157 It sets the Lisp variable system-type. */
138 158
139 #define SYSTEM_TYPE "cygwin32" 159 #define SYSTEM_TYPE "windows-nt"
140 160
141 #define NO_MATHERR 161 #define NO_MATHERR
142 162
143 /* NOMULTIPLEJOBS should be defined if your system's shell 163 /* NOMULTIPLEJOBS should be defined if your system's shell
144 does not have "job control" (the ability to stop a program, 164 does not have "job control" (the ability to stop a program,
159 179
160 /* If your system uses COFF (Common Object File Format) then define the 180 /* If your system uses COFF (Common Object File Format) then define the
161 preprocessor symbol "COFF". */ 181 preprocessor symbol "COFF". */
162 182
163 #define COFF 183 #define COFF
164
165 /* NT supports Winsock which is close enough (with some hacks) */
166
167 #define HAVE_SOCKETS
168 184
169 /* define MAIL_USE_FLOCK if the mailer uses flock 185 /* define MAIL_USE_FLOCK if the mailer uses flock
170 to interlock access to /usr/spool/mail/$USER. 186 to interlock access to /usr/spool/mail/$USER.
171 The alternative is that a lock file named 187 The alternative is that a lock file named
172 /usr/spool/mail/$USER.lock. */ 188 /usr/spool/mail/$USER.lock. */
198 214
199 /* The null device on Windows NT. */ 215 /* The null device on Windows NT. */
200 #define NULL_DEVICE "NUL:" 216 #define NULL_DEVICE "NUL:"
201 #define EXEC_SUFFIXES ".exe:.com:.bat:.cmd:" 217 #define EXEC_SUFFIXES ".exe:.com:.bat:.cmd:"
202 218
203 #if 0
204 #define HAVE_RENAME
205
206 #define HAVE_TZNAME
207
208 #define HAVE_LONG_FILE_NAMES
209
210 #define HAVE_BCOPY
211 #define HAVE_BCMP
212
213 #define HAVE_MOUSE
214 #endif
215
216 #define HAVE_WINDOW_SYSTEM
217 #define HAVE_FACES
218
219 #define MODE_LINE_BINARY_TEXT(_b_) (NILP ((_b_)->buffer_file_type) ? "T" : "B") 219 #define MODE_LINE_BINARY_TEXT(_b_) (NILP ((_b_)->buffer_file_type) ? "T" : "B")
220 220
221 /* For integration with MSDOS support. 221 /* For integration with MSDOS support.
222 #define getdisk() (_getdrive () - 1) 222 #define getdisk() (_getdrive () - 1)
223 #define getdefdir(_drv, _buf) _getdcwd (_drv, _buf, MAXPATHLEN) 223 #define getdefdir(_drv, _buf) _getdcwd (_drv, _buf, MAXPATHLEN)
224 */ 224 */
225 225
226 /* Define this so that winsock.h definitions don't get included when windows.h
227 is... I don't know if they do the right thing for emacs. For this to
228 have proper effect, config.h must always be included before windows.h.
229 #define _WINSOCKAPI_ 1
230 */
231
232 /* Defines size_t and alloca (). */ 226 /* Defines size_t and alloca (). */
233 227
234 /* We need a little extra space, see ../../lisp/loadup.el */ 228 /* We need a little extra space, see ../../lisp/loadup.el */
235 #define SYSTEM_PURESIZE_EXTRA 15000 229 #define SYSTEM_PURESIZE_EXTRA 15000
236 230