summaryrefslogtreecommitdiffstats
path: root/doc/INSTALL
diff options
context:
space:
mode:
Diffstat (limited to 'doc/INSTALL')
-rw-r--r--doc/INSTALL453
1 files changed, 453 insertions, 0 deletions
diff --git a/doc/INSTALL b/doc/INSTALL
new file mode 100644
index 0000000..3881c52
--- /dev/null
+++ b/doc/INSTALL
@@ -0,0 +1,453 @@
+This file contains:
+
+- Build requirements for GNU Midnight Commander
+- Installation instructions for GNU Midnight Commander
+- Where to get more information on GNU Midnight Commander
+- Notes about GNU Midnight Commander installation
+- Obtaining related software
+
+Build requirements for GNU Midnight Commander
+----------------------------------------------------
+
+- glibc
+- gcc
+- make
+- autoconf >= 2.64
+- automake >= 1.12
+- libtool
+- glib2 >= 2.30
+- slang2 or ncurses
+- gettext >= 0.18.2
+- libssh2 >= 1.2.8 is required only for sftp vfs
+- libaspell to support spell checking in the internal editor
+- ext2fs >= 1.42.4 to support ext{2,3,4}fs extended attributes
+
+
+Installation instructions for GNU Midnight Commander
+----------------------------------------------------
+
+The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation, and creates
+the makefiles. It also creates a file `config.status' that you can run
+in the future to recreate the current configuration.
+
+To compile this package:
+
+1. Configure the package for your system.
+
+Normally, you just `cd' to the directory containing the package's source
+code and type `./configure'. If you're using `csh' on an old version of
+SystemV, you might need to type `sh configure' instead to prevent `csh'
+from trying to execute `configure' itself. Under AIX, you may need to
+use ksh instead of sh.
+
+Running `configure' takes a while. While it is running, it prints some
+messages that tell what it is doing. If you don't want to see any
+messages, run `configure' with the `--quiet' option.
+
+To compile the package in a different directory than the one containing
+the source code, you must use a version of `make' supporting the `VPATH'
+variable, such as GNU `make'. Change to the directory where you want
+the object files and executables to go and run the `configure' script
+with the full path. If for some reason `configure' cannot find the
+source code directory, run `configure' with the option `--srcdir=DIR',
+where DIR is the directory that contains the source code.
+
+By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc. You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+You can specify separate installation prefixes for architecture specific
+files and architecture-independent files. If you give `configure' the
+option `--exec-prefix=PATH', the package will use PATH as the prefix for
+installing binary programs and libraries. Data files and documentation
+will still use the regular prefix. Normally, all files are installed
+using the same prefix.
+
+If compiled on GNU/Linux, Midnight Commander detects if you have the gpm
+library installed. If you installed the gpm mouse library in a
+non-standard place, you will need to use the --with-gpm-mouse flag with
+the directory base where you installed the gpm package.
+
+`configure' recognizes the following options (the list may be
+incomplete, use `configure --help' to get the full list):
+
+`--help'
+ Print a summary of the options to `configure' and exit.
+
+`--quiet'
+`--silent'
+ Do not print messages saying which checks are being made.
+
+`--version'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`--without-edit'
+ Configure GNU Midnight Commander to be compiled without the
+ built-in file editor. The built-in editor is compiled in by
+ default.
+
+`--enable-aspell'
+ This option adds spell check support in the internal editor using
+ libaspell. Disabled by default.
+
+`--without-gpm-mouse'
+ Use this flag to disable gpm mouse support (e.g. if you want to
+ use mouse only on X terminals).
+
+`--with-glib-static'
+ Force linking against glib statically. This option is intended for
+ building binaries for distribution purposes and may not work on
+ some operating systems.
+
+`--with-mmap', `--without-mmap'
+ Force using or not using the mmap function. It is currently used
+ in the internal viewer. `--with-mmap' may be useful on some
+ versions of AIX where the `configure' script decides that mmap is
+ broken, but it's actually suitable for the internal viewer.
+
+`--with-subshell[=optional]', `--without-subshell'
+ The subshell support is by default turned on, you can disable
+ this by using the --without-subshell option. If you pass the
+ =optional parameter, then the subshell support is turned off by
+ default. To turn it on, specify the `-U' option to the program.
+
+`--without-x'
+ By default, the Midnight Commander tries to connect to the X Window
+ System events to query the status of the keyboard modifiers, such
+ as Control, Shift and Alt, when invoked in a terminal emulator
+ under X11. This is necessary (but not always sufficient) to
+ recognize some optional but handy key combinations like Ctrl-Home
+ and Shift-Cursor keys. Use `--without-x' if the dependency on
+ X11 libraries is not desired.
+
+`--disable-largefile'
+ This option disables support for large files (2 gigabytes and more)
+ on the systems where file operations use 32-bit offsets by default,
+ but support for 64-bit offsets is available. May be useful for
+ slow processors and embedded systems.
+
+`--enable-charset'
+ This option adds support for selecting character set of the text in
+ the internal viewer and editor and converting it on the fly. The
+ implementation of this option is currently incomplete.
+
+`--disable-background'
+ This option disables support for background operations. Background
+ operations allow to perform some tasks such as copying files in a
+ separate background process. Any messages from the background
+ process are forwarded to the foreground process. More advanced
+ dialogs cannot be forwarded yet, so the background process uses the
+ default. Background code is known to be less stable than the rest
+ of the code, so you may want to disable it at the compile time.
+
+`--with-homedir'
+ This option allow users to place user config directories in any
+ place. By default value is 'XDG', this mean, mc will respect XDG
+ standards. If other value is specified, this will used as directory
+ name (relative to $HOME if path is relative, or as is if path is
+ absolute).
+
+VFS options:
+- - - - - -
+
+`--disable-vfs'
+ This option disables the Virtual File System switch code in the
+ Midnight Commander and uses the standard file system calls for
+ file access. If you specify this option, you won't get the
+ transparent access to archives and remote directories.
+
+`--enable-vfs-cpio'
+ (on by default)
+ Support for cpio filesystem
+
+`--enable-vfs-tar'
+ (on by default)
+ Support for tar filesystem
+
+`--enable-vfs-ftp'
+ (on by default)
+ Support for FTP vfs
+
+`--enable-vfs-fish'
+ (on by default)
+ Support for FISH vfs
+
+`--enable-vfs-sftp'
+ (auto)
+ Support for SFTP vfs
+
+`--enable-vfs-extfs'
+ (on by default)
+ Support for extfs
+
+`--enable-vfs-sfs`
+ (on by default)
+ Support for sfs
+
+`--enable-vfs-undelfs'
+ (off by default)
+ Support for ext2 undelete filesystem.
+ On systems that use the ext2 or ext3 file system and have the
+ libext2fs library available, this option adds support for
+ recovering deleted files (the undel virtual file system).
+
+Screen library:
+- - - - - - - -
+
+You may also tell configure which screen library you want to use with
+the Midnight Commander. The configure script will use S-Lang as
+default, and prefers an already installed S-Lang library over the
+included one, but you can override this by using the following flag
+(please note that since S-Lang is default, it is tested better than
+ncurses):
+
+`--with-screen={slang|ncurses}'
+ Choose the library used to manage interaction with the terminal.
+ `slang' means S-Lang library already installed on the system,
+ `ncurses' means ncurses library already installed on the system.
+ The S-Lang library is used by default if found.
+
+`--with-ncurses-includes=[DIR]'
+ Set path to ncurses includes [default=/usr/include]; make
+ sense only if --with-screen=ncurses is used;
+ for /usr/local/include/ncurses specify /usr/local/include.
+
+`--with-ncurses-libs=[DIR]'
+ Set path to ncurses library [default=/usr/lib]; make sense
+ only if --with-screen=ncurses is used.
+
+Compiler options:
+- - - - - - - - -
+
+On systems that require unusual options for compilation or linking that
+the package's `configure' script does not know about, you can give
+`configure' initial values for variables by placing them in the command
+line:
+
+./configure CC='gcc -traditional' LIBS=-lposix
+
+Here are the variables that you might want to override when running
+`configure'.
+
+ - Variable: CC
+ C compiler program. The default is `gcc' if found, otherwise `cc'.
+
+ - Variable: CFLAGS
+ The default flags used to build the program.
+
+ - Variable: INSTALL
+ Program to use to install files. The default is `install' if you
+ have it, `cp' otherwise.
+
+For these variables, any value given in the command line is added to the
+value that `configure' decides to use:
+
+ - Variable: LIBS
+ Libraries to link with, in the form `-lfoo -lbar...'.
+
+ - Variable: LDFLAGS
+ Linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+
+ - Variable: CPPFLAGS
+ C/C++ preprocessor flags, e.g. -I<include dir> if you have
+ headers in a nonstandard directory <include dir>
+
+If you need to do unusual things to compile the package, we encourage
+you to figure out how `configure' could check whether to do them, and
+mail diffs or instructions to the address given in the README so we can
+include them in the next release.
+
+2. Type `make' to compile the package.
+
+3. Type `make install' to install programs, data files, and the
+documentation. On GNU/Linux the console screen saver is installed as
+well.
+
+4. You can remove the program binaries and object files from the source
+directory by typing `make clean'. If you want to clean the source tree
+completely, so that it contains only those files that should be packaged
+in the archive, issue `make distclean'. If you've run configure in a
+different directory than the source tree, distclean won't remove your
+*.o and linked programs in that directory.
+
+5. GNU Midnight Commander allows you to stay in the last current
+directory after exiting MC. This is done with a shell function, the man
+page has more information about this.
+
+The file `configure.in' is used to create `configure' by a program
+called `autoconf'. You only need it if you want to regenerate
+`configure' using a newer version of `autoconf'.
+
+
+Where to get more information on GNU Midnight Commander
+-------------------------------------------------------
+
+There are two mailing lists for the program:
+
+mc@lists.midnight-commander.org: Discussion on GNU Midnight Commander file manager.
+mc-devel@lists.midnight-commander.org: Discussion between the developers of the program.
+
+To subscribe to the mailing lists, visit their respective pages:
+
+https://lists.midnight-commander.org/mailman/listinfo/mc/
+https://lists.midnight-commander.org/mailman/listinfo/mc-devel/
+
+
+Notes about GNU Midnight Commander installation
+-----------------------------------------------
+
+GNU Midnight Commander has been run in the following configurations:
+
+i386-*-linux
+sparc-*-linux
+alpha-*-linux
+powerpc-*-linux
+mips-dec-{open,net}bsd1.0
+mips-sgi-irix5.2
+mips-sgi-irix5.3
+powerpc-ibm-aix5.3.0.0 (IBM XL C, IBM XL C/C++)
+sparc-sun-sunos4.1
+sparc-sun-netbsd1.0
+sparc-sun-solaris2.3
+hppa-hp-hpux9
+hppa-hp-hpux7
+m68k-apple-aux
+mc88110-aviion-dgux5.4
+i386-*-bsdi2
+i386-*-freebsd4.3
+i386-*-openbsd2.9
+
+Midnight Commander is written in a portable manner and uses GNU Autoconf
+for configuration, so it is expected to compile without changes on many
+other operating systems.
+
+You will need an ANSI C Compiler (such as GCC) and glib library to
+compile the source. GNU Midnight Commander now comes with the S-Lang
+screen manager, a fast screen manager, but you may want to use the
+already installed S-Lang or ncurses library.
+
+If you insist on using ncurses, it's recommended to use ncurses 4.1 and
+above, since the older versions don't support resizing in the xterm
+window.
+
+GNU Midnight Commander comes with the mouse support on xterms and in the
+Linux console. In order to take advantage of the mouse support on the
+Linux console you will need the gpm mouse server (see the section
+"Obtaining related software" in this file).
+
+Once you get gpm, compile it and install it, then you will have to
+specify the `--with-gpm-mouse' flag to the configure program if you
+installed it in a non-standard directory. If you installed the gpm
+package under /usr or /usr/local, you don't need to specify this flag;
+configure will find gpm for you. The support for mice on xterms is
+always compiled in.
+
+We are working on further enhancements to the program, but we're not
+sure which ones must go first. If you would like to point us in the
+Right Direction we will be glad to hear from you.
+
+If you happen to find a feature that doesn't do what you expect, please
+write to mc@lists.midnight-commander.org telling as much as you can
+about the problem you're experiencing. Please don't send personal
+messages to the maintainers.
+
+
+Obtaining related software
+--------------------------
+
+glib
+----
+
+The only "hard" dependency of GNU Midnight Commander is glib. You can
+get glib from
+
+ftp://ftp.gnome.org/pub/gnome/sources/glib/
+
+Minimal version of glib: 2.30.0
+Recommended version: 2.30.x and higher.
+
+Newer versions may work, but haven't been tested.
+
+PCRE
+----
+
+Both PCRE and PCRE2 libraries are supported.
+
+You can get PCRE from
+
+http://www.pcre.org/
+
+Terminal database
+-----------------
+
+There are many incomplete terminal databases out there, however, a
+complete terminfo is bundled with ncurses. (It is simple to generate
+the termcap database using the infocmp utility in ncurses).
+
+Some terminfo data are included with the mc distribution (lib/*.ti).
+Particularly linux, xterm and vt100. Use e.g. ''tic linux.ti'' to use
+them.
+
+If you want to run mc on xterm/color_xterm/ansi_xterm (not rxvt), then
+you might read lib/README.xterm for further information.
+
+Screen libraries
+----------------
+
+GNU Midnight Commander can use the included version of S-Lang, but you
+can get the latest version here:
+
+http://www.s-lang.org/
+
+Alternatively, you can use ncurses:
+
+http://www.gnu.org/software/ncurses/ncurses.html
+
+Mouse support
+-------------
+
+The general purpose mouse (gpm) daemon is available from
+
+http://unix.schottelius.org/gpm/
+
+Compiler
+--------
+
+If your C compiler is not powerful enough to compile GNU Midnight
+Commander, you should report is as a bug to the GNU Midnight Commander
+team. Sometimes there is no solution than upgrading to a modern and
+free compiler - GCC (Compiler Collection):
+
+http://gcc.gnu.org/
+
+AIX
+---
+Currently you can not use gcc 4.2.4 (and probably other versions) on
+AIX to compile the S-Lang version. Please use IBM XL C or IBM XL C/C++
+instead.
+
+If you compile a ncurses version you need to set TERM=dtterm to get
+working color support. Furthermore it is important to specify the
+--with-ncurses-includes/--with-ncurses-lib parameters because otherwise
+mc will pick up term.h from AIX which does not work with the ncurses
+library.
+
+The AIX S-Lang build was tested with S-Lang 2.0.7. Later versions may
+also work but are not tested yet.
+
+Here is an example for S-Lang, it is assumed that the S-Lang library
+is installed under /user/local and that you also want want to install
+to /usr/local:
+
+ export CC=cc_r
+ export CXX=xlC_r
+ export CONFIG_SHELL=/usr/bin/bash (if installed)
+ export SHELL=/usr/bin/bash (if installed)
+
+ ./configure \
+ --prefix=/usr/local \
+ --with-screen=slang