/* System description header file for Darwin (Mac OS X).
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007,
- 2008 Free Software Foundation, Inc.
+ 2008, 2009, 2010 Free Software Foundation, Inc.
This file is part of GNU Emacs.
*/
#define HAVE_PTYS
+/* Run only once. We need a `for'-loop because the code uses
+ `continue'. */
+#define PTY_ITERATION for (i = 0; i < 1; i++)
+#define PTY_NAME_SPRINTF /* none */
+#define PTY_TTY_NAME_SPRINTF /* none */
+/* Note that openpty may fork via grantpt on Mac OS X 10.4/Darwin 8.
+ But we don't have to block SIGCHLD because it is blocked in the
+ implementation of grantpt. */
+#define PTY_OPEN \
+ do \
+ { \
+ int slave; \
+ if (openpty (&fd, &slave, pty_name, NULL, NULL) == -1) \
+ fd = -1; \
+ else \
+ emacs_close (slave); \
+ } \
+ while (0)
/**
* PTYs only work correctly on Darwin 7 or higher. So make the
/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
#define HAVE_SOCKETS
-/* This seems to help in Ctrl-G detection under Cocoa, however at the cost
- of some quirks that may or may not bother a given user.
- It was earlier commented that "In Carbon, asynchronous I/O (using SIGIO)
- can't be used for window events because they don't come from sockets,
- even though it works fine on tty's. Uncertain about situation in Cocoa. */
-#ifdef COCOA_EXPERIMENTAL_CTRL_G
-#define NO_SOCK_SIGIO
-#endif
-
/* Definitions for how to dump. Copied from nextstep.h. */
#define UNEXEC unexmacosx.o
/* Definitions for how to compile & link. */
#ifdef HAVE_NS
-#define LIBS_NSGUI -framework AppKit
#define SYSTEM_PURESIZE_EXTRA 200000
-#define HEADERPAD_EXTRA 6C8
-#else /* !HAVE_NS */
-#define LIBS_NSGUI
-#define HEADERPAD_EXTRA 690
-#endif /* !HAVE_NS */
+#endif
/* On Darwin, res_init appears not to be useful: see bug#562 and
http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg01467.html */
#undef HAVE_RES_INIT
#undef HAVE_LIBRESOLV
-/* The -headerpad option tells ld (see man page) to leave room at the
- end of the header for adding load commands. Needed for dumping.
- 0x690 is the total size of 30 segment load commands (at 56
- each); under Cocoa 31 commands are required. */
-#define LD_SWITCH_SYSTEM_TEMACS -prebind LIBS_NSGUI -Xlinker -headerpad -Xlinker HEADERPAD_EXTRA
-
-#define C_SWITCH_SYSTEM_TEMACS -Dtemacs
-
-#ifdef temacs
+#ifdef emacs
#define malloc unexec_malloc
#define realloc unexec_realloc
#define free unexec_free
+/* Don't use posix_memalign because it is not compatible with
+ unexmacosx.c. */
+#undef HAVE_POSIX_MEMALIGN
#endif
/* The ncurses library has been moved out of the System framework in
/* Link this program just by running cc. */
#define ORDINARY_LINK
-/* We don't have a g library, so override the -lg LIBS_DEBUG switch. */
-#define LIBS_DEBUG
-
-/* Adding -lm confuses the dynamic linker, so omit it. */
-#define LIB_MATH
-
/* Define the following so emacs symbols will not conflict with those
in the System framework. Otherwise -prebind will not work. */
ioctl TIOCSCTTY. */
#define DONT_REOPEN_PTY
-/* This makes create_process in process.c save and restore signal
- handlers correctly. Suggested by Nozomu Ando.*/
-#define POSIX_SIGNALS
-
/* Use the GC_MAKE_GCPROS_NOOPS (see lisp.h) method for marking the
stack. */
#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS