blob: 46c001575cddef4ffd92641fe29017e941a37174 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001#
2# Makefile for VIM on the Amiga, using Aztec/Manx C 5.0 or later
3#
4# Note: Not all dependencies are included. This was done to avoid having
5# to compile everything when a global variable or function is added.
6# Careful when changing a global struct or variable!
7#
8
9#>>>>> choose options:
10
11### See feature.h for a list of optionals.
12### Any other defines can be included here.
13DEFINES =
14
15#>>>>> if HAVE_TGETENT is defined obj/termlib.o has to be used
16#TERMLIB = obj/termlib.o
17TERMLIB =
18
19#>>>>> choose between debugging (-bs) or optimizing (-so)
20OPTIONS = -so
21#OPTIONS = -bs
22
23#>>>>> end of choices
24###########################################################################
25
26CFLAGS = $(OPTIONS) -wapruq -ps -qf -Iproto $(DEFINES) -DAMIGA
27
28LIBS = -lc16
29SYMS = vim.syms
30CC = cc
31LN = ln
32LNFLAGS = +q
33SHELL = csh
34REN = $(SHELL) -c mv -f
35DEL = $(SHELL) -c rm -f
36
37SRC = buffer.c \
38 charset.c \
39 diff.c \
40 digraph.c \
41 edit.c \
42 eval.c \
43 ex_cmds.c \
44 ex_cmds2.c \
45 ex_docmd.c \
46 ex_eval.c \
47 ex_getln.c \
48 fileio.c \
49 fold.c \
50 getchar.c \
Bram Moolenaar58d98232005-07-23 22:25:46 +000051 hardcopy.c \
Bram Moolenaarce5e58e2005-01-19 22:24:34 +000052 hashtable.c \
Bram Moolenaar071d4272004-06-13 20:20:40 +000053 main.c \
54 mark.c \
55 memfile.c \
56 memline.c \
57 menu.c \
58 message.c \
59 misc1.c \
60 misc2.c \
61 move.c \
62 mbyte.c \
63 normal.c \
64 ops.c \
65 option.c \
66 os_amiga.c \
Bram Moolenaar1c7715d2005-10-03 22:02:18 +000067 popupmenu.c \
Bram Moolenaar071d4272004-06-13 20:20:40 +000068 quickfix.c \
69 regexp.c \
70 screen.c \
71 search.c \
Bram Moolenaar60c78922005-03-20 22:40:14 +000072 spell.c \
Bram Moolenaar071d4272004-06-13 20:20:40 +000073 syntax.c \
74 tag.c \
75 term.c \
76 ui.c \
77 undo.c \
78 window.c \
79 version.c
80
81INCL = vim.h feature.h keymap.h macros.h ascii.h term.h structs.h os_amiga.h
82
83OBJ = obj/buffer.o \
84 obj/charset.o \
85 obj/diff.o \
86 obj/digraph.o \
87 obj/edit.o \
88 obj/eval.o \
89 obj/ex_cmds.o \
90 obj/ex_cmds2.o \
91 obj/ex_docmd.o \
92 obj/ex_eval.o \
93 obj/ex_getln.o \
94 obj/fileio.o \
95 obj/fold.o \
96 obj/getchar.o \
Bram Moolenaar58d98232005-07-23 22:25:46 +000097 obj/hardcopy.o \
Bram Moolenaarce5e58e2005-01-19 22:24:34 +000098 obj/hashtable.o \
Bram Moolenaar071d4272004-06-13 20:20:40 +000099 obj/main.o \
100 obj/mark.o \
101 obj/memfile.o \
102 obj/memline.o \
103 obj/menu.o \
104 obj/message.o \
105 obj/misc1.o \
106 obj/misc2.o \
107 obj/move.o \
108 obj/mbyte.o \
109 obj/normal.o \
110 obj/ops.o \
111 obj/option.o \
112 obj/os_amiga.o \
Bram Moolenaar1c7715d2005-10-03 22:02:18 +0000113 obj/popupmenu.o \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000114 obj/quickfix.o \
115 obj/regexp.o \
116 obj/screen.o \
117 obj/search.o \
Bram Moolenaar60c78922005-03-20 22:40:14 +0000118 obj/spell.o \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000119 obj/syntax.o \
120 obj/tag.o \
121 obj/term.o \
122 obj/ui.o \
123 obj/undo.o \
124 obj/window.o \
125 $(TERMLIB)
126
127PRO = proto/buffer.pro \
128 proto/charset.pro \
129 proto/diff.pro \
130 proto/digraph.pro \
131 proto/edit.pro \
132 proto/eval.pro \
133 proto/ex_cmds.pro \
134 proto/ex_cmds2.pro \
135 proto/ex_docmd.pro \
136 proto/ex_eval.pro \
137 proto/ex_getln.pro \
138 proto/fileio.pro \
139 proto/fold.pro \
140 proto/getchar.pro \
Bram Moolenaar58d98232005-07-23 22:25:46 +0000141 proto/hardcopy.pro \
Bram Moolenaarce5e58e2005-01-19 22:24:34 +0000142 proto/hashtable.pro \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000143 proto/main.pro \
144 proto/mark.pro \
145 proto/memfile.pro \
146 proto/memline.pro \
147 proto/menu.pro \
148 proto/message.pro \
149 proto/misc1.pro \
150 proto/misc2.pro \
151 proto/move.pro \
152 proto/mbyte.pro \
153 proto/normal.pro \
154 proto/ops.pro \
155 proto/option.pro \
156 proto/os_amiga.pro \
Bram Moolenaar1c7715d2005-10-03 22:02:18 +0000157 proto/popupmenu.pro \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000158 proto/quickfix.pro \
159 proto/regexp.pro \
160 proto/screen.pro \
161 proto/search.pro \
Bram Moolenaar60c78922005-03-20 22:40:14 +0000162 proto/spell.pro \
Bram Moolenaar071d4272004-06-13 20:20:40 +0000163 proto/syntax.pro \
164 proto/tag.pro \
165 proto/term.pro \
166 proto/termlib.pro \
167 proto/ui.pro \
168 proto/undo.pro \
169 proto/window.pro
170
171all: Vim xxd/Xxd
172
173Vim: obj $(OBJ) version.c version.h
174 $(CC) $(CFLAGS) version.c -o obj/version.o
175 $(LN) $(LNFLAGS) -m -o Vim $(OBJ) obj/version.o $(LIBS)
176
177debug: obj $(OBJ) version.c version.h
178 $(CC) $(CFLAGS) version.c -o obj/version.o
179 $(LN) $(LNFLAGS) -m -g -o Vim $(OBJ) obj/version.o $(LIBS)
180
181xxd/Xxd: xxd/xxd.c
182 $(SHELL) -c cd xxd; make -f Make_amiga.mak; cd ..
183
184# Making prototypes with Manx has been removed, because it caused too many
185# problems.
186#proto: $(SYMS) $(PRO)
187
188obj:
189 makedir obj
190
191tags: $(SRC) $(INCL)
192 $(SHELL) -c ctags $(SRC) *.h
193
194# can't use delete here, too many file names
195clean:
196 $(DEL) $(OBJ) obj/version.o \
197 obj/termlib.o Vim $(SYMS) xxd/Xxd
198
199test:
200 $(SHELL) -c cd testdir; make -f Make_amiga.mak; cd ..
201
202$(SYMS): $(INCL) $(PRO)
203 $(CC) $(CFLAGS) -ho$(SYMS) vim.h
204
205###########################################################################
206
207# Unfortunately, Manx's make doesn't understand a .c.o rule, so each
208# compilation command has to be given explicitly.
209
210CCSYM = $(CC) $(CFLAGS) -hi$(SYMS) -o
211CCNOSYM = $(CC) $(CFLAGS) -o
212
213$(OBJ): $(SYMS)
214
215obj/buffer.o: buffer.c
216 $(CCSYM) $@ buffer.c
217
218obj/charset.o: charset.c
219 $(CCSYM) $@ charset.c
220
221obj/diff.o: diff.c
222 $(CCSYM) $@ diff.c
223
224obj/digraph.o: digraph.c
225 $(CCSYM) $@ digraph.c
226
227obj/edit.o: edit.c
228 $(CCSYM) $@ edit.c
229
230obj/eval.o: eval.c
231 $(CCSYM) $@ eval.c
232
233obj/ex_cmds.o: ex_cmds.c
234 $(CCSYM) $@ ex_cmds.c
235
236obj/ex_cmds2.o: ex_cmds2.c
237 $(CCSYM) $@ ex_cmds2.c
238
239# Don't use $(SYMS) here, because ex_docmd.c defines DO_DECLARE_EXCMD
240obj/ex_docmd.o: ex_docmd.c ex_cmds.h
241 $(CCNOSYM) $@ ex_docmd.c
242
243obj/ex_eval.o: ex_eval.c ex_cmds.h
244 $(CCSYM) $@ ex_eval.c
245
246obj/ex_getln.o: ex_getln.c
247 $(CCSYM) $@ ex_getln.c
248
249obj/fileio.o: fileio.c
250 $(CCSYM) $@ fileio.c
251
252obj/fold.o: fold.c
253 $(CCSYM) $@ fold.c
254
255obj/getchar.o: getchar.c
256 $(CCSYM) $@ getchar.c
257
Bram Moolenaar58d98232005-07-23 22:25:46 +0000258obj/hardcopy.o: hardcopy.c
259 $(CCSYM) $@ hardcopy.c
260
Bram Moolenaarce5e58e2005-01-19 22:24:34 +0000261obj/hashtable.o: hashtable.c
262 $(CCSYM) $@ hashtable.c
263
Bram Moolenaar071d4272004-06-13 20:20:40 +0000264# Don't use $(SYMS) here, because main.c defines EXTERN
265obj/main.o: main.c option.h globals.h
266 $(CCNOSYM) $@ main.c
267
268obj/mark.o: mark.c
269 $(CCSYM) $@ mark.c
270
271obj/memfile.o: memfile.c
272 $(CCSYM) $@ memfile.c
273
274obj/memline.o: memline.c
275 $(CCSYM) $@ memline.c
276
277obj/menu.o: menu.c
278 $(CCSYM) $@ menu.c
279
280# Don't use $(SYMS) here, because message.c defines MESSAGE_FILE
281obj/message.o: message.c
282 $(CCNOSYM) $@ message.c
283
284obj/misc1.o: misc1.c
285 $(CCSYM) $@ misc1.c
286
287obj/misc2.o: misc2.c
288 $(CCSYM) $@ misc2.c
289
290obj/move.o: move.c
291 $(CCSYM) $@ move.c
292
293obj/mbyte.o: mbyte.c
294 $(CCSYM) $@ mbyte.c
295
296obj/normal.o: normal.c
297 $(CCSYM) $@ normal.c
298
299obj/ops.o: ops.c
300 $(CCSYM) $@ ops.c
301
302# Don't use $(SYMS) here, because option.h defines variables here
303obj/option.o: option.c
304 $(CCNOSYM) $@ option.c
305
306obj/os_amiga.o: os_amiga.c
307 $(CCSYM) $@ os_amiga.c
308
Bram Moolenaar1c7715d2005-10-03 22:02:18 +0000309obj/popupmenu.o: popupmenu.c
310 $(CCSYM) $@ popupmenu.c
311
Bram Moolenaar071d4272004-06-13 20:20:40 +0000312obj/quickfix.o: quickfix.c
313 $(CCSYM) $@ quickfix.c
314
315obj/regexp.o: regexp.c
316 $(CCSYM) $@ regexp.c
317
318obj/screen.o: screen.c
319 $(CCSYM) $@ screen.c
320
321obj/search.o: search.c
322 $(CCSYM) $@ search.c
323
Bram Moolenaar60c78922005-03-20 22:40:14 +0000324obj/spell.o: spell.c
325 $(CCSYM) $@ spell.c
326
Bram Moolenaar071d4272004-06-13 20:20:40 +0000327obj/syntax.o: syntax.c
328 $(CCSYM) $@ syntax.c
329
330obj/tag.o: tag.c
331 $(CCSYM) $@ tag.c
332
333obj/term.o: term.c term.h
334 $(CCSYM) $@ term.c
335
336obj/termlib.o: termlib.c
337 $(CCSYM) $@ termlib.c
338
339obj/ui.o: ui.c
340 $(CCSYM) $@ ui.c
341
342obj/undo.o: undo.c
343 $(CCSYM) $@ undo.c
344
345obj/window.o: window.c
346 $(CCSYM) $@ window.c