mirror of https://github.com/MidnightCommander/mc
463 lines
18 KiB
Plaintext
463 lines
18 KiB
Plaintext
-*-text-*-
|
||
|
||
This file contains:
|
||
|
||
- Installation instructions and notes for the Midnight Commander
|
||
- Where to get more information on the Midnight Commander
|
||
- 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.
|
||
|
||
(Nextstep users, make sure you read the "Compiling under Nextstep"
|
||
section)
|
||
|
||
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 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 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-debug'
|
||
Enables the built-in memory allocation debugger and forces
|
||
compilation with -Wall. This is an option intended to be used by
|
||
the program developers.
|
||
|
||
`--without-edit'
|
||
Configures the program to be compiled without the built-in file
|
||
editor. The built-in editor is compiled in by default.
|
||
|
||
`--with-ext2undel[=PATH]'
|
||
On systems that use the Extended 2 file system and have the
|
||
libext2fs.a library available, this compiles into the Midnight
|
||
Commander the support code for recovering deleted files (the
|
||
undel virtual file system).
|
||
Use =PATH if libext2fs.a is installed in a non-standard place.
|
||
The configure will append `lib' and `include' to find the ext2fs
|
||
libraries and include files respectively.
|
||
|
||
`--with-gpm-mouse[=PATH]'
|
||
Use this flag if your GPM mouse package cannot be detected by the
|
||
configure. Use =PATH if it is installed in a non-standard place.
|
||
The configure will append `lib' and `include' to find the libgpm.a
|
||
and gpm.h files respectively.
|
||
|
||
`--without-gpm-mouse'
|
||
Use this flag to disable GPM mouse support (e.g. if you want to
|
||
use mouse only on X terminals).
|
||
|
||
`--with-hsc'
|
||
Compiles support into the ftp virtual file system to support the
|
||
HSC firewall.
|
||
|
||
`--with-mmap'
|
||
Needed when compiling under AIX if you want the fast 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, you have to specify the `-U' flag when
|
||
running the program.
|
||
|
||
`--with-termnet'
|
||
Enables the network support with the Term package.
|
||
|
||
`--with-tm-x-support'
|
||
This option enables minimal X Window support in the text edition. It
|
||
enables MC to query the status of the modifiers CONTROL and SHIFT
|
||
when invoked in a terminal emulation under X11. That's necessary
|
||
to recognice key combinations like C-HOME or S-Cursor key.
|
||
|
||
`--without-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 will not get the
|
||
transparent tar File system manipulation as well nor the
|
||
networked Midnight Commander file system.
|
||
|
||
You may also tell configure which display manager you want to use with
|
||
the Midnight Commander. The configure script will use SLang as default,
|
||
but you can override this by using any of the following flags (please
|
||
note that slang is included as part of the distribution),
|
||
|
||
`--with-slang' (default)
|
||
This is used to configure the program to use the SLang screen
|
||
manager. This is included as part of the Midnight Commander,
|
||
you don't need it installed on your system. If SLang is installed
|
||
on your system it will be used if possible. You can force usage of
|
||
the included SLang with the `--with-included-slang' option.
|
||
Slang is the only library that will let you resize the Midnight
|
||
Commander window on an xterm.
|
||
|
||
This option will usually try to use the terminfo database if it
|
||
is available, otherwise it will use the termcap database. At
|
||
compile time, you may force the use the terminal database with
|
||
the `--with-termcap' and `--with-terminfo' options (both options
|
||
automaticly turn `--with-included-slang' on).
|
||
|
||
`--with-ncurses[=directory]'
|
||
Use this flag (either with or without the =directory part), if
|
||
you want to compile with ncurses instead of the default SLang.
|
||
|
||
Use the =directory part 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 or you may always go back to the included SLang
|
||
screen manager.
|
||
|
||
`--with-vcurses[=directory]'
|
||
Use this flag to force the Midnight Commander to use a SystemV
|
||
type ncurses, the optional directory specifies where should
|
||
the C compiler find the include files.
|
||
|
||
`--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.
|
||
|
||
`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: 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 environment is added to
|
||
the value that `configure' chooses:
|
||
|
||
- 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.
|
||
|
||
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.
|
||
If your system is Linux, then install installs the Linux console screen
|
||
saver as well.
|
||
|
||
5. 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 realclean'. 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.
|
||
|
||
6. The Midnight Commander allows you to be kept on the directory you
|
||
were when you quit the program, this is done with a shell function,
|
||
the man page has more information about this. If you want to let the
|
||
install program make the change to your /etc/profile or your
|
||
~/.profile or ~/.bashrc, then type: `make mcfninstall'.
|
||
|
||
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'.
|
||
|
||
Compiling under NeXTStep
|
||
------------------------
|
||
|
||
These instructions were provided by Gregor Hoffleit
|
||
<flight@mathi.uni-heidelberg.DE>, he recommends configuring the
|
||
program like this:
|
||
|
||
|
||
export CC="cc -posix"
|
||
configure --without-subshell --with-termcap
|
||
Edie config.h and make sure you have #undef HAVE_GETWD
|
||
make
|
||
|
||
|
||
|
||
- Where to get more information on the Midnight Commander
|
||
---------------------------------------------------------
|
||
|
||
Janne Kukonlehto set up a WWW page, here is the URL:
|
||
http://mc.blackdown.org/mc/
|
||
|
||
We also a set of mailing lists for the program:
|
||
|
||
mc: Discussion on the Midnight Commander file manager.
|
||
mc-devel: For discussion between the developers of the program.
|
||
|
||
to subscribe to the mailing lists, visit their respective pages:
|
||
|
||
http://mail.gnome.org/mailman/listinfo/mc/
|
||
http://mail.gnome.org/mailman/listinfo/mc-devel/
|
||
|
||
|
||
Notes about the Midnight Commander installation
|
||
------------------------------------------------
|
||
|
||
The Midnight Commander has been run in the following configurations:
|
||
|
||
i386-*-linux
|
||
sparc-*-linux
|
||
alpha-*-linux
|
||
mips-dec-ultrix4.3
|
||
mips-dec-{open,net}bsd1.0
|
||
mips-sgi-irix5.2
|
||
mips-sgi-irix5.3
|
||
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
|
||
mc88110-aviion-dgux5.4
|
||
i386-*-{bsdi2,freebsd}
|
||
|
||
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 will need GNU C (or an ANSI C Compiler) and optionally a color
|
||
curses library (ncurses is a good choice). The Midnight Commander now
|
||
comes with the Slang screen manager, a fast screen manager, so ncurses
|
||
is not required anymore unless you want to use it.
|
||
|
||
Many Linux systems ship with ncurses version 1.9.9e, however, we recommend
|
||
ncurses 4.1 or above, since the former version does not support resizing
|
||
of the xterm window.
|
||
|
||
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).
|
||
|
||
|
||
Porting the program
|
||
-------------------
|
||
|
||
Random notes on porting to other architectures.
|
||
|
||
The Midnight Commander uses now by default the SLang library for
|
||
handling the display. You may want to download the latest version of
|
||
SLang or use a slightly modified SLang version 0.99.38 included with
|
||
the Midnight Commander. The later is very stable and has been used
|
||
for years without problems. You shouldn't expect any problems porting
|
||
SLang to your platform.
|
||
|
||
Another possibility is to download and install ncurses on your OS.
|
||
The Midnight Commander can use ncurses as well as the display engine.
|
||
However, you may encounter minor differences, for instance, you will
|
||
be unable to force the color mode by giving the "-c" switch to the
|
||
Midnight Commander.
|
||
|
||
As the last resort, you may try to use the curses library supplied with
|
||
your OS. Beware that some systems, e.g. SystemV Release 4, include the
|
||
curses library with bugs critical to the Midnight Commander. You may
|
||
try to recompile all your source code with the symbol BUGGY_CURSES
|
||
defined, i.e.
|
||
|
||
make clean; make CFLAGS="-g -O -DBUGGY_CURSES"
|
||
|
||
|
||
Obtaining the missing pieces of the Midnight Commander
|
||
------------------------------------------------------
|
||
|
||
The Midnight Commander will build without requiring you to get any
|
||
other software packages, however, you may be interested in enhancing
|
||
the Midnight Commander environment with some of these:
|
||
|
||
o 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.
|
||
|
||
o glib
|
||
|
||
Midnight Commander requires glib. You can get glib from
|
||
|
||
ftp://ftp.gtk.org/pub/gtk/
|
||
|
||
o In the past the Midnight Commander required the NCurses library to
|
||
build, now it's optional. You can get Ncurses from
|
||
|
||
ftp://ftp.gnu.org/pub/gnu/ncurses/
|
||
ftp://dickey.his.com/ncurses/
|
||
|
||
o The GPM Mouse Server is available at:
|
||
|
||
ftp://ftp.systemy.it/pub/develop/
|
||
|
||
o The X Windows System libraries are only used if you are going to
|
||
build the X11 versions of the program. Please note that this code
|
||
is not finished, so it's only useful if you want to look at what we
|
||
are doing or want to help in one of the two X11 versions.
|
||
|
||
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: ftp.cvut.cz:/pub/gnu, 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
|
||
|
||
|
||
Unsupported options to configure:
|
||
---------------------------------
|
||
`--with-bsd-curses'
|
||
If you don't want to use ncurses 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.
|
||
|