diff --git a/src/config.aap.in b/src/config.aap.in
index ee58a80..cda84c6 100644
--- a/src/config.aap.in
+++ b/src/config.aap.in
@@ -80,6 +80,8 @@
 
 INSTALLVIMDIFF	= @dovimdiff@
 INSTALLGVIMDIFF	= @dogvimdiff@
+INSTALL_LANGS	= @INSTALL_LANGS@
+INSTALL_TOOL_LANGS	= @INSTALL_TOOL_LANGS@
 
 ### Line break character as octal number for "tr"
 NL		= @line_break@
@@ -108,8 +110,6 @@
 GUI_INC_LOC	= @GUI_INC_LOC@
 GUI_LIB_LOC	= @GUI_LIB_LOC@
 GUI_X_LIBS	= @GUI_X_LIBS@
-KDE_PREFIX	= @KDE_PREFIX@
-MOC             = @MOC@
 
 ### Any OS dependent extra source and object file
 OS_EXTRA_SRC	= @OS_EXTRA_SRC@
diff --git a/src/main.aap b/src/main.aap
index 1a36545..fa7917b 100644
--- a/src/main.aap
+++ b/src/main.aap
@@ -10,6 +10,8 @@
 #                       Can be specified when installing only.
 #                       Example: aap install PREFIX=$HOME
 #
+@if os.name != "posix":
+    :error Sorry, this recipe only works for Unix-like systems.
 
 # Skip the configure stuff when "link.sh" is executing this recipe recursively
 # to build pathdef.c or not building something and auto/config.aap does exist.
@@ -49,11 +51,14 @@
 
     # Dependency: run configure.aap to update config.h and config.aap in the
     # "auto" directory.
+    # NOTE: we can only build for one architecture, because -MM doesn't work
+    # when building for both.
     config {virtual} auto/config.h auto/config.aap :
                          auto/configure.aap configure.aap
                          config.arg config.h.in config.aap.in
         :sys CONFIG_STATUS=auto/config.status
                 ./configure.aap `file2string("config.arg")`
+                    --with-mac-arch=ppc
                     --cache-file=auto/config.cache
 
     # Configure arguments: create an empty "config.arg" file when its missing
@@ -79,12 +84,41 @@
     CPPFLAGS = `string.replace(_no.CPPFLAGS, "-arch i386 -arch ppc", "-arch ppc")`
 
 # A "PREFIX=dir" argument overrules the value of $prefix
-@if _no.get("PREFIX"):
+# But don't use the default "/usr/local".
+@if _no.get("PREFIX") and _no.get("PREFIX") != '/usr/local':
     prefix = $PREFIX
 
 # Don't want "~/" in prefix.
 prefix = `os.path.expanduser(prefix)`
 
+# For Mac.
+APPDIR = $(VIMNAME).app
+
+### Names of the programs and targets
+VIMTARGET       = $VIMNAME$EXESUF
+EXTARGET        = $EXNAME$LNKSUF
+VIEWTARGET      = $VIEWNAME$LNKSUF
+GVIMNAME        = g$VIMNAME
+GVIMTARGET      = $GVIMNAME$LNKSUF
+GVIEWNAME       = g$VIEWNAME
+GVIEWTARGET     = $GVIEWNAME$LNKSUF
+RVIMNAME        = r$VIMNAME
+RVIMTARGET      = $RVIMNAME$LNKSUF
+RVIEWNAME       = r$VIEWNAME
+RVIEWTARGET     = $RVIEWNAME$LNKSUF
+RGVIMNAME       = r$GVIMNAME
+RGVIMTARGET     = $RGVIMNAME$LNKSUF
+RGVIEWNAME      = r$GVIEWNAME
+RGVIEWTARGET    = $RGVIEWNAME$LNKSUF
+VIMDIFFNAME     = $(VIMNAME)diff
+GVIMDIFFNAME    = g$VIMDIFFNAME
+VIMDIFFTARGET   = $VIMDIFFNAME$LNKSUF
+GVIMDIFFTARGET  = $GVIMDIFFNAME$LNKSUF
+EVIMNAME        = e$VIMNAME
+EVIMTARGET      = $EVIMNAME$LNKSUF
+EVIEWNAME       = e$VIEWNAME
+EVIEWTARGET     = $EVIEWNAME$LNKSUF
+
 #
 # G U I  variant
 #
@@ -100,9 +134,12 @@
         GUI_LIBS_DIR    = $GUI_LIB_LOC
         GUI_LIBS1       =
         GUI_LIBS2       = $GTK_LIBNAME
+        GUI_INSTALL     = install_normal
         GUI_TARGETS     = installglinks
-        GUI_MAN_TARGETS = installghelplinks
+        GUI_MAN_TARGETS = yes
         GUI_TESTTARGET  = gui
+        GUI_BUNDLE      =
+        GUI_TESTARG     =
     MOTIF
         GUI_SRC         = gui.c gui_motif.c gui_x11.c pty.c gui_beval.c
                           gui_xmdlg.c gui_xmebw.c
@@ -112,9 +149,12 @@
         GUI_LIBS_DIR    = $GUI_LIB_LOC
         GUI_LIBS1       =
         GUI_LIBS2       = $MOTIF_LIBNAME -lXt
