mirror of https://github.com/MidnightCommander/mc
416 lines
16 KiB
Plaintext
416 lines
16 KiB
Plaintext
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 makefiles. 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 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'. `cd' to the directory where you want the
|
|
object files and executables to go and run the `configure' script with the
|
|
path to it. 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.
|
|
|
|
If run 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' 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-mad'
|
|
Enables the built-in memory allocation debugger. This option is only
|
|
intended for the 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 for HSC firewall into the ftp virtual file system.
|
|
|
|
`--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, specify the `-U' option to 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 emulator under X11. That's necessary
|
|
to recognize some optional but handy key combinations like Ctrl-Home
|
|
and Shift-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.
|
|
|
|
`--enable-largefile'
|
|
This option enables support for large files (2 gigabytes and more)
|
|
on the systems where file operation use 32-bit offsets by default,
|
|
but support for 64-bit file operations is available.
|
|
|
|
You may also tell configure which display library you want to use with the
|
|
Midnight Commander. The configure script will use S-Lang as default, but
|
|
you can override this by using any of the following flags (please note
|
|
that S-Lang is included as part of the distribution and is tested much
|
|
better than everything else),
|
|
|
|
`--with-slang' (default)
|
|
This is used to configure the program to use the S-Lang screen
|
|
library. This is included as part of the Midnight Commander,
|
|
you don't need it installed on your system. If S-Lang is installed
|
|
on your system it will be used if possible. You can force usage of
|
|
the included S-Lang with the `--with-included-slang' option.
|
|
|
|
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
|
|
automaticaly 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 S-Lang.
|
|
|
|
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
|
|
|
|
Support for traditional UNIX curses (not ncurses) is obsolete and will be
|
|
removed.
|
|
|
|
Run `configure --help' to see the full list of 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' desides to use:
|
|
|
|
- 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 the
|
|
documentation. On GNU/Linux the console screen saver is installed as
|
|
well.
|
|
|
|
5. 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.
|
|
|
|
6. The 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. 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
|
|
|
|
|
|
Where to get more information on the Midnight Commander
|
|
-------------------------------------------------------
|
|
|
|
There are two 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
|
|
powerpc-*-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
|
|
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 GNU C (or an ANSI C Compiler) and glib library to compile
|
|
the source. The Midnight Commander now comes with the S-Lang screen
|
|
manager, a fast screen manager, so don't need to worry about screen
|
|
libraries.
|
|
|
|
If you insist on using ncurses, it's recommended to use ncurses 4.1 and
|
|
above, since the older versions don't support resizing of 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 the missing pieces of the Midnight Commander" 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 write to mc@gnome.org telling as much as you can about
|
|
the problem you're experiencing. Please don't send personal messages to
|
|
the maintainers.
|
|
|
|
|
|
Porting the program
|
|
-------------------
|
|
|
|
Random notes on porting to other architectures.
|
|
|
|
The Midnight Commander uses now by default the S-Lang library for handling
|
|
the display. You may want to download the latest version of S-Lang or use
|
|
a slightly modified S-Lang 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 S-Lang 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/gnu/ncurses/
|
|
ftp://dickey.his.com/ncurses/
|
|
|
|
o The general purpose mouse (gpm) daemon is available at:
|
|
|
|
ftp://ftp.systemy.it/pub/develop/
|
|
|
|
And the GNU Compiler Collection may be obtained from the following sites:
|
|
|
|
ftp://gcc.gnu.org/pub/gcc/releases/
|
|
ftp://ftp.gnu.org/gnu/gcc/
|
|
http://gcc.gnu.org/mirrors.html
|
|
|
|
Unsupported, deprecated and possibly broken options to configure:
|
|
-----------------------------------------------------------------
|
|
`--with-vcurses[=directory]'
|
|
Use this flag to force the Midnight Commander to use a SystemV
|
|
type curses, the optional directory specifies where the compiler
|
|
should look for the include files.
|
|
|
|
`--with-sunos-curses'
|
|
You use this flag on SunOS machines if you want to force using
|
|
SunOS 4.x curses.
|
|
|
|
`--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.
|