/* System description header file for Darwin (Mac OS X).
- Copyright (C) 2001, 02, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005,
+ 2006, 2007 Free Software Foundation, Inc.
This file is part of GNU Emacs.
GNU Emacs is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
+the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING. If not, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA. */
/*
#define BSD_SYSTEM
/* #define VMS */
+#if 0 /* Don't define DARWIN on Mac OS X because CoreFoundation.h uses
+ it to distinguish Mac OS X from bare Darwin. */
+#ifndef DARWIN
+#define DARWIN 1
+#endif
+#endif
+
/* 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
+/* We need a little extra space, see ../../lisp/loadup.el. */
+#define SYSTEM_PURESIZE_EXTRA 30000
#endif
#endif
/*
* Define HAVE_PTYS if the system supports pty devices.
+ * Note: PTYs are broken on darwin <6. Use at your own risk.
*/
#define HAVE_PTYS
+/**
+ * PTYs only work correctly on Darwin 7 or higher. So make the
+ * default for process-connection-type dependent on the kernel
+ * version.
+ */
+#define MIN_PTY_KERNEL_VERSION '7'
+
/*
* Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
* The 4.2 opendir, etc., library functions.
also the name of a Mach system call. */
#define init_process emacs_init_process
-/* Fix compilation problem for regex.c. */
-#define __restrict
-
/* Used in dispnew.c. Copied from freebsd.h. */
#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base)
/* Definitions for how to compile & link. */
-/* Indicate that we are compiling for Mac OS X and where to find Mac
- specific headers. */
-#define C_SWITCH_SYSTEM -fpascal-strings -fno-common -DMAC_OSX -I../mac/src
+/* Indicate that we are compiling for Mac OS X. */
+#define C_SWITCH_SYSTEM -fpascal-strings -DMAC_OSX
/* Link in the Carbon lib. */
#ifdef HAVE_CARBON
#define LIBS_CARBON -framework Carbon -framework QuickTime
#else
-#define LIBS_CARBON -framework Carbon
+#define LIBS_CARBON
#endif
/* The -headerpad option tells ld (see man page) to leave room at the
#define NO_MATHERR
-/* This prevents a compilation error in xfaces.c: struct kboard * is
- used in a function protocol the first time this type appears in the
- file, since MULTI_KBOARD is undefined for the Mac OS X build. */
-#ifndef NOT_C_CODE
-struct kboard;
-#endif
-
/* The following solves the problem that Emacs hangs when evaluating
(make-comint "test0" "/nodir/nofile" nil "") when /nodir/nofile
does not exist. */
#undef HAVE_WORKING_VFORK
#define vfork fork
+
+/* Don't close pty in process.c to make it as controlling terminal.
+ It is already a controlling terminal of subprocess, because we did
+ ioctl TIOCSCTTY. */
#define DONT_REOPEN_PTY
#ifdef temacs