fork for IVI
[profile/ivi/vim.git] / src / Make_manx.mak
1 #
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.
13 DEFINES =
14
15 #>>>>> if HAVE_TGETENT is defined obj/termlib.o has to be used
16 #TERMLIB = obj/termlib.o
17 TERMLIB =
18
19 #>>>>> choose between debugging (-bs) or optimizing (-so)
20 OPTIONS = -so
21 #OPTIONS = -bs
22
23 #>>>>> end of choices
24 ###########################################################################
25
26 CFLAGS = $(OPTIONS) -wapruq -ps -qf -Iproto $(DEFINES) -DAMIGA
27
28 LIBS = -lc16
29 SYMS = vim.syms
30 CC = cc
31 LN = ln
32 LNFLAGS = +q
33 SHELL = csh
34 REN = $(SHELL) -c mv -f
35 DEL = $(SHELL) -c rm -f
36
37 SRC =   blowfish.c \
38         buffer.c \
39         charset.c \
40         diff.c \
41         digraph.c \
42         edit.c \
43         eval.c \
44         ex_cmds.c \
45         ex_cmds2.c \
46         ex_docmd.c \
47         ex_eval.c \
48         ex_getln.c \
49         fileio.c \
50         fold.c \
51         getchar.c \
52         hardcopy.c \
53         hashtab.c \
54         main.c \
55         mark.c \
56         memfile.c \
57         memline.c \
58         menu.c \
59         message.c \
60         misc1.c \
61         misc2.c \
62         move.c \
63         mbyte.c \
64         normal.c \
65         ops.c \
66         option.c \
67         os_amiga.c \
68         popupmnu.c \
69         quickfix.c \
70         regexp.c \
71         screen.c \
72         search.c \
73         sha256.c \
74         spell.c \
75         syntax.c \
76         tag.c \
77         term.c \
78         ui.c \
79         undo.c \
80         window.c \
81         version.c
82
83 INCL = vim.h feature.h keymap.h macros.h ascii.h term.h structs.h os_amiga.h
84
85 OBJ =   obj/blowfish.o \
86         obj/buffer.o \
87         obj/charset.o \
88         obj/diff.o \
89         obj/digraph.o \
90         obj/edit.o \
91         obj/eval.o \
92         obj/ex_cmds.o \
93         obj/ex_cmds2.o \
94         obj/ex_docmd.o \
95         obj/ex_eval.o \
96         obj/ex_getln.o \
97         obj/fileio.o \
98         obj/fold.o \
99         obj/getchar.o \
100         obj/hardcopy.o \
101         obj/hashtab.o \
102         obj/main.o \
103         obj/mark.o \
104         obj/memfile.o \
105         obj/memline.o \
106         obj/menu.o \
107         obj/message.o \
108         obj/misc1.o \
109         obj/misc2.o \
110         obj/move.o \
111         obj/mbyte.o \
112         obj/normal.o \
113         obj/ops.o \
114         obj/option.o \
115         obj/os_amiga.o \
116         obj/popupmnu.o \
117         obj/quickfix.o \
118         obj/regexp.o \
119         obj/screen.o \
120         obj/search.o \
121         obj/sha256.o \
122         obj/spell.o \
123         obj/syntax.o \
124         obj/tag.o \
125         obj/term.o \
126         obj/ui.o \
127         obj/undo.o \
128         obj/window.o \
129         $(TERMLIB)
130
131 PRO =   proto/blowfish.pro \
132         proto/buffer.pro \
133         proto/charset.pro \
134         proto/diff.pro \
135         proto/digraph.pro \
136         proto/edit.pro \
137         proto/eval.pro \
138         proto/ex_cmds.pro \
139         proto/ex_cmds2.pro \
140         proto/ex_docmd.pro \
141         proto/ex_eval.pro \
142         proto/ex_getln.pro \
143         proto/fileio.pro \
144         proto/fold.pro \
145         proto/getchar.pro \
146         proto/hardcopy.pro \
147         proto/hashtab.pro \
148         proto/main.pro \
149         proto/mark.pro \
150         proto/memfile.pro \
151         proto/memline.pro \
152         proto/menu.pro \
153         proto/message.pro \
154         proto/misc1.pro \
155         proto/misc2.pro \
156         proto/move.pro \
157         proto/mbyte.pro \
158         proto/normal.pro \
159         proto/ops.pro \
160         proto/option.pro \
161         proto/os_amiga.pro \
162         proto/popupmnu.pro \
163         proto/quickfix.pro \
164         proto/regexp.pro \
165         proto/screen.pro \
166         proto/search.pro \
167         proto/sha256.pro \
168         proto/spell.pro \
169         proto/syntax.pro \
170         proto/tag.pro \
171         proto/term.pro \
172         proto/termlib.pro \
173         proto/ui.pro \
174         proto/undo.pro \
175         proto/window.pro
176
177 all: Vim xxd/Xxd
178
179 Vim: obj $(OBJ) version.c version.h
180         $(CC) $(CFLAGS) version.c -o obj/version.o
181         $(LN) $(LNFLAGS) -m -o Vim $(OBJ) obj/version.o $(LIBS)
182
183 debug: obj $(OBJ) version.c version.h
184         $(CC) $(CFLAGS) version.c -o obj/version.o
185         $(LN) $(LNFLAGS) -m -g -o Vim $(OBJ) obj/version.o $(LIBS)
186
187 xxd/Xxd: xxd/xxd.c
188         $(SHELL) -c cd xxd; make -f Make_amiga.mak; cd ..
189
190 # Making prototypes with Manx has been removed, because it caused too many
191 # problems.
192 #proto: $(SYMS) $(PRO)
193
194 obj:
195         makedir obj
196
197 tags: $(SRC) $(INCL)
198         $(SHELL) -c ctags $(SRC) *.h
199
200 # can't use delete here, too many file names
201 clean:
202         $(DEL) $(OBJ) obj/version.o \
203                 obj/termlib.o Vim $(SYMS) xxd/Xxd
204
205 test:
206         $(SHELL) -c cd testdir; make -f Make_amiga.mak; cd ..
207
208 $(SYMS): $(INCL) $(PRO)
209         $(CC) $(CFLAGS) -ho$(SYMS) vim.h
210
211 ###########################################################################
212
213 # Unfortunately, Manx's make doesn't understand a .c.o rule, so each
214 # compilation command has to be given explicitly.
215
216 CCSYM = $(CC) $(CFLAGS) -hi$(SYMS) -o
217 CCNOSYM = $(CC) $(CFLAGS) -o
218
219 $(OBJ): $(SYMS)
220
221 obj/blowfish.o: blowfish.c
222         $(CCSYM) $@ blowfish.c
223
224 obj/buffer.o:   buffer.c
225         $(CCSYM) $@ buffer.c
226
227 obj/charset.o:  charset.c
228         $(CCSYM) $@ charset.c
229
230 obj/diff.o:     diff.c
231         $(CCSYM) $@ diff.c
232
233 obj/digraph.o:  digraph.c
234         $(CCSYM) $@ digraph.c
235
236 obj/edit.o:     edit.c
237         $(CCSYM) $@ edit.c
238
239 obj/eval.o:     eval.c
240         $(CCSYM) $@ eval.c
241
242 obj/ex_cmds.o:  ex_cmds.c
243         $(CCSYM) $@ ex_cmds.c
244
245 obj/ex_cmds2.o: ex_cmds2.c
246         $(CCSYM) $@ ex_cmds2.c
247
248 # Don't use $(SYMS) here, because ex_docmd.c defines DO_DECLARE_EXCMD
249 obj/ex_docmd.o: ex_docmd.c ex_cmds.h
250         $(CCNOSYM) $@ ex_docmd.c
251
252 obj/ex_eval.o:  ex_eval.c ex_cmds.h
253         $(CCSYM) $@ ex_eval.c
254
255 obj/ex_getln.o: ex_getln.c
256         $(CCSYM) $@ ex_getln.c
257
258 obj/fileio.o:   fileio.c
259         $(CCSYM) $@ fileio.c
260
261 obj/fold.o:     fold.c
262         $(CCSYM) $@ fold.c
263
264 obj/getchar.o:  getchar.c
265         $(CCSYM) $@ getchar.c
266
267 obj/hardcopy.o: hardcopy.c
268         $(CCSYM) $@ hardcopy.c
269
270 obj/hashtab.o:  hashtab.c
271         $(CCSYM) $@ hashtab.c
272
273 # Don't use $(SYMS) here, because main.c defines EXTERN
274 obj/main.o:     main.c option.h globals.h
275         $(CCNOSYM) $@ main.c
276
277 obj/mark.o:     mark.c
278         $(CCSYM) $@ mark.c
279
280 obj/memfile.o:  memfile.c
281         $(CCSYM) $@ memfile.c
282
283 obj/memline.o:  memline.c
284         $(CCSYM) $@ memline.c
285
286 obj/menu.o:     menu.c
287         $(CCSYM) $@ menu.c
288
289 # Don't use $(SYMS) here, because message.c defines MESSAGE_FILE
290 obj/message.o:  message.c
291         $(CCNOSYM) $@ message.c
292
293 obj/misc1.o:    misc1.c
294         $(CCSYM) $@ misc1.c
295
296 obj/misc2.o:    misc2.c
297         $(CCSYM) $@ misc2.c
298
299 obj/move.o:     move.c
300         $(CCSYM) $@ move.c
301
302 obj/mbyte.o: mbyte.c
303         $(CCSYM) $@ mbyte.c
304
305 obj/normal.o:   normal.c
306         $(CCSYM) $@ normal.c
307
308 obj/ops.o:      ops.c
309         $(CCSYM) $@ ops.c
310
311 # Don't use $(SYMS) here, because option.h defines variables here
312 obj/option.o:   option.c
313         $(CCNOSYM) $@ option.c
314
315 obj/os_amiga.o: os_amiga.c
316         $(CCSYM) $@ os_amiga.c
317
318 obj/popupmnu.o: popupmnu.c
319         $(CCSYM) $@ popupmnu.c
320
321 obj/quickfix.o: quickfix.c
322         $(CCSYM) $@ quickfix.c
323
324 obj/regexp.o:   regexp.c
325         $(CCSYM) $@ regexp.c
326
327 obj/screen.o:   screen.c
328         $(CCSYM) $@ screen.c
329
330 obj/search.o:   search.c
331         $(CCSYM) $@ search.c
332
333 obj/sha256.o:   sha256.c
334         $(CCSYM) $@ sha256.c
335
336 obj/spell.o:    spell.c
337         $(CCSYM) $@ spell.c
338
339 obj/syntax.o:   syntax.c
340         $(CCSYM) $@ syntax.c
341
342 obj/tag.o:      tag.c
343         $(CCSYM) $@ tag.c
344
345 obj/term.o:     term.c term.h
346         $(CCSYM) $@ term.c
347
348 obj/termlib.o:  termlib.c
349         $(CCSYM) $@ termlib.c
350
351 obj/ui.o:       ui.c
352         $(CCSYM) $@ ui.c
353
354 obj/undo.o:     undo.c
355         $(CCSYM) $@ undo.c
356
357 obj/window.o:   window.c
358         $(CCSYM) $@ window.c