summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--INSTALL8
-rw-r--r--NEWS29
-rw-r--r--README5
-rw-r--r--THANKS73
-rw-r--r--aclocal.m4655
-rw-r--r--configure.in38
-rw-r--r--doc/mdk.texi10
-rw-r--r--doc/mdk_ack.texi19
-rw-r--r--doc/mdk_gstart.texi53
-rw-r--r--doc/mdk_install.texi10
-rw-r--r--doc/mdk_mixvm.texi29
-rw-r--r--doc/mdk_tut.texi29
12 files changed, 733 insertions, 225 deletions
diff --git a/INSTALL b/INSTALL
index d0c3422..ba3f342 100644
--- a/INSTALL
+++ b/INSTALL
@@ -153,18 +153,20 @@ Supported platforms
GNU MDK has been tested in the following platforms:
- * Debian GNU/Linux 2.2/2.3
+ * Debian GNU/Linux 2.2/2.3/3.0
* Redhat GNU/Linux 7.0 (Agustin Navarro), 6.2 (Roberto Ferrero)
* Mandrake 8.0 (Agustin Navarro)
- * FreeBSD 4.2, 4.3 (Ying-Chieh Liao)
+ * FreeBSD 4.2, 4.3, 4.4, 4.5 (Ying-Chieh Liao)
* Solaris 2.8/gcc 2.95.3 (Stephen Ramsay)
* MS Windows 98 SE/Cygwin 1.1.8-2 (Christoph von Nathusius)(1)
+ * Mac OS X 10.1.2 (Johan Swanljung)
+
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 the author
<jao@gnu.org>.
@@ -367,4 +369,4 @@ you can use the `configure' options `--x-includes=DIR' and
----
-$Id: INSTALL,v 1.4 2001/09/16 22:17:33 jao Exp $ \ No newline at end of file
+$Id: INSTALL,v 1.5 2002/04/08 00:29:59 jao Exp $ \ No newline at end of file
diff --git a/NEWS b/NEWS
index 6fea81b..7b99eb1 100644
--- a/NEWS
+++ b/NEWS
@@ -1,11 +1,34 @@
GNU MDK -- History of visible changes.
-Copyright (C) 2000, 2001, Free Software Foundation, Inc.
+Copyright (C) 2000, 2001, 2002, Free Software Foundation, Inc.
See the end for copying conditions.
Please send mdk bug reports to bug-mdk@gnu.org.
---------------------------------------------------------------------------
+* Version 1.0 ()
+
+** New command line option added to 'mixvm': -t (--time) to turn on
+ virtual execution time printing (it is now off by default).
+
+** New 'mixvm' command: prompt, lets you change the mixvm command
+ prompt ("MIX > " by default).
+
+** When the program counter reaches address 4000 during program
+ execution, it wraps up to value 0, to keep always a valid
+ address. Caveat: a program missing the HLT instruction can loop
+ indefinitely.
+
+** New supported platform: Mac OS X.
+
+** User manual reviewed and updated.
+
+** Bug fix: 'configure' libraries detection now works properly.
+
+** Bug fix: missing #includes added to avoid compilation errors in
+ some platforms (RedHat 7.1, ia64 with gcc 3.0).
+
+---------------------------------------------------------------------------
* Version 0.5 (29/09/01)
** Added Guile support:
@@ -293,7 +316,7 @@ Please send mdk bug reports to bug-mdk@gnu.org.
---------------------------------------------------------------------------
Copying information:
-Copyright (C) 2000, 2001, Free Software Foundation, Inc.
+Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
Permission is granted to anyone to make or distribute verbatim copies
of this document as received, in any medium, provided that the
@@ -307,4 +330,4 @@ Copyright (C) 2000, 2001, Free Software Foundation, Inc.
---
-$Id: NEWS,v 1.38 2001/09/29 01:56:56 jao Exp $
+$Id: NEWS,v 1.39 2002/04/08 00:29:59 jao Exp $
diff --git a/README b/README
index 00ccbca..b693dba 100644
--- a/README
+++ b/README
@@ -1,6 +1,6 @@
Welcome to GNU MDK.
-GNU MDK is an official GNU package [0].
+GNU MDK is part of the GNU project [0].
MDK stands for MIX Development Kit, and provides tools for developing
and executing, in a MIX virtual machine, MIXAL programs.
@@ -38,3 +38,6 @@ For translations (MDK uses GNU's gettext), please see the po subdirectory[1].
[1] New translations are welcome. If you'd like to contribute one,
please contact the author, jao@gnu.org.
+
+--
+$Id: README,v 1.3 2002/04/08 00:29:59 jao Exp $ \ No newline at end of file
diff --git a/THANKS b/THANKS
index 997ffcc..2a4411a 100644
--- a/THANKS
+++ b/THANKS
@@ -1,49 +1,58 @@
-GNU MDK THANKS file
+Acknowledgements
+****************
-GNU MDK is an official GNU package.
-It has originally been written by Jose A. Ortega Ruiz.
-Many people have further contributed to MDK by reporting problems,
-suggesting various improvements, or submitting actual code. Here is
-a list of these people. Help me keep it complete and exempt of errors.
+ Many people have further contributed to MDK by reporting problems,
+suggesting various improvements, or submitting actual code. Here is a
+list of these people. Help me keep it complete and exempt of errors.
-* Richard Stallman <rms@gnu.org> suggested various improvements to the
- documentation.
+ * Richard Stallman (<rms@gnu.org>) suggested various improvements to
+ the documentation.
-* Philip Ellis King <pking@pdq.net> provided MIXAL test programs
- pinpointing bugs in the first MDK release, and useful discussions as
- well. Philip has also contributed with the Emacs port of mixvm and
- influenced the gmixvm GUI design with insightful comments and
- prototypes.
+ * Philip Ellis King (<pking@pdq.net>) provided MIXAL test programs
+ pinpointing bugs in the first MDK release, and useful discussions
+ as well. Philip has also contributed with the Emacs port of
+ `mixvm' and influenced the `gmixvm' GUI design with insightful
+ comments and prototypes.
-* Agustin Navarro <anp@cantv.net> tested the installation on Mandrake
- and RedHat and helped debugging the package configuration. He
- created and maintains the MDK RedHat packages.
+ * Agustin Navarro (<anp@cantv.net>) tested the installation on
+ Mandrake and RedHat and helped debugging the package
+ configuration. He created and maintains the MDK RedHat and
+ Mandrake packages.
-* Vasilij Ozmetelenko <vasimba@mail.ru> pointed out various bugs and
- provided helpful suggestions for improving mixvm.
+ * Vasilij Ozmetelenko (<vasimba@mail.ru>) pointed out various bugs
+ and provided helpful suggestions for improving mixvm.
-* Ying-Chieh Liao <ijliao@csie.nctu.edu.tw> tested MDK on a FreeBSD
- system, and developed and maintains a port for it.
+ * Francesc Xavier Noria (<fxn@retemail.es>) kindly and thoroughly
+ reviewed the MDK documentation, providing insightful advice.
-* Adrian Bunk <bunk@fs.tum.de> created and maintains the MDK Debian
- packages.
+ * Ying-Chieh Liao (<ijliao@csie.nctu.edu.tw>) tested MDK on a
+ FreeBSD system, and developed and maintains a port for it.
-* Christoph von Nathusius <nathusiu@gmx.net> tested MDK on
- Windows/Cygwin and reported a bug on pmem.
+ * Adrian Bunk (<bunk@fs.tum.de>) created and maintained the MDK
+ Debian packages.
-* Stephen Ramsay <sjr3a@virginia.edu> tested MDK on Sun/Solaris.
+ * Christoph von Nathusius (<nathusiu@gmx.net>) tested MDK on
+ Windows/Cygwin and reported a bug on pmem.
-* Jason Uhlenkott also reported the pmem problem.
+ * Stephen Ramsay (<sjr3a@virginia.edu>) tested MDK on Sun/Solaris.
-* Andrew Hood <ajhood@fl.net.au> reported a bug in gmixvm initialisation.
+ * Johan Swanljung (<johanswa@yahoo.com>) tested MDK on Mac OS X, and
+ helped fix the configuration process to support this platfom.
-* Milan Bella <milanbella@hotmail.com> reported a bug in mdk documentation.
+ * Jason Uhlenkott also reported the pmem problem.
-* Radu Butnaru <rbb@email.ro> reported a bug in mixvm MOVE implementation.
+ * Andrew Hood (<ajhood@fl.net.au>) reported a bug in `gmixvm'
+ initialisation.
-* MDK was inspired by Darius Bacon's MIXAL program <djello@well.sf.ca.us>
- which can be installed in Debian 2.3 as the package "mixal".
+ * Radu Butnaru (<rbb@email.ro>) reported a bug in mixvm's MOVE
+ implementation.
+ * Milan Bella (<milanbella@hotmail.com>) reported a bug in MDK
+ documentation.
+
+ * MDK was inspired by Darius Bacon's MIXAL program
+ (http://www.accesscom.com/~darius/).
--
-$Id: THANKS,v 1.10 2001/09/11 23:20:04 jao Exp $
+$Id: THANKS,v 1.11 2002/04/08 00:29:59 jao Exp $
+
diff --git a/aclocal.m4 b/aclocal.m4
index ee6057e..748f187 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,93 +1,200 @@
-dnl aclocal.m4 generated automatically by aclocal 1.4-p4
+# aclocal.m4 generated automatically by aclocal 1.5
-dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
+# Copyright 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-dnl PARTICULAR PURPOSE.
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
# Like AC_CONFIG_HEADER, but automatically create stamp file.
-AC_DEFUN(AM_CONFIG_HEADER,
-[AC_PREREQ([2.12])
-AC_CONFIG_HEADER([$1])
-dnl When config.status generates a header, we must update the stamp-h file.
-dnl This file resides in the same directory as the config header
-dnl that is generated. We must strip everything past the first ":",
-dnl and everything past the last "/".
-AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
-ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
-<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
-<<am_indx=1
-for am_file in <<$1>>; do
- case " <<$>>CONFIG_HEADERS " in
- *" <<$>>am_file "*<<)>>
- echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
+# serial 3
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated. We must strip everything past the first ":",
+# and everything past the last "/".
+
+AC_PREREQ([2.12])
+
+AC_DEFUN([AM_CONFIG_HEADER],
+[ifdef([AC_FOREACH],dnl
+ [dnl init our file count if it isn't already
+ m4_ifndef([_AM_Config_Header_Index], m4_define([_AM_Config_Header_Index], [0]))
+ dnl prepare to store our destination file list for use in config.status
+ AC_FOREACH([_AM_File], [$1],
+ [m4_pushdef([_AM_Dest], m4_patsubst(_AM_File, [:.*]))
+ m4_define([_AM_Config_Header_Index], m4_incr(_AM_Config_Header_Index))
+ dnl and add it to the list of files AC keeps track of, along
+ dnl with our hook
+ AC_CONFIG_HEADERS(_AM_File,
+dnl COMMANDS, [, INIT-CMDS]
+[# update the timestamp
+echo timestamp >"AS_ESCAPE(_AM_DIRNAME(]_AM_Dest[))/stamp-h]_AM_Config_Header_Index["
+][$2]m4_ifval([$3], [, [$3]]))dnl AC_CONFIG_HEADERS
+ m4_popdef([_AM_Dest])])],dnl
+[AC_CONFIG_HEADER([$1])
+ AC_OUTPUT_COMMANDS(
+ ifelse(patsubst([$1], [[^ ]], []),
+ [],
+ [test -z "$CONFIG_HEADERS" || echo timestamp >dnl
+ patsubst([$1], [^\([^:]*/\)?.*], [\1])stamp-h]),dnl
+[am_indx=1
+for am_file in $1; do
+ case " \$CONFIG_HEADERS " in
+ *" \$am_file "*)
+ am_dir=\`echo \$am_file |sed 's%:.*%%;s%[^/]*\$%%'\`
+ if test -n "\$am_dir"; then
+ am_tmpdir=\`echo \$am_dir |sed 's%^\(/*\).*\$%\1%'\`
+ for am_subdir in \`echo \$am_dir |sed 's%/% %'\`; do
+ am_tmpdir=\$am_tmpdir\$am_subdir/
+ if test ! -d \$am_tmpdir; then
+ mkdir \$am_tmpdir
+ fi
+ done
+ fi
+ echo timestamp > "\$am_dir"stamp-h\$am_indx
;;
esac
- am_indx=`expr "<<$>>am_indx" + 1`
-done<<>>dnl>>)
-changequote([,]))])
+ am_indx=\`expr \$am_indx + 1\`
+done])
+])]) # AM_CONFIG_HEADER
+
+# _AM_DIRNAME(PATH)
+# -----------------
+# Like AS_DIRNAME, only do it during macro expansion
+AC_DEFUN([_AM_DIRNAME],
+ [m4_if(m4_regexp([$1], [^.*[^/]//*[^/][^/]*/*$]), -1,
+ m4_if(m4_regexp([$1], [^//\([^/]\|$\)]), -1,
+ m4_if(m4_regexp([$1], [^/.*]), -1,
+ [.],
+ m4_patsubst([$1], [^\(/\).*], [\1])),
+ m4_patsubst([$1], [^\(//\)\([^/].*\|$\)], [\1])),
+ m4_patsubst([$1], [^\(.*[^/]\)//*[^/][^/]*/*$], [\1]))[]dnl
+]) # _AM_DIRNAME
# Do all the work for Automake. This macro actually does too much --
# some checks are only needed if your package does certain things.
# But this isn't really a big deal.
-# serial 1
-
-dnl Usage:
-dnl AM_INIT_AUTOMAKE(package,version, [no-define])
-
-AC_DEFUN(AM_INIT_AUTOMAKE,
-[AC_REQUIRE([AC_PROG_INSTALL])
-PACKAGE=[$1]
-AC_SUBST(PACKAGE)
-VERSION=[$2]
-AC_SUBST(VERSION)
-dnl test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+# serial 5
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# We require 2.13 because we rely on SHELL being computed by configure.
+AC_PREREQ([2.13])
+
+# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+# -----------------------------------------------------------
+# If MACRO-NAME is provided do IF-PROVIDED, else IF-NOT-PROVIDED.
+# The purpose of this macro is to provide the user with a means to
+# check macros which are provided without letting her know how the
+# information is coded.
+# If this macro is not defined by Autoconf, define it here.
+ifdef([AC_PROVIDE_IFELSE],
+ [],
+ [define([AC_PROVIDE_IFELSE],
+ [ifdef([AC_PROVIDE_$1],
+ [$2], [$3])])])
+
+
+# AM_INIT_AUTOMAKE(PACKAGE,VERSION, [NO-DEFINE])
+# ----------------------------------------------
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_REQUIRE([AC_PROG_INSTALL])dnl
+# test to see if srcdir already configured
+if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" &&
+ test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run \"make distclean\" there first])
fi
+
+# Define the identity of the package.
+PACKAGE=$1
+AC_SUBST(PACKAGE)dnl
+VERSION=$2
+AC_SUBST(VERSION)dnl
ifelse([$3],,
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
-AC_REQUIRE([AM_SANITY_CHECK])
-AC_REQUIRE([AC_ARG_PROGRAM])
-dnl FIXME This is truly gross.
-missing_dir=`cd $ac_aux_dir && pwd`
-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
-AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
-AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
-AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
-AC_REQUIRE([AC_PROG_MAKE_SET])])
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])
+
+# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow
+# the ones we care about.
+ifdef([m4_pattern_allow],
+ [m4_pattern_allow([^AM_[A-Z]+FLAGS])])dnl
+
+# Autoconf 2.50 always computes EXEEXT. However we need to be
+# compatible with 2.13, for now. So we always define EXEEXT, but we
+# don't compute it.
+AC_SUBST(EXEEXT)
+# Similar for OBJEXT -- only we only use OBJEXT if the user actually
+# requests that it be used. This is a bit dumb.
+: ${OBJEXT=o}
+AC_SUBST(OBJEXT)
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal)
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake)
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_MISSING_PROG(AMTAR, tar)
+AM_PROG_INSTALL_SH
+AM_PROG_INSTALL_STRIP
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_PROVIDE_IFELSE([AC_PROG_][CC],
+ [_AM_DEPENDENCIES(CC)],
+ [define([AC_PROG_][CC],
+ defn([AC_PROG_][CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_][CXX],
+ [_AM_DEPENDENCIES(CXX)],
+ [define([AC_PROG_][CXX],
+ defn([AC_PROG_][CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+])
#
# Check to make sure that the build environment is sane.
#
-AC_DEFUN(AM_SANITY_CHECK,
+# serial 3
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
[AC_MSG_CHECKING([whether build environment is sane])
# Just in case
sleep 1
-echo timestamp > conftestfile
+echo timestamp > conftest.file
# Do `set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
- set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
- if test "[$]*" = "X"; then
+ set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
# -L didn't work.
- set X `ls -t $srcdir/configure conftestfile`
+ set X `ls -t $srcdir/configure conftest.file`
fi
- if test "[$]*" != "X $srcdir/configure conftestfile" \
- && test "[$]*" != "X conftestfile $srcdir/configure"; then
+ rm -f conftest.file
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
# If neither matched, then we have a broken ls. This can happen
# if, for instance, CONFIG_SHELL is bash and it inherits a
@@ -97,7 +204,7 @@ if (
alias in your environment])
fi
- test "[$]2" = conftestfile
+ test "$[2]" = conftest.file
)
then
# Ok.
@@ -106,31 +213,357 @@ else
AC_MSG_ERROR([newly created file is older than distributed files!
Check your system clock])
fi
-rm -f conftest*
AC_MSG_RESULT(yes)])
-dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
-dnl The program must properly implement --version.
-AC_DEFUN(AM_MISSING_PROG,
-[AC_MSG_CHECKING(for working $2)
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if ($2 --version) < /dev/null > /dev/null 2>&1; then
- $1=$2
- AC_MSG_RESULT(found)
+
+# serial 2
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
else
- $1="$3/missing $2"
- AC_MSG_RESULT(missing)
+ am_missing_run=
+ am_backtick='`'
+ AC_MSG_WARN([${am_backtick}missing' script is too old or missing])
fi
-AC_SUBST($1)])
+])
+
+# AM_AUX_DIR_EXPAND
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+# MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH. The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND], [
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`CDPATH=:; cd $ac_aux_dir && pwd`
+])
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+AC_SUBST(install_sh)])
+
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# serial 4 -*- Autoconf -*-
+
+
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+
+# _AM_DEPENDENCIES(NAME)
+# ---------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX" or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
+ [$1], CXX, [depcc="$CXX" am_compiler_list=],
+ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc']
+ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+
+ am_cv_$1_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+ fi
+ for depmode in $am_compiler_list; do
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ echo '#include "conftest.h"' > conftest.c
+ echo 'int i;' > conftest.h
+ echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
+
+ case $depmode in
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ none) break ;;
+ esac
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this.
+ if depmode=$depmode \
+ source=conftest.c object=conftest.o \
+ depfile=conftest.Po tmpdepfile=conftest.TPo \
+ $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
+ grep conftest.h conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+$1DEPMODE="depmode=$am_cv_$1_dependencies_compiler_type"
+AC_SUBST([$1DEPMODE])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[rm -f .deps 2>/dev/null
+mkdir .deps 2>/dev/null
+if test -d .deps; then
+ DEPDIR=.deps
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ DEPDIR=_deps
+fi
+rmdir .deps 2>/dev/null
+AC_SUBST(DEPDIR)
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[ --disable-dependency-tracking Speeds up one-time builds
+ --enable-dependency-tracking Do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+pushdef([subst], defn([AC_SUBST]))
+subst(AMDEPBACKSLASH)
+popdef([subst])
+])
+
+# Generate code to set up dependency tracking.
+# This macro should only be invoked once -- use via AC_REQUIRE.
+# Usage:
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+
+#
+# This code is only required when automatic dependency tracking
+# is enabled. FIXME. This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],[
+AC_OUTPUT_COMMANDS([
+test x"$AMDEP_TRUE" != x"" ||
+for mf in $CONFIG_FILES; do
+ case "$mf" in
+ Makefile) dirpart=.;;
+ */Makefile) dirpart=`echo "$mf" | sed -e 's|/[^/]*$||'`;;
+ *) continue;;
+ esac
+ grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
+ # Extract the definition of DEP_FILES from the Makefile without
+ # running `make'.
+ DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n -e '/^U = / s///p' < "$mf"`
+ test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
+ # We invoke sed twice because it is the simplest approach to
+ # changing $(DEPDIR) to its actual value in the expansion.
+ for file in `sed -n -e '
+ /^DEP_FILES = .*\\\\$/ {
+ s/^DEP_FILES = //
+ :loop
+ s/\\\\$//
+ p
+ n
+ /\\\\$/ b loop
+ p
+ }
+ /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`echo "$file" | sed -e 's|/[^/]*$||'`
+ $ac_aux_dir/mkinstalldirs "$dirpart/$fdir" > /dev/null 2>&1
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+done
+], [AMDEP_TRUE="$AMDEP_TRUE"
+ac_aux_dir="$ac_aux_dir"])])
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+doit:
+ @echo done
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include='#'
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then
+ am__include=include
+ am__quote=
+ _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+ am__include=.include
+ am__quote='"'
+ _am_result=BSD
+ fi
+fi
+AC_SUBST(am__include)
+AC_SUBST(am__quote)
+AC_MSG_RESULT($_am_result)
+rm -f confinc confmf
+])
+
+# serial 3
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+#
+# FIXME: Once using 2.50, use this:
+# m4_match([$1], [^TRUE\|FALSE$], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_DEFUN([AM_CONDITIONAL],
+[ifelse([$1], [TRUE],
+ [errprint(__file__:__line__: [$0: invalid condition: $1
+])dnl
+m4exit(1)])dnl
+ifelse([$1], [FALSE],
+ [errprint(__file__:__line__: [$0: invalid condition: $1
+])dnl
+m4exit(1)])dnl
+AC_SUBST([$1_TRUE])
+AC_SUBST([$1_FALSE])
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi])
# Add --enable-maintainer-mode option to configure.
# From Jim Meyering
# serial 1
-AC_DEFUN(AM_MAINTAINER_MODE,
+AC_DEFUN([AM_MAINTAINER_MODE],
[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
dnl maintainer-mode is disabled by default
AC_ARG_ENABLE(maintainer-mode,
@@ -138,26 +571,13 @@ AC_DEFUN(AM_MAINTAINER_MODE,
(and sometimes confusing) to the casual installer],
USE_MAINTAINER_MODE=$enableval,
USE_MAINTAINER_MODE=no)
- AC_MSG_RESULT($USE_MAINTAINER_MODE)
- AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes)
+ AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+ AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
MAINT=$MAINTAINER_MODE_TRUE
AC_SUBST(MAINT)dnl
]
)
-# Define a conditional.
-
-AC_DEFUN(AM_CONDITIONAL,
-[AC_SUBST($1_TRUE)
-AC_SUBST($1_FALSE)
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
-else
- $1_TRUE='#'
- $1_FALSE=
-fi])
-
#serial 1
# This test replaces the one in autoconf.
# Currently this macro should have the same name as the autoconf macro
@@ -194,7 +614,7 @@ AC_DEFUN([AC_ISC_POSIX],
# program @code{ansi2knr}, which comes with Ghostscript.
# @end defmac
-AC_DEFUN(AM_PROG_CC_STDC,
+AC_DEFUN([AM_PROG_CC_STDC],
[AC_REQUIRE([AC_PROG_CC])
AC_BEFORE([$0], [AC_C_INLINE])
AC_BEFORE([$0], [AC_C_CONST])
@@ -204,7 +624,7 @@ dnl like #elif.
dnl FIXME: can't do this because then AC_AIX won't work due to a
dnl circular dependency.
dnl AC_BEFORE([$0], [AC_PROG_CPP])
-AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
+AC_MSG_CHECKING([for ${CC-cc} option to accept ANSI C])
AC_CACHE_VAL(am_cv_prog_cc_stdc,
[am_cv_prog_cc_stdc=no
ac_save_CC="$CC"
@@ -212,9 +632,10 @@ ac_save_CC="$CC"
# breaks some systems' header files.
# AIX -qlanglvl=ansi
# Ultrix and OSF/1 -std1
-# HP-UX -Aa -D_HPUX_SOURCE
+# HP-UX 10.20 and later -Ae
+# HP-UX older versions -Aa -D_HPUX_SOURCE
# SVR4 -Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
do
CC="$ac_save_CC $ac_arg"
AC_TRY_COMPILE(
@@ -256,7 +677,7 @@ CC="$ac_save_CC"
if test -z "$am_cv_prog_cc_stdc"; then
AC_MSG_RESULT([none needed])
else
- AC_MSG_RESULT($am_cv_prog_cc_stdc)
+ AC_MSG_RESULT([$am_cv_prog_cc_stdc])
fi
case "x$am_cv_prog_cc_stdc" in
x|xno) ;;
@@ -265,11 +686,11 @@ esac
])
-dnl AM_PROG_LEX
-dnl Look for flex, lex or missing, then run AC_PROG_LEX and AC_DECL_YYTEXT
-AC_DEFUN(AM_PROG_LEX,
-[missing_dir=ifelse([$1],,`cd $ac_aux_dir && pwd`,$1)
-AC_CHECK_PROGS(LEX, flex lex, "$missing_dir/missing flex")
+# AM_PROG_LEX
+# Look for flex, lex or missing, then run AC_PROG_LEX and AC_DECL_YYTEXT
+AC_DEFUN([AM_PROG_LEX],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+AC_CHECK_PROGS(LEX, flex lex, [${am_missing_run}flex])
AC_PROG_LEX
AC_DECL_YYTEXT])
@@ -278,10 +699,12 @@ AC_DECL_YYTEXT])
#
# This file can be copied and used freely without restrictions. It can
# be used in projects which are not available under the GNU General Public
-# License but which still want to provide support for the GNU gettext
-# functionality.
-# Please note that the actual code of GNU gettext is covered by the GNU
-# General Public License and is *not* in the public domain.
+# License or the GNU Library General Public License but which still want
+# to provide support for the GNU gettext functionality.
+# Please note that the actual code of the GNU gettext library is covered
+# by the GNU Library General Public License, and the rest of the GNU
+# gettext package package is covered by the GNU General Public License.
+# They are *not* in the public domain.
# serial 10
@@ -516,7 +939,7 @@ return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", ""
dnl Found it, now check the version.
AC_MSG_CHECKING([version of bison])
changequote(<<,>>)dnl
- ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison .* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+ ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
@@ -647,10 +1070,12 @@ strdup strtoul tsearch __argz_count __argz_stringify __argz_next])
#
# This file can be copied and used freely without restrictions. It can
# be used in projects which are not available under the GNU General Public
-# License but which still want to provide support for the GNU gettext
-# functionality.
-# Please note that the actual code of GNU gettext is covered by the GNU
-# General Public License and is *not* in the public domain.
+# License or the GNU Library General Public License but which still want
+# to provide support for the GNU gettext functionality.
+# Please note that the actual code of the GNU gettext library is covered
+# by the GNU Library General Public License, and the rest of the GNU
+# gettext package package is covered by the GNU General Public License.
+# They are *not* in the public domain.
# serial 2
@@ -812,10 +1237,12 @@ AC_DEFUN([AM_LANGINFO_CODESET],
#
# This file can be copied and used freely without restrictions. It can
# be used in projects which are not available under the GNU General Public
-# License but which still want to provide support for the GNU gettext
-# functionality.
-# Please note that the actual code of GNU gettext is covered by the GNU
-# General Public License and is *not* in the public domain.
+# License or the GNU Library General Public License but which still want
+# to provide support for the GNU gettext functionality.
+# Please note that the actual code of the GNU gettext library is covered
+# by the GNU Library General Public License, and the rest of the GNU
+# gettext package package is covered by the GNU General Public License.
+# They are *not* in the public domain.
# serial 2
diff --git a/configure.in b/configure.in
index 768dcb7..d6c5cea 100644
--- a/configure.in
+++ b/configure.in
@@ -1,6 +1,6 @@
# Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
#
-# $Id: configure.in,v 1.17 2002/03/20 01:33:14 jao Exp $
+# $Id: configure.in,v 1.18 2002/04/08 00:29:59 jao Exp $
#
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
@@ -12,7 +12,7 @@
AC_INIT(mixlib/mix.h)
AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(mdk,0.5)
+AM_INIT_AUTOMAKE(mdk,1.0)
AM_MAINTAINER_MODE
@@ -43,20 +43,17 @@ esac], [readl=true])
if test x$readl = xtrue; then
AC_CHECK_LIB(ncurses, initscr, ,
- [AC_MSG_WARN(Cannot find ncurses lib)
- readl=false])
+ [AC_MSG_WARN(Cannot find ncurses lib) readl=false])
fi
if test x$readl = xtrue; then
AC_CHECK_LIB(readline, readline, ,
- [AC_MSG_WARN(Cannot find GNU readline lib)
- readl=false])
+ [AC_MSG_WARN(Cannot find GNU readline lib) readl=false])
fi
if test x$readl = xtrue; then
AC_CHECK_LIB(history, add_history, ,
- [AC_MSG_WARN(Cannot find GNU history lib)
- readl=false])
+ [AC_MSG_WARN(Cannot find GNU history lib) readl=false])
dnl old versions of readline use completion_matches instead
dnl of rl_completion_matches
AC_CHECK_FUNCS(rl_completion_matches,,)
@@ -92,9 +89,7 @@ AM_CONDITIONAL(MAKE_GUILE, test x$wguile = xtrue)
dnl Check for glib
AM_PATH_GLIB(1.2.0,
- [LIBS="$LIBS $GLIB_LIBS"
- CFLAGS="$CFLAGS
- $GLIB_CFLAGS"],
+ [LIBS="$LIBS $GLIB_LIBS" CFLAGS="$CFLAGS $GLIB_CFLAGS"],
AC_MSG_ERROR(Cannot find GLIB), "gmodule" )
dnl Check if the gtk gui is required
@@ -127,23 +122,28 @@ AC_REPLACE_FUNCS(getopt_long)
AM_CONDITIONAL(MAKE_GUI, test x$gui = xtrue)
-CFLAGS="$CFLAGS -Wall"
+AC_CANONICAL_HOST
+case "${host_os}" in
+darwin*) CFLAGS="$CFLAGS -Wall -traditional-cpp";;
+*) CFLAGS="$CFLAGS -Wall";;
+esac
+
AC_SUBST(CFLAGS)
-AC_OUTPUT(
-Makefile
-doc/Makefile
-doc/img/Makefile
-mixlib/Makefile
+AC_OUTPUT(
+Makefile
+doc/Makefile
+doc/img/Makefile
+mixlib/Makefile
mixlib/testsuite/Makefile
mixguile/Makefile
mixutils/Makefile
mixgtk/Makefile
lib/Makefile
misc/Makefile
-intl/Makefile
+intl/Makefile
samples/Makefile
-po/Makefile.in
+po/Makefile.in
)
if test x$readl = xtrue; then
diff --git a/doc/mdk.texi b/doc/mdk.texi
index 495e563..63c2aec 100644
--- a/doc/mdk.texi
+++ b/doc/mdk.texi
@@ -12,9 +12,9 @@
@end direntry
-@set UPDATED September 10th, 2001
-@set EDITION 0.5
-@set VERSION 0.5
+@set UPDATED April, 2002
+@set EDITION 1.0
+@set VERSION 1.0
@set JAO Jose Antonio Ortega Ruiz
@set PHILIP Philip E. King
@footnotestyle separate
@@ -23,7 +23,7 @@
This file documents the the GNU @sc{mdk} utilities for developing
programs using Donald Knuth's MIX language.
-Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@@ -262,4 +262,4 @@ Copying
@contents
@bye
-$Id: mdk.texi,v 1.17 2001/09/28 23:11:44 jao Exp $
+$Id: mdk.texi,v 1.18 2002/04/08 00:26:38 jao Exp $
diff --git a/doc/mdk_ack.texi b/doc/mdk_ack.texi
index cba9251..532bd02 100644
--- a/doc/mdk_ack.texi
+++ b/doc/mdk_ack.texi
@@ -1,10 +1,10 @@
@c -*-texinfo-*-
@c This is part of the GNU MDK Reference Manual.
-@c Copyright (C) 2000, 2001
+@c Copyright (C) 2000, 2001, 2002
@c Free Software Foundation, Inc.
@c See the file mdk.texi for copying conditions.
-@c $Id: mdk_ack.texi,v 1.3 2001/09/16 22:17:33 jao Exp $
+@c $Id: mdk_ack.texi,v 1.4 2002/04/08 00:26:38 jao Exp $
@node Acknowledgments, Installing MDK, Introduction, Top
@comment node-name, next, previous, up
@@ -33,12 +33,16 @@ Mandrake packages.
pointed out various bugs and provided helpful suggestions for improving
mixvm.
+@item Francesc Xavier Noria (@email{fxn@@retemail.es})
+kindly and thoroughly reviewed the @sc{mdk} documentation, providing
+insightful advice.
+
@item Ying-Chieh Liao (@email{ijliao@@csie.nctu.edu.tw})
tested @sc{mdk} on a FreeBSD system, and developed and maintains a port for
it.
@item Adrian Bunk (@email{bunk@@fs.tum.de})
-created and maintains the @sc{mdk} Debian packages.
+created and maintained the @sc{mdk} Debian packages.
@item Christoph von Nathusius (@email{nathusiu@@gmx.net})
tested @sc{mdk} on Windows/Cygwin and reported a bug on pmem.
@@ -46,6 +50,10 @@ tested @sc{mdk} on Windows/Cygwin and reported a bug on pmem.
@item Stephen Ramsay (@email{sjr3a@@virginia.edu})
tested @sc{mdk} on Sun/Solaris.
+@item Johan Swanljung (@email{johanswa@@yahoo.com})
+tested @sc{mdk} on Mac OS X, and helped fix the configuration process
+to support this platfom.
+
@item Jason Uhlenkott
also reported the pmem problem.
@@ -58,9 +66,8 @@ reported a bug in mixvm's MOVE implementation.
@item Milan Bella (@email{milanbella@@hotmail.com})
reported a bug in @sc{mdk} documentation.
-@item @sc{mdk} was inspired by Darius Bacon's MIXAL program
-(@email{djello@@well.sf.ca.us}) which can be installed in Debian 2.3 as
-the package "mixal".
+@item @sc{mdk} was inspired by Darius Bacon's
+@uref{http://www.accesscom.com/~darius/, MIXAL program}.
@end itemize
diff --git a/doc/mdk_gstart.texi b/doc/mdk_gstart.texi
index c9b936b..f04e5c1 100644
--- a/doc/mdk_gstart.texi
+++ b/doc/mdk_gstart.texi
@@ -1,10 +1,10 @@
@c -*-texinfo-*-
@c This is part of the GNU MDK Reference Manual.
-@c Copyright (C) 2000, 2001
+@c Copyright (C) 2000, 2001, 2002
@c Free Software Foundation, Inc.
@c See the file mdk.texi for copying conditions.
-@c $Id: mdk_gstart.texi,v 1.12 2002/03/19 22:38:13 jao Exp $
+@c $Id: mdk_gstart.texi,v 1.13 2002/04/08 00:26:38 jao Exp $
@node Getting started, mixvm.el, MIX and MIXAL tutorial, Top
@chapter Getting started
@@ -72,8 +72,11 @@ column in its line, for the first whitespace in the line maks the
beginning of the second field),
@item
an operation mnemonic, which can represent either a MIX instruction
-(@code{OUT} and @code{HLT} in lines 6 and 7 above), or an assembly
-pseudoinstruction.
+(@code{OUT} and @code{HLT} in lines 7 and 8 above), or an assembly
+pseudoinstruction (e.g., the @code{ORIG} pseudoinstruction in line
+6@footnote{If an @code{ORIG} directive is not used, the program will
+be loaded by the virtual machine at address 0. @code{ORIG} allows
+allocating the executable code where you see fit.}.
@item
an optional operand for the (pseudo)instruction, and
@item
@@ -88,10 +91,12 @@ the operand always starts at a fixed column number, and the use of
quotation is therefore unnecessary. As @code{mixasm} releases this
requirement, marking the beginning and end of the @code{ALF} operand
disambiguates the parser's recognition of this operand when it includes
-blanks}.
+blanks. Note that double-quotes (") are not part of the MIX character
+set, and, therefore, no escape characters are needed within
+@code{ALF}'s operands.}.
The workings of this sample program should be straightforward if you are
-familiar with MIXAL. See TAOCP vol. 1 for a thorought definition or
+familiar with MIXAL. See TAOCP vol. 1 for a thorough definition or
@ref{MIX and MIXAL tutorial}, for a tutorial.
@node Compiling, Running the program, Writing a source file, Getting started
@@ -120,7 +125,7 @@ If the source file contains no errors, this will produce a binary file
called @file{hello.mix} which can be loaded and run by the MIX virtual
machine. The @code{-g} flag tells the assembler to include debug
information in the executable file (for a complete description of all
-the compilation options, see @ref{mixasm}.) Now, your are ready to run
+the compilation options, see @ref{mixasm}). Now, your are ready to run
your first MIX program, as described in the following section.
@@ -154,12 +159,12 @@ Using the MIX simulators, you can run your MIXAL programs, after
compiling them with @code{mixasm} into binary @file{.mix}
files. @code{mixvm} can be used either in @dfn{interactive} or
@dfn{non-interactive} mode. In the second case, @code{mixvm} will load
-your program into memory, execute it (producing any output due to MIXAL
-@code{OUT} instructions present in the program), and exit when it
-encounters a @code{HLT} instruction. In interactive mode, you will enter
-a shell prompt which allows you issuing commands to the running virtual
-machine. This commands will permit you loading, running and debugging
-programs, as well as inspecting the MIX computer state (register
+your program into memory, execute it (producing any output due to
+MIXAL @code{OUT} instructions present in the program), and exit when
+it encounters a @code{HLT} instruction. In interactive mode, you will
+enter a shell prompt which allows you issuing commands to the running
+virtual machine. This commands will permit you to load, run and debug
+programs, as well as to inspect the MIX computer state (register
contents, memory cells contents and so on).
@menu
@@ -184,7 +189,6 @@ mixvm -r hello @key{RET}
@example
MIXAL HELLO WORLD
-** Execution time: 11
@end example
@noindent Since our hello world program uses MIX's device number 19 as
@@ -196,10 +200,24 @@ and written its output there@footnote{The device files are stored, by
default, in a directory called @file{.mdk}, which is created in your
home directory the first time @code{mixvm} is run. You can change this
default directory using the command @code{devdir} when running
-@code{mixvm} in interactive mode (@pxref{Configuration commands})}. Note
-also that the virtual machine reports the execution time of the program,
+@code{mixvm} in interactive mode (@pxref{Configuration commands})}.
+
+The virtual machine can also report the execution time of the program,
according to the (virtual) time spent in each of the binary instructions
-(@pxref{Execution times}).
+(@pxref{Execution times}). Printing of execution time statistics is
+activated with the @code{-t} flag; running
+
+@example
+mixvm -t -r hello @key{RET}
+@end example
+
+@noindent
+produces the following output:
+
+@example
+MIXAL HELLO WORLD
+** Execution time: 11
+@end example
Sometimes, you will prefer to store the results of your program in MIX
registers rather than writing them to a device. In such cases,
@@ -216,7 +234,6 @@ mixvm -d -r hello
@example
MIXAL HELLO WORLD
-** Execution time: 11
rA: + 00 00 00 00 00 (0000000000)
rX: + 00 00 00 00 00 (0000000000)
rJ: + 00 00 (0000)
diff --git a/doc/mdk_install.texi b/doc/mdk_install.texi
index c240c57..2c09a52 100644
--- a/doc/mdk_install.texi
+++ b/doc/mdk_install.texi
@@ -1,6 +1,6 @@
@c -*-texinfo-*-
@c This is part of the GNU MDK Reference Manual.
-@c Copyright (C) 2000, 2001
+@c Copyright (C) 2000, 2001, 2002
@c Free Software Foundation, Inc.
@c See the file mdk.texi for copying conditions.
@@ -114,7 +114,7 @@ you should see a message with the configuration results like the
following:
@example
-*** GNU MDK 0.5 has been successfully configured. ***
+*** GNU MDK 1.0 has been successfully configured. ***
Type 'make' to build the following utilities:
- mixasm (MIX assembler)
@@ -208,13 +208,13 @@ GNU MDK has been tested in the following platforms:
@itemize
@item
-Debian GNU/Linux 2.2/2.3
+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 (Ying-Chieh Liao)
+FreeBSD 4.2, 4.3, 4.4, 4.5 (Ying-Chieh Liao)
@item
Solaris 2.8/gcc 2.95.3 (Stephen Ramsay)
@item
@@ -225,6 +225,8 @@ Nathusius)@footnote{Caveats: Christoph has only tested @code{mixvm} and
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
diff --git a/doc/mdk_mixvm.texi b/doc/mdk_mixvm.texi
index 2eae874..7992567 100644
--- a/doc/mdk_mixvm.texi
+++ b/doc/mdk_mixvm.texi
@@ -1,10 +1,10 @@
@c -*-texinfo-*-
@c This is part of the GNU MDK Reference Manual.
-@c Copyright (C) 2000, 2001
+@c Copyright (C) 2000, 2001, 2002
@c Free Software Foundation, Inc.
@c See the file mdk.texi for copying conditions.
-@c $Id: mdk_mixvm.texi,v 1.10 2001/09/26 23:15:55 jao Exp $
+@c $Id: mdk_mixvm.texi,v 1.11 2002/04/08 00:26:37 jao Exp $
@node mixvm, gmixvm, mixasm, Top
@comment node-name, next, previous, up
@@ -37,8 +37,8 @@ setting to aid you in debugging your code. For a tutorial description of
for each available single letter switch):
@example
-mixvm [-vhurdq] [--version] [--help] [--usage] [--run] [--dump]
- [--noinit] [FILE[.mix]]
+mixvm [-vhurdtq] [--version] [--help] [--usage] [--run] [--dump]
+ [--time] [--noinit] [FILE[.mix]]
@end example
@noindent
@@ -73,6 +73,13 @@ comparison flag and overflow toggle after executing the program named
@var{FILE}. See @xref{Non-interactive mode}, for sample usage.
@end defopt
+@defopt -t
+@defoptx --time
+This option must be used in conjuction with @code{-r}, and tells
+@code{mixvm} to print virtual time statistics for the program's
+execution.
+@end defopt
+
When run without the @code{-r} flag, @code{mixvm} enters its interactive
mode, showing you a prompt like this one:
@@ -107,7 +114,8 @@ startup.
You can enter the interactive mode of the MIX virtual machine by simply
invoking @code{mixvm} without arguments. You will then presented a shell
-prompt
+prompt@footnote{The default command prompt, @samp{MIX > }, can be
+changed using the @code{prompt} command (@pxref{Configuration commands})}
@example
MIX >
@@ -142,7 +150,7 @@ all available commands.
* File commands:: Loading and executing programs.
* Debug commands:: Debugging programs.
* State commands:: Inspecting the virtual machine state.
-* Configuration commands:: Storing mixvm settings.
+* Configuration commands:: Changing and storing mixvm settings.
* Scheme commands::
@end menu
@@ -712,6 +720,15 @@ specify an alternative location for storing these device files, while
@code{pddir} prints the current device directory.
@end deffn
+Finally, you can change the default command prompt, @samp{MIX > },
+using the @code{prompt} command:
+
+@deffn {config command} prompt PROMPT
+Changes the command prompt to @var{prompt}. If you want to include
+white space(s) at the end of the new prompt, bracket @var{prompt} using
+double quotes (e.g., @code{prompt ">> "}).
+@end deffn
+
@node Scheme commands, , Configuration commands, Commands
@subsection Scheme commands
diff --git a/doc/mdk_tut.texi b/doc/mdk_tut.texi
index 461fcf6..c2b3ab1 100644
--- a/doc/mdk_tut.texi
+++ b/doc/mdk_tut.texi
@@ -4,7 +4,7 @@
@c Free Software Foundation, Inc.
@c See the file mdk.texi for copying conditions.
-@c $Id: mdk_tut.texi,v 1.6 2002/03/19 22:38:13 jao Exp $
+@c $Id: mdk_tut.texi,v 1.7 2002/04/08 00:26:37 jao Exp $
@node MIX and MIXAL tutorial, Getting started, Installing MDK, Top
@comment node-name, next, previous, up
@@ -793,19 +793,20 @@ counter, while @samp{HLT} usually marks program termination.
@cindex exection time
@cindex time
-When writing MIXAL programs (or any kind of programs, for that matter),
-whe shall often be interested in their execution time. Loosely speaking,
-we will interested in the answer to the question: how long takes a
-program to execute? Of course, this execution time will be a function of
-the input size, and the answer to our question is commonly given as the
-asymptotic behaviour as a function of the input size. At any rate, to
-compute this asymptotic behaviour, we need a measure of how long
-execution of a single instruction takes in our (virtual) CPU. Therefore,
-each MIX instruction will have an associated execution time, given in
-arbitrary units (in a real computer, the value of this unit will depend
-on the hardware configuration). When our MIX virtual machine executes
-programs, it will give you the value of their execution time based upon
-the execution time of each single instruction.
+When writing MIXAL programs (or any kind of programs, for that
+matter), whe shall often be interested in their execution
+time. Loosely speaking, we will interested in the answer to the
+question: how long takes a program to execute? Of course, this
+execution time will be a function of the input size, and the answer to
+our question is commonly given as the asymptotic behaviour as a
+function of the input size. At any rate, to compute this asymptotic
+behaviour, we need a measure of how long execution of a single
+instruction takes in our (virtual) CPU. Therefore, each MIX
+instruction will have an associated execution time, given in arbitrary
+units (in a real computer, the value of this unit will depend on the
+hardware configuration). When our MIX virtual machine executes
+programs, it will (optionally) give you the value of their execution
+time based upon the execution time of each single instruction.
In the following table, the execution times (in the above mentioned
arbitrary units) of the MIX instructions are given.