2006-06-03 13:53:01 +00:00
|
|
|
|
Emacs machines list
|
|
|
|
|
|
2022-01-01 02:45:51 -05:00
|
|
|
|
Copyright (C) 1989-1990, 1992-1993, 1998, 2001-2022 Free Software
|
2015-01-01 14:26:41 -08:00
|
|
|
|
Foundation, Inc.
|
2007-02-11 01:18:25 +00:00
|
|
|
|
See the end of the file for license conditions.
|
2006-06-03 13:53:01 +00:00
|
|
|
|
|
2001-08-14 11:39:27 +00:00
|
|
|
|
This is a list of the status of GNU Emacs on various machines and systems.
|
|
|
|
|
|
2010-05-27 20:25:50 -07:00
|
|
|
|
Information about older releases, and platforms that are no longer
|
|
|
|
|
supported, has been removed. Consult older versions of this file if
|
|
|
|
|
you are interested in this information.
|
2001-08-14 11:39:27 +00:00
|
|
|
|
|
2015-08-26 14:05:43 -07:00
|
|
|
|
The 'configure' script uses the configuration name, and the results of
|
2012-07-31 00:09:39 -07:00
|
|
|
|
testing the system, to decide which options to use in src/config.h and
|
|
|
|
|
elsewhere (eg Makefiles).
|
2001-08-14 11:39:27 +00:00
|
|
|
|
|
|
|
|
|
If you add support for a new configuration, add a section to this
|
2015-08-26 14:05:43 -07:00
|
|
|
|
file, and edit the 'configure.ac' source as needed.
|
2001-08-14 11:39:27 +00:00
|
|
|
|
|
2011-08-29 22:52:05 -07:00
|
|
|
|
Some obsolete platforms are unsupported beginning with Emacs 23.1. See
|
2010-05-27 20:25:50 -07:00
|
|
|
|
the list at the end of this file.
|
2008-01-12 15:23:15 +00:00
|
|
|
|
|
2001-08-14 11:39:27 +00:00
|
|
|
|
|
2010-05-27 20:25:50 -07:00
|
|
|
|
* Here are notes about some of the systems supported:
|
2001-08-14 11:39:27 +00:00
|
|
|
|
|
2011-08-29 22:52:05 -07:00
|
|
|
|
** GNU/Linux
|
2001-08-14 11:39:27 +00:00
|
|
|
|
|
|
|
|
|
Most of the complete systems which use the Linux kernel are close
|
|
|
|
|
enough to the GNU system to be considered variant GNU systems. We
|
|
|
|
|
call them "Linux-based GNU systems," or GNU/Linux for short.
|
|
|
|
|
|
|
|
|
|
It is not coincidence that many of the other components used with
|
|
|
|
|
Linux--including GNU Emacs--were developed specifically for the GNU
|
|
|
|
|
project. The GNU project was launched in 1984 to develop a free
|
|
|
|
|
complete Unix-like operating system. To reach this goal, we had to
|
|
|
|
|
develop whatever system components were not available as freely
|
|
|
|
|
redistributable software from some other source.
|
|
|
|
|
|
|
|
|
|
The GNU project wants users of GNU/Linux systems to be aware of how
|
|
|
|
|
these systems relate to the GNU project, because that will help
|
|
|
|
|
spread the GNU idea that software should be free--and thus encourage
|
2014-03-22 16:47:20 -07:00
|
|
|
|
people to write more free software. For more information, see
|
2017-09-13 15:52:52 -07:00
|
|
|
|
<https://www.gnu.org/gnu/linux-and-gnu.html>.
|
2001-08-14 11:39:27 +00:00
|
|
|
|
|
2011-08-29 22:52:05 -07:00
|
|
|
|
*** 64-bit GNU/Linux
|
|
|
|
|
|
|
|
|
|
No special procedures should be needed to build a 64-bit Emacs on a
|
|
|
|
|
64-bit GNU/Linux system. To build a 32-bit Emacs, first ensure that
|
|
|
|
|
the necessary 32-bit system libraries and include files are
|
|
|
|
|
installed. Then use:
|
|
|
|
|
|
|
|
|
|
./configure CC='gcc -m32' --build=i386-linux-gnu \
|
|
|
|
|
--x-libraries=/usr/X11R6/lib
|
|
|
|
|
|
|
|
|
|
(using the location of the 32-bit X libraries on your system).
|
|
|
|
|
|
|
|
|
|
*** IBM System/390 running GNU/Linux (s390-*-linux-gnu)
|
|
|
|
|
|
|
|
|
|
As of Emacs 21.2, a 31-bit only version is supported on this system.
|
|
|
|
|
|
|
|
|
|
*** SuperH (sh[34]*-*-linux-gnu)
|
|
|
|
|
|
|
|
|
|
Emacs 23.0.60 was reported to work on GNU/Linux (October 2008).
|
|
|
|
|
This was tested on a little-endian sh4 system (cpu type SH7751R) running
|
|
|
|
|
Gentoo Linux 2008.0.
|
|
|
|
|
|
2016-11-06 00:33:43 -07:00
|
|
|
|
** macOS
|
2001-08-14 11:39:27 +00:00
|
|
|
|
|
2021-01-31 19:50:28 +01:00
|
|
|
|
Mac OS X 10.6 or newer. Both AArch64 (Arm) and x86-64 systems are
|
|
|
|
|
supported, but PowerPC is not supported. For installation
|
|
|
|
|
instructions see the file nextstep/INSTALL.
|
2001-08-14 11:39:27 +00:00
|
|
|
|
|
2011-08-29 22:52:05 -07:00
|
|
|
|
** Microsoft Windows
|
2001-08-14 11:39:27 +00:00
|
|
|
|
|
2011-08-29 22:52:05 -07:00
|
|
|
|
For installation instructions see the file nt/INSTALL.
|
|
|
|
|
|
|
|
|
|
** MS-DOS
|
|
|
|
|
|
|
|
|
|
For installation instructions see the file msdos/INSTALL.
|
2010-05-27 20:25:50 -07:00
|
|
|
|
See the "MS-DOS" chapter of the manual for information about using
|
2011-08-29 22:52:05 -07:00
|
|
|
|
Emacs on MS-DOS.
|
2001-08-14 11:39:27 +00:00
|
|
|
|
|
2011-08-29 22:52:05 -07:00
|
|
|
|
** Solaris
|
2001-08-14 11:39:27 +00:00
|
|
|
|
|
2020-08-05 17:36:50 -07:00
|
|
|
|
On Solaris it is also possible to use either GCC or Oracle Developer
|
|
|
|
|
Studio to build Emacs, by pointing ./configure to the right compiler:
|
2001-08-14 11:39:27 +00:00
|
|
|
|
|
2020-08-05 17:36:50 -07:00
|
|
|
|
./configure # Defaults to 'gcc' if available.
|
|
|
|
|
./configure CC='cc' # Oracle Developer Studio
|
2007-01-13 02:25:58 +00:00
|
|
|
|
|
2020-08-05 17:36:50 -07:00
|
|
|
|
On Solaris, do not use /usr/ucb/cc. Use Oracle Developer Studio.
|
|
|
|
|
Make sure that /usr/ccs/bin and the Oracle Developer Studio bin
|
|
|
|
|
directory (e.g., /opt/developerstudio12.6/bin) are in your PATH
|
|
|
|
|
before /usr/ucb. (Most free software packages have the same
|
|
|
|
|
requirement on Solaris.) With this compiler, use 'cc -E' as the
|
2011-08-29 22:52:05 -07:00
|
|
|
|
preprocessor. If this inserts extra whitespace into its output (see
|
2020-08-05 17:36:50 -07:00
|
|
|
|
the PROBLEMS file), add the option '-Xs'.
|
2007-01-13 02:25:58 +00:00
|
|
|
|
|
2011-08-29 22:52:05 -07:00
|
|
|
|
To build a 64-bit Emacs (with larger maximum buffer size) on a
|
2020-08-05 17:36:50 -07:00
|
|
|
|
Solaris system that defaults to 32-bit executables, specify the -m64
|
2011-08-29 22:52:05 -07:00
|
|
|
|
compiler option. For example:
|
2007-01-13 02:25:58 +00:00
|
|
|
|
|
2020-08-05 17:36:50 -07:00
|
|
|
|
./configure CC='gcc -m64' # GCC
|
|
|
|
|
./configure CC='cc -m64' # Oracle Developer Studio
|
2007-01-13 02:25:58 +00:00
|
|
|
|
|
Add support for the Haiku operating system and its window system
* .gitignore: Add binaries specific to Haiku.
* Makefie.in (HAVE_BE_APP): New variable.
(install-arch-dep): Install Emacs and Emacs.pdmp when
using Haiku.
* configure.ac: Detect and configure for Haiku and
various related configurations.
(be-app, be-freetype, be-cairo): New options.
(HAVE_BE_APP, HAIKU_OBJ, HAIKU_CXX_OBJ)
(HAIKU_LIBS, HAIKU_CFLAGS): New variables.
(HAIKU, HAVE_TINY_SPEED_T): New define.
(emacs_config_features): Add BE_APP.
* doc/emacs/Makefile.in (EMACSSOURCES): Add Haiku
appendix.
* doc/emacs/emacs.texi: Add Haiku appendix to menus and
include it.
* doc/emacs/haiku.texi: New Haiku appendix.
* doc/lispref/display.texi (Defining Faces, Window Systems):
Explain meaning of `haiku' as a window system identifier.
(haiku-use-system-tooltips): Explain meaning of system
tooltips on
Haiku.
* doc/lispref/frames.texi (Multiple Terminals): Explain
meaning of haiku as a display type.
(Frame Layout): Clarify section for Haiku frames.
(Size Parameters): Explain limitations of fullwidth and
fullheight on Haiku.
(Management Parameters): Explain limitations of
inhibiting double buffering on builds with Cairo,
and the inability of frames with no-accept-focus to
receive keyboard input on Haiku.
(Font and Color Parameters): Explain the different font
backends available on Haiku.
(Raising and Lowering): Explain that lowering and
restacking frames doesn't work on Haiku.
(Child Frames): Explain oddities of child frame
visibility on Haiku.
* doc/lispref/os.texi (System Environment): Explain
meaning of haiku.
* etc/MACHINES: Add appropriate notices for Haiku.
* etc/NEWS: Document changes.
* etc/PROBLEMS: Document font spacing bug on Haiku.
* lib-src/Makefile.in: Build be-resources binary on
Haiku.
(CXX, CXXFLAGS, NON_CXX_FLAGS, ALL_CXXFLAGS)
(HAVE_BE_APP, HAIKU_LIBS, HAIKU_CFLAGS): New variables.
(DONT_INSTALL): Add be-resources binary if on Haiku.
(be-resources): New target.
* lib-src/be_resources: Add helper binary for setting
resources on the Emacs application.
* lib-src/emacsclient.c (decode_options): Set
alt_display to "be" on Haiku.
* lisp/cus-edit.el (custom-button, custom-button-mouse)
(custom-button-unraised, custom-button-pressed): Update
face definitions for Haiku.
* lisp/cus-start.el: Add haiku-debug-on-fatal-error and
haiku-use-system-tooltips.
* lisp/faces.el (face-valid-attribute-values): Clarify
attribute comment for Haiku.
(tool-bar): Add appropriate toolbar color for Haiku.
* lisp/frame.el (haiku-frame-geometry)
(haiku-mouse-absolute-pixel-position)
(haiku-set-mouse-absolute-pixel-position)
(haiku-frame-edges)
(haiku-frame-list-z-order): New function declarations.
(frame-geometry, frame-edges)
(mouse-absolute-pixel-position)
(set-mouse-absolute-pixel-position)
(frame-list-z-order): Call appropriate window system
functions on Haiku.
(display-mouse-p, display-graphic-p)
(display-images-p, display-pixel-height)
(display-pixel-width, display-mm-height)
(display-mm-width, display-backing-store)
(display-save-under, display-planes)
(display-color-cells, display-visual-class): Update type
tests for Haiku.
* lisp/international/mule-cmds.el
(set-coding-system-map): Also
prevent set-terminal-coding-system from appearing in the menu
bar on Haiku.
* lisp/loadup.el: Load Haiku-specific files when built
with Haiku, and don't rename newly built Emacs on Haiku as BFS
doesn't support hard links.
* lisp/menu-bar.el (menu-bar-open): Add for Haiku.
* lisp/mwheel.el (mouse-wheel-down-event): Expect
wheel-up on Haiku.
(mouse-wheel-up-event): Expect wheel-down on Haiku.
(mouse-wheel-left-event): Expect wheel-left on Haiku.
(mouse-wheel-right-event): Expect wheel-right on Haiku.
* lisp/net/browse-url.el
(browse-url--browser-defcustom-type):
Add option for WebPositive.
(browse-url-webpositive-program): New variable.
(browse-url-default-program): Search for WebPositive.
(browse-url-webpositive): New function.
* lisp/net/eww.el (eww-form-submit, eww-form-file)
(eww-form-checkbox, eww-form-select): Define faces
appropriately for Haiku.
* lisp/term/haiku-win.el: New file.
* lisp/tooltip.el (menu-or-popup-active-p): New function
declaration.
(tooltip-show-help): Don't use tooltips on Haiku when a
menu is active.
* lisp/version.el (haiku-get-version-string): New
function declaration.
(emacs-version): Add Haiku version string if
appropriate.
* src/Makefile.in: Also produce binary named "Emacs"
with Haiku resources set.
(CXX, HAIKU_OBJ, HAIKU_CXX_OBJ, HAIKU_LIBS)
(HAIKU_CFLAGS, HAVE_BE_APP, NON_CXX_FLAGS)
(ALL_CXX_FLAGS): New variables.
(.SUFFIXES): Add .cc.
(.cc.o): New target.
(base_obj): Add Haiku C objects.
(doc_obj, obj): Split objects that should scanned for
documentation into doc_obj.
(SOME_MACHINE_OBJECTS): Add appropriate Haiku C objects.
(all): Depend on Emacs and Emacs.pdmp on Haiku.
(LIBES): Add Haiku libraries.
(gl-stamp)
($(etc)/DOC): Scan doc_obj instead of obj
(temacs$(EXEEXT): Use C++ linker on Haiku.
(ctagsfiles3): New variable.
(TAGS): Scan C++ files.
* src/alloc.c (garbage_collect): Mark Haiku display.
* src/dispextern.h (HAVE_NATIVE_TRANSFORMS): Also enable
on Haiku.
(struct image): Add fields for Haiku transforms.
(RGB_PIXEL_COLOR): Define to unsigned long on Haiku as
well.
(sit_for): Also check USABLE_SIGPOLL.
(init_display_interactive): Set initial window system to
Haiku on Haiku builds.
* src/emacs.c (main): Define Haiku syms and init haiku
clipboard.
(shut_down_emacs): Quit BApplication on Haiku and
trigger debug
on aborts if haiku_debug_on_fatal_error.
(Vsystem_type): Update docstring.
* src/fileio.c (next-read-file-uses-dialog-p): Enable on
Haiku.
* src/filelock.c (WTMP_FILE): Only define if BOOT_TIME
is also defined.
* src/floatfns.c (double_integer_scale): Work around
Haiku libroot brain damage.
* src/font.c (syms_of_font): Define appropriate font
driver symbols for Haiku builds with various options.
* src/font.h: Also enable ftcrfont on Haiku builds with
Cairo.
(font_data_structures_may_be_ill_formed): Also enable on
Haiku builds that have Cairo.
* src/frame.c (Fframep): Update doc-string for Haiku
builds and return haiku if appropriate.
(syms_of_frame): New symbol `haiku'.
* src/frame.h (struct frame): Add output data for Haiku.
(FRAME_HAIKU_P): New macro.
(FRAME_WINDOW_P): Test for Haiku frames as well.
* src/ftcrfont.c (RED_FROM_ULONG, GREEN_FROM_ULONG)
(BLUE_FROM_ULONG): New macros.
(ftcrfont_draw): Add haiku specific code for Haiku
builds with Cairo.
* src/ftfont.c (ftfont_open): Set face.
(ftfont_has_char, ftfont_text_extents): Work around
crash.
(syms_of_ftfont): New symbol `mono'.
* src/ftfont.h (struct font_info): Enable Cairo-specific
fields for Cairo builds on Haiku.
* src/haiku_draw_support.cc:
* src/haiku_font_support.cc:
* src/haiku_io.c:
* src/haiku_select.cc:
* src/haiku_support.cc:
* src/haiku_support.h:
* src/haikufns.c:
* src/haikufont.c:
* src/haikugui.h:
* src/haikuimage.c:
* src/haikumenu.c:
* src/haikuselect.c:
* src/haikuselect.h:
* src/haikuterm.c:
* src/haikuterm.h: Add new files for Haiku windowing
support.
* src/haiku.c: Add new files for Haiku operating system
support.
* src/image.c: Implement image transforms and native XPM
support
on Haiku.
(GET_PIXEL, PUT_PIXEL, NO_PIXMAP)
(PIX_MASK_RETAIN, PIX_MASK_DRAW)
(RGB_TO_ULONG, RED_FROM_ULONG, GREEN_FROM_ULONG)
(BLUE_FROM_ULONG, RED16_FROM_ULONG, GREEN16_FROM_ULONG)
(BLUE16_FROM_ULONG): Define to appropriate values on
Haiku.
(image_create_bitmap_from_data): Add Haiku support.
(image_create_bitmap_from_file): Add TODO on Haiku.
(free_bitmap_record): Free bitmap on Haiku.
(image_size_in_bytes): Implement for Haiku bitmaps.
(image_set_transform): Implement on Haiku.
(image_create_x_image_and_pixmap_1): Implement on Haiku,
24-bit or 1-bit only.
(image_destroy_x_image, image_get_x_image): Use correct
img and pixmap values on Haiku.
(lookup_rgb_color): Use correct macro on Haiku.
(image_to_emacs_colors): Implement on Haiku.
(image_disable_image): Disable on Haiku.
(image_can_use_native_api): Test for translator presence
on Haiku.
(native_image_load): Use translator on Haiku.
(imagemagick_load_image): Add Haiku-specific quirks.
(Fimage_transforms_p): Allow rotate90 on Haiku.
(image_types): Enable native XPM support on Haiku.
(syms_of_image): Enable XPM images on Haiku.
* src/keyboard.c (kbd_buffer_get_event)
(handle_async_input, handle_input_available_signal)
(handle_user_signal, Fset_input_interrupt_mode)
(init_keyboard): Check for USABLE_SIGPOLL along with
USABLE_SIGIO.
* src/lisp.h (pD): Work around broken Haiku headers.
(HAVE_EXT_MENU_BAR): Define on Haiku.
(handle_input_available_signal): Enable if we just have
SIGPOLL as well.
* src/menu.c (have_boxes): Return true on Haiku.
(single_menu_item): Enable toolkit menus on Haiku.
(find_and_call_menu_selection): Also enable on Haiku.
* src/process.c (keyboard_bit_set): Enable with only
usable SIGPOLL.
(wait_reading_process_output): Test for SIGPOLL as well
as SIGIO availability.
* src/sound.c (sound_perror, vox_open)
(vox_configure, vox_close): Enable for usable SIGPOLL as
well.
* src/sysdep.c (sys_subshell): Enable for usable SIGPOLL.
(reset_sigio): Make conditional on F_SETOWN.
(request_sigio, unrequest_sigio)
(emacs_sigaction_init): Also handle SIGPOLLs.
(init_sys_modes): Disable TCXONC usage on Haiku, as it
doesn't have any ttys other than pseudo ttys, which don't
support C-s/C-q flow control, and causes compiler warnings.
(speeds): Disable high speeds if HAVE_TINY_SPEED_T.
* src/termhooks.h (enum output_method): Add output_haiku.
(struct terminal): Add Haiku display info.
(TERMINAL_FONT_CACHE): Enable for Haiku.
* src/terminal.c (Fterminal_live_p): Return `haiku' if
appropriate.
* src/verbose.mk.in (AM_V_CXX, AM_V_CXXLD): New logging
variables.
* src/xdisp.c (redisplay_internal)
(note_mouse_highlight): Return on Haiku if a popup is activated.
(display_menu_bar): Return on Haiku if frame is a Haiku
frame.
* src/xfaces.c (GCGraphicsExposures): Enable correctly on Haiku.
(x_create_gc): Enable dummy GC code on Haiku.
* src/xfns.c (x-server-version, x-file-dialog): Add
Haiku specifics to doc strings.
* src/xterm.c (syms_of_xterm): Add Haiku information to
doc string.
2021-11-20 21:30:08 +08:00
|
|
|
|
** Haiku
|
|
|
|
|
|
|
|
|
|
On 32-bit Haiku it is required that the newer GCC 8 be used, instead
|
|
|
|
|
of the legacy GCC 2 used by default. This can be achieved by
|
|
|
|
|
invoking configure inside a shell launched by the 'setarch' program
|
|
|
|
|
invoked as 'setarch x86'.
|
|
|
|
|
|
|
|
|
|
When building with packages discovered through pkg-config, such as
|
|
|
|
|
libpng, on a GCC 2/GCC 8 hybrid system, simply evaluating 'setarch
|
|
|
|
|
x86' is insufficient to ensure that all required libraries are found
|
|
|
|
|
at their correct locations. To avoid this problem, set the
|
|
|
|
|
environment variable 'PKG_CONFIG_PATH' to the GCC 8 pkg-config
|
|
|
|
|
directory at '/system/develop/lib/x86/pkgconfig/' before configuring
|
|
|
|
|
Emacs.
|
|
|
|
|
|
|
|
|
|
If GCC complains about not being able to resolve symbols such as
|
|
|
|
|
"BHandler::LockLooper", you are almost certainly experiencing this
|
|
|
|
|
problem.
|
|
|
|
|
|
|
|
|
|
Haiku running on non-x86 systems has not been tested. It is
|
|
|
|
|
anticipated that Haiku running on big-endian systems will experience
|
|
|
|
|
problems when Emacs is built with Haiku windowing support, but there
|
|
|
|
|
doesn't seem to be any reliable way to get Haiku running on a
|
|
|
|
|
big-endian system at present.
|
|
|
|
|
|
|
|
|
|
The earliest release of Haiku that will successfully compile Emacs
|
|
|
|
|
is R1/Beta2. For windowing support, R1/Beta3 or later is required.
|
|
|
|
|
|
2010-05-27 20:25:50 -07:00
|
|
|
|
|
|
|
|
|
* Obsolete platforms
|
|
|
|
|
|
2014-05-06 09:02:45 -07:00
|
|
|
|
Support for many obsolete platforms was removed in Emacs 23.1.
|
|
|
|
|
If for some reason you encounter an ancient machine where current
|
|
|
|
|
Emacs does not compile, try an older release like Emacs 22.3.
|
2008-01-12 15:23:15 +00:00
|
|
|
|
|
2001-08-14 11:39:27 +00:00
|
|
|
|
|
|
|
|
|
Local variables:
|
2010-05-27 20:25:50 -07:00
|
|
|
|
mode: outline
|
2001-08-14 11:39:27 +00:00
|
|
|
|
fill-prefix: " "
|
|
|
|
|
End:
|
2003-09-01 15:45:59 +00:00
|
|
|
|
|
2007-02-11 01:18:25 +00:00
|
|
|
|
This file is part of GNU Emacs.
|
|
|
|
|
|
2008-05-15 07:32:14 +00:00
|
|
|
|
GNU Emacs is free software: you can redistribute it and/or modify
|
2007-02-11 01:18:25 +00:00
|
|
|
|
it under the terms of the GNU General Public License as published by
|
2008-05-15 07:32:14 +00:00
|
|
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
|
|
|
(at your option) any later version.
|
2007-02-11 01:18:25 +00:00
|
|
|
|
|
|
|
|
|
GNU Emacs is distributed in the hope that it will be useful,
|
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
2017-09-13 15:52:52 -07:00
|
|
|
|
along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|