GNU Midnight Commander for Win32 -------------------------------- 0. Introduction 1. Compiling 2. Changes made 3. Authors and maintainers 0. Introduction --------------- Yes, Midnight Commander can be compiled for Win32 (all versions of Microsoft Windows starting with Windows 95 for all platforms, except Windows CE). It may be tricky to compile, it may be buggy, but it should be usable. Maybe you can help as a beta tester or as a programmer. In either case you would like subscribe to the mc-devel list (see README and FAQ) and contact us. Please note that Midnight Commander remains primarily a file manager for UNIX-like systems. You should not expect that it will work on your system better than a file manager written specifically for your OS. 1. Compiling ------------ 1.1. Compiler ------------- If you really want to enjoy free software under your non-free OS, you should try free compilers. Two of them are supported: RSXNT and MinGW. Please visit their respective sites for more information. RSXNT: http://www.mathematik.uni-bielefeld.de/~rainer/ MinGW: http://www.mingw.org/ MinGW is also included with Cygwin (http://www.cygwin.com/). Cygwin envirinment is so close to UNIX, that it's possible to compile GNU Midnight Commander in the same way as it's done in UNIX (see file INSTALL for details). However, you should realize that you would get a UNIX program that has no idea about drives, Windows-style permissions and some other Windows-specific features. This is not the Win32 port discussed in this document. Skeaking of non-free compilers, Microsoft Visual C++ (4.0 and above) and Borland C++ are supported. "Supported" means merely that there are specific makefiles for those compilers, but it does not even assume that you will compile GNU Midnight Commander out-of-box. 1.2. General issues ------------------- See pc/README, pc/BUGS, pc/TODO for the information concerning current state of the port. You may need to hack the code in order to compile it. 1.3 Windowing Library --------------------- Currently only support for the S-Lang windowing library is provided. There are curses clones ported to Win32, but I believe that since we are not using autoconf for the Win32 port, we should avoid unnecessary difficulties. Currently the Win32 port only can use S-Lang included in this distribution (see slang/ subdirectory). This is a subset of S-Lang 0.99.38 distribution with some bugfixes and MC-specific code changes. 1.4 Features and Limitations ---------------------------- Internal editor is supported (including syntax highlighting). Internal viewer is supported (including hex editor). VFS (virtual file system) is not supported. Concurrent subshell is not supported. 2. Changes made --------------- 2.1. Changes to main code ------------------------- Changes in the main code are enclosed in #ifdef NATIVE_WIN32 blocks. In some cases we suppressed code. This is temporal (so that mc can compile). In the future we will provide fake or true interfaces for these features. - Links: creation and information on links are not supported. We should provide a fake interface for the local filesystem and a true one for networked. - GID/UID queries (get_user, owner, preserve UID/GID on copy, ...). - TERMinals: all the code directly done with terminals must be suppressed. - Signals: deleted. Should support the native ones. - pipes: had some trouble in ext.c and with error_pipes but soon will be fixed. - Chown command: Not supported yet. 2.2. Files rewritten -------------------- There are several files with so many changes that they have been moved to pc/ subdirectory. Our intention should be, however, to make most code system-independent. This would increase code reuse and maintainability. See pc/ subdirectory for further details. 3. Authors and maintainers -------------------------- This port is based on the port for Windows NT by Juan Grigera The code is not actively maintained, but the patches are applied. Please send your changes to the mc-devel list.