summaryrefslogtreecommitdiff
path: root/src/Make_w16.mak
blob: 04ec663c53ddd75b80a0eb307edc430218109fce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
#
# 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