Mercurial > vim
view src/Make_bc5.mak @ 5899:60cdaa05a6ad v7.4.292
updated for version 7.4.292
Problem: Searching for "a" does not match accented "a" with new regexp
engine, does match with old engine. (David B?rgin)
"ca" does not match "ca" with accented "a" with either engine.
Solution: Change the old engine, check for following composing character
also for single-byte patterns.
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Tue, 13 May 2014 18:04:00 +0200 |
parents | 2ca470c6096e |
children | ab71bb81b84e |
line wrap: on
line source
# # Makefile for Vim. # Compiler: Borland C++ 5.0 and later 32-bit compiler # Targets: Dos16 or Win32 (Windows NT and Windows 95) (with/without GUI) # # Contributed by Ben Singer. # Updated 4/1997 by Ron Aaron # 6/1997 - added support for 16 bit DOS # Note: this has been tested, and works, for BC5. Your mileage may vary. # Has been reported NOT to work with BC 4.52. Maybe it can be fixed? # 10/1997 - ron - fixed bugs w/ BC 5.02 # 8/1998 - ron - updated with new targets, fixed some stuff # 3/2000 - Bram: Made it work with BC 5.5 free command line compiler, # cleaned up variables. # 6/2001 - Dan - Added support for compiling Python and TCL # 7/2001 - Dan - Added support for compiling Ruby # # It builds on Windows 95 and NT-Intel, producing the same binary in either # case. To build using Microsoft Visual C++, use Make_mvc.mak. # # This should work with the free Borland command line compiler, version 5.5. # You need at least sp1 (service pack 1). With sp2 it compiles faster. # Use a command like this: # <path>\bin\make /f Make_bc5.mak BOR=<path> # # let the make utility do the hard work: .AUTODEPEND .CACHEAUTODEPEND # VARIABLES: # name value (default) # # BOR path to root of Borland C install (c:\bc5) # LINK name of the linker ($(BOR)\bin\ilink if OSTYPE is DOS16, # $(BOR)\bin\ilink32 otherwise) # GUI no or yes: set to yes if you want the GUI version (yes) # LUA define to path to Lua dir to get Lua support (not defined) # LUA_VER define to version of Lua being used (51) # DYNAMIC_LUA no or yes: set to yes to load the Lua DLL dynamically (no) # PERL define to path to Perl dir to get Perl support (not defined) # PERL_VER define to version of Perl being used (56) # DYNAMIC_PERL no or yes: set to yes to load the Perl DLL dynamically (no) # PYTHON define to path to Python dir to get PYTHON support (not defined) # PYTHON_VER define to version of Python being used (22) # DYNAMIC_PYTHON no or yes: use yes to load the Python DLL dynamically (no) # PYTHON3 define to path to Python3 dir to get PYTHON3 support (not defined) # PYTHON3_VER define to version of Python3 being used (31) # DYNAMIC_PYTHON3 no or yes: use yes to load the Python3 DLL dynamically (no) # TCL define to path to TCL dir to get TCL support (not defined) # TCL_VER define to version of TCL being used (83) # DYNAMIC_TCL no or yes: use yes to load the TCL DLL dynamically (no) # RUBY define to path to Ruby dir to get Ruby support (not defined) # NOTE: You may have to remove the defines for uid_t and gid_t # from the Ruby config.h header file. # RUBY_VER define to version of Ruby being used (16) # NOTE: compilation on WinNT/2K/XP requires # at least version 1.6.5 of Ruby. Earlier versions # of Ruby will cause a compile error on these systems. # RUBY_VER_LONG same, but in format with dot. (1.6) # DYNAMIC_RUBY no or yes: use yes to load the Ruby DLL dynamically (no) # MBYTE no or yes: set to yes for multi-byte support (yes) # NOTE: multi-byte support is broken in the Borland libraries, # not everything will work properly! Esp. handling multi-byte # file names. # IME no or yes: set to yes for multi-byte IME support (yes) # DYNAMIC_IME no or yes: set to yes to load imm32.dll dynamically (yes) # GETTEXT no or yes: set to yes for multi-language support (yes) # ICONV no or yes: set to yes for dynamic iconv support (yes) # OLE no or yes: set to yes to make OLE gvim (no) # OSTYPE DOS16 or WIN32 (WIN32) # DEBUG no or yes: set to yes if you wish a DEBUGging build (no) # CODEGUARD no or yes: set to yes if you want to use CODEGUARD (no) # CPUNR 1 through 6: select -CPU argument to compile with (3) # 3 for 386, 4 for 486, 5 for pentium, 6 for pentium pro. # USEDLL no or yes: set to yes to use the Runtime library DLL (no) # For USEDLL=yes the cc3250.dll is required to run Vim. # VIMDLL no or yes: create vim32.dll, and stub (g)vim.exe (no) # ALIGN 1, 2 or 4: Alignment to use (4 for Win32, 2 for DOS16) # FASTCALL no or yes: set to yes to use register-based function protocol (yes) # OPTIMIZE SPACE, SPEED, or MAXSPEED: type of optimization (MAXSPEED) # POSTSCRIPT no or yes: set to yes for PostScript printing # FEATURES TINY, SMALL, NORMAL, BIG or HUGE # (BIG for WIN32, SMALL for DOS16) # WINVER 0x0400 or 0x0500: minimum Win32 version to support (0x0400) # CSCOPE no or yes: include support for Cscope interface (yes) # NETBEANS no or yes: include support for Netbeans interface (yes if GUI # is yes) # NBDEBUG no or yes: include support for debugging Netbeans interface (no) # XPM define to path to XPM dir to get support for loading XPM images. ### BOR: root of the BC installation !if ("$(BOR)"=="") BOR = c:\bc5 !endif ### LINK: Name of the linker: tlink or ilink32 (this is below, depends on # $(OSTYPE) ### GUI: yes for GUI version, no for console version !if ("$(GUI)"=="") GUI = yes !endif ### MBYTE: yes for multibyte support, no to disable it. !if ("$(MBYTE)"=="") MBYTE = yes !endif ### IME: yes for multibyte support, no to disable it. !if ("$(IME)"=="") IME = yes !endif !if ("$(DYNAMIC_IME)"=="") DYNAMIC_IME = yes !endif ### GETTEXT: yes for multilanguage support, no to disable it. !if ("$(GETTEXT)"=="") GETTEXT = yes !endif ### ICONV: yes to enable dynamic-iconv support, no to disable it !if ("$(ICONV)"=="") ICONV = yes !endif ### CSCOPE: yes to enable Cscope support, no to disable it !if ("$(CSCOPE)"=="") CSCOPE = yes !endif ### NETBEANS: yes to enable NetBeans interface support, no to disable it !if ("$(NETBEANS)"=="") && ("$(GUI)"=="yes") NETBEANS = yes !endif ### LUA: uncomment this line if you want lua support in vim # LUA=c:\lua ### PERL: uncomment this line if you want perl support in vim # PERL=c:\perl ### PYTHON: uncomment this line if you want python support in vim # PYTHON=c:\python22 ### PYTHON3: uncomment this line if you want python3 support in vim # PYTHON3=c:\python31 ### RUBY: uncomment this line if you want ruby support in vim # RUBY=c:\ruby ### TCL: uncomment this line if you want tcl support in vim # TCL=c:\tcl ### OLE: no for normal gvim, yes for OLE-capable gvim (only works with GUI) #OLE = yes ### OSTYPE: DOS16 for Windows 3.1 version, WIN32 for Windows 95/98/NT/2000 # version !if ("$(OSTYPE)"=="") OSTYPE = WIN32 !endif ### DEBUG: Uncomment to make an executable for debugging # DEBUG = yes !if ("$(DEBUG)"=="yes") DEBUG_FLAG = -v !endif ### CODEGUARD: Uncomment to use the CODEGUARD stuff (BC 5.0 or later): # CODEGUARD = yes !if ("$(CODEGUARD)"=="yes") CODEGUARD_FLAG = -vG !endif ### CPUNR: set your target processor (3 to 6) !if ("$(CPUNR)" == "i386") || ("$(CPUNR)" == "3") CPUNR = 3 !elif ("$(CPUNR)" == "i486") || ("$(CPUNR)" == "4") CPUNR = 4 !elif ("$(CPUNR)" == "i586") || ("$(CPUNR)" == "5") CPUNR = 5 !elif ("$(CPUNR)" == "i686") || ("$(CPUNR)" == "6") CPUNR = 6 !else CPUNR = 3 !endif ### Comment out to use precompiled headers (faster, but uses lots of disk!) HEADERS = -H -H=vim.csm -Hc ### USEDLL: no for statically linked version of run-time, yes for DLL runtime !if ("$(USEDLL)"=="") USEDLL = no !endif ### VIMDLL: yes for a DLL version of VIM (NOT RECOMMENDED), no otherwise #VIMDLL = yes ### ALIGN: alignment you desire: (1,2 or 4: s/b 4 for Win32, 2 for DOS) !if ("$(ALIGN)"=="") !if ($(OSTYPE)==DOS16) ALIGN = 2 !else ALIGN = 4 !endif !endif ### FASTCALL: yes to use FASTCALL calling convention (RECOMMENDED!), no otherwise # Incompatible when calling external functions (like MSVC-compiled DLLs), so # don't use FASTCALL when linking with external libs. !if ("$(FASTCALL)"=="") && \ ("$(LUA)"=="") && \ ("$(PYTHON)"=="") && \ ("$(PYTHON3)"=="") && \ ("$(PERL)"=="") && \ ("$(TCL)"=="") && \ ("$(RUBY)"=="") && \ ("$(ICONV)"!="yes") && \ ("$(IME)"!="yes") && \ ("$(MBYTE)"!="yes") && \ ("$(XPM)"=="") FASTCALL = yes !endif ### OPTIMIZE: SPEED to optimize for speed, SPACE otherwise (SPEED RECOMMENDED) !if ("$(OPTIMIZE)"=="") OPTIMIZE = MAXSPEED !endif ### FEATURES: TINY, SMALL, NORMAL, BIG or HUGE (BIG for WIN32, SMALL for DOS16) !if ("$(FEATURES)"=="") ! if ($(OSTYPE)==DOS16) FEATURES = SMALL ! else FEATURES = BIG ! endif !endif ### POSTSCRIPT: uncomment this line if you want PostScript printing #POSTSCRIPT = yes ### # If you have a fixed directory for $VIM or $VIMRUNTIME, other than the normal # default, use these lines. #VIMRCLOC = somewhere #VIMRUNTIMEDIR = somewhere ### Set the default $(WINVER) to make it work with Bcc 5.5. !ifndef WINVER WINVER = 0x0400 !endif # # Sanity checks for the above options: # !if ($(OSTYPE)==DOS16) !if (($(CPUNR)+0)>4) !error CPUNR Must be less than or equal to 4 for DOS16 !endif !if (($(ALIGN)+0)>2) !error ALIGN Must be less than or equal to 2 for DOS16 !endif !else # not DOS16 !if (($(CPUNR)+0)<3) !error CPUNR Must be greater or equal to 3 for WIN32 !endif !endif !if ($(OSTYPE)!=WIN32) && ($(OSTYPE)!=DOS16) !error Check the OSTYPE variable again: $(OSTYPE) is not supported! !endif # # Optimizations: change as desired (RECOMMENDATION: Don't change!): # !if ("$(DEBUG)"=="yes") OPT = -Od -N !else !if ("$(OPTIMIZE)"=="SPACE") OPT = -O1 -f- -d !elif ("$(OPTIMIZE)"=="MAXSPEED") OPT = -O2 -f- -d -Ocavi -O !else OPT = -O2 -f- -d -Oc -O !endif !if ("$(FASTCALL)"=="yes") OPT = $(OPT) -pr !endif !if ("$(CODEGUARD)"!="yes") OPT = $(OPT) -vi- !endif !endif !if ($(OSTYPE)==DOS16) !undef GUI !undef VIMDLL !undef USEDLL !endif # shouldn't have to change: LIB = $(BOR)\lib INCLUDE = $(BOR)\include;.;proto DEFINES = -DFEAT_$(FEATURES) -DWIN32 -DHAVE_PATHDEF \ -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) !ifdef LUA INTERP_DEFINES = $(INTERP_DEFINES) -DFEAT_LUA INCLUDE = $(LUA)\include;$(INCLUDE) ! ifndef LUA_VER LUA_VER = 51 ! endif ! if ("$(DYNAMIC_LUA)" == "yes") INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_LUA -DDYNAMIC_LUA_DLL=\"lua$(LUA_VER).dll\" LUA_LIB_FLAG = /nodefaultlib: ! endif !endif !ifdef PERL INTERP_DEFINES = $(INTERP_DEFINES) -DFEAT_PERL INCLUDE = $(PERL)\lib\core;$(INCLUDE) ! ifndef PERL_VER PERL_VER = 56 ! endif ! if ("$(DYNAMIC_PERL)" == "yes") ! if ($(PERL_VER) > 55) INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\" PERL_LIB_FLAG = /nodefaultlib: ! else ! message "Cannot dynamically load Perl versions less than 5.6. Loading statically..." ! endif ! endif !endif !ifdef PYTHON !ifdef PYTHON3 DYNAMIC_PYTHON=yes DYNAMIC_PYTHON3=yes !endif !endif !ifdef PYTHON INTERP_DEFINES = $(INTERP_DEFINES) -DFEAT_PYTHON !ifndef PYTHON_VER PYTHON_VER = 22 !endif !if "$(DYNAMIC_PYTHON)" == "yes" INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_PYTHON -DDYNAMIC_PYTHON_DLL=\"python$(PYTHON_VER).dll\" PYTHON_LIB_FLAG = /nodefaultlib: !endif !endif !ifdef PYTHON3 INTERP_DEFINES = $(INTERP_DEFINES) -DFEAT_PYTHON3 !ifndef PYTHON3_VER PYTHON3_VER = 31 !endif !if "$(DYNAMIC_PYTHON3)" == "yes" INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL=\"python$(PYTHON3_VER).dll\" PYTHON3_LIB_FLAG = /nodefaultlib: !endif !endif !ifdef RUBY !ifndef RUBY_VER RUBY_VER = 16 !endif !ifndef RUBY_VER_LONG RUBY_VER_LONG = 1.6 !endif !if "$(RUBY_VER)" == "16" !ifndef RUBY_PLATFORM RUBY_PLATFORM = i586-mswin32 !endif !ifndef RUBY_INSTALL_NAME RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_VER) !endif !else !ifndef RUBY_PLATFORM RUBY_PLATFORM = i386-mswin32 !endif !ifndef RUBY_INSTALL_NAME RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_VER) !endif !endif INTERP_DEFINES = $(INTERP_DEFINES) -DFEAT_RUBY INCLUDE = $(RUBY)\lib\ruby\$(RUBY_VER_LONG)\$(RUBY_PLATFORM);$(INCLUDE) !if "$(DYNAMIC_RUBY)" == "yes" INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_RUBY -DDYNAMIC_RUBY_DLL=\"$(RUBY_INSTALL_NAME).dll\" INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_RUBY_VER=$(RUBY_VER) RUBY_LIB_FLAG = /nodefaultlib: !endif !endif !ifdef TCL INTERP_DEFINES = $(INTERP_DEFINES) -DFEAT_TCL INCLUDE = $(TCL)\include;$(INCLUDE) !ifndef TCL_VER TCL_VER = 83 !endif TCL_LIB = $(TCL)\lib\tcl$(TCL_VER).lib TCL_LIB_FLAG = !if "$(DYNAMIC_TCL)" == "yes" INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl$(TCL_VER).dll\" TCL_LIB = tclstub$(TCL_VER)-bor.lib TCL_LIB_FLAG = !endif !endif # # DO NOT change below: # CPUARG = -$(CPUNR) ALIGNARG = -a$(ALIGN) # !if ("$(DEBUG)"=="yes") DEFINES=$(DEFINES) -DDEBUG -D_DEBUG !endif # !if ("$(OLE)"=="yes") DEFINES = $(DEFINES) -DFEAT_OLE !endif # !if ("$(MBYTE)"=="yes") MBDEFINES = $(MBDEFINES) -DFEAT_MBYTE !endif !if ("$(IME)"=="yes") MBDEFINES = $(MBDEFINES) -DFEAT_MBYTE_IME !if ("$(DYNAMIC_IME)" == "yes") MBDEFINES = $(MBDEFINES) -DDYNAMIC_IME !endif !endif !if ("$(ICONV)"=="yes") MBDEFINES = $(MBDEFINES) -DDYNAMIC_ICONV !endif !if ("$(GETTEXT)"=="yes") MBDEFINES = $(MBDEFINES) -DDYNAMIC_GETTEXT !endif !if ("$(CSCOPE)"=="yes") DEFINES = $(DEFINES) -DFEAT_CSCOPE !endif !if ("$(GUI)"=="yes") DEFINES = $(DEFINES) -DFEAT_GUI_W32 -DFEAT_CLIPBOARD !if ("$(DEBUG)"=="yes") TARGET = gvimd.exe !else TARGET = gvim.exe !endif !if ("$(VIMDLL)"=="yes") EXETYPE=-WD DEFINES = $(DEFINES) -DVIMDLL !else EXETYPE=-W !endif STARTUPOBJ = c0w32.obj LINK2 = -aa RESFILE = vim.res !else !undef NETBEANS !undef XPM !undef VIMDLL !if ("$(DEBUG)"=="yes") TARGET = vimd.exe !else # for now, anyway: VIMDLL is only for the GUI version TARGET = vim.exe !endif !if ($(OSTYPE)==DOS16) DEFINES= -DFEAT_$(FEATURES) -DMSDOS EXETYPE=-ml STARTUPOBJ = c0l.obj LINK2 = !else EXETYPE=-WC STARTUPOBJ = c0x32.obj LINK2 = -ap -OS -o -P !endif RESFILE = vim.res !endif !if ("$(NETBEANS)"=="yes") DEFINES = $(DEFINES) -DFEAT_NETBEANS_INTG !if ("$(NBDEBUG)"=="yes") DEFINES = $(DEFINES) -DNBDEBUG NBDEBUG_DEP = nbdebug.h nbdebug.c !endif !endif !ifdef XPM !if ("$(GUI)"=="yes") DEFINES = $(DEFINES) -DFEAT_XPM_W32 INCLUDE = $(XPM)\include;$(INCLUDE) !endif !endif !if ("$(USEDLL)"=="yes") DEFINES = $(DEFINES) -D_RTLDLL !endif !if ("$(DEBUG)"=="yes") OBJDIR = $(OSTYPE)\objdbg !else !if ("$(GUI)"=="yes") !if ("$(OLE)"=="yes") OBJDIR = $(OSTYPE)\oleobj !else OBJDIR = $(OSTYPE)\gobj !endif !else OBJDIR = $(OSTYPE)\obj !endif !endif !if ("$(POSTSCRIPT)"=="yes") DEFINES = $(DEFINES) -DMSWINPS !endif ##### BASE COMPILER/TOOLS RULES ##### MAKE = $(BOR)\bin\make CFLAGS = -w-aus -w-par -w-pch -w-ngu -w-csu -I$(INCLUDE) !if ($(OSTYPE)==DOS16) BRC = !if ("$(LINK)"=="") LINK = $(BOR)\BIN\TLink !endif CC = $(BOR)\BIN\Bcc LFLAGS = -Tde -c -m -L$(LIB) $(DEBUG_FLAG) $(LINK2) LFLAGSDLL = CFLAGS = $(CFLAGS) -H- $(HEADERS) !else BRC = $(BOR)\BIN\brc32 !if ("$(LINK)"=="") LINK = $(BOR)\BIN\ILink32 !endif CC = $(BOR)\BIN\Bcc32 LFLAGS = -OS -Tpe -c -m -L$(LIB) $(DEBUG_FLAG) $(LINK2) LFLAGSDLL = -Tpd -c -m -L$(LIB) $(DEBUG_FLAG) $(LINK2) CFLAGS = $(CFLAGS) -d -RT- -k- -Oi $(HEADERS) -f- !endif CC1 = -c CC2 = -o CCARG = +$(OBJDIR)\bcc.cfg # implicit rules: # Without the following, the implicit rule in BUILTINS.MAK is picked up # for a rule for .c.obj rather than the local implicit rule .SUFFIXES .SUFFIXES .c .obj .path.c = . {.}.c{$(OBJDIR)}.obj: $(CC) $(CCARG) $(CC1) -n$(OBJDIR)\ {$< } .cpp.obj: $(CC) $(CCARG) $(CC1) $(CC2)$@ $*.cpp !if ($(OSTYPE)==DOS16) !else # win32: vimmain = \ $(OBJDIR)\os_w32exe.obj !if ("$(VIMDLL)"=="yes") vimwinmain = \ $(OBJDIR)\os_w32dll.obj !else vimwinmain = \ $(OBJDIR)\os_w32exe.obj !endif !endif vimobj = \ $(OBJDIR)\blowfish.obj \ $(OBJDIR)\buffer.obj \ $(OBJDIR)\charset.obj \ $(OBJDIR)\diff.obj \ $(OBJDIR)\digraph.obj \ $(OBJDIR)\edit.obj \ $(OBJDIR)\eval.obj \ $(OBJDIR)\ex_cmds.obj \ $(OBJDIR)\ex_cmds2.obj \ $(OBJDIR)\ex_docmd.obj \ $(OBJDIR)\ex_eval.obj \ $(OBJDIR)\ex_getln.obj \ $(OBJDIR)\fileio.obj \ $(OBJDIR)\fold.obj \ $(OBJDIR)\getchar.obj \ $(OBJDIR)\hardcopy.obj \ $(OBJDIR)\hashtab.obj \ $(OBJDIR)\main.obj \ $(OBJDIR)\mark.obj \ $(OBJDIR)\memfile.obj \ $(OBJDIR)\memline.obj \ $(OBJDIR)\menu.obj \ $(OBJDIR)\message.obj \ $(OBJDIR)\misc1.obj \ $(OBJDIR)\misc2.obj \ $(OBJDIR)\move.obj \ $(OBJDIR)\mbyte.obj \ $(OBJDIR)\normal.obj \ $(OBJDIR)\ops.obj \ $(OBJDIR)\option.obj \ $(OBJDIR)\popupmnu.obj \ $(OBJDIR)\quickfix.obj \ $(OBJDIR)\regexp.obj \ $(OBJDIR)\screen.obj \ $(OBJDIR)\search.obj \ $(OBJDIR)\sha256.obj \ $(OBJDIR)\spell.obj \ $(OBJDIR)\syntax.obj \ $(OBJDIR)\tag.obj \ $(OBJDIR)\term.obj \ $(OBJDIR)\ui.obj \ $(OBJDIR)\undo.obj \ $(OBJDIR)\version.obj \ $(OBJDIR)\window.obj \ $(OBJDIR)\pathdef.obj !if ("$(OLE)"=="yes") vimobj = $(vimobj) \ $(OBJDIR)\if_ole.obj !endif !ifdef LUA vimobj = $(vimobj) \ $(OBJDIR)\if_lua.obj !endif !ifdef PERL vimobj = $(vimobj) \ $(OBJDIR)\if_perl.obj !endif !ifdef PYTHON vimobj = $(vimobj) \ $(OBJDIR)\if_python.obj !endif !ifdef PYTHON3 vimobj = $(vimobj) \ $(OBJDIR)\if_python3.obj !endif !ifdef RUBY vimobj = $(vimobj) \ $(OBJDIR)\if_ruby.obj !endif !ifdef TCL vimobj = $(vimobj) \ $(OBJDIR)\if_tcl.obj !endif !if ("$(CSCOPE)"=="yes") vimobj = $(vimobj) \ $(OBJDIR)\if_cscope.obj !endif !if ("$(NETBEANS)"=="yes") vimobj = $(vimobj) \ $(OBJDIR)\netbeans.obj !endif !ifdef XPM vimobj = $(vimobj) \ $(OBJDIR)\xpm_w32.obj !endif !if ("$(VIMDLL)"=="yes") vimdllobj = $(vimobj) !if ("$(DEBUG)"=="yes") DLLTARGET = vim32d.dll !else DLLTARGET = vim32.dll !endif !else DLLTARGET = joebob !endif !if ("$(GUI)"=="yes") vimobj = $(vimobj) \ $(vimwinmain) \ $(OBJDIR)\gui.obj \ $(OBJDIR)\gui_beval.obj \ $(OBJDIR)\gui_w32.obj !endif !if ($(OSTYPE)==WIN32) vimobj = $(vimobj) \ $(OBJDIR)\os_win32.obj $(OBJDIR)\os_mswin.obj $(OBJDIR)\winclip.obj !elif ($(OSTYPE)==DOS16) vimobj = $(vimobj) \ $(OBJDIR)\os_msdos.obj !endif # Blab what we are going to do: MSG = Compiling $(OSTYPE) $(TARGET) $(OLETARGET), with: !if ("$(GUI)"=="yes") MSG = $(MSG) GUI !endif !if ("$(OLE)"=="yes") MSG = $(MSG) OLE !endif !if ("$(USEDLL)"=="yes") MSG = $(MSG) USEDLL !endif !if ("$(VIMDLL)"=="yes") MSG = $(MSG) VIMDLL !endif !if ("$(FASTCALL)"=="yes") MSG = $(MSG) FASTCALL !endif !if ("$(MBYTE)"=="yes") MSG = $(MSG) MBYTE !endif !if ("$(IME)"=="yes") MSG = $(MSG) IME ! if "$(DYNAMIC_IME)" == "yes" MSG = $(MSG)(dynamic) ! endif !endif !if ("$(GETTEXT)"=="yes") MSG = $(MSG) GETTEXT !endif !if ("$(ICONV)"=="yes") MSG = $(MSG) ICONV !endif !if ("$(DEBUG)"=="yes") MSG = $(MSG) DEBUG !endif !if ("$(CODEGUARD)"=="yes") MSG = $(MSG) CODEGUARD !endif !if ("$(CSCOPE)"=="yes") MSG = $(MSG) CSCOPE !endif !if ("$(NETBEANS)"=="yes") MSG = $(MSG) NETBEANS !endif !ifdef XPM MSG = $(MSG) XPM !endif !ifdef LUA MSG = $(MSG) LUA ! if "$(DYNAMIC_LUA)" == "yes" MSG = $(MSG)(dynamic) ! endif !endif !ifdef PERL MSG = $(MSG) PERL ! if "$(DYNAMIC_PERL)" == "yes" MSG = $(MSG)(dynamic) ! endif !endif !ifdef PYTHON MSG = $(MSG) PYTHON ! if "$(DYNAMIC_PYTHON)" == "yes" MSG = $(MSG)(dynamic) ! endif !endif !ifdef PYTHON3 MSG = $(MSG) PYTHON3 ! if "$(DYNAMIC_PYTHON3)" == "yes" MSG = $(MSG)(dynamic) ! endif !endif !ifdef RUBY MSG = $(MSG) RUBY ! if "$(DYNAMIC_RUBY)" == "yes" MSG = $(MSG)(dynamic) ! endif !endif !ifdef TCL MSG = $(MSG) TCL ! if "$(DYNAMIC_TCL)" == "yes" MSG = $(MSG)(dynamic) ! endif !endif MSG = $(MSG) cpu=$(CPUARG) MSG = $(MSG) Align=$(ALIGNARG) !message $(MSG) !if ($(OSTYPE)==DOS16) TARGETS = $(TARGET) !else !if ("$(VIMDLL)"=="yes") TARGETS = $(DLLTARGET) !endif TARGETS = $(TARGETS) $(TARGET) !endif # Targets: all: vim vimrun.exe install.exe xxd uninstal.exe GvimExt/gvimext.dll vim: $(OSTYPE) $(OBJDIR) $(OBJDIR)\bcc.cfg $(TARGETS) @if exist $(OBJDIR)\version.obj del $(OBJDIR)\version.obj @if exist auto\pathdef.c del auto\pathdef.c $(OSTYPE): -@md $(OSTYPE) $(OBJDIR): -@md $(OBJDIR) xxd: @cd xxd $(MAKE) /f Make_bc5.mak BOR="$(BOR)" BCC="$(CC)" @cd .. GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h cd GvimExt $(MAKE) /f Make_bc5.mak USEDLL=$(USEDLL) BOR=$(BOR) cd .. install.exe: dosinst.c $(OBJDIR)\bcc.cfg !if ($(OSTYPE)==WIN32) $(CC) $(CCARG) -WC -DWIN32 -einstall dosinst.c !else $(CC) $(CCARG) -WC -einstall dosinst.c !endif uninstal.exe: uninstal.c $(OBJDIR)\bcc.cfg !if ($(OSTYPE)==WIN32) $(CC) $(CCARG) -WC -DWIN32 -O2 -euninstal uninstal.c !else $(CC) $(CCARG) -WC -O2 -euninstal uninstal.c !endif clean: !if "$(OS)" == "Windows_NT" # For Windows NT/2000, doesn't work on Windows 95/98... # $(COMSPEC) needed to ensure rmdir.exe is not run -@$(COMSPEC) /C rmdir /Q /S $(OBJDIR) !else # For Windows 95/98, doesn't work on Windows NT/2000... -@deltree /y $(OBJDIR) !endif -@del *.res -@del vim32*.dll -@del vim32*.lib -@del *vim*.exe -@del *install*.exe -@del *.csm -@del *.map -@del *.ilc -@del *.ild -@del *.ilf -@del *.ils -@del *.tds !ifdef LUA -@del lua.lib !endif !ifdef PERL -@del perl.lib !endif !ifdef PYTHON -@del python.lib !endif !ifdef PYTHON3 -@del python3.lib !endif !ifdef RUBY -@del ruby.lib !endif !ifdef TCL -@del tcl.lib !endif !ifdef XPM -@del xpm.lib !endif cd xxd $(MAKE) /f Make_bc5.mak BOR="$(BOR)" clean cd .. cd GvimExt $(MAKE) /f Make_bc5.mak BOR="$(BOR)" clean cd .. $(DLLTARGET): $(OBJDIR) $(vimdllobj) $(LINK) @&&| $(LFLAGSDLL) + c0d32.obj + $(vimdllobj) $<,$* !if ("$(CODEGUARD)"=="yes") cg32.lib+ !endif # $(OSTYPE)==WIN32 causes os_mswin.c compilation. FEAT_SHORTCUT in it needs OLE !if ("$(OLE)"=="yes" || $(OSTYPE)==WIN32) ole2w32.lib + !endif !if ($(OSTYPE)==WIN32) import32.lib+ !ifdef LUA $(LUA_LIB_FLAG)lua.lib+ !endif !ifdef PERL $(PERL_LIB_FLAG)perl.lib+ !endif !ifdef PYTHON $(PYTHON_LIB_FLAG)python.lib+ !endif !ifdef PYTHON3 $(PYTHON3_LIB_FLAG)python3.lib+ !endif !ifdef RUBY $(RUBY_LIB_FLAG)ruby.lib+ !endif !ifdef TCL $(TCL_LIB_FLAG)tcl.lib+ !endif !ifdef XPM xpm.lib+ !endif !if ("$(USEDLL)"=="yes") cw32i.lib !else cw32.lib !endif vim.def !else cl.lib !endif | !if ("$(VIMDLL)"=="yes") $(TARGET): $(OBJDIR) $(DLLTARGET) $(vimmain) $(OBJDIR)\$(RESFILE) !else $(TARGET): $(OBJDIR) $(vimobj) $(OBJDIR)\$(RESFILE) !endif $(LINK) @&&| $(LFLAGS) + $(STARTUPOBJ) + !if ("$(VIMDLL)"=="yes") $(vimmain) !else $(vimobj) !endif $<,$* !if ($(OSTYPE)==WIN32) !if ("$(CODEGUARD)"=="yes") cg32.lib+ !endif # $(OSTYPE)==WIN32 causes os_mswin.c compilation. FEAT_SHORTCUT in it needs OLE !if ("$(OLE)"=="yes" || $(OSTYPE)==WIN32) ole2w32.lib + !endif import32.lib+ !ifdef LUA $(LUA_LIB_FLAG)lua.lib+ !endif !ifdef PERL $(PERL_LIB_FLAG)perl.lib+ !endif !ifdef PYTHON $(PYTHON_LIB_FLAG)python.lib+ !endif !ifdef PYTHON3 $(PYTHON3_LIB_FLAG)python3.lib+ !endif !ifdef RUBY $(RUBY_LIB_FLAG)ruby.lib+ !endif !ifdef TCL $(TCL_LIB_FLAG)tcl.lib+ !endif !ifdef XPM xpm.lib+ !endif !if ("$(USEDLL)"=="yes") cw32i.lib !else cw32.lib !endif $(OBJDIR)\$(RESFILE) !else emu.lib + cl.lib !endif | test: cd testdir $(MAKE) /NOLOGO -f Make_dos.mak win32 cd .. $(OBJDIR)\ex_docmd.obj: ex_docmd.c ex_cmds.h $(OBJDIR)\ex_eval.obj: ex_eval.c ex_cmds.h $(OBJDIR)\if_ole.obj: if_ole.cpp $(OBJDIR)\if_lua.obj: if_lua.c lua.lib $(CC) $(CCARG) $(CC1) $(CC2)$@ -pc if_lua.c $(OBJDIR)\if_perl.obj: if_perl.c perl.lib $(CC) $(CCARG) $(CC1) $(CC2)$@ -pc if_perl.c if_perl.c: if_perl.xs typemap $(PERL)\bin\perl.exe $(PERL)\lib\ExtUtils\xsubpp -prototypes -typemap \ $(PERL)\lib\ExtUtils\typemap if_perl.xs > $@ $(OBJDIR)\if_python.obj: if_python.c if_py_both.h python.lib $(CC) -I$(PYTHON)\include $(CCARG) $(CC1) $(CC2)$@ -pc if_python.c $(OBJDIR)\if_python3.obj: if_python3.c if_py_both.h python3.lib $(CC) -I$(PYTHON3)\include $(CCARG) $(CC1) $(CC2)$@ -pc if_python3.c $(OBJDIR)\if_ruby.obj: if_ruby.c ruby.lib $(CC) $(CCARG) $(CC1) $(CC2)$@ -pc if_ruby.c $(OBJDIR)\if_tcl.obj: if_tcl.c tcl.lib $(CC) $(CCARG) $(CC1) $(CC2)$@ -pc if_tcl.c $(OBJDIR)\xpm_w32.obj: xpm_w32.c xpm.lib $(CC) $(CCARG) $(CC1) $(CC2)$@ -pc xpm_w32.c $(OBJDIR)\netbeans.obj: netbeans.c $(NBDEBUG_DEP) $(CC) $(CCARG) $(CC1) $(CC2)$@ netbeans.c $(OBJDIR)\vim.res: vim.rc version.h tools.bmp tearoff.bmp \ vim.ico vim_error.ico vim_alert.ico vim_info.ico vim_quest.ico $(BRC) -fo$(OBJDIR)\vim.res -i $(BOR)\include -w32 -r vim.rc @&&| $(DEFINES) | $(OBJDIR)\pathdef.obj: auto\pathdef.c $(CC) $(CCARG) $(CC1) $(CC2)$@ auto\pathdef.c # Need to escape both quotes and backslashes in $INTERP_DEFINES INTERP_DEFINES_ESC_BKS=$(INTERP_DEFINES:\=\\) INTERP_DEFINES_ESC=$(INTERP_DEFINES_ESC_BKS:"=\") # Note: the silly /*"*/ below are there to trick make into accepting # the # character as something other than a comment without messing up # the preprocessor directive. auto\pathdef.c:: -@md auto @echo creating auto/pathdef.c @copy /y &&| /* pathdef.c */ /*"*/#include "vim.h"/*"*/ char_u *default_vim_dir = (char_u *)"$(VIMRCLOC:\=\\)"; char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR:\=\\)"; char_u *all_cflags = (char_u *)"$(CC:\=\\) $(CFLAGS:\=\\) $(DEFINES) $(MBDEFINES) $(INTERP_DEFINES_ESC) $(OPT) $(EXETYPE) $(CPUARG) $(ALIGNARG) $(DEBUG_FLAG) $(CODEGUARD_FLAG)"; char_u *all_lflags = (char_u *)"$(LINK:\=\\) $(LFLAGS:\=\\)"; char_u *compiled_user = (char_u *)"$(USERNAME)"; char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; | auto\pathdef.c lua.lib: $(LUA)\lib\lua$(LUA_VER).lib coff2omf $(LUA)\lib\lua$(LUA_VER).lib $@ perl.lib: $(PERL)\lib\CORE\perl$(PERL_VER).lib coff2omf $(PERL)\lib\CORE\perl$(PERL_VER).lib $@ python.lib: $(PYTHON)\libs\python$(PYTHON_VER).lib coff2omf $(PYTHON)\libs\python$(PYTHON_VER).lib $@ python3.lib: $(PYTHON3)\libs\python$(PYTHON3_VER).lib coff2omf $(PYTHON3)\libs\python$(PYTHON3_VER).lib $@ ruby.lib: $(RUBY)\lib\$(RUBY_INSTALL_NAME).lib coff2omf $(RUBY)\lib\$(RUBY_INSTALL_NAME).lib $@ # For some reason, the coff2omf method doesn't work on libXpm.lib, so # we have to manually generate an import library straight from the DLL. xpm.lib: $(XPM)\lib\libXpm.lib implib -a $@ $(XPM)\bin\libXpm.dll tcl.lib: $(TCL_LIB) !if ("$(DYNAMIC_TCL)" == "yes") copy $(TCL_LIB) $@ !else coff2omf $(TCL_LIB) $@ !endif !if ("$(DYNAMIC_TCL)" == "yes") tclstub$(TCL_VER)-bor.lib: -@IF NOT EXIST $@ ECHO You must download tclstub$(TCL_VER)-bor.lib separately and\ place it in the src directory in order to compile a dynamic TCL-enabled\ (g)vim with the Borland compiler. You can get the tclstub$(TCL_VER)-bor.lib file\ at http://mywebpage.netscape.com/sharppeople/vim/tclstub$(TCL_VER)-bor.lib !endif # vimrun.exe: vimrun.exe: vimrun.c !if ("$(USEDLL)"=="yes") $(CC) -WC -O1 -I$(INCLUDE) -L$(LIB) -D_RTLDLL vimrun.c cw32mti.lib !else $(CC) -WC -O1 -I$(INCLUDE) -L$(LIB) vimrun.c !endif # The dependency on $(OBJDIR) is to have bcc.cfg generated each time. $(OBJDIR)\bcc.cfg: Make_bc5.mak $(OBJDIR) copy /y &&| $(CFLAGS) -L$(LIB) $(DEFINES) $(MBDEFINES) $(INTERP_DEFINES) $(EXETYPE) $(DEBUG_FLAG) $(OPT) $(CODEGUARD_FLAG) $(CPUARG) $(ALIGNARG) | $@ # vi:set sts=4 sw=4: