1# Makefile for Borland C++ 3.1 or 4.0 to compile a 16 bit version of Vim.
2#
3# There are compilation options at the end of this file.
4#
5# Command line variables:
6# BOR		path to root of Borland C (E:\BORLANDC)
7# DEBUG		set to "yes" for debugging (no)
8# SPAWNO	path to the spawno library directory, empty if you do not have
9#		it; use 8.3 filenames! (C:\CC\SPAWN)
10
11.AUTODEPEND
12
13!ifndef BOR
14BOR = E:\BORLANDC
15!endif
16
17!if ("$(DEBUG)" == "yes")
18DEBUG_FLAG = -v
19!else
20DEBUG_FLAG =
21!endif
22
23CC = $(BOR)\bin\bcc.exe +VIM.CFG
24TLINK = $(BOR)\bin\tlink.exe
25
26!ifndef SPAWNO
27SPAWNO = C:\CC\SPAWN
28!endif
29
30!if ("$(SPAWNO)" == "")
31LIBPATH = $(BOR)\LIB
32INCLUDEPATH = $(BOR)\INCLUDE
33SPAWND =
34SPAWNL =
35!else
36LIBPATH = $(BOR)\LIB;$(SPAWNO)
37INCLUDEPATH = $(BOR)\INCLUDE;$(SPAWNO)
38SPAWND = ;SPAWNO
39SPAWNL = spawnl.lib
40!endif
41
42
43#		*Implicit Rules*
44#
45# use -v for debugging
46#
47.c.obj:
48	$(CC) -c $(DEBUG_FLAG) {$< }
49
50#		*List Macros*
51
52
53EXE_dependencies = \
54	blowfish.obj \
55	buffer.obj \
56	charset.obj \
57	diff.obj \
58	digraph.obj \
59	edit.obj \
60	eval.obj \
61	ex_cmds.obj \
62	ex_cmds2.obj \
63	ex_docmd.obj \
64	ex_eval.obj \
65	ex_getln.obj \
66	fileio.obj \
67	fold.obj \
68	getchar.obj \
69	hardcopy.obj \
70	hashtab.obj \
71	main.obj \
72	mark.obj \
73	memfile.obj \
74	memline.obj \
75	menu.obj \
76	message.obj \
77	misc1.obj \
78	misc2.obj \
79	move.obj \
80	os_msdos.obj \
81	normal.obj \
82	ops.obj \
83	option.obj \
84	popupmnu.obj \
85	quickfix.obj \
86	regexp.obj \
87	screen.obj \
88	search.obj \
89	sha256.obj \
90	spell.obj \
91	syntax.obj \
92	tag.obj \
93	term.obj \
94	ui.obj \
95	undo.obj \
96	window.obj
97
98all: vim.exe install.exe uninstal.exe xxd/xxd.exe
99
100#		*Explicit Rules*
101
102vim.exe: vim.cfg $(EXE_dependencies) version.c
103	$(CC) $(DEBUG_FLAG) -c version.c
104	$(TLINK) /x/c/L$(LIBPATH) $(DEBUG_FLAG) @&&|
105c0l.obj $(EXE_dependencies) version.obj
106vim
107		# no map file
108$(SPAWNL) cl.lib
109|
110
111install.exe: dosinst.c
112	$(CC) -einstall $(DEBUG_FLAG) dosinst.c
113
114uninstal.exe: uninstal.c
115	$(CC) $(DEBUG_FLAG) uninstal.c
116
117# This may fail for older make versions, building xxd will fail anyway then.
118xxd/xxd.exe: xxd/xxd.c
119	cd xxd
120	$(MAKE) -f Make_bc3.mak BOR=$(BOR) DEBUG=$(DEBUG)
121	cd ..
122
123# cleaning up: Delete all generated files
124clean:
125	-del *.obj
126	-del vim.exe
127	-del vim.sym
128	-del install.exe
129	-del uninstal.exe
130	-del xxd\*.obj
131	-del xxd\xxd.exe
132	-del vim.cfg
133	-del testdir\*.out
134
135# Individual File Dependencies (incomplete)
136ex_docmd.obj: ex_docmd.c ex_cmds.h
137
138ex_eval.obj: ex_eval.c ex_cmds.h
139
140main.obj: main.c globals.h option.h
141
142term.obj: term.c term.h
143
144version.obj: version.c version.h
145
146
147# Compiler Configuration File
148#
149# The following compile options can be changed for better machines.
150#	replace -1- with -2 to produce code for a 80286 or higher
151#	replace -1- with -3 to produce code for a 80386 or higher
152#	add -v for source debugging
153vim.cfg: Make_bc3.mak
154	copy &&|
155-ml
156-1-
157-f-
158-C
159-N
160-O
161-Z
162-k-
163-d
164-h
165-vi-
166-H=VIM.SYM
167-w-par
168-weas
169-wpre
170-Iproto
171-I$(INCLUDEPATH)
172-L$(LIBPATH)
173-DMSDOS;FEAT_TINY$(SPAWND)
174| vim.cfg
175
176test:
177	cd testdir
178	$(MAKE) -f Make_dos.mak small
179	cd ..
180