+        GUI_INSTALL     = install_normal
         GUI_TARGETS     = installglinks
-        GUI_MAN_TARGETS = installghelplinks
+        GUI_MAN_TARGETS = yes
         GUI_TESTTARGET  = gui
+        GUI_BUNDLE      =
+        GUI_TESTARG     =
     ATHENA
         # XAW_LIB et al. can be overruled to use Xaw3d widgets
         XAW_LIB         ?= -lXaw
@@ -126,9 +166,12 @@
         GUI_LIBS_DIR    = $GUI_LIB_LOC
         GUI_LIBS1       = $XAW_LIB
         GUI_LIBS2       = -lXt
+        GUI_INSTALL     = install_normal
         GUI_TARGETS     = installglinks
-        GUI_MAN_TARGETS = installghelplinks
+        GUI_MAN_TARGETS = yes
         GUI_TESTTARGET  = gui
+        GUI_BUNDLE      =
+        GUI_TESTARG     =
     NEXTAW
         # XAW_LIB et al. can be overruled to use Xaw3d widgets
         XAW_LIB         ?= -lXaw
@@ -140,9 +183,27 @@
         GUI_LIBS_DIR    = $GUI_LIB_LOC
         GUI_LIBS1       = $NEXTAW_LIB
         GUI_LIBS2       = -lXt
+        GUI_INSTALL     = install_normal
         GUI_TARGETS     = installglinks
-        GUI_MAN_TARGETS = installghelplinks
+        GUI_MAN_TARGETS = yes
         GUI_TESTTARGET  = gui
+        GUI_BUNDLE      =
+        GUI_TESTARG     =
+    CARBONGUI
+        GUI_SRC         =  gui.c gui_mac.c pty.c
+        GUI_OBJ         =
+        GUI_DEFS        = -DFEAT_GUI_MAC -fno-common -fpascal-strings \
+                            -Wall -Wno-unknown-pragmas -mdynamic-no-pic -pipe
+        GUI_IPATH       = $GUI_INC_LOC
+        GUI_LIBS_DIR    = $GUI_LIB_LOC
+        GUI_LIBS1       = -framework Carbon
+        GUI_LIBS2       =
+        GUI_INSTALL     = install_macosx
+        GUI_TARGETS     = installglinks
+        GUI_MAN_TARGETS = yes
+        GUI_TESTTARGET  = gui
+        GUI_BUNDLE      = gui_bundle
+        GUI_TESTARG     = VIMPROG=../$(APPDIR)/Contents/MacOS/$(VIMTARGET)
     PHOTONGUI
         GUI_SRC         = gui.c gui_photon.c pty.c
         GUI_OBJ         =
@@ -151,9 +212,12 @@
         GUI_LIBS_DIR    =
         GUI_LIBS1       = -lph -lphexlib
         GUI_LIBS2       =
+        GUI_INSTALL     = install_normal
         GUI_TARGETS     = installglinks
-        GUI_MAN_TARGETS = installghelplinks
+        GUI_MAN_TARGETS = yes
         GUI_TESTTARGET  = gui
+        GUI_BUNDLE      =
+        GUI_TESTARG     =
     *
         GUI_SRC         =
         GUI_OBJ         =
@@ -162,9 +226,12 @@
         GUI_LIBS_DIR    =
         GUI_LIBS1       =
         GUI_LIBS2       =
+        GUI_INSTALL     = install_normal
         GUI_TARGETS     =
         GUI_MAN_TARGETS =
         GUI_TESTTARGET  =
+        GUI_BUNDLE      =
+        GUI_TESTARG     =
 
 
 PRE_DEFS = -Iproto -I. $DEFS $GUI_DEFS $GUI_IPATH $CPPFLAGS $?(EXTRA_IPATHS)
@@ -181,6 +248,10 @@
 # reconfig target also builds Vim (reconfiguration is handled above).
 reconfig {virtual}: $Target
 
+distclean: clean
+    :del {force} auto/config.h auto/config.aap
+    :del {force} auto/config.cache auto/config.status
+
 
 # Execute the test scripts.  Run these after compiling Vim, before installing.
 #
@@ -192,7 +263,7 @@
 #
 test check:
     VimProg = ../$Target
