Mercurial > vim
view src/main.aap @ 2894:fe9c7da98b5e v7.3.220
updated for version 7.3.220
Problem: Python 3: vim.error is a 'str' instead of an 'Exception' object,
so 'except' or 'raise' it causes a 'SystemError' exception.
Buffer objects do not support slice assignment.
When exchanging text between Vim and Python, multibyte texts become
gabage or cause Unicode Expceptions, etc.
'py3file' tries to read in the file as Unicode, sometimes causes
UnicodeDecodeException
Solution: Fix the problems. (lilydjwg)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Sun, 19 Jun 2011 00:27:51 +0200 |
parents | 073ff46fe397 |
children | 04736b4030ec |
line wrap: on
line source
# A-A-P recipe for building Vim # # There are no user choices in here! # Put configure arguments in the file config.arg. # Later there will be a config.txt file that contains examples and # explanations. # # Optional arguments: # PREFIX=dir Overrules the install directory. # 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. @if ((_no.TARGETARG != "pathdef" and has_build_target()) @ or not os.path.exists("auto/config.aap")): # # A U T O C O N F # # Run autoconf when configure.in has been changed since it was last run. # This is skipped when the signatures in "mysign" are up-to-date. When # there is no autoconf program skip this (the signature is often the only # thing that's outdated) auto/configure {signfile = mysign} : configure.in @if not program_path("autoconf"): :print Can't find autoconf, using existing configure script. @else: # Move configure aside, autoconf would overwrite it :move {exist} configure configure.save :sys autoconf :cat configure | :eval re.sub('\\./config.log', 'auto/config.log', stdin) | :eval re.sub('>config.log', '>auto/config.log', stdin) >! auto/configure :chmod 755 auto/configure :move configure.save configure :del {force} auto/config.cache auto/config.status # Change the configure script to produce config.aap instead of config.mk. auto/configure.aap : auto/configure :print Adjusting auto/configure for A-A-P. :cat auto/configure | :eval re.sub("config.mk", "config.aap", stdin) >! auto/configure.aap :chmod 755 auto/configure.aap # The configure script uses the directory where it's located, use a link. configure.aap: {buildcheck=} :symlink {f} auto/configure.aap configure.aap # 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 # Use "uname -a" to detect the architecture of the system. @ok, uname = redir_system('uname -a', 0) @if string.find(uname, "i386") >= 0: @ arch = "i386" @else: @ arch = "ppc" :print Building for $arch system config_args = `file2string("config.arg")` :sys CONFIG_STATUS=auto/config.status ./configure.aap $config_args --with-mac-arch=$arch --cache-file=auto/config.cache # Configure arguments: create an empty "config.arg" file when its missing config.arg: :touch {exist} config.arg # "auto/config.aap" contains a lot of settings, such as the name of the # executable "Target". # First update it, forcefully if the "reconfig" target was used. @if _no.TARGETARG != "comment" and _no.TARGETARG != "make": @if "reconfig" in var2list(_no.TARGETARG): :del {force} auto/config.cache auto/config.status :update {force} auto/config.aap @else: :update auto/config.aap # Include the recipe that autoconf generated. :include auto/config.aap # Unfortunately "-M" doesn't work when building for two architectures. Switch # back to PPC only. @if string.find(_no.CPPFLAGS, "-arch i386 -arch ppc") >= 0: CPPFLAGS = `string.replace(_no.CPPFLAGS, "-arch i386 -arch ppc", "-arch ppc")` # A "PREFIX=dir" argument overrules the value of $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 # # The GUI is selected by configure, a lot of other things depend on it. # :variant GUI GTK GUI_SRC = gui.c gui_gtk.c gui_gtk_x11.c pty.c gui_beval.c gui_gtk_f.c GUI_OBJ = GUI_DEFS = -DFEAT_GUI_GTK $NARROW_PROTO GUI_IPATH = $GUI_INC_LOC GUI_LIBS_DIR = $GUI_LIB_LOC GUI_LIBS1 = GUI_LIBS2 = $GTK_LIBNAME GUI_INSTALL = install_normal GUI_TARGETS = installglinks 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 GUI_OBJ = GUI_DEFS = -DFEAT_GUI_MOTIF $NARROW_PROTO GUI_IPATH = $GUI_INC_LOC GUI_LIBS_DIR = $GUI_LIB_LOC GUI_LIBS1 = GUI_LIBS2 = $MOTIF_LIBNAME -lXt GUI_INSTALL = install_normal GUI_TARGETS = installglinks 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 GUI_SRC = gui.c gui_athena.c gui_x11.c pty.c gui_beval.c \ gui_at_sb.c gui_at_fs.c GUI_OBJ = GUI_DEFS = -DFEAT_GUI_ATHENA $NARROW_PROTO GUI_IPATH = $GUI_INC_LOC GUI_LIBS_DIR = $GUI_LIB_LOC GUI_LIBS1 = $XAW_LIB GUI_LIBS2 = -lXt GUI_INSTALL = install_normal GUI_TARGETS = installglinks 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 GUI_SRC = gui.c gui_athena.c gui_x11.c pty.c gui_beval.c gui_at_fs.c GUI_OBJ = GUI_DEFS = -DFEAT_GUI_ATHENA -DFEAT_GUI_NEXTAW $NARROW_PROTO GUI_IPATH = $GUI_INC_LOC GUI_LIBS_DIR = $GUI_LIB_LOC GUI_LIBS1 = $NEXTAW_LIB GUI_LIBS2 = -lXt GUI_INSTALL = install_normal GUI_TARGETS = installglinks 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 = GUI_DEFS = -DFEAT_GUI_PHOTON GUI_IPATH = GUI_LIBS_DIR = GUI_LIBS1 = -lph -lphexlib GUI_LIBS2 = GUI_INSTALL = install_normal GUI_TARGETS = installglinks GUI_MAN_TARGETS = yes GUI_TESTTARGET = gui GUI_BUNDLE = GUI_TESTARG = * GUI_SRC = GUI_OBJ = GUI_DEFS = GUI_IPATH = 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) POST_DEFS = $X_CFLAGS $LUA_CFLAGS $MZSCHEME_CFLAGS $PERL_CFLAGS $PYTHON_CFLAGS $TCL_CFLAGS $RUBY_CFLAGS $?(EXTRA_DEFS) CFLAGS = $PRE_DEFS $CONF_CFLAGS $?(PROFILE_CFLAGS) $POST_DEFS CPPFLAGS = ALL_LIB_DIRS = $GUI_LIBS_DIR $X_LIBS_DIR LDFLAGS = $ALL_LIB_DIRS $CONF_LDFLAGS LIBS = $GUI_LIBS1 $GUI_X_LIBS $GUI_LIBS2 $X_PRE_LIBS $X_LIBS $X_EXTRA_LIBS $CONF_LIBS $?(EXTRA_LIBS) $LUA_LIBS $MZSCHEME_LIBS $PERL_LIBS $PYTHON_LIBS $TCL_LIBS $RUBY_LIBS $?(PROFILE_LIBS) Target = $VIMNAME # 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. # # This will produce a lot of garbage on your screen, including a few error # messages. Don't worry about that. # If there is a real error, there will be a difference between "test.out" and # a "test99.ok" file. # If everything is alright, the final message will be "ALL DONE". If not you # get "TEST FAILURE". # test check: VimProg = ../$Target :execute testdir/main.aap $GUI_TESTTARGET $GUI_TESTARG testclean {virtual}: :del {force} testdir/*.out testdir/test.log # When no fetch target exists we are not a child of the ../main.aap recipe, # Use ../main.aap to do the fetching. # --- If you get an error here for wrong number of arguments, you need to # update to a newer version of A-A-P. @if not has_target("fetch"): fetch: :execute ../main.aap fetch # All the source files that need to be compiled. # Some are optional and depend on configure. # "version.c" is missing, it's always compiled (see below). Source = blowfish.c buffer.c charset.c diff.c digraph.c edit.c eval.c ex_cmds.c ex_cmds2.c ex_docmd.c ex_eval.c ex_getln.c fileio.c fold.c getchar.c hardcopy.c hashtab.c if_cscope.c if_xcmdsrv.c main.c mark.c memfile.c memline.c menu.c message.c misc1.c misc2.c move.c mbyte.c normal.c ops.c option.c os_unix.c auto/pathdef.c popupmnu.c quickfix.c regexp.c screen.c search.c sha256.c spell.c syntax.c tag.c term.c ui.c undo.c window.c $OS_EXTRA_SRC $GUI_SRC $HANGULIN_SRC $LUA_SRC $MZSCHEME_SRC $PERL_SRC $NETBEANS_SRC $PYTHON_SRC $TCL_SRC $RUBY_SRC $SNIFF_SRC $WORKSHOP_SRC Objects = $GUI_OBJ # TODO: make is still used for subdirectories, need to write a recipe. MAKE ?= make all: $Target $GUI_BUNDLE # This dependency is required to build auto/osdef.h before automatic # dependencies are generated. $Source version.c : auto/osdef.h # Need to mention that the target also depends on version.c, since it's not # included in $Source $Target : version.c # Some sources are to be found in the "auto" directory. SRCPATH += auto # When building Vim always compile version.c to get the timestamp. :filetype declare my_prog :attr {filetype = my_prog} $Target :program $Target : $Source $Objects :action build my_prog object version_obj = `src2obj("version.c")` :do compile {target = $version_obj} version.c #:do build {target = $target {filetype = program}} $source $version_obj link_sed = $BDIR/link.sed @if os.path.exists(link_sed): :move {force} $link_sed auto/link.sed @else: :del {force} auto/link.sed :update link2.sh :sys LINK="$?(PURIFY) $?(SHRPENV) $CC $LDFLAGS \ -o $target $source $version_obj $LIBS" \ MAKE="aap" sh ./link2.sh :copy {force} auto/link.sed $BDIR/link.sed # "link.sh" must be modified for A-A-P link2.sh : link.sh :print Adjusting $-source for A-A-P. :cat $source | :eval re.sub("objects/pathdef.o", "pathdef", stdin) >! $target xxd/xxd$EXESUF: xxd/xxd.c :sys cd xxd; CC="$CC" CFLAGS="$CPPFLAGS $CFLAGS" \ $MAKE -f Makefile # Build the language specific files if they were unpacked. # Generate the converted .mo files separately, it's no problem if this fails. languages {virtual}: @if _no.MAKEMO: :sys cd $PODIR; CC="$CC" $MAKE prefix=$DESTDIR$prefix @try: :sys cd $PODIR; CC="$CC" $MAKE prefix=$DESTDIR$prefix converted @except: :print Generated converted language files failed, continuing # Update the *.po files for changes in the sources. Only run manually. update-po {virtual}: cd $PODIR; CC="$CC" $MAKE prefix=$DESTDIR$prefix update-po auto/if_perl.c: if_perl.xs :sys $PERL -e 'unless ( $$] >= 5.005 ) { for (qw(na defgv errgv)) { print "#define PL_$$_ $$_\n" }}' > $target :sys $PERL $PERLLIB/ExtUtils/xsubpp -prototypes -typemap \ $PERLLIB/ExtUtils/typemap if_perl.xs >> $target auto/osdef.h: auto/config.h osdef.sh osdef1.h.in osdef2.h.in :sys CC="$CC $CFLAGS" srcdir=$srcdir sh $srcdir/osdef.sh pathdef {virtual} : $BDIR/auto/pathdef$OBJSUF auto/pathdef.c: auto/config.aap :print Creating $target :print >! $target /* pathdef.c */ :print >> $target /* This file is automatically created by main.aap */ :print >> $target /* DO NOT EDIT! Change main.aap only. */ :print >> $target $#include "vim.h" :print >> $target char_u *default_vim_dir = (char_u *)"$VIMRCLOC"; :print >> $target char_u *default_vimruntime_dir = (char_u *)"$?VIMRUNTIMEDIR"; v = $CC -c -I$srcdir $CFLAGS @v = string.replace(v, '"', '\\"') :print >> $target char_u *all_cflags = (char_u *)"$v"; linkcmd = $CC $LDFLAGS -o $VIMTARGET $LIBS link_sed = $BDIR/link.sed @if os.path.exists(link_sed): # filter $linkcmd through $BDIR/link.sed :print $linkcmd | :syseval sed -f $link_sed | :eval re.sub("\n", "", stdin) | :assign linkcmd @linkcmd = string.replace(linkcmd, '"', '\\"') :print >> $target char_u *all_lflags = (char_u *)"$linkcmd"; @if _no.get("COMPILEDBY"): who = $COMPILEDBY where = @else: :syseval whoami | :eval re.sub("\n", "", stdin) | :assign who :syseval hostname | :eval re.sub("\n", "", stdin) | :assign where @who = string.replace(who, '"', '\\"') @where = string.replace(where, '"', '\\"') :print >> $target char_u *compiled_user = (char_u *)"$who"; :print >> $target char_u *compiled_sys = (char_u *)"$where"; ### Names of the tools that are also made TOOLS = xxd/xxd$EXESUF # Root of the installation tree. Empty for a normal install, set to an # existing path to install into a special place (for generating a package). DESTDIR ?= ### 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!) VIMDIR = /vim @r = re.compile('.*VIM_VERSION_NODOT\\s*"(vim\\d\\d[^"]*)".*', re.S) VIMRTDIR = /`r.match(open("version.h").read()).group(1)` HELPSUBDIR = /doc COLSUBDIR = /colors SYNSUBDIR = /syntax INDSUBDIR = /indent AUTOSUBDIR = /autoload PLUGSUBDIR = /plugin FTPLUGSUBDIR = /ftplugin LANGSUBDIR = /lang COMPSUBDIR = /compiler KMAPSUBDIR = /keymap MACROSUBDIR = /macros TOOLSSUBDIR = /tools TUTORSUBDIR = /tutor SPELLSUBDIR = /spell PRINTSUBDIR = /print PODIR = po ### VIMLOC common root of the Vim files (all versions) ### VIMRTLOC common root of the runtime Vim files (this version) ### VIMRCLOC compiled-in location for global [g]vimrc files (all versions) ### VIMRUNTIMEDIR compiled-in location for runtime files (optional) ### HELPSUBLOC location for help files ### COLSUBLOC location for colorscheme files ### SYNSUBLOC location for syntax files ### INDSUBLOC location for indent files ### AUTOSUBLOC location for standard autoload files ### PLUGSUBLOC location for standard plugin files ### FTPLUGSUBLOC location for ftplugin files ### LANGSUBLOC location for language files ### COMPSUBLOC location for compiler files ### KMAPSUBLOC location for keymap files ### MACROSUBLOC location for macro files ### TOOLSSUBLOC location for tools files ### TUTORSUBLOC location for tutor files ### PRINTSUBLOC location for print files ### SCRIPTLOC location for script files (menu.vim, bugreport.vim, ..) ### You can override these if you want to install them somewhere else. ### Edit feature.h for compile-time settings. VIMLOC = $DATADIR$VIMDIR @if not _no.get("VIMRTLOC"): VIMRTLOC = $DATADIR$VIMDIR$VIMRTDIR VIMRCLOC = $VIMLOC HELPSUBLOC = $VIMRTLOC$HELPSUBDIR COLSUBLOC = $VIMRTLOC$COLSUBDIR SYNSUBLOC = $VIMRTLOC$SYNSUBDIR INDSUBLOC = $VIMRTLOC$INDSUBDIR AUTOSUBLOC = $VIMRTLOC$AUTOSUBDIR PLUGSUBLOC = $VIMRTLOC$PLUGSUBDIR FTPLUGSUBLOC = $VIMRTLOC$FTPLUGSUBDIR LANGSUBLOC = $VIMRTLOC$LANGSUBDIR COMPSUBLOC = $VIMRTLOC$COMPSUBDIR KMAPSUBLOC = $VIMRTLOC$KMAPSUBDIR MACROSUBLOC = $VIMRTLOC$MACROSUBDIR TOOLSSUBLOC = $VIMRTLOC$TOOLSSUBDIR TUTORSUBLOC = $VIMRTLOC$TUTORSUBDIR SPELLSUBLOC = $VIMRTLOC$SPELLSUBDIR PRINTSUBLOC = $VIMRTLOC$PRINTSUBDIR SCRIPTLOC = $VIMRTLOC ### Only set VIMRUNTIMEDIR when VIMRTLOC is set to a different location and ### the runtime directory is not below it. #VIMRUNTIMEDIR = $VIMRTLOC ### Name of the evim file target. EVIM_FILE = $DESTDIR$SCRIPTLOC/evim.vim MSWIN_FILE = $DESTDIR$SCRIPTLOC/mswin.vim ### Name of the menu file target. SYS_MENU_FILE = $DESTDIR$SCRIPTLOC/menu.vim SYS_SYNMENU_FILE = $DESTDIR$SCRIPTLOC/synmenu.vim SYS_DELMENU_FILE = $DESTDIR$SCRIPTLOC/delmenu.vim ### Name of the bugreport file target. SYS_BUGR_FILE = $DESTDIR$SCRIPTLOC/bugreport.vim ### Name of the file type detection file target. SYS_FILETYPE_FILE = $DESTDIR$SCRIPTLOC/filetype.vim ### Name of the file type detection file target. SYS_FTOFF_FILE = $DESTDIR$SCRIPTLOC/ftoff.vim ### Name of the file type detection script file target. SYS_SCRIPTS_FILE = $DESTDIR$SCRIPTLOC/scripts.vim ### Name of the ftplugin-on file target. SYS_FTPLUGIN_FILE = $DESTDIR$SCRIPTLOC/ftplugin.vim ### Name of the ftplugin-off file target. SYS_FTPLUGOF_FILE = $DESTDIR$SCRIPTLOC/ftplugof.vim ### Name of the indent-on file target. SYS_INDENT_FILE = $DESTDIR$SCRIPTLOC/indent.vim ### Name of the indent-off file target. SYS_INDOFF_FILE = $DESTDIR$SCRIPTLOC/indoff.vim ### Name of the option window script file target. SYS_OPTWIN_FILE = $DESTDIR$SCRIPTLOC/optwin.vim ### Permissions for binaries BINMOD = 755 ### Permissions for man page MANMOD = 644 ### Permissions for help files HELPMOD = 644 ### Permissions for Perl and shell scripts SCRIPTMOD = 755 ### Permission for Vim script files (menu.vim, bugreport.vim, ..) VIMSCRIPTMOD = 644 ### Permissions for all directories that are created DIRMOD = 755 ### Permissions for all other files that are created FILEMOD = 644 # Where to copy the man and help files from HELPSOURCE = ../runtime/doc # Where to copy the script files from (menu, bugreport) SCRIPTSOURCE = ../runtime # Where to copy the colorscheme files from COLSOURCE = ../runtime/colors # Where to copy the syntax files from SYNSOURCE = ../runtime/syntax # Where to copy the indent files from INDSOURCE = ../runtime/indent # Where to copy the standard plugin files from AUTOSOURCE = ../runtime/autoload # Where to copy the standard plugin files from PLUGSOURCE = ../runtime/plugin # Where to copy the ftplugin files from FTPLUGSOURCE = ../runtime/ftplugin # Where to copy the macro files from MACROSOURCE = ../runtime/macros # Where to copy the tools files from TOOLSSOURCE = ../runtime/tools # 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 # Where to look for compiler files COMPSOURCE = ../runtime/compiler # Where to look for keymap files KMAPSOURCE = ../runtime/keymap # Where to look for print resource files PRINTSOURCE = ../runtime/print # abbreviations DEST_BIN = $DESTDIR$BINDIR DEST_VIM = $DESTDIR$VIMLOC DEST_RT = $DESTDIR$VIMRTLOC DEST_HELP = $DESTDIR$HELPSUBLOC DEST_COL = $DESTDIR$COLSUBLOC DEST_SYN = $DESTDIR$SYNSUBLOC DEST_IND = $DESTDIR$INDSUBLOC DEST_AUTO = $DESTDIR$AUTOSUBLOC DEST_PLUG = $DESTDIR$PLUGSUBLOC DEST_FTP = $DESTDIR$FTPLUGSUBLOC DEST_LANG = $DESTDIR$LANGSUBLOC DEST_COMP = $DESTDIR$COMPSUBLOC DEST_KMAP = $DESTDIR$KMAPSUBLOC 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_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_PL = $(DEST_MAN_TOP)/pl.ISO8859-2$(MAN1DIR) DEST_MAN_PL_U = $(DEST_MAN_TOP)/pl.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_AUTO/xml $DEST_PLUG $DEST_FTP $DEST_LANG $DEST_COMP $DEST_KMAP $DEST_MACRO $DEST_TOOLS $DEST_TUTOR $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_PL $DEST_MAN_PL_U $DEST_MAN_RU $DEST_MAN_RU_U # # I N S T A L L # install: $GUI_INSTALL install_normal: @if not os.path.isdir(_no.DEST_BIN): @try: :mkdir $DEST_BIN @except: @ pass @if os.access(_no.DEST_BIN, os.W_OK): # Bin directory is writable, install directly. :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. :print If this is the wrong directory, use PREFIX to specify another one. :print Otherwise, type the root password to continue installing. :asroot $AAP install installvim {virtual}: installvimbin installtutorbin \ installruntime installlinks installmanlinks installvimbin {virtual}{force}: $Target $DEST_BIN exe = $DEST_BIN/$VIMTARGET @if os.path.exists(exe): # Move the old executable aside and delete it. Any other method # may cause a crash if the executable is currently being used. :move {force} $exe $(exe).rm :del {force} $(exe).rm :copy $VIMTARGET $DEST_BIN :do strip $exe :chmod $BINMOD $DEST_BIN/$VIMTARGET # may create a link to the new executable from /usr/bin/vi @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 installrtbase {virtual}{force}: $HELPSOURCE/vim.1 $DEST_VIM $DEST_RT $DEST_HELP $DEST_COL $DEST_SYN $DEST_IND $DEST_FTP $DEST_AUTO $DEST_AUTO/xml $DEST_PLUG $DEST_TUTOR $DEST_COMP $DEST_SPELL $DEST_PRINT :chmod 755 installman.sh :sys ./installman.sh install $(DEST_MAN) "" $(INSTALLMANARGS) :cd $HELPSOURCE @try: XTRA = `glob.glob("*.??x")` `glob.glob("tags-??")` @except: XTRA = # It's OK if there are no matches. :copy *.txt tags $XTRA $DEST_HELP :cd - :cd $DEST_HELP :chmod $HELPMOD *.txt tags $XTRA :cd - :copy $HELPSOURCE/*.pl $DEST_HELP :chmod $SCRIPTMOD $DEST_HELP/*.pl # install the menu files :copy $SCRIPTSOURCE/menu.vim $SYS_MENU_FILE :chmod $VIMSCRIPTMOD $SYS_MENU_FILE :copy $SCRIPTSOURCE/synmenu.vim $SYS_SYNMENU_FILE :chmod $VIMSCRIPTMOD $SYS_SYNMENU_FILE :copy $SCRIPTSOURCE/delmenu.vim $SYS_DELMENU_FILE :chmod $VIMSCRIPTMOD $SYS_DELMENU_FILE # install the evim file :copy $SCRIPTSOURCE/mswin.vim $MSWIN_FILE :chmod $VIMSCRIPTMOD $MSWIN_FILE :copy $SCRIPTSOURCE/evim.vim $EVIM_FILE :chmod $VIMSCRIPTMOD $EVIM_FILE # install the bugreport file :copy $SCRIPTSOURCE/bugreport.vim $SYS_BUGR_FILE :chmod $VIMSCRIPTMOD $SYS_BUGR_FILE # install the example vimrc files :copy $SCRIPTSOURCE/vimrc_example.vim $DEST_SCRIPT :chmod $VIMSCRIPTMOD $DEST_SCRIPT/vimrc_example.vim :copy $SCRIPTSOURCE/gvimrc_example.vim $DEST_SCRIPT :chmod $VIMSCRIPTMOD $DEST_SCRIPT/gvimrc_example.vim # install the file type detection files :copy $SCRIPTSOURCE/filetype.vim $SYS_FILETYPE_FILE :chmod $VIMSCRIPTMOD $SYS_FILETYPE_FILE :copy $SCRIPTSOURCE/ftoff.vim $SYS_FTOFF_FILE :chmod $VIMSCRIPTMOD $SYS_FTOFF_FILE :copy $SCRIPTSOURCE/scripts.vim $SYS_SCRIPTS_FILE :chmod $VIMSCRIPTMOD $SYS_SCRIPTS_FILE :copy $SCRIPTSOURCE/ftplugin.vim $SYS_FTPLUGIN_FILE :chmod $VIMSCRIPTMOD $SYS_FTPLUGIN_FILE :copy $SCRIPTSOURCE/ftplugof.vim $SYS_FTPLUGOF_FILE :chmod $VIMSCRIPTMOD $SYS_FTPLUGOF_FILE :copy $SCRIPTSOURCE/indent.vim $SYS_INDENT_FILE :chmod $VIMSCRIPTMOD $SYS_INDENT_FILE :copy $SCRIPTSOURCE/indoff.vim $SYS_INDOFF_FILE :chmod $VIMSCRIPTMOD $SYS_INDOFF_FILE :copy $SCRIPTSOURCE/optwin.vim $SYS_OPTWIN_FILE :chmod $VIMSCRIPTMOD $SYS_OPTWIN_FILE # install the print resource files :copy $PRINTSOURCE/*.ps $DEST_PRINT :chmod $FILEMOD $DEST_PRINT/*.ps # install the colorscheme files :copy $COLSOURCE/*.vim $COLSOURCE/README.txt $DEST_COL :chmod $HELPMOD $DEST_COL/*.vim $DEST_COL/README.txt # install the syntax files :copy $SYNSOURCE/*.vim $SYNSOURCE/README.txt $DEST_SYN :chmod $HELPMOD $DEST_SYN/*.vim $DEST_SYN/README.txt # install the indent files :copy $INDSOURCE/*.vim $INDSOURCE/README.txt $DEST_IND :chmod $HELPMOD $DEST_IND/*.vim # install the standard autoload files :copy $AUTOSOURCE/*.vim $AUTOSOURCE/README.txt $DEST_AUTO :chmod $HELPMOD $DEST_AUTO/*.vim $DEST_AUTO/README.txt :copy $AUTOSOURCE/xml/*.vim $DEST_AUTO/xml :chmod $HELPMOD $DEST_AUTO/xml/*.vim # install the standard plugin files :copy $PLUGSOURCE/*.vim $PLUGSOURCE/README.txt $DEST_PLUG :chmod $HELPMOD $DEST_PLUG/*.vim $DEST_PLUG/README.txt # install the ftplugin files :copy $FTPLUGSOURCE/*.vim $FTPLUGSOURCE/README.txt $DEST_FTP :chmod $HELPMOD $DEST_FTP/*.vim $DEST_FTP/README.txt # install the compiler files :copy $COMPSOURCE/*.vim $COMPSOURCE/README.txt $DEST_COMP :chmod $HELPMOD $DEST_COMP/*.vim $DEST_COMP/README.txt installmacros {virtual}{force}: $MACROSOURCE $DEST_VIM $DEST_RT $DEST_MACRO :copy {recursive}{force} $MACROSOURCE/* $DEST_MACRO # Delete any CVS and AAPDIR directories. # Use the ":tree" command if possible. It was added later, fall back # to using "find" when it doesn't work. @try: :tree $DEST_MACRO {dirname = CVS} :del {recursive} $name :tree $DEST_MACRO {dirname = AAPDIR} :del {recursive} $name :tree $DEST_MACRO {dirname = .*} :chmod $DIRMOD $name :tree $DEST_MACRO {filename = .*} :chmod $FILEMOD $name @except: @ ok, cvsdirs = redir_system('find %s -name CVS -print' % _no.DEST_MACRO) @ if ok and cvsdirs: :del {recursive} $cvsdirs :sys chmod $DIRMOD ``find $DEST_MACRO -type d -print`` :sys chmod $FILEMOD ``find $DEST_MACRO -type f -print`` :chmod $SCRIPTMOD $DEST_MACRO/less.sh # install the tutor files 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 \ $INSTALL_TOOL_LANGS xxd = $DEST_BIN/xxd$EXESUF @if os.path.exists(xxd): :move {force} $xxd $(xxd).rm :del $(xxd).rm :copy xxd/xxd$EXESUF $DEST_BIN :do strip $DEST_BIN/xxd$EXESUF :chmod $BINMOD $DEST_BIN/xxd$EXESUF :chmod 755 installman.sh :sys ./installman.sh xxd $(DEST_MAN) "" $(INSTALLMANARGS) # # install the runtime tools @try: @ if aap_has(":tree"): # New method: copy everything and delete CVS and AAPDIR dirs :copy {recursive} $TOOLSSOURCE/* $DEST_TOOLS :tree $DEST_TOOLS {dirname = CVS} :delete {recursive} $name :tree $DEST_TOOLS {dirname = AAPDIR} :delete {recursive} $name @except: # Old method: copy only specific files and directories. :copy {recursive} $TOOLSSOURCE/README.txt $TOOLSSOURCE/[a-z]* $DEST_TOOLS :chmod $FILEMOD $DEST_TOOLS/* # replace the path in some tools :progsearch perlpath perl @if perlpath: :cat $TOOLSSOURCE/efm_perl.pl | :eval re.sub("/usr/bin/perl", perlpath, stdin) >! $DEST_TOOLS/efm_perl.pl @else: :copy $TOOLSSOURCE/efm_perl.pl $DEST_TOOLS :progsearch awkpath nawk gawk awk @if awkpath: :cat $TOOLSSOURCE/mve.awk | :eval re.sub("/usr/bin/nawk", awkpath, stdin) >! $DEST_TOOLS/mve.awk @else: :copy $TOOLSSOURCE/mve.awk $DEST_TOOLS :sys chmod $SCRIPTMOD ``grep -l "^#!" $DEST_TOOLS/*`` # install the language specific files for tools, if they were unpacked install-tool-languages: :chmod 755 installman.sh :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_PL) "-pl" $(INSTALLMANARGS) :sys ./installman.sh xxd $(DEST_MAN_PL_U) "-pl.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 :chmod 755 installman.sh :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_PL) "-pl" $(INSTALLMANARGS) :sys ./installman.sh install $(DEST_MAN_PL_U) "-pl.UTF-8" $(INSTALLMANARGS) :sys ./installman.sh install $(DEST_MAN_RU) "-ru" $(INSTALLMANARGS) :sys ./installman.sh install $(DEST_MAN_RU_U) "-ru.UTF-8" $(INSTALLMANARGS) :chmod 755 installml.sh :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_PL) $(INSTALLMLARGS) :sys ./installml.sh install "$(GUI_MAN_TARGETS)" \ $(DEST_MAN_PL_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 @if os.path.exists(_no.LANGSOURCE): :print installing language files :copy $LANGSOURCE/README.txt $LANGSOURCE/*.vim $DEST_LANG :chmod $FILEMOD $DEST_LANG/*.vim @if os.path.exists(_no.KMAPSOURCE): :copy $KMAPSOURCE/README.txt $KMAPSOURCE/*.vim $DEST_KMAP :chmod $FILEMOD $DEST_KMAP/*.vim # install the icons for KDE, if the directory exists and the icon doesn't. ICON48PATH = $DESTDIR$DATADIR/icons/hicolor/48x48/apps ICON32PATH = $DESTDIR$DATADIR/icons/locolor/32x32/apps ICON16PATH = $DESTDIR$DATADIR/icons/locolor/16x16/apps KDEPATH = $HOME/.kde/share/icons install-icons {virtual}: gp = $ICON48PATH/gvim.png @if os.path.isdir(_no.ICON48PATH) and not os.path.exists(gp): :copy $SCRIPTSOURCE/vim48x48.png $gp gp = $ICON32PATH/gvim.png @if os.path.isdir(_no.ICON32PATH) and not os.path.exists(gp): :copy $SCRIPTSOURCE/vim32x32.png $gp gp = $ICON16PATH/gvim.png @if os.path.isdir(_no.ICON16PATH) and not os.path.exists(gp): :copy $SCRIPTSOURCE/vim16x16.png $gp $HELPSOURCE/vim.1 $MACROSOURCE $TOOLSSOURCE: @if not os.path.exists(_no.TOOLSSOURCE): :print Runtime files not found. :error You need to unpack the runtime archive before running "make install". # create links from various names to vim. This is only done when the links # (or executables with the same name) don't exist yet. installlinks {virtual}: $GUI_TARGETS \ $DEST_BIN/$EXTARGET \ $DEST_BIN/$VIEWTARGET \ $DEST_BIN/$RVIMTARGET \ $DEST_BIN/$RVIEWTARGET \ $INSTALLVIMDIFF installglinks {virtual}: $DEST_BIN/$GVIMTARGET \ $DEST_BIN/$GVIEWTARGET \ $DEST_BIN/$RGVIMTARGET \ $DEST_BIN/$RGVIEWTARGET \ $DEST_BIN/$EVIMTARGET \ $DEST_BIN/$EVIEWTARGET \ $INSTALLGVIMDIFF installvimdiff {virtual}: $DEST_BIN/$VIMDIFFTARGET installgvimdiff {virtual}: $DEST_BIN/$GVIMDIFFTARGET # These dependencies use an empty buildcheck so that they are only done when # the target doesn't exist. $DEST_BIN/$EXTARGET: {buildcheck = } :sys cd $DEST_BIN; ln -s $VIMTARGET $EXTARGET $DEST_BIN/$VIEWTARGET: {buildcheck = } :sys cd $DEST_BIN; ln -s $VIMTARGET $VIEWTARGET $DEST_BIN/$GVIMTARGET: {buildcheck = } :sys cd $DEST_BIN; ln -s $VIMTARGET $GVIMTARGET $DEST_BIN/$GVIEWTARGET: {buildcheck = } :sys cd $DEST_BIN; ln -s $VIMTARGET $GVIEWTARGET $DEST_BIN/$RVIMTARGET: {buildcheck = } :sys cd $DEST_BIN; ln -s $VIMTARGET $RVIMTARGET $DEST_BIN/$RVIEWTARGET: {buildcheck = } :sys cd $DEST_BIN; ln -s $VIMTARGET $RVIEWTARGET $DEST_BIN/$RGVIMTARGET: {buildcheck = } :sys cd $DEST_BIN; ln -s $VIMTARGET $RGVIMTARGET $DEST_BIN/$RGVIEWTARGET: {buildcheck = } :sys cd $DEST_BIN; ln -s $VIMTARGET $RGVIEWTARGET $DEST_BIN/$VIMDIFFTARGET: {buildcheck = } :sys cd $DEST_BIN; ln -s $VIMTARGET $VIMDIFFTARGET $DEST_BIN/$GVIMDIFFTARGET: {buildcheck = } :sys cd $DEST_BIN; ln -s $VIMTARGET $GVIMDIFFTARGET $DEST_BIN/$EVIMTARGET: {buildcheck = } :sys cd $DEST_BIN; ln -s $VIMTARGET $EVIMTARGET $DEST_BIN/$EVIEWTARGET: {buildcheck = } :sys cd $DEST_BIN; ln -s $VIMTARGET $EVIEWTARGET # 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. INSTALLMLARGS = $(VIMNAME) $(VIMDIFFNAME) $(EVIMNAME) \ $(EXNAME) $(VIEWNAME) $(RVIMNAME) $(RVIEWNAME) \ $(GVIMNAME) $(GVIEWNAME) $(RGVIMNAME) $(RGVIEWNAME) \ $(GVIMDIFFNAME) $(EVIEWNAME) installmanlinks {virtual}: :chmod 755 installml.sh :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_BIN/vimtutor :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_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}: :chmod 755 installman.sh :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_PL) "" $(INSTALLMANARGS) :sys ./installman.sh uninstall $(DEST_MAN_PL_U) "" $(INSTALLMANARGS) :sys ./installman.sh uninstall $(DEST_MAN_RU) "" $(INSTALLMANARGS) :sys ./installman.sh uninstall $(DEST_MAN_RU_U) "" $(INSTALLMANARGS) :chmod 755 installml.sh :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_PL) $(INSTALLMLARGS) :sys ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \ $(DEST_MAN_PL_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_PL)/xxd.1 $(DEST_MAN_PL_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 :del {force} $DEST_SCRIPT/gvimrc_example.vim $DEST_SCRIPT/vimrc_example.vim :del {force} $SYS_FILETYPE_FILE $SYS_FTOFF_FILE $SYS_SCRIPTS_FILE :del {force} $SYS_INDOFF_FILE $SYS_INDENT_FILE :del {force} $SYS_FTPLUGOF_FILE $SYS_FTPLUGIN_FILE :del {force} $SYS_OPTWIN_FILE :del {force} $DEST_COL/*.vim $DEST_COL/README.txt :del {force} $DEST_SYN/*.vim $DEST_SYN/README.txt :del {force} $DEST_IND/*.vim $DEST_IND/README.txt :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 :del {force}{recursive} $DEST_COMP :deldir {force} $DEST_HELP $DEST_COL $DEST_SYN $DEST_IND :del {force}{recursive} $DEST_FTP/*.vim $DEST_FTP/README.txt :del {force} $DEST_AUTO/*.vim $DEST_AUTO/README.txt $DEST_AUTO/xml/*.vim :del {force} $DEST_PLUG/*.vim $DEST_PLUG/README.txt :deldir {force} $DEST_FTP $DEST_AUTO/xml $DEST_AUTO $DEST_PLUG $DEST_PRINT $DEST_RT # This will fail when other Vim versions are installed, no worries. @try: :deldir $DEST_VIM @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)` ### Common flags M4FLAGSX = $?(M4FLAGS) -DAPP_EXE=$(VIMNAME) -DAPP_NAME=$(VIMNAME) \ -DAPP_VER=$(VERSION) # Resources used for the Mac are in one directory. RSRC_DIR = os_mac_rsrc :attr {directory = $DIRMOD} $RESDIR 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-rsrc :copy {force} $(RSRC_DIR)/*.icns $(RESDIR) ### 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 # vim: sts=4 sw=4 :