-*-text-*- This file contains: - Installation instructions and notes for the Midnight Commander - Where to get more information on the Midnight Commander - Note on the enhanced terminfo databases - Common problems - Information on porting the program - Obtaining the missing pieces of the Midnight Commander Installation instructions for the Midnight Commander ---------------------------------------------------- The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation, and creates the Makefile. 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 System V, 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 awhile. 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 its standard output redirected to `/dev/null'; for example, `./configure >/dev/null'. To compile the package in a different directory from the one containing the source code, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If for some reason `configure' is not in the source code directory that you are configuring, then it will report that it can't find the source code. In that case, 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'. Alternately, you can do so by consistently giving a value for the `prefix' variable when you run `make', e.g., make prefix=/usr/gnu make prefix=/usr/gnu install You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH' or set the `make' variable `exec_prefix' to PATH, the package will use PATH as the prefix for installing programs and libraries. Data files and documentation will still use the regular prefix. Normally, all files are installed using the same prefix. The program 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' also recognizes the following options: `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' Do not print messages saying which checks are being made. `--verbose' Print the results of the checks. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `--with-gpm-mouse=PATH' Use this flag if your GPM mouse package is not installed in a standard place. The configure will append `lib' and `include' to find the libgpm.a and gpm.h files respectively. `--with-mmap' Needed when compiling under AIX if you want the fast viewer. `--with-bsd-curses' If you don't want to use ncurse and are using an Ultrix box, you can use this switch. Be aware that ncurses is a better option than the curses included in Ultrix. `--with-sunos-curses' You use this flag on SunOS machines if you want to use SunOS 4.x curses instead of ncurses. You don't need this flag if you don't have ncurses installed: it's only needed to force the usage of SunOS curses over ncurses. `--with-ncurses=directory' Use this flag if your ncurses is not installed in any of the places configure will check (/usr/include, /usr/include/ncurses, /usr/local/include and /usr/local/include/ncurses). The argument to this flag is the base directory where the ncurses files are located. The configure will append lib and include to find the libncurses.a and ncurses.h file respectively. For example, if you have installed ncurses under /gnu/lib and /gnu/include, you specify: --with-ncurses=/gnu You will need the ncurses package only if your system does not provide a compatible curses. If after compiling, the program says that it can't resolve the has_colors function, then you need the ncurses package. `configure' also accepts and ignores some other 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 setting them in the environment. In Bourne-compatible shells, you can do that on the command line like this: CC='gcc -traditional' LIBS=-lposix ./configure On systems that have the `env' program, you can do it like this: env CC='gcc -traditional' LIBS=-lposix ./configure Here are the `make' variables that you might want to override with environment variables when running `configure'. For these variables, any value given in the environment overrides the value that `configure' would choose: - Variable: CC C compiler program. The default is `cc'. - 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 environment is added to the value that `configure' chooses: - Variable: DEFS Configuration options, in the form `-Dfoo -Dbar...'. Do not use this variable in packages that create a configuration header file. - Variable: LIBS Libraries to link with, in the form `-lfoo -lbar...'. 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. If you want, you can override the `make' variables CFLAGS and LDFLAGS like this: make CFLAGS=-O2 LDFLAGS=-s 3. If the package comes with self-tests and you want to run them, type `make check'. If you're not sure whether there are any, try it; if `make' responds with something like make: *** No way to make target `check'. Stop. then the package does not come with self-tests. 4. Type `make install' to install programs, data files, and documentation. 5. If you want to use the Linux console screen saver, type `make install.saver'. This compiles the `cons.saver' executable and installs it in the directory specified by the `prefix' variable. 6. You can remove the program binaries and object files from the source directory by typing `make clean'. To also remove the Makefile(s), the header file containing system-dependent definitions (if the package uses one), and `config.status' (all the files that `configure' created), type `make distclean'. 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 the Midnight Commander --------------------------------------------------------- Janne Kukonlehto set up a WWW page, here is the URL: http://stekt.oulu.fi/~jtklehto/mc/ We also a set of mailing lists for the program: mc-announce: Announcements of new version of the Midnight Commander. mc-digest: Digest version of the mc list. mc-patches: Patches by mail (also on the ftp site). mc: Dicussion on the Midnight Commander file manager. mc-devel: For discussion between the developers of the program. to subscribe to the mailing lists, send a message to: majordomo@roxanne.nuclecu.unam.mx with the following text in the body of the message: subscribe [address] The adress is optional and list-name is one of the above list names (mc, mc-announce, mc-patches or mc-digest). Notes about the Midnight Commander installation ------------------------------------------------ The Midnight Commander has been run in the following configurations: i386-linux-linux1.0 i386-linux-linux1.1 mips-dec-ultrix4.3 mips-sgi-irix5.2 rs6000-ibm-aix3.2.5 sparc-sun-sunos4.1 sparc-sun-netbsd1.0 sparc-sun-solaris2.3 hppa-hp-hpux9 hppa-hp-hpux7 m68k-apple-aux Since the Midnight Commander is configured via the GNU autoconf program, it's not difficult to run it in other operating systems. If you're using AIX, with the cc6000 compiler, you have to specify the `--with-mmap' command line option. You'll need GNU C (or an ANSI C Compiler) and a color curses library (ncurses is a good choice). For more information on obtaining these programs refer to the section "Obtaining the missing pieces" in this file. The best choice is to use ncurses 1.8.5.2 available in ftp.nuclecu.unam.mx in the /Midnight directory. The program can be compiled with Ultrix's curses using the --with-bsd-curses and on SunOS 4.x SystemV curses with the --with-sunos-curses. Many Linux systems ship with version 1.8.0 or 1.8.1; the Midnight Commander may run with it, but some bugs in this version of NCurses sometimes make the display look strange (which is not the intention). Also, there is a new version 1.8.6 and 1.8.7 of ncurses, you may run into some problems installing those versions. So, if you have the time, give yourself a little present and install the ncurses 1.8.5.2 library on your box. VERY IMPORTANT: On some architectures, the default compilation mode for ncurses it to include the buggy OPT_MVCUR in the Makefile. If that is the case, please remove it before compiling. Since version 0.9 the Midnight Commander comes with 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 the Missing Pieces" in this file). Once you get the Mouse Server, 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 (you could check the file TODO included with this distribution for the current projects). If you happen to find an undocumented feature that doesn't do what you expected, please drop us a note telling us as much as you can about the problem you're experiencing (to miguel@roxanne.nuclecu.unam.mx). Enhanced terminfo databases --------------------------- The distribution comes some enhanced terminfo databases: "xterm.ti", "vt100.ti" and "linux.ti". They are a superset of the databases provided with NCurses 1.8.5. "vt100.ti" adds support for graphic characters on VT100-compatible terminals, "xterm.ti" adds support for graphic characters and color on color xterms, and "linux.ti" is an up-to-date database for the Linux console, with entries for shifted function keys. To install the databases, do something like this (mutatis mutandis): mv *.ti /usr/lib/terminfo/data cd /usr/lib/terminfo tic data/vt100.ti tic data/xterm.ti tic data/linux.ti Common Problems --------------- o The Insert character doesn't mark files. ------------------------------------------ It's common to have an NCurses 1.8.5 that doesn't include an entry in the terminfo database for the Insert character (this character is used for marking files). In this case, you should edit the console terminfo source file (probably residing in /usr/lib/terminfo/data) and include a line defining the insert character escape sequence. On the Linux console, you should add this entry: kich1=\e[2~ After this, rerun the tic command for the edited console entry (it should install a new console entry in /usr/lib/terminfo/c). This problem is not present with the Slackware 2.0 Linux distribution. o The program just hangs when it's run on my machine ---------------------------------------------------- In big endian machines like the Sun Sparc, version 1.8.5 of the ncurses 1.8.5 package has a bug. There is a patch for ncurses available in: ftp.netcom.com:/pub/zmbenhal/ncurses/ncurses-1.8.5 If you are going to use it under Linux/386 or Ultrix you don't need this patch. o I can't use the F-keys, I can't quit the program -------------------------------------------------- If your terminal doesn't send the escape sequences for the 10 function keys, you can always type the ESC key and then a number in the range 1..9 and 0 to simulate the F1 trough F10 keys. o The program does not use colors with color_xterm -------------------------------------------------- The program depends on the environement variable TERM to detect the terminal type. The terminfo databases that come with the Midnight Commander program use "xterm" and "xterm-color" to diferentiate between those terminals. To use colors on a color_xterm, you could run the program like this: TERM=xterm-color mc Or use the command: color_xterm -tn xterm-color. In order for this to work you will also need to update the /etc/termcap file to have an entry for xterm-color (you can copy the xterm definition). Porting the program ------------------- Random notes on porting to other architectures. The program requires normally ncurses. If you don't want to install ncurses and your OS is a SystemV Release 4 variant, maybe the curses supplied with your system will do the work. If you experience display problems, then it means that we are dealing with a buggy implementation of curses. You have two options: one, download ncurses and recompile with ncurses or recompile all your source code with the symbol BUGGY_CURSES defined. The fast way to do this is to: make clean; make XINC=-DBUGGY_CURSES The correct thing is that you add a detection case to the file ncurses.h (provided with this program) and again, run: make clean; make; If you add the detection case, please, send me a patch, so that I could include it in future versions of the program. Obtaining the missing pieces of the Midnight Commander ------------------------------------------------------ o The NCurses 1.8.5.2 library may be obtained from: ftp.nuclecu.unam.mx:/Midnight. When compiling ncurses, please check that you don't define OPT_MVCUR since it's buggy. o The GPM Mouse Server is available at: iride.unipv.it:/pub/gpm To get the mouse support working on the Linux console: If you're using Linux version >= 1.1.34, then you will have to choose yes to selection when you compile your kernel. If your Linux version is older than this one, you may try to apply one of the patches included in the gpm package. And the GNU C Compiler may be obtained from the following sites: ASIA: ftp.cs.titech.ac.jp, utsun.s.u-tokyo.ac.jp:/ftpsync/prep, cair.kaist.ac.kr:/pub/gnu AUSTRALIA: archie.au:/gnu (archie.oz or archie.oz.au for ACSnet) AFRICA: ftp.sun.ac.za:/pub/gnu MIDDLE-EAST: ftp.technion.ac.il:/pub/unsupported/gnu EUROPE: irisa.irisa.fr:/pub/gnu, ftp.univ-lyon1.fr:pub/gnu, ftp.mcc.ac.uk, unix.hensa.ac.uk:/pub/uunet/systems/gnu, src.doc.ic.ac.uk:/gnu, ftp.win.tue.nl, ugle.unit.no, ftp.denet.dk, ftp.informatik.rwth-aachen.de:/pub/gnu, ftp.informatik.tu-muenchen.de, ftp.eunet.ch, nic.switch.ch:/mirror/gnu, nic.funet.fi:/pub/gnu, isy.liu.se, ftp.stacken.kth.se, ftp.luth.se:/pub/unix/gnu, archive.eu.net CANADA: ftp.cs.ubc.ca:/mirror2/gnu USA: wuarchive.wustl.edu:/mirrors/gnu, labrea.stanford.edu, ftp.kpc.com:/pub/mirror/gnu, ftp.cs.widener.edu, uxc.cso.uiuc.edu, col.hp.com:/mirrors/gnu, ftp.cs.columbia.edu:/archives/gnu/prep, gatekeeper.dec.com:/pub/GNU, ftp.uu.net:/systems/gnu