-    :execute testdir/main.aap $GUI_TESTTARGET
+    :execute testdir/main.aap $GUI_TESTTARGET $GUI_TESTARG
 
 testclean {virtual}:
     :del {force} testdir/*.out testdir/test.log
@@ -273,7 +344,7 @@
 # TODO: make is still used for subdirectories, need to write a recipe.
 MAKE ?= make
 
-all: $Target
+all: $Target $GUI_BUNDLE
 
 # This dependency is required to build auto/osdef.h before automatic
 # dependencies are generated.
@@ -371,31 +442,6 @@
         :print >> $target char_u *compiled_sys = (char_u *)"$where";
 
 
-### Names of the programs and targets
-VIMTARGET       = $VIMNAME$EXESUF
-EXTARGET        = $EXNAME$LNKSUF
-VIEWTARGET      = $VIEWNAME$LNKSUF
-GVIMNAME        = g$VIMNAME
-GVIMTARGET      = $GVIMNAME$LNKSUF
-GVIEWNAME       = g$VIEWNAME
-GVIEWTARGET     = $GVIEWNAME$LNKSUF
-RVIMNAME        = r$VIMNAME
-RVIMTARGET      = $RVIMNAME$LNKSUF
-RVIEWNAME       = r$VIEWNAME
-RVIEWTARGET     = $RVIEWNAME$LNKSUF
-RGVIMNAME       = r$GVIMNAME
-RGVIMTARGET     = $RGVIMNAME$LNKSUF
-RGVIEWNAME      = r$GVIEWNAME
-RGVIEWTARGET    = $RGVIEWNAME$LNKSUF
-VIMDIFFNAME     = $(VIMNAME)diff
-GVIMDIFFNAME    = g$VIMDIFFNAME
-VIMDIFFTARGET   = $VIMDIFFNAME$LNKSUF
-GVIMDIFFTARGET  = $GVIMDIFFNAME$LNKSUF
-EVIMNAME        = e$VIMNAME
-EVIMTARGET      = $EVIMNAME$LNKSUF
-EVIEWNAME       = e$VIEWNAME
-EVIEWTARGET     = $EVIEWNAME$LNKSUF
-
 ### Names of the tools that are also made
 TOOLS = xxd/xxd$EXESUF
 
@@ -403,8 +449,8 @@
 # existing path to install into a special place (for generating a package).
 DESTDIR ?=
 
-### Location of man pages
-MANSUBDIR = $MANDIR/man1
+### Location of man pages under $MANTOPDIR
+MAN1DIR = /man1
 
 ### Location of Vim files (should not need to be changed, and
 ### some things might not work when they are changed!)
@@ -424,6 +470,7 @@
 MACROSUBDIR = /macros
 TOOLSSUBDIR = /tools
 TUTORSUBDIR = /tutor
+SPELLSUBDIR = /spell
 PRINTSUBDIR = /print
 PODIR = po
 
@@ -449,7 +496,8 @@
 ### You can override these if you want to install them somewhere else.
 ### Edit feature.h for compile-time settings.
 VIMLOC          = $DATADIR$VIMDIR
-VIMRTLOC        = $DATADIR$VIMDIR$VIMRTDIR
+@if not _no.get("VIMRTLOC"):
+    VIMRTLOC        = $DATADIR$VIMDIR$VIMRTDIR
 VIMRCLOC        = $VIMLOC
 HELPSUBLOC      = $VIMRTLOC$HELPSUBDIR
 COLSUBLOC       = $VIMRTLOC$COLSUBDIR
@@ -464,6 +512,7 @@
 MACROSUBLOC     = $VIMRTLOC$MACROSUBDIR
 TOOLSSUBLOC     = $VIMRTLOC$TOOLSSUBDIR
 TUTORSUBLOC     = $VIMRTLOC$TUTORSUBDIR
+SPELLSUBLOC	= $VIMRTLOC$SPELLSUBDIR
 PRINTSUBLOC     = $VIMRTLOC$PRINTSUBDIR
 SCRIPTLOC       = $VIMRTLOC
 
@@ -561,6 +610,9 @@
 # Where to copy the tutor files from
 TUTORSOURCE = ../runtime/tutor
 
+# Where to copy the spell files from
+SPELLSOURCE = ../runtime/spell
+
 # Where to look for language specific files
 LANGSOURCE = ../runtime/lang
 
@@ -590,20 +642,39 @@
 DEST_MACRO = $DESTDIR$MACROSUBLOC
 DEST_TOOLS = $DESTDIR$TOOLSSUBLOC
 DEST_TUTOR = $DESTDIR$TUTORSUBLOC
+DEST_SPELL = $DESTDIR$SPELLSUBLOC
 DEST_SCRIPT = $DESTDIR$SCRIPTLOC
 DEST_PRINT = $DESTDIR$PRINTSUBLOC
-DEST_MAN = $DESTDIR$MANSUBDIR
+DEST_MAN_TOP = $DESTDIR$?(MANDIR)
+
+# We assume that the ".../man/xx/man1/" directory is for latin1 manual pages.
+# Some systems use UTF-8, but these should find the ".../man/xx.UTF-8/man1/"
+# directory first.
+# FreeBSD uses ".../man/xx.ISO8859-1/man1" for latin1, use that one too.
+DEST_MAN = $(DEST_MAN_TOP)$(MAN1DIR)
+DEST_MAN_FR = $(DEST_MAN_TOP)/fr$(MAN1DIR)
+DEST_MAN_FR_I = $(DEST_MAN_TOP)/fr.ISO8859-1$(MAN1DIR)
+DEST_MAN_FR_U = $(DEST_MAN_TOP)/fr.UTF-8$(MAN1DIR)
+DEST_MAN_IT = $(DEST_MAN_TOP)/it$(MAN1DIR)
+DEST_MAN_IT_I = $(DEST_MAN_TOP)/it.ISO8859-1$(MAN1DIR)
+DEST_MAN_IT_U = $(DEST_MAN_TOP)/it.UTF-8$(MAN1DIR)
+DEST_MAN_RU = $(DEST_MAN_TOP)/ru.KOI8-R$(MAN1DIR)
+DEST_MAN_RU_U = $(DEST_MAN_TOP)/ru.UTF-8$(MAN1DIR)
 
 # These are directories, create them when needed.
 :attr {directory = $DIRMOD} $DEST_BIN $DEST_VIM $DEST_RT $DEST_HELP $DEST_COL
                 $DEST_SYN $DEST_IND $DEST_AUTO $DEST_PLUG $DEST_FTP $DEST_LANG
                 $DEST_COMP $DEST_KMAP $DEST_MACRO $DEST_TOOLS $DEST_TUTOR
-                $DEST_SCRIPT $DEST_PRINT $DEST_MAN
+                $DEST_SCRIPT $DEST_PRINT $DEST_MAN $DEST_SPELL
+                $DEST_MAN_FR $DEST_MAN_FR_I $DEST_MAN_FR_U $DEST_MAN_IT
+                $DEST_MAN_IT_I $DEST_MAN_IT_U $DEST_MAN_RU $DEST_MAN_RU_U
 
 #
 # I N S T A L L
 #
-install:
+install: $GUI_INSTALL
+
+install_normal:
     @if not os.path.isdir(_no.DEST_BIN):
         @try:
             :mkdir $DEST_BIN
@@ -611,7 +682,7 @@
         @   pass
     @if os.access(_no.DEST_BIN, os.W_OK):
         # Bin directory is writable, install directly.
-        :update installvim installtools install-languages install-icons
+        :update installvim installtools $INSTALL_LANGS install-icons
     @else:
         # Bin directory is not writable, need to become root.
         :print The destination directory "$DEST_BIN" is not writable.
@@ -619,8 +690,8 @@
         :print Otherwise, type the root password to continue installing.
         :asroot $AAP install
 
-installvim {virtual}: installvimbin installruntime installlinks \
-                        installhelplinks installmacros installtutor
+installvim {virtual}: installvimbin  installtutorbin \
+                        installruntime installlinks installmanlinks
 
 installvimbin {virtual}{force}: $Target $DEST_BIN
         exe = $DEST_BIN/$VIMTARGET
@@ -636,53 +707,20 @@
         @if _no.get("LINKIT"):
             :sys $LINKIT
 
+# Long list of arguments for the shell script that installs the manual pages
+# for one language.
+INSTALLMANARGS = $(VIMLOC) $(SCRIPTLOC) $(VIMRCLOC) $(HELPSOURCE) $(MANMOD) \
+		$(VIMNAME) $(VIMDIFFNAME) $(EVIMNAME)
+
+# Install most of the runtime files
+installruntime {virtual}: installrtbase installmacros installtutor installspell
+
 # install the help files; first adjust the contents for the location
-installruntime {virtual}{force}: $HELPSOURCE/vim.1 $DEST_MAN $DEST_VIM
+installrtbase {virtual}{force}: $HELPSOURCE/vim.1 $DEST_VIM
                 $DEST_RT $DEST_HELP $DEST_COL $DEST_SYN $DEST_IND
                 $DEST_FTP $DEST_AUTO $DEST_PLUG $DEST_TUTOR $DEST_COMP
-                $DEST_PRINT
-        :print generating $DEST_MAN/$(VIMNAME).1
-        :cat $HELPSOURCE/vim.1 |
-                :eval re.sub("/usr/local/lib/vim", _no.VIMLOC, stdin) |
-                :eval re.sub(_no.VIMLOC + "/doc", _no.HELPSUBLOC, stdin) |
-                :eval re.sub(_no.VIMLOC + "/syntax", _no.SYNSUBLOC, stdin) |
-                :eval re.sub(_no.VIMLOC + "/tutor", _no.TUTORSUBLOC, stdin) |
-                :eval re.sub(_no.VIMLOC + "/vimrc",
-                                               _no.VIMRCLOC + "/vimrc", stdin) |
-                :eval re.sub(_no.VIMLOC + "/gvimrc",
-                                              _no.VIMRCLOC + "/gvimrc", stdin) |
-                :eval re.sub(_no.VIMLOC + "/menu.vim",
-                                           _no.SCRIPTLOC + "/menu.vim", stdin) |
-                :eval re.sub(_no.VIMLOC + "/bugreport.vim",
-                                      _no.SCRIPTLOC + "/bugreport.vim", stdin) |
-                :eval re.sub(_no.VIMLOC + "/filetype.vim",
-                                       _no.SCRIPTLOC + "/filetype.vim", stdin) |
-                :eval re.sub(_no.VIMLOC + "/ftoff.vim",
-                                          _no.SCRIPTLOC + "/ftoff.vim", stdin) |
-                :eval re.sub(_no.VIMLOC + "/scripts.vim",
-                                        _no.SCRIPTLOC + "/scripts.vim", stdin) |
-                :eval re.sub(_no.VIMLOC + "/optwin.vim",
-                                         _no.SCRIPTLOC + "/optwin.vim", stdin) |
-                :eval re.sub(_no.VIMLOC + "/\\*.ps",
-                                                 _no.SCRIPTLOC + "/*.ps", stdin)
-                >! $DEST_MAN/$(VIMNAME).1
-        :chmod $MANMOD $DEST_MAN/$(VIMNAME).1
-
-        :print generating $DEST_MAN/$(VIMNAME)tutor.1
-        :cat $HELPSOURCE/vimtutor.1 |
-                :eval re.sub("/usr/local/lib/vim", _no.VIMLOC, stdin) |
-                :eval re.sub(_no.VIMLOC + "/tutor", _no.TUTORSUBLOC, stdin)
-                >! $DEST_MAN/$(VIMNAME)tutor.1
-        :chmod $MANMOD $DEST_MAN/$(VIMNAME)tutor.1
-
-        :copy $HELPSOURCE/vimdiff.1 $DEST_MAN/$(VIMDIFFNAME).1
-        :chmod $MANMOD $DEST_MAN/$(VIMDIFFNAME).1
-
-        :print generating $DEST_MAN/$(EVIMNAME).1
-        :cat $HELPSOURCE/evim.1 |
-                :eval re.sub("/usr/local/lib/vim", _no.SCRIPTLOC, stdin)
-                >! $DEST_MAN/$(EVIMNAME).1
-        :chmod $MANMOD $DEST_MAN/$(EVIMNAME).1
+                $DEST_SPELL $DEST_PRINT
+        :sys ./installman.sh install $(DEST_MAN) "" $(INSTALLMANARGS)
 
         :cd $HELPSOURCE
         @try:
@@ -781,15 +819,31 @@
         :chmod $SCRIPTMOD $DEST_MACRO/less.sh
 
 # install the tutor files
-installtutor {virtual}{force}: $TUTORSOURCE $DEST_VIM $DEST_RT $DEST_TUTOR
+installtutorbin {virtual}{force}: $DEST_VIM
         :copy vimtutor $DEST_BIN/$(VIMNAME)tutor
         :chmod $SCRIPTMOD $DEST_BIN/$(VIMNAME)tutor
+
+installtutor {virtual}{force}: $DEST_RT $DEST_TUTOR
         :copy $TUTORSOURCE/tutor* $TUTORSOURCE/README* $DEST_TUTOR
         :chmod $HELPMOD $DEST_TUTOR/*
 
+# Install the spell files, if they exist.  This assumes at least the English
+# spell file is there.
+installspell {virtual}: $(DEST_VIM) $(DEST_RT) $(DEST_SPELL)
+	enspl = $(SPELLSOURCE)/en.latin1.spl
+        @if os.path.exists(enspl):
+            :copy $(SPELLSOURCE)/*.spl $(SPELLSOURCE)/*.vim $(DEST_SPELL)
+            :chmod $(HELPMOD) $(DEST_SPELL)/*.spl $(DEST_SPELL)/*.vim
+            @try:
+                :copy $(SPELLSOURCE)/*.sug $(DEST_SPELL)
+                :chmod $(HELPMOD) $(DEST_SPELL)/*.sug
+            @except:
+            @   pass
+
 # install helper program xxd
 installtools {virtual}{force}: $TOOLS $DEST_BIN $DEST_MAN \
-                $TOOLSSOURCE $DEST_VIM $DEST_RT $DEST_TOOLS
+                $TOOLSSOURCE $DEST_VIM $DEST_RT $DEST_TOOLS \
+                $INSTALL_TOOL_LANGS
         xxd = $DEST_BIN/xxd$EXESUF
         @if os.path.exists(xxd):
           :move {force} $xxd $(xxd).rm
@@ -797,8 +851,8 @@
         :copy xxd/xxd$EXESUF $DEST_BIN
         :do strip $DEST_BIN/xxd$EXESUF
         :chmod $BINMOD $DEST_BIN/xxd$EXESUF
-        :copy $HELPSOURCE/xxd.1 $DEST_MAN
-        :chmod $MANMOD $DEST_MAN/xxd.1
+        :sys ./installman.sh xxd $(DEST_MAN) "" $(INSTALLMANARGS)
+#
 # install the runtime tools
         @try:
         @  if aap_has(":tree"):
@@ -831,8 +885,44 @@
 
         :sys chmod $SCRIPTMOD ``grep -l "^#!" $DEST_TOOLS/*``
 
+# install the language specific files for tools, if they were unpacked
+install-tool-languages:
+        :sys ./installman.sh xxd $(DEST_MAN_FR) "-fr" $(INSTALLMANARGS)
+	:sys ./installman.sh xxd $(DEST_MAN_FR_I) "-fr" $(INSTALLMANARGS)
+	:sys ./installman.sh xxd $(DEST_MAN_FR_U) "-fr.UTF-8" $(INSTALLMANARGS)
+	:sys ./installman.sh xxd $(DEST_MAN_IT) "-it" $(INSTALLMANARGS)
+	:sys ./installman.sh xxd $(DEST_MAN_IT_I) "-it" $(INSTALLMANARGS)
+	:sys ./installman.sh xxd $(DEST_MAN_IT_U) "-it.UTF-8" $(INSTALLMANARGS)
+	:sys ./installman.sh xxd $(DEST_MAN_RU) "-ru" $(INSTALLMANARGS)
+	:sys ./installman.sh xxd $(DEST_MAN_RU_U) "-ru.UTF-8" $(INSTALLMANARGS)
+
 # install the language specific files, if they were unpacked
 install-languages {virtual}{force}: languages $DEST_LANG $DEST_KMAP
+        :sys ./installman.sh install $(DEST_MAN_FR) "-fr" $(INSTALLMANARGS)
+	:sys ./installman.sh install $(DEST_MAN_FR_I) "-fr" $(INSTALLMANARGS)
+	:sys ./installman.sh install $(DEST_MAN_FR_U) "-fr.UTF-8" $(INSTALLMANARGS)
+	:sys ./installman.sh install $(DEST_MAN_IT) "-it" $(INSTALLMANARGS)
+	:sys ./installman.sh install $(DEST_MAN_IT_I) "-it" $(INSTALLMANARGS)
+	:sys ./installman.sh install $(DEST_MAN_IT_U) "-it.UTF-8" $(INSTALLMANARGS)
+	:sys ./installman.sh install $(DEST_MAN_RU) "-ru" $(INSTALLMANARGS)
+	:sys ./installman.sh install $(DEST_MAN_RU_U) "-ru.UTF-8" $(INSTALLMANARGS)
+	:sys ./installml.sh install "$(GUI_MAN_TARGETS)" \
+		$(DEST_MAN_FR) $(INSTALLMLARGS)
+        :sys ./installml.sh install "$(GUI_MAN_TARGETS)" \
+		$(DEST_MAN_FR_I) $(INSTALLMLARGS)
+        :sys ./installml.sh install "$(GUI_MAN_TARGETS)" \
+		$(DEST_MAN_FR_U) $(INSTALLMLARGS)
+        :sys ./installml.sh install "$(GUI_MAN_TARGETS)" \
+		$(DEST_MAN_IT) $(INSTALLMLARGS)
+        :sys ./installml.sh install "$(GUI_MAN_TARGETS)" \
+		$(DEST_MAN_IT_I) $(INSTALLMLARGS)
+        :sys ./installml.sh install "$(GUI_MAN_TARGETS)" \
+		$(DEST_MAN_IT_U) $(INSTALLMLARGS)
+        :sys ./installml.sh install "$(GUI_MAN_TARGETS)" \
+		$(DEST_MAN_RU) $(INSTALLMLARGS)
+        :sys ./installml.sh install "$(GUI_MAN_TARGETS)" \
+		$(DEST_MAN_RU_U) $(INSTALLMLARGS)
+
         @if _no.MAKEMO:
            :sys cd $PODIR; $MAKE prefix=$DESTDIR$prefix \
                     LOCALEDIR=$DEST_LANG INSTALL_DATA=cp FILEMOD=$FILEMOD install
@@ -926,73 +1016,64 @@
 
 # create links for the manual pages with various names to vim.  This is only
 # done when the links (or manpages with the same name) don't exist yet.
-installhelplinks {virtual}: $GUI_MAN_TARGETS \
-                        $DEST_MAN/$(EXNAME).1 \
-                        $DEST_MAN/$(VIEWNAME).1 \
-                        $DEST_MAN/$(RVIMNAME).1 \
-                        $DEST_MAN/$(RVIEWNAME).1
+INSTALLMLARGS = $(VIMNAME) $(VIMDIFFNAME) $(EVIMNAME) \
+		$(EXNAME) $(VIEWNAME) $(RVIMNAME) $(RVIEWNAME) \
+		$(GVIMNAME) $(GVIEWNAME) $(RGVIMNAME) $(RGVIEWNAME) \
+		$(GVIMDIFFNAME) $(EVIEWNAME)
 
-installghelplinks {virtual}: $DEST_MAN/$(GVIMNAME).1 \
-                        $DEST_MAN/$(GVIEWNAME).1 \
-                        $DEST_MAN/$(RGVIMNAME).1 \
-                        $DEST_MAN/$(RGVIEWNAME).1 \
-                        $DEST_MAN/$(GVIMDIFFNAME).1 \
-                        $DEST_MAN/$(EVIEWNAME).1
-
-$DEST_MAN/$(EXNAME).1: {buildcheck = }
-    :sys cd $DEST_MAN; ln -s $(VIMNAME).1 $(EXNAME).1
-
-$DEST_MAN/$(VIEWNAME).1: {buildcheck = }
-    :sys cd $DEST_MAN; ln -s $(VIMNAME).1 $(VIEWNAME).1
-
-$DEST_MAN/$(GVIMNAME).1: {buildcheck = }
-    :sys cd $DEST_MAN; ln -s $(VIMNAME).1 $(GVIMNAME).1
-
-$DEST_MAN/$(GVIEWNAME).1: {buildcheck = }
-    :sys cd $DEST_MAN; ln -s $(VIMNAME).1 $(GVIEWNAME).1
-
-$DEST_MAN/$(RVIMNAME).1: {buildcheck = }
-    :sys cd $DEST_MAN; ln -s $(VIMNAME).1 $(RVIMNAME).1
-
-$DEST_MAN/$(RVIEWNAME).1: {buildcheck = }
-    :sys cd $DEST_MAN; ln -s $(VIMNAME).1 $(RVIEWNAME).1
-
-$DEST_MAN/$(RGVIMNAME).1: {buildcheck = }
-    :sys cd $DEST_MAN; ln -s $(VIMNAME).1 $(RGVIMNAME).1
-
-$DEST_MAN/$(RGVIEWNAME).1: {buildcheck = }
-    :sys cd $DEST_MAN; ln -s $(VIMNAME).1 $(RGVIEWNAME).1
-
-$DEST_MAN/$(GVIMDIFFNAME).1: {buildcheck = }
-    :sys cd $DEST_MAN; ln -s $(VIMDIFFNAME).1 $(GVIMDIFFNAME).1
-
-$DEST_MAN/$(EVIEWNAME).1: {buildcheck = }
-    :sys cd $DEST_MAN; ln -s $(EVIMNAME).1 $(EVIEWNAME).1
+installmanlinks {virtual}:
+    :sys ./installml.sh install "$(GUI_MAN_TARGETS)" \
+		$(DEST_MAN) $(INSTALLMLARGS)
 
 #
 # U N I N S T A L L
 #
 uninstall {virtual}{force}: uninstall_runtime
     :del {force} $DEST_BIN/$VIMTARGET
-    :del {force} $DEST_MAN/$(VIMNAME).1 $DEST_MAN/$(VIMNAME)tutor.1
     :del {force} $DEST_BIN/vimtutor
-    :del {force} $DEST_BIN/xxd$EXESUF $DEST_MAN/xxd.1
     :del {force} $DEST_BIN/$EXTARGET $DEST_BIN/$VIEWTARGET
     :del {force} $DEST_BIN/$GVIMTARGET $DEST_BIN/$GVIEWTARGET
     :del {force} $DEST_BIN/$RVIMTARGET $DEST_BIN/$RVIEWTARGET
     :del {force} $DEST_BIN/$RGVIMTARGET $DEST_BIN/$RGVIEWTARGET
     :del {force} $DEST_BIN/$VIMDIFFTARGET $DEST_BIN/$GVIMDIFFTARGET
     :del {force} $DEST_BIN/$EVIMTARGET $DEST_BIN/$EVIEWTARGET
-    :del {force} $DEST_MAN/$(EXNAME).1 $DEST_MAN/$(VIEWNAME).1
-    :del {force} $DEST_MAN/$(GVIMNAME).1 $DEST_MAN/$(GVIEWNAME).1
-    :del {force} $DEST_MAN/$(RVIMNAME).1 $DEST_MAN/$(RVIEWNAME).1
-    :del {force} $DEST_MAN/$(RGVIMNAME).1 $DEST_MAN/$(RGVIEWNAME).1
-    :del {force} $DEST_MAN/$(VIMDIFFNAME).1 $DEST_MAN/$(GVIMDIFFNAME).1
-    :del {force} $DEST_MAN/$(EVIMNAME).1 $DEST_MAN/$(EVIEWNAME).1
+    :del {force} $DEST_BIN/xxd$EXESUF
 
 # Note: "deldir" will fail if any files were added after "make install", that
 # is intentionally: Keep files the user added.
 uninstall_runtime {virtual}{force}:
+    :sys ./installman.sh uninstall $(DEST_MAN) "" $(INSTALLMANARGS)
+    :sys ./installman.sh uninstall $(DEST_MAN_FR) "" $(INSTALLMANARGS)
+    :sys ./installman.sh uninstall $(DEST_MAN_FR_I) "" $(INSTALLMANARGS)
+    :sys ./installman.sh uninstall $(DEST_MAN_FR_U) "" $(INSTALLMANARGS)
+    :sys ./installman.sh uninstall $(DEST_MAN_IT) "" $(INSTALLMANARGS)
+    :sys ./installman.sh uninstall $(DEST_MAN_IT_I) "" $(INSTALLMANARGS)
+    :sys ./installman.sh uninstall $(DEST_MAN_IT_U) "" $(INSTALLMANARGS)
+    :sys ./installman.sh uninstall $(DEST_MAN_RU) "" $(INSTALLMANARGS)
+    :sys ./installman.sh uninstall $(DEST_MAN_RU_U) "" $(INSTALLMANARGS)
+    :sys ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
+            $(DEST_MAN) $(INSTALLMLARGS)
+    :sys ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
+            $(DEST_MAN_FR) $(INSTALLMLARGS)
+    :sys ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
+            $(DEST_MAN_FR_I) $(INSTALLMLARGS)
+    :sys ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
+            $(DEST_MAN_FR_U) $(INSTALLMLARGS)
+    :sys ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
+            $(DEST_MAN_IT) $(INSTALLMLARGS)
+    :sys ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
+            $(DEST_MAN_IT_I) $(INSTALLMLARGS)
+    :sys ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
+            $(DEST_MAN_IT_U) $(INSTALLMLARGS)
+    :sys ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
+            $(DEST_MAN_RU) $(INSTALLMLARGS)
+    :sys ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
+            $(DEST_MAN_RU_U) $(INSTALLMLARGS)
+    :del {force} $DEST_MAN/xxd.1
+    :del {force} $(DEST_MAN_FR)/xxd.1 $(DEST_MAN_FR_I)/xxd.1 $(DEST_MAN_FR_U)/xxd.1
+    :del {force} $(DEST_MAN_IT)/xxd.1 $(DEST_MAN_IT_I)/xxd.1 $(DEST_MAN_IT_U)/xxd.1
+    :del {force} $(DEST_MAN_RU)/xxd.1 $(DEST_MAN_RU_U)/xxd.1
+
     :del {force} $DEST_HELP/*.txt $DEST_HELP/tags $DEST_HELP/*.pl
     :del {force} $SYS_MENU_FILE $SYS_SYNMENU_FILE $SYS_DELMENU_FILE
     :del {force} $SYS_BUGR_FILE $EVIM_FILE $MSWIN_FILE
@@ -1007,6 +1088,7 @@
     :del {force} $DEST_PRINT/*.ps
     :del {force}{recursive} $DEST_MACRO
     :del {force}{recursive} $DEST_TUTOR
+    :del {force}{recursive} $DEST_SPELL
     :del {force}{recursive} $DEST_TOOLS
     :del {force}{recursive} $DEST_LANG
     :del {force}{recursive} $DEST_KMAP
@@ -1022,5 +1104,94 @@
     @except:
         :print Cannot delete $DEST_VIM
 
+###############################################################################
+### MacOS X installation
+###
+### This installs a runnable Vim.app in $(prefix)
+
+REZ    = /Developer/Tools/Rez
+RESDIR = $(APPDIR)/Contents/Resources
+@r = re.compile('.*VIM_VERSION_SHORT\\s*"(\\d[^"]*)".*', re.S)
+VERSION = /`r.match(open("version.h").read()).group(1)`
+ICON_APP = gui_mac.icns
+
+### Common flags
+M4FLAGSX = $?(M4FLAGS) -DAPP_EXE=$(VIMNAME) -DAPP_NAME=$(VIMNAME) \
+		-DAPP_VER=$(VERSION) -DICON_APP=$(ICON_APP)
+
+### Icons
+ICONS = $(RESDIR)/$(ICON_APP)
+
+:attr {directory = $DIRMOD} $RESDIR
+
+# If you uncomment the following lines the *.icns in the src directory will be
+# detected by this Makefile automatically, and used for Vim.
+#ICON_APP = $(shell if [ -e app.icns ] ; then echo app.icns ; else echo gui_mac.icns ; fi)
+#ICON_DOC = $(shell if [ -e doc.icns ] ; then echo doc.icns ; else echo ; fi)
+#ICON_DOCTXT = $(shell if [ -e doc-txt.icns ] ; then echo doc-txt.icns ; else echo ; fi)
+#ICONS = $(addprefix $(RESDIR)/, $(ICON_APP) $(ICON_DOC) $(ICON_DOCTXT))
+
+install_macosx {virtual}: gui_bundle
+# Remove the link to the runtime dir, don't want to copy all of that.
+        :delete {force} $(RESDIR)/vim/runtime
+        :copy {r} $APPDIR $DESTDIR$prefix
+        :tree $DESTDIR$prefix {dirname = AAPDIR}
+             :delete {recursive} $name
+# Install the runtime files.  Recursive!
+	:mkdir {r}{f} $DESTDIR$prefix/$RESDIR/vim/runtime
+#	:mkdir $(DESTDIR)$(prefix)/$(APPDIR)/bin
+        :execute main.aap PREFIX=$DESTDIR$prefix/$RESDIR/vim VIMRTLOC=$DESTDIR$prefix/$RESDIR/vim/runtime installruntime
+# Put the link back.
+        :symlink `os.getcwd()`/../runtime $RESDIR/vim/runtime
+# TODO: Create the vimtutor application.
+
+gui_bundle {virtual}: $(RESDIR) bundle-dir bundle-executable bundle-info \
+                        bundle-resource bundle-language
+
+bundle-dir {virtual}: $(APPDIR)/Contents $(VIMTARGET)
+# Make a link to the runtime directory, so that we can try out the executable
+# without installing it.
+        :mkdir {r}{f} $(RESDIR)/vim
+        :symlink {quiet} `os.getcwd()`/../runtime $(RESDIR)/vim/runtime
+
+bundle-executable {virtual}: $(VIMTARGET)
+        :mkdir {r}{f} $(APPDIR)/Contents/MacOS
+        :copy $(VIMTARGET) $(APPDIR)/Contents/MacOS/$(VIMTARGET)
+
+bundle-info {virtual}:  bundle-dir
+        :print Creating PkgInfo
+        :print "APPLVIM!" >! $(APPDIR)/Contents/PkgInfo
+        :print Creating Info.plist
+        :sys m4 $(M4FLAGSX) infplist.xml > $(APPDIR)/Contents/Info.plist
+
+bundle-resource {virtual}: bundle-dir bundle-icons bundle-rsrc
+
+bundle-icons {virtual}: $ICONS
+
+### Classic resources
+# Resource fork (in the form of a .rsrc file) for Classic Vim (Mac OS 9)
+# This file is also required for OS X Vim.
+bundle-rsrc {virtual}: os_mac.rsr.hqx
+    :print Creating resource fork
+    :sys python dehqx.py $source
+    :del {force} gui_mac.rsrc
+    :move gui_mac.rsrc.rsrcfork $(RESDIR)/$(VIMNAME).rsrc
+
+# po/Make_osx.pl says something about generating a Mac message file
+# for Ukrananian.  Would somebody using Mac OS X in Ukranian
+# *really* be upset that Carbon Vim was not localised in
+# Ukranian?
+#
+#bundle-language: bundle-dir po/Make_osx.pl
+#	cd po && perl Make_osx.pl --outdir ../$(RESDIR) $(MULTILANG)
+bundle-language {virtual}: bundle-dir
+
+$(APPDIR)/Contents:
+    :mkdir {r} $(APPDIR)/Contents/MacOS
+    :mkdir {r} $(RESDIR)/English.lproj
+
+$ICONS: $ICON_APP
+    :copy $source $target
+
 
 # vim: sts=4 sw=4 :
