1# 2# Borland C++ 5.0[12] makefile for vim, 16-bit windows gui version 3# By Vince Negri 4# ************************************************************* 5# * WARNING! 6# * This was originally produced by the IDE, but has since been 7# * modifed to make it work properly. Adjust with care! 8# * In particular, leave LinkerLocalOptsAtW16_gvim16dexe alone 9# * unless you are a guru. 10# ************************************************************* 11# 12# Look for BOR below and either pass a different value or 13# adjust the path as required. For example 14# make -fMake_w16.mak -DBOR=C:\PF\Borland\BC5.01 -B BccW16.cfg 15# make -fMake_w16.mak 16# Note: $(BOR) is effectively ignored unless BccW16.cfg is rebuilt. 17# 18# Does not compile with Borland C++ 4.51 Walter Briscoe 2003-02-24 19# "out of memory" from compiler if gvim16 wildly wrong. WFB 2003-03-04 20# 21# vim16.def must be a DOS-formatted file. (\r\n line endings.) 22# It is a UNIX-formatted file (\n line endings) in vim-*-extra.tar.gz 23 24.AUTODEPEND 25 26# 27# Borland C++ tools 28# 29IMPLIB = Implib 30BCC = Bcc +BccW16.cfg 31TLINK = TLink 32TLIB = TLib 33BRC = Brc 34TASM = Tasm 35# 36# IDE macros 37# 38 39# 40# Options 41# 42!ifndef BOR 43BOR = D:\BC5 44!endif 45 46# !ifndef INTDIR is lethal considering CLEAN below. WFB 2003-03-13 47INTDIR=w16 48 49# /Twe Make the target a Windows .EXE with explicit functions exportable + 50# /x Map file off 51# /l Include source line numbers in object map files` 52# /c case sensitive link 53# /C Case-sensitive exports and imports (16-bit only) 54# /k Produce "No Stack" warning. 55# /Oa Minimise segment alignment 56# /Oc Minimise Chain fixes 57# /Oi Minimise Iterated data 58# /Or Minimise resource alignment 59# /P -P=x Code pack size 60# /V Windows version for application 61# /L Folder to search for library files 62LinkerLocalOptsAtW16_gvim16dexe =/Twe/x/l/c/C/k/Or/Oc/Oa/Oi/P=65535/V3.10 63 64CompInheritOptsAt_gvim16dexe = \ 65 -I$(BOR)\INCLUDE;PROTO;. \ 66 -DFEAT_GUI;FEAT_GUI_MSWIN;FEAT_GUI_W16;MSWIN;WIN16;MSWIN16_FASTTEXT \ 67 -DFEAT_TOOLBAR;WIN16_3DLOOK 68 69# 70# Dependency List 71# 72Dep_Gvim16 = \ 73 gvim16.exe 74 75ObjFiles = \ 76 $(INTDIR)\buffer.obj\ 77 $(INTDIR)\charset.obj\ 78 $(INTDIR)\diff.obj\ 79 $(INTDIR)\digraph.obj\ 80 $(INTDIR)\edit.obj\ 81 $(INTDIR)\eval.obj\ 82 $(INTDIR)\ex_cmds.obj\ 83 $(INTDIR)\ex_cmds2.obj\ 84 $(INTDIR)\ex_docmd.obj\ 85 $(INTDIR)\ex_eval.obj\ 86 $(INTDIR)\ex_getln.obj\ 87 $(INTDIR)\fileio.obj\ 88 $(INTDIR)\fold.obj\ 89 $(INTDIR)\getchar.obj\ 90 $(INTDIR)\hardcopy.obj\ 91 $(INTDIR)\hashtab.obj\ 92 $(INTDIR)\gui.obj\ 93 $(INTDIR)\gui_w16.obj\ 94 $(INTDIR)\main.obj\ 95 $(INTDIR)\mark.obj\ 96 $(INTDIR)\mbyte.obj\ 97 $(INTDIR)\memfile.obj\ 98 $(INTDIR)\memline.obj\ 99 $(INTDIR)\menu.obj\ 100 $(INTDIR)\message.obj\ 101 $(INTDIR)\misc1.obj\ 102 $(INTDIR)\misc2.obj\ 103 $(INTDIR)\move.obj\ 104 $(INTDIR)\normal.obj\ 105 $(INTDIR)\ops.obj\ 106 $(INTDIR)\option.obj\ 107 $(INTDIR)\os_win16.obj\ 108 $(INTDIR)\os_msdos.obj\ 109 $(INTDIR)\os_mswin.obj\ 110 $(INTDIR)\popupmnu.obj\ 111 $(INTDIR)\quickfix.obj\ 112 $(INTDIR)\regexp.obj\ 113 $(INTDIR)\screen.obj\ 114 $(INTDIR)\search.obj\ 115 $(INTDIR)\spell.obj\ 116 $(INTDIR)\syntax.obj\ 117 $(INTDIR)\tag.obj\ 118 $(INTDIR)\term.obj\ 119 $(INTDIR)\ui.obj\ 120 $(INTDIR)\undo.obj\ 121 $(INTDIR)\version.obj\ 122 $(INTDIR)\window.obj 123 124Dep_gvim16dexe = \ 125 vimtbar.lib\ 126 vim16.def\ 127 $(INTDIR)\vim16.res\ 128 $(ObjFiles) 129 130# Without the following, the implicit rule in BUILTINS.MAK is picked up 131# for a rule for .c.obj rather than the local implicit rule 132.SUFFIXES 133.SUFFIXES .c .obj 134.path.c = . 135 136# -P- Force C++ compilation off 137# -c Compilation only 138# -n Place .OBJ files 139{.}.c{$(INTDIR)}.obj: 140 $(BCC) -P- -c -n$(INTDIR)\ {$< } 141 142Gvim16 : BccW16.cfg $(Dep_Gvim16) 143 echo MakeNode 144 145gvim16.exe : $(Dep_gvim16dexe) 146 $(TLINK) $(LinkerLocalOptsAtW16_gvim16dexe) @&&| 147c0wl.obj $(ObjFiles) 148|,$*,,vimtbar ctl3dv2 import cwl, vim16.def,$(INTDIR)\vim16.res 149 150# Force objects to be built if $(BOR) changes 151$(ObjFiles) : Make_w16.mak BccW16.cfg 152 153$(INTDIR)\vim16.res : vim16.rc 154 $(BRC) -R @&&| 155 $(CompInheritOptsAt_gvim16dexe) -fo$*.res $? 156| 157 158 159# Compiler configuration file 160# There is no rule for $(INTDIR) as make always says it does not exist 161BccW16.cfg : 162 -@if not exist $(INTDIR)\$(NULL) mkdir $(INTDIR) 163 Copy &&| 164-3 ; Generate 80386 protected-mode compatible instructions 165-a ; Byte alignment 166-dc ; Move string literals from data segment to code segment 167-ff ; Fast floating point 168-H ; Generate and use precompiled headers 169-H=$(INTDIR)\gvim16.csm ; gvim16.csm is the precompiled header filename 170-k- ; No standard stack frame 171-ml ; Large memory model 172-OW ; Suppress the inc bp/dec bp on windows far functions 173-O1 ; Generate smallest possible code 174-O2 ; Generate fastest possible code (overrides prior -O1 control) 175-pr ; Fastcall calling convention passing parameters in registers 176-R- ; Exclude browser information in generated .OBJ files 177-v- ; Turn off source debugging 178-vi ; Turn inline function expansion on 179-WE ; Only __far _export functions are exported 180-w ; Display warnings 181-w-par ; Suppress: Parameter 'parameter' is never used 182-w-pch ; Cannot create pre-compiled header: initialized data in header 183-w-sig ; identifier' declared but never used 184-w-ucp ; Mixing pointers to different 'char' types 185-wuse ; 'identifier' declared but never used 186 $(CompInheritOptsAt_gvim16dexe) 187| $@ 188 189!IF "$(OS)" == "Windows_NT" 190NULL= 191DEL_TREE = rmdir /s /q 192!ELSE 193NULL=nul 194DEL_TREE = deltree /y 195!ENDIF 196 197CLEAN: 198 -@if exist $(INTDIR)\$(NULL) $(DEL_TREE) $(INTDIR) 199 -@if exist BccW16.cfg erase BccW16.cfg 200 -@if exist gvim16.exe erase gvim16.exe 201