@c -*-texinfo-*- @c This is part of the GNU MDK Reference Manual. @c Copyright (C) 2000, 2001, 2002 @c Free Software Foundation, Inc. @c See the file mdk.texi for copying conditions. @node Installing MDK, MIX and MIXAL tutorial, Acknowledgments, Top @comment node-name, next, previous, up @chapter Installing @sc{mdk} @menu * Download:: * Requirements:: * Basic installation:: * Emacs support:: * Special configure flags:: * Supported platforms:: @end menu @node Download, Requirements, Installing MDK, Installing MDK @comment node-name, next, previous, up @section Download the source tarball GNU @sc{mdk} is distributed as a source tarball available for download in the following @acronym{URL}s: @itemize @bullet @item @url{ftp://ftp.gnu.org/pub/gnu/mdk} @item @uref{http://www.gnu.org/prep/ftp.html, GNU mirrors} @item @uref{http://sourceforge.net/project/showfiles.php?group_id=13897} @end itemize The above sites contain the latest stable releases of @sc{mdk}. The development branch is available at: @itemize @bullet @item @uref{https://savannah.gnu.org/cvs/?group_id=118} @end itemize After you have downloaded the source tarball, unpack it in a directory of your choice using the command: @example tar xfvz mdk-X.Y.tar.gz @end example @noindent where @var{X.Y} stands for the downloaded version (the current stable release being version @value{VERSION}). @node Requirements, Basic installation, Download, Installing MDK @comment node-name, next, previous, up @section Requirements In order to build and install @sc{mdk}, you will need the following libraries installed in your system: @itemize @minus @item @uref{http://www.gtk.org, GLIB 1.2.0} (required) @item @uref{http://www.gnu.org/software/flex/flex.html, GNU Flex 2.3} (required) @item @uref{http://www.gtk.org, GTK 1.2.0} (optional) @item @uref{ftp://ftp.gnome.org/pub/GNOME/stable/sources/libglade/, Libglade} (optional) @item @uref{http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html, GNU Readline} (optional) @item @uref{http://www.gnu.org/software/guile, GNU Libguile 1.3} (optional) @end itemize If present, readline and history are used to provide command completion and history management to the command line MIX virtual machine, @code{mixvm}. GTK+ and libglade are needed if you want to build the graphical interface to the MIX virtual machine, @code{gmixvm}. Finally, if libguile is found, the @sc{mdk} utilities will be compiled with Guile support and will be extensible using Scheme. @strong{Please note}: you need both the libraries @emph{and} the headers; this means both the library package and the @file{-dev} package if you do not compile your libraries yourself (ex: installing @file{libgtk1.2} and @file{libgtk1.2-dev} on Debian). @node Basic installation, Emacs support, Requirements, Installing MDK @comment node-name, next, previous, up @section Basic installation @sc{mdk} uses GNU Autoconf and Automake tools, and, therefore, should be built and installed without hassle using the following commands inside the source directory: @example ./configure make make install @end example @noindent where the last one must be run as root. The first command, @code{configure}, will setup the makefiles for your system. In particular, @code{configure} will look for GTK+ and libglade, and, if they are present, will generate the appropiate makefiles for building the @code{gmixvm} graphical user interface. Upon completion, you should see a message with the configuration results like the following: @example *** GNU MDK 1.0 has been successfully configured. *** Type 'make' to build the following utilities: - mixasm (MIX assembler) - mixvm (MIX virtual machine, with readline support, with guile support) - gmixvm (mixvm GTK+ GUI, with guile support) - mixguile (the mixvm guile shell) @end example @noindent where the last lines may be missing if you lack the above mentioned libraries. The next command, @code{make}, will actually build the @sc{mdk} programs in the following locations: @itemize @minus @item @file{mixutils/mixasm} @item @file{mixutils/mixvm} @item @file{mixgtk/gmixvm} @item @file{mixguile/mixguile} @end itemize You can run these programs from within their directories, but I recommend you to install them in proper locations using @code{make install} from a root shell. @node Emacs support, Special configure flags, Basic installation, Installing MDK @comment node-name, next, previous, up @section Emacs support @code{mixvm} can be run within an Emacs GUD buffer using the elisp program @file{misc/mixvm.el}, kindly contributed by @value{PHILIP}. @file{mixvm.el} provides an interface between @sc{mdk}'s @code{mixvm} and Emacs, via @acronym{GUD}. Place this file in your load-path, optionally adding the following line to your @file{.emacs} file: @lisp (autoload 'mixvm "mixvm" "mixvm/gud interaction" t) @end lisp @node Special configure flags, Supported platforms, Emacs support, Installing MDK @comment node-name, next, previous, up @section Special configure flags You can fine tunning the configuration process using the following switches with configure: @defopt @w{--enable-gui[=yes|no]} @defoptx --disable-gui Enables/disables the build of the MIX virtual machine GUI (@code{gmixvm}). If the required libraries are missing (@pxref{Requirements}) the configure script with automatically disable this feature. @end defopt @defopt @w{--with-guile[=yes|no]} @defoptx --without-guile Enables/disables the Guile support for @code{mixvm} and @code{gmixvm}, and the build of @code{mixguile}. If the required libraries are missing (@pxref{Requirements}) the configure script with automatically disable this feature. @end defopt @defopt @w{--with-readline[=yes|no]} @defoptx --without-readline Enables/disables the GNU Readline support for @code{mixvm}. If the required libraries are missing (@pxref{Requirements}) the configure script with automatically disable this feature. @end defopt For additional, boilerplate configure options, see the @file{INSTALL} file, or run @example configure --help @end example @node Supported platforms, , Special configure flags, Installing MDK @comment node-name, next, previous, up @section Supported platforms GNU MDK has been tested in the following platforms: @itemize @item Debian GNU/Linux 2.2/2.3/3.0 @item Redhat GNU/Linux 7.0 (Agustin Navarro), 6.2 (Roberto Ferrero) @item Mandrake 8.0 (Agustin Navarro) @item FreeBSD 4.2, 4.3, 4.4, 4.5 (Ying-Chieh Liao) @item Solaris 2.8/gcc 2.95.3 (Stephen Ramsay) @item MS Windows 98 SE/Cygwin 1.1.8-2 (Christoph von Nathusius)@footnote{Caveats: Christoph has only tested @code{mixvm} and @code{mixasm} on this platform, using @code{gcc} 2.95.3-2, @code{GLIB} 1.2.10 and @code{GNUreadline} 4.1-2. He has reported missing history functionalities on a first try. If you find problems with history/readline functionality, please try a newer/manually installed readline version.} @item Mac OS X 10.1.2 (Johan Swanljung) @end itemize MDK will probably work on any GNU/Linux and BSD platform. If you try it in a platform not listed above, please send a mail to @email{jao@@gnu.org, the author}.