blob: 04ec663c53ddd75b80a0eb307edc430218109fce [file] [log] [blame]
#
# Borland C++ 5.0[12] makefile for vim, 16-bit windows gui version
# By Vince Negri
#
# NOTE: THIS IS OLD AND PROBABLY NO LONGER WORKS.
#
# *************************************************************
# * WARNING!
# * This was originally produced by the IDE, but has since been
# * modified 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)\winclip.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