]> code.delx.au - gnu-emacs/blobdiff - src/s/darwin.h
Remove NOMULTIPLEJOBS, unused.
[gnu-emacs] / src / s / darwin.h
index 75afe67380c93ef681481a282ae127bed4099ba6..016ed343f06af1911baaa6a8ad85404e265d37b3 100644 (file)
@@ -1,6 +1,6 @@
 /* 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.
 
@@ -27,13 +27,13 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 /* BSD4_3 and BSD4_4 are already defined in sys/param.h */
 #define BSD_SYSTEM
 
-/* MAC_OS is used to conditionally compile code common to both MAC_OS8
-   and MAC_OSX.  */
-#ifdef MAC_OSX
-#ifdef HAVE_CARBON
-#define MAC_OS
-#endif
-#endif
+/* More specific than the above two.  We cannot use __APPLE__ as this
+   may not be defined on non-OSX Darwin, and we cannot define DARWIN
+   here because Panther and lower CoreFoundation.h uses DARWIN to
+   distinguish OS X from pure Darwin. */
+
+#define DARWIN_OS
+
 
 /* SYSTEM_TYPE should indicate the kind of system you are using.
  It sets the Lisp variable system-type.  */
@@ -90,6 +90,24 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
  */
 
 #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
@@ -102,14 +120,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #define BSTRING
 
-/* subprocesses should be defined if you want to
-   have code for asynchronous subprocesses
-   (as used in M-x compile and M-x shell).
-   This is generally OS dependent, and not supported
-   under most USG systems. */
-
-#define subprocesses
-
 /* 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
@@ -141,20 +151,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 /* Define HAVE_SOCKETS if system supports 4.2-compatible sockets.  */
 #define HAVE_SOCKETS
 
-/* 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.  */
-/* 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. */
-#if defined (HAVE_CARBON) || defined (COCOA_EXPERIMENTAL_CTRL_G)
-#define NO_SOCK_SIGIO
-#endif
-
-/* Extra initialization calls in main for Mac OS X system type.  */
-#ifdef HAVE_CARBON
-#define SYMS_SYSTEM syms_of_mac()
-#endif
-
 /* Definitions for how to dump.  Copied from nextstep.h.  */
 
 #define UNEXEC unexmacosx.o
@@ -164,79 +160,37 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 /* start_of_text isn't actually used, so make it compile without error.  */
 #define TEXT_START (0)
 
-/* This seems to be right for end_of_text, but it may not be used anyway.  */
-#define TEXT_END get_etext()
-
-/* This seems to be right for end_of_data, but it may not be used anyway.  */
-#define DATA_END get_edata()
-
 /* Definitions for how to compile & link.  */
 
-/* Link in the Carbon or AppKit lib. */
 #ifdef HAVE_NS
-/* PENDING: can this target be specified in a clearer way? */
-#define OTHER_FILES ns-app
-/* XXX: lresolv is here because configure when testing #undefs res_init,
-        a macro in /usr/include/resolv.h for res_9_init, not in stdc lib. */
-#define LIBS_MACGUI -framework AppKit -lresolv
+#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 */
 
-/* This is for the Carbon port.  Under the NeXTstep port, this is still picked
-   up during preprocessing, but is undone in config.in. */
-#define C_SWITCH_SYSTEM -fpascal-strings -DMAC_OSX
-
-#ifdef HAVE_CARBON
-
-/* We need a little extra space, see ../../lisp/loadup.el. */
-#define SYSTEM_PURESIZE_EXTRA 30000
-
-/* Link in the Carbon lib. */
-#define LIBS_MACGUI -framework Carbon LIBS_IMAGE
-
-#ifdef HAVE_AVAILABILITYMACROS_H
-#include <AvailabilityMacros.h>
-#endif
-/* Tell src/Makefile.in to create files in the Mac OS X application
-   bundle mac/Emacs.app.  */
-#define OTHER_FILES macosx-app
-
-/* Whether to use the Image I/O framework for reading images.  */
-#ifndef USE_MAC_IMAGE_IO
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1040 && (MAC_OS_X_VERSION_MIN_REQUIRED >= 1040 || MAC_OS_X_VERSION_MIN_REQUIRED < 1020)
-#define USE_MAC_IMAGE_IO 1
-#endif
-#endif
-
-/* If the Image I/O framework is not used, fall back on QuickTime.  */
-#if USE_MAC_IMAGE_IO
-#define LIBS_IMAGE
-#else
-#define LIBS_IMAGE -framework QuickTime
-#endif
-
-/* Reroute calls to SELECT to the version defined in mac.c to fix the
-   problem of Emacs requiring an extra return to be typed to start
-   working when started from the command line.  */
-#if defined (emacs) || defined (temacs)
-#define select sys_select
-#endif
-
-#else   /* !HAVE_CARBON */
-#define LIBS_MACGUI
-#endif /* HAVE_CARBON */
+/* 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  */
 
-#endif /* !HAVE_NS */
+#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_MACGUI -Xlinker -headerpad -Xlinker HEADERPAD_EXTRA
+#define LD_SWITCH_SYSTEM_TEMACS -prebind LIBS_NSGUI -Xlinker -headerpad -Xlinker HEADERPAD_EXTRA
 
-#define C_SWITCH_SYSTEM_TEMACS -Dtemacs
+#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
    Mac OS X 10.2.  So if ./configure detects it, set the command-line
@@ -251,9 +205,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 /* 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
 
@@ -278,12 +229,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
    ioctl TIOCSCTTY.  */
 #define DONT_REOPEN_PTY
 
-#ifdef temacs
-#define malloc unexec_malloc
-#define realloc unexec_realloc
-#define free unexec_free
-#endif
-
 /* This makes create_process in process.c save and restore signal
    handlers correctly.  Suggested by Nozomu Ando.*/
 #define POSIX_SIGNALS