# # Borland C++ 5.0[12] makefile for vim, 16-bit windows gui version # By Vince Negri # ************************************************************* # * WARNING! # * This was originally produced by the IDE, but has since been # * modifed to make it work properly. Adjust with care! # * In particular, leave LinkerLocalOptsAtW16_gvim16dexe alone # * unless you are a guru. # ************************************************************* # # Look for BOR below and either pass a different value or # adjust the path as required. For example # make -fMake_w16.mak -DBOR=C:\PF\Borland\BC5.01 -B BccW16.cfg # make -fMake_w16.mak # Note: $(BOR) is effectively ignored unless BccW16.cfg is rebuilt. # # Does not compile with Borland C++ 4.51 Walter Briscoe 2003-02-24 # "out of memory" from compiler if gvim16 wildly wrong. WFB 2003-03-04 # # vim16.def must be a DOS-formatted file. (\r\n line endings.) # It is a UNIX-formatted file (\n line endings) in vim-*-extra.tar.gz .AUTODEPEND # # Borland C++ tools # IMPLIB = Implib BCC = Bcc +BccW16.cfg TLINK = TLink TLIB = TLib BRC = Brc TASM = Tasm # # IDE macros # # # Options # !ifndef BOR BOR = D:\BC5 !endif # !ifndef INTDIR is lethal considering CLEAN below. WFB 2003-03-13 INTDIR=w16 # /Twe Make the target a Windows .EXE with explicit functions exportable + # /x Map file off # /l Include source line numbers in object map files` # /c case sensitive link # /C Case-sensitive exports and imports (16-bit only) # /k Produce "No Stack" warning. # /Oa Minimise segment alignment # /Oc Minimise Chain fixes # /Oi Minimise Iterated data # /Or Minimise resource alignment # /P -P=x Code pack size # /V Windows version for application # /L Folder to search for library files LinkerLocalOptsAtW16_gvim16dexe =/Twe/x/l/c/C/k/Or/Oc/Oa/Oi/P=65535/V3.10 CompInheritOptsAt_gvim16dexe = \ -I$(BOR)\INCLUDE;PROTO;. \ -DFEAT_GUI;FEAT_GUI_MSWIN;FEAT_GUI_W16;MSWIN;WIN16;MSWIN16_FASTTEXT \ -DFEAT_TOOLBAR;WIN16_3DLOOK # # Dependency List # Dep_Gvim16 = \ gvim16.exe ObjFiles = \ $(INTDIR)\buffer.obj\ $(INTDIR)\charset.obj\ $(INTDIR)\diff.obj\ $(INTDIR)\digraph.obj\ $(INTDIR)\edit.obj\ $(INTDIR)\eval.obj\ $(INTDIR)\ex_cmds.obj\ $(INTDIR)\ex_cmds2.obj\ $(INTDIR)\ex_docmd.obj\ $(INTDIR)\ex_eval.obj\ $(INTDIR)\ex_getln.obj\ $(INTDIR)\fileio.obj\ $(INTDIR)\fold.obj\ $(INTDIR)\getchar.obj\ $(INTDIR)\hardcopy.obj\ $(INTDIR)\hashtab.obj\ $(INTDIR)\gui.obj\ $(INTDIR)\gui_w16.obj\ $(INTDIR)\main.obj\ $(INTDIR)\mark.obj\ $(INTDIR)\mbyte.obj\ $(INTDIR)\memfile.obj\ $(INTDIR)\memline.obj\ $(INTDIR)\menu.obj\ $(INTDIR)\message.obj\ $(INTDIR)\misc1.obj\ $(INTDIR)\misc2.obj\ $(INTDIR)\move.obj\ $(INTDIR)\normal.obj\ $(INTDIR)\ops.obj\ $(INTDIR)\option.obj\ $(INTDIR)\os_win16.obj\ $(INTDIR)\os_msdos.obj\ $(INTDIR)\os_mswin.obj\ $(INTDIR)\popupmnu.obj\ $(INTDIR)\quickfix.obj\ $(INTDIR)\regexp.obj\ $(INTDIR)\screen.obj\ $(INTDIR)\search.obj\ $(INTDIR)\spell.obj\ $(INTDIR)\syntax.obj\ $(INTDIR)\tag.obj\ $(INTDIR)\term.obj\ $(INTDIR)\ui.obj\ $(INTDIR)\undo.obj\ $(INTDIR)\version.obj\ $(INTDIR)\window.obj Dep_gvim16dexe = \ vimtbar.lib\ vim16.def\ $(INTDIR)\vim16.res\ $(ObjFiles) # 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 = . # -P- Force C++ compilation off # -c Compilation only # -n Place .OBJ files {.}.c{$(INTDIR)}.obj: $(BCC) -P- -c -n$(INTDIR)\ {$< } Gvim16 : BccW16.cfg $(Dep_Gvim16) echo MakeNode gvim16.exe : $(Dep_gvim16dexe) $(TLINK) $(LinkerLocalOptsAtW16_gvim16dexe) @&&| c0wl.obj $(ObjFiles) |,$*,,vimtbar ctl3dv2 import cwl, vim16.def,$(INTDIR)\vim16.res # Force objects to be built if $(BOR) changes $(ObjFiles) : Make_w16.mak BccW16.cfg $(INTDIR)\vim16.res : vim16.rc $(BRC) -R @&&| $(CompInheritOptsAt_gvim16dexe) -fo$*.res $? | # Compiler configuration file # There is no rule for $(INTDIR) as make always says it does not exist BccW16.cfg : -@if not exist $(INTDIR)\$(NULL) mkdir $(INTDIR) Copy &&| -3 ; Generate 80386 protected-mode compatible instructions -a ; Byte alignment -dc ; Move string literals from data segment to code segment -ff ; Fast floating point -H ; Generate and use precompiled headers -H=$(INTDIR)\gvim16.csm ; gvim16.csm is the precompiled header filename -k- ; No standard stack frame -ml ; Large memory model -OW ; Suppress the inc bp/dec bp on windows far functions -O1 ; Generate smallest possible code -O2 ; Generate fastest possible code (overrides prior -O1 control) -pr ; Fastcall calling convention passing parameters in registers -R- ; Exclude browser information in generated .OBJ files -v- ; Turn off source debugging -vi ; Turn inline function expansion on -WE ; Only __far _export functions are exported -w ; Display warnings -w-par ; Suppress: Parameter 'parameter' is never used -w-pch ; Cannot create pre-compiled header: initialized data in header -w-sig ; identifier' declared but never used -w-ucp ; Mixing pointers to different 'char' types -wuse ; 'identifier' declared but never used $(CompInheritOptsAt_gvim16dexe) | $@ !IF "$(OS)" == "Windows_NT" NULL= DEL_TREE = rmdir /s /q !ELSE NULL=nul DEL_TREE = deltree /y !ENDIF CLEAN: -@if exist $(INTDIR)\$(NULL) $(DEL_TREE) $(INTDIR) -@if exist BccW16.cfg erase BccW16.cfg -@if exist gvim16.exe erase gvim16.exe