diff options
Diffstat (limited to 'doc/INSTALL')
-rw-r--r-- | doc/INSTALL | 453 |
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 |