comparison src/Make_bc5.mak @ 7:3fc0f57ecb91 v7.0001

updated for version 7.0001
author vimboss
date Sun, 13 Jun 2004 20:20:40 +0000
parents
children bdeee1504ac1
comparison
equal deleted inserted replaced
6:c2daee826b8f 7:3fc0f57ecb91
1 #
2 # Makefile for Vim.
3 # Compiler: Borland C++ 5.0 and later 32-bit compiler
4 # Targets: Dos16 or Win32 (Windows NT and Windows 95) (with/without GUI)
5 #
6 # Contributed by Ben Singer.
7 # Updated 4/1997 by Ron Aaron
8 # 6/1997 - added support for 16 bit DOS
9 # Note: this has been tested, and works, for BC5. Your mileage may vary.
10 # Has been reported NOT to work with BC 4.52. Maybe it can be fixed?
11 # 10/1997 - ron - fixed bugs w/ BC 5.02
12 # 8/1998 - ron - updated with new targets, fixed some stuff
13 # 3/2000 - Bram: Made it work with BC 5.5 free command line compiler,
14 # cleaned up variables.
15 # 6/2001 - Dan - Added support for compiling Python and TCL
16 # 7/2001 - Dan - Added support for compiling Ruby
17 #
18 # It builds on Windows 95 and NT-Intel, producing the same binary in either
19 # case. To build using Microsoft Visual C++, use Make_mvc.mak.
20 #
21 # This should work with the free Borland command line compiler, version 5.5.
22 # You need at least sp1 (service pack 1). With sp2 it compiles faster.
23 # Use a command like this:
24 # <path>\bin\make /f Make_bc5.mak BOR=<path>
25 #
26
27 # let the make utility do the hard work:
28 .AUTODEPEND
29 .CACHEAUTODEPEND
30
31 # VARIABLES:
32 # name value (default)
33 #
34 # BOR path to root of Borland C install (c:\bc5)
35 # LINK name of the linker ($(BOR)\bin\ilink if OSTYPE is DOS16,
36 # $(BOR)\bin\ilink32 otherwise)
37 # GUI no or yes: set to yes if you want the GUI version (yes)
38 # PERL define to path to Perl dir to get Perl support (not defined)
39 # PERL_VER define to version of Perl being used (56)
40 # DYNAMIC_PERL no or yes: set to yes to load the Perl DLL dynamically (no)
41 # PYTHON define to path to Python dir to get PYTHON support (not defined)
42 # PYTHON_VER define to version of Python being used (22)
43 # DYNAMIC_PYTHON no or yes: use yes to load the Python DLL dynamically (no)
44 # TCL define to path to TCL dir to get TCL support (not defined)
45 # TCL_VER define to version of TCL being used (83)
46 # DYNAMIC_TCL no or yes: use yes to load the TCL DLL dynamically (no)
47 # RUBY define to path to Ruby dir to get Ruby support (not defined)
48 # NOTE: You may have to remove the defines for uid_t and gid_t
49 # from the Ruby config.h header file.
50 # RUBY_VER define to version of Ruby being used (16)
51 # NOTE: compilation on WinNT/2K/XP requires
52 # at least version 1.6.5 of Ruby. Earlier versions
53 # of Ruby will cause a compile error on these systems.
54 # DYNAMIC_RUBY no or yes: use yes to load the Ruby DLL dynamically (no)
55 # MBYTE no or yes: set to yes for multi-byte support (yes)
56 # IME no or yes: set to yes for multi-byte IME support (yes)
57 # DYNAMIC_IME no or yes: set to yes to load imm32.dll dynamically (yes)
58 # GETTEXT no or yes: set to yes for multi-language support (yes)
59 # ICONV no or yes: set to yes for dynamic iconv support (yes)
60 # OLE no or yes: set to yes to make OLE gvim (no)
61 # OSTYPE DOS16 or WIN32 (WIN32)
62 # DEBUG no or yes: set to yes if you wish a DEBUGging build (no)
63 # CODEGUARD no or yes: set to yes if you want to use CODEGUARD (no)
64 # CPUNR 1 through 6: select -CPU argument to compile with (3)
65 # 3 for 386, 4 for 486, 5 for pentium, 6 for pentium pro.
66 # USEDLL no or yes: set to yes to use the Runtime library DLL (no)
67 # For USEDLL=yes the cc3250.dll is required to run Vim.
68 # VIMDLL no or yes: create vim32.dll, and stub (g)vim.exe (no)
69 # ALIGN 1, 2 or 4: Alignment to use (4 for Win32, 2 for DOS16)
70 # FASTCALL no or yes: set to yes to use register-based function protocol (yes)
71 # OPTIMIZE SPACE, SPEED, or MAXSPEED: type of optimization (MAXSPEED)
72 # POSTSCRIPT no or yes: set to yes for PostScript printing
73 # FEATURES TINY, SMALL, NORMAL, BIG or HUGE
74 # (BIG for WIN32, SMALL for DOS16)
75 # WINVER 0x0400 or 0x0500: minimum Win32 version to support (0x0400)
76 # CSCOPE no or yes: include support for Cscope interface (yes)
77 # NETBEANS no or yes: include support for Netbeans interface (yes if GUI
78 # is yes)
79 # XPM define to path to XPM dir to get support for loading XPM images.
80
81 ### BOR: root of the BC installation
82 !if ("$(BOR)"=="")
83 BOR = c:\bc5
84 !endif
85
86 ### LINK: Name of the linker: tlink or ilink32 (this is below, depends on
87 # $(OSTYPE)
88
89 ### GUI: yes for GUI version, no for console version
90 !if ("$(GUI)"=="")
91 GUI = yes
92 !endif
93
94 ### MBYTE: yes for multibyte support, no to disable it.
95 !if ("$(MBYTE)"=="")
96 MBYTE = yes
97 !endif
98
99 ### IME: yes for multibyte support, no to disable it.
100 !if ("$(IME)"=="")
101 IME = yes
102 !endif
103 !if ("$(DYNAMIC_IME)"=="")
104 DYNAMIC_IME = yes
105 !endif
106
107 ### GETTEXT: yes for multilanguage support, no to disable it.
108 !if ("$(GETTEXT)"=="")
109 GETTEXT = yes
110 !endif
111
112 ### ICONV: yes to enable dynamic-iconv support, no to disable it
113 !if ("$(ICONV)"=="")
114 ICONV = yes
115 !endif
116
117 ### CSCOPE: yes to enable Cscope support, no to disable it
118 !if ("$(CSCOPE)"=="")
119 CSCOPE = yes
120 !endif
121
122 ### NETBEANS: yes to enable NetBeans interface support, no to disable it
123 !if ("$(NETBEANS)"=="") && ("$(GUI)"=="yes")
124 NETBEANS = yes
125 !endif
126
127 ### PERL: uncomment this line if you want perl support in vim
128 # PERL=c:\perl
129
130 ### PYTHON: uncomment this line if you want python support in vim
131 # PYTHON=c:\python22
132
133 ### RUBY: uncomment this line if you want ruby support in vim
134 # RUBY=c:\ruby
135
136 ### TCL: uncomment this line if you want tcl support in vim
137 # TCL=c:\tcl
138
139 ### OLE: no for normal gvim, yes for OLE-capable gvim (only works with GUI)
140 #OLE = yes
141
142 ### OSTYPE: DOS16 for Windows 3.1 version, WIN32 for Windows 95/98/NT/2000
143 # version
144 !if ("$(OSTYPE)"=="")
145 OSTYPE = WIN32
146 !endif
147
148 ### DEBUG: Uncomment to make an executable for debugging
149 # DEBUG = yes
150 !if ("$(DEBUG)"=="yes")
151 DEBUG_FLAG = -v
152 !endif
153
154 ### CODEGUARD: Uncomment to use the CODEGUARD stuff (BC 5.0 or later):
155 # CODEGUARD = yes
156 !if ("$(CODEGUARD)"=="yes")
157 CODEGUARD_FLAG = -vG
158 !endif
159
160 ### CPUNR: set your target processor (3 to 6)
161 !if ("$(CPUNR)" == "i386") || ("$(CPUNR)" == "3")
162 CPUNR = 3
163 !elif ("$(CPUNR)" == "i486") || ("$(CPUNR)" == "4")
164 CPUNR = 4
165 !elif ("$(CPUNR)" == "i586") || ("$(CPUNR)" == "5")
166 CPUNR = 5
167 !elif ("$(CPUNR)" == "i686") || ("$(CPUNR)" == "6")
168 CPUNR = 6
169 !else
170 CPUNR = 3
171 !endif
172
173 ### Comment out to use precompiled headers (faster, but uses lots of disk!)
174 HEADERS = -H -H=vim.csm -Hc
175
176 ### USEDLL: no for statically linked version of run-time, yes for DLL runtime
177 !if ("$(USEDLL)"=="")
178 USEDLL = no
179 !endif
180
181 ### VIMDLL: yes for a DLL version of VIM (NOT RECOMMENDED), no otherwise
182 #VIMDLL = yes
183
184 ### ALIGN: alignment you desire: (1,2 or 4: s/b 4 for Win32, 2 for DOS)
185 !if ("$(ALIGN)"=="")
186 !if ($(OSTYPE)==DOS16)
187 ALIGN = 2
188 !else
189 ALIGN = 4
190 !endif
191 !endif
192
193 ### FASTCALL: yes to use FASTCALL calling convention (RECOMMENDED!), no otherwise
194 # Incompatible when calling external functions (like MSVC-compiled DLLs), so
195 # don't use FASTCALL when linking with external libs.
196 !if ("$(FASTCALL)"=="") && \
197 ("$(PYTHON)"=="") && \
198 ("$(PERL)"=="") && \
199 ("$(TCL)"=="") && \
200 ("$(RUBY)"=="") && \
201 ("$(ICONV)"!="yes") && \
202 ("$(IME)"!="yes") && \
203 ("$(MBYTE)"!="yes") && \
204 ("$(XPM)"=="")
205 FASTCALL = yes
206 !endif
207
208 ### OPTIMIZE: SPEED to optimize for speed, SPACE otherwise (SPEED RECOMMENDED)
209 !if ("$(OPTIMIZE)"=="")
210 OPTIMIZE = MAXSPEED
211 !endif
212
213 ### FEATURES: TINY, SMALL, NORMAL, BIG or HUGE (BIG for WIN32, SMALL for DOS16)
214 !if ("$(FEATURES)"=="")
215 ! if ($(OSTYPE)==DOS16)
216 FEATURES = SMALL
217 ! else
218 FEATURES = BIG
219 ! endif
220 !endif
221
222 ### POSTSCRIPT: uncomment this line if you want PostScript printing
223 #POSTSCRIPT = yes
224
225 ###
226 # If you have a fixed directory for $VIM or $VIMRUNTIME, other than the normal
227 # default, use these lines.
228 #VIMRCLOC = somewhere
229 #VIMRUNTIMEDIR = somewhere
230
231 ### Set the default $(WINVER) to make it work with Bcc 5.5.
232 !ifndef WINVER
233 WINVER = 0x0400
234 !endif
235
236 #
237 # Sanity checks for the above options:
238 #
239
240 !if ($(OSTYPE)==DOS16)
241 !if (($(CPUNR)+0)>4)
242 !error CPUNR Must be less than or equal to 4 for DOS16
243 !endif
244
245 !if (($(ALIGN)+0)>2)
246 !error ALIGN Must be less than or equal to 2 for DOS16
247 !endif
248
249 !else # not DOS16
250 !if (($(CPUNR)+0)<3)
251 !error CPUNR Must be greater or equal to 3 for WIN32
252 !endif
253 !endif
254
255 !if ($(OSTYPE)!=WIN32) && ($(OSTYPE)!=DOS16)
256 !error Check the OSTYPE variable again: $(OSTYPE) is not supported!
257 !endif
258
259 #
260 # Optimizations: change as desired (RECOMMENDATION: Don't change!):
261 #
262 !if ("$(DEBUG)"=="yes")
263 OPT = -Od -N
264 !else
265 !if ("$(OPTIMIZE)"=="SPACE")
266 OPT = -O1 -f- -d
267 !elif ("$(OPTIMIZE)"=="MAXSPEED")
268 OPT = -O2 -f- -d -Ocavi -O
269 !else
270 OPT = -O2 -f- -d -Oc -O
271 !endif
272 !if ("$(FASTCALL)"=="yes")
273 OPT = $(OPT) -pr
274 !endif
275 !if ("$(CODEGUARD)"!="yes")
276 OPT = $(OPT) -vi-
277 !endif
278 !endif
279 !if ($(OSTYPE)==DOS16)
280 !undef GUI
281 !undef VIMDLL
282 !undef USEDLL
283 !endif
284 # shouldn't have to change:
285 LIB = $(BOR)\lib
286 INCLUDE = $(BOR)\include;.;proto
287 DEFINES = -DFEAT_$(FEATURES) -DWIN32 -DHAVE_PATHDEF \
288 -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER)
289
290 !ifdef PERL
291 INTERP_DEFINES = $(INTERP_DEFINES) -DFEAT_PERL
292 INCLUDE = $(PERL)\lib\core;$(INCLUDE)
293 ! ifndef PERL_VER
294 PERL_VER = 56
295 ! endif
296 ! if ("$(DYNAMIC_PERL)" == "yes")
297 ! if ($(PERL_VER) > 55)
298 INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
299 PERL_LIB_FLAG = /nodefaultlib:
300 ! else
301 ! message "Cannot dynamically load Perl versions less than 5.6. Loading statically..."
302 ! endif
303 ! endif
304 !endif
305
306 !ifdef PYTHON
307 INTERP_DEFINES = $(INTERP_DEFINES) -DFEAT_PYTHON
308 INCLUDE = $(PYTHON)\include;$(INCLUDE)
309 !ifndef PYTHON_VER
310 PYTHON_VER = 22
311 !endif
312 !if "$(DYNAMIC_PYTHON)" == "yes"
313 INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_PYTHON -DDYNAMIC_PYTHON_DLL=\"python$(PYTHON_VER).dll\"
314 PYTHON_LIB_FLAG = /nodefaultlib:
315 !endif
316 !endif
317
318 !ifdef RUBY
319 !ifndef RUBY_VER
320 RUBY_VER = 16
321 !endif
322 !ifndef RUBY_VER_LONG
323 RUBY_VER_LONG = 1.6
324 !endif
325
326 !if "$(RUBY_VER)" == "16"
327 !ifndef RUBY_PLATFORM
328 RUBY_PLATFORM = i586-mswin32
329 !endif
330 !ifndef RUBY_INSTALL_NAME
331 RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_VER)
332 !endif
333 !else
334 !ifndef RUBY_PLATFORM
335 RUBY_PLATFORM = i386-mswin32
336 !endif
337 !ifndef RUBY_INSTALL_NAME
338 RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_VER)
339 !endif
340 !endif
341
342 INTERP_DEFINES = $(INTERP_DEFINES) -DFEAT_RUBY
343 INCLUDE = $(RUBY)\lib\ruby\$(RUBY_VER_LONG)\$(RUBY_PLATFORM);$(INCLUDE)
344
345 !if "$(DYNAMIC_RUBY)" == "yes"
346 INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_RUBY -DDYNAMIC_RUBY_DLL=\"$(RUBY_INSTALL_NAME).dll\"
347 INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_RUBY_VER=$(RUBY_VER)
348 RUBY_LIB_FLAG = /nodefaultlib:
349 !endif
350 !endif
351
352 !ifdef TCL
353 INTERP_DEFINES = $(INTERP_DEFINES) -DFEAT_TCL
354 INCLUDE = $(TCL)\include;$(INCLUDE)
355 !ifndef TCL_VER
356 TCL_VER = 83
357 !endif
358 TCL_LIB = $(TCL)\lib\tcl$(TCL_VER).lib
359 TCL_LIB_FLAG =
360 !if "$(DYNAMIC_TCL)" == "yes"
361 INTERP_DEFINES = $(INTERP_DEFINES) -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl$(TCL_VER).dll\"
362 TCL_LIB = tclstub$(TCL_VER)-bor.lib
363 TCL_LIB_FLAG =
364 !endif
365 !endif
366 #
367 # DO NOT change below:
368 #
369 CPUARG = -$(CPUNR)
370 ALIGNARG = -a$(ALIGN)
371 #
372 !if ("$(DEBUG)"=="yes")
373 DEFINES=$(DEFINES) -DDEBUG
374 !endif
375 #
376 !if ("$(OLE)"=="yes")
377 DEFINES = $(DEFINES) -DFEAT_OLE
378 !endif
379 #
380 !if ("$(MBYTE)"=="yes")
381 MBDEFINES = $(MBDEFINES) -DFEAT_MBYTE
382 !endif
383 !if ("$(IME)"=="yes")
384 MBDEFINES = $(MBDEFINES) -DFEAT_MBYTE_IME
385 !if ("$(DYNAMIC_IME)" == "yes")
386 MBDEFINES = $(MBDEFINES) -DDYNAMIC_IME
387 !endif
388 !endif
389 !if ("$(ICONV)"=="yes")
390 MBDEFINES = $(MBDEFINES) -DDYNAMIC_ICONV
391 !endif
392 !if ("$(GETTEXT)"=="yes")
393 MBDEFINES = $(MBDEFINES) -DDYNAMIC_GETTEXT
394 !endif
395
396 !if ("$(CSCOPE)"=="yes")
397 DEFINES = $(DEFINES) -DFEAT_CSCOPE
398 !endif
399
400 !if ("$(NETBEANS)"=="yes")
401 DEFINES = $(DEFINES) -DFEAT_NETBEANS_INTG
402 !if ("$(DEBUG)"=="yes")
403 DEFINES = $(DEFINES) -DNBDEBUG
404 NBDEBUG_DEP = nbdebug.h nbdebug.c
405 !endif
406 !endif
407
408 !ifdef XPM
409 DEFINES = $(DEFINES) -DFEAT_XPM_W32
410 INCLUDE = $(XPM)\include;$(INCLUDE)
411 !endif
412
413 !if ("$(GUI)"=="yes")
414 DEFINES = $(DEFINES) -DFEAT_GUI_W32 -DFEAT_CLIPBOARD
415 !if ("$(DEBUG)"=="yes")
416 TARGET = gvimd.exe
417 !else
418 TARGET = gvim.exe
419 !endif
420 !if ("$(VIMDLL)"=="yes")
421 EXETYPE=-WD
422 DEFINES = $(DEFINES) -DVIMDLL
423 !else
424 EXETYPE=-W
425 !endif
426 STARTUPOBJ = c0w32.obj
427 LINK2 = -aa
428 RESFILE = vim.res
429 !else
430 !if ("$(DEBUG)"=="yes")
431 TARGET = vimd.exe
432 !else
433 # for now, anyway: VIMDLL is only for the GUI version
434 !undef VIMDLL
435 TARGET = vim.exe
436 !endif
437 !if ($(OSTYPE)==DOS16)
438 DEFINES= -DFEAT_$(FEATURES) -DMSDOS
439 EXETYPE=-ml
440 STARTUPOBJ = c0l.obj
441 LINK2 =
442 !else
443 EXETYPE=-WC
444 STARTUPOBJ = c0x32.obj
445 LINK2 = -ap -OS -o -P
446 !endif
447 RESFILE = vim.res
448 !endif
449
450 !if ("$(USEDLL)"=="yes")
451 DEFINES = $(DEFINES) -D_RTLDLL
452 !endif
453
454 !if ("$(DEBUG)"=="yes")
455 OBJDIR = $(OSTYPE)\objdbg
456 !else
457 !if ("$(GUI)"=="yes")
458 !if ("$(OLE)"=="yes")
459 OBJDIR = $(OSTYPE)\oleobj
460 !else
461 OBJDIR = $(OSTYPE)\gobj
462 !endif
463 !else
464 OBJDIR = $(OSTYPE)\obj
465 !endif
466 !endif
467
468 !if ("$(POSTSCRIPT)"=="yes")
469 DEFINES = $(DEFINES) -DMSWINPS
470 !endif
471
472 ##### BASE COMPILER/TOOLS RULES #####
473 MAKE = $(BOR)\bin\make
474 CFLAGS = -w-aus -w-par -w-pch -w-ngu -w-csu -I$(INCLUDE)
475 !if ($(OSTYPE)==DOS16)
476 BRC =
477 !if ("$(LINK)"=="")
478 LINK = $(BOR)\BIN\TLink
479 !endif
480 CC = $(BOR)\BIN\Bcc
481 LFLAGS = -Tde -c -m -L$(LIB) $(DEBUG_FLAG) $(LINK2)
482 LFLAGSDLL =
483 CFLAGS = $(CFLAGS) -H- $(HEADERS)
484 !else
485 BRC = $(BOR)\BIN\brc32
486 !if ("$(LINK)"=="")
487 LINK = $(BOR)\BIN\ILink32
488 !endif
489 CC = $(BOR)\BIN\Bcc32
490 LFLAGS = -OS -Tpe -c -m -L$(LIB) $(DEBUG_FLAG) $(LINK2)
491 LFLAGSDLL = -Tpd -c -m -L$(LIB) $(DEBUG_FLAG) $(LINK2)
492 CFLAGS = $(CFLAGS) -d -RT- -k- -Oi $(HEADERS) -f-
493 !endif
494
495 CC1 = -c
496 CC2 = -o
497 CCARG = +$(OBJDIR)\bcc.cfg
498
499 # implicit rules:
500
501 # Without the following, the implicit rule in BUILTINS.MAK is picked up
502 # for a rule for .c.obj rather than the local implicit rule
503 .SUFFIXES
504 .SUFFIXES .c .obj
505 .path.c = .
506
507 {.}.c{$(OBJDIR)}.obj:
508 $(CC) $(CCARG) $(CC1) -n$(OBJDIR)\ {$< }
509
510 .cpp.obj:
511 $(CC) $(CCARG) $(CC1) $(CC2)$@ $*.cpp
512
513 !if ($(OSTYPE)==DOS16)
514 !else # win32:
515 vimmain = \
516 $(OBJDIR)\os_w32exe.obj
517 !if ("$(VIMDLL)"=="yes")
518 vimwinmain = \
519 $(OBJDIR)\os_w32dll.obj
520 !else
521 vimwinmain = \
522 $(OBJDIR)\os_w32exe.obj
523 !endif
524 !endif
525
526 vimobj = \
527 $(OBJDIR)\buffer.obj \
528 $(OBJDIR)\charset.obj \
529 $(OBJDIR)\diff.obj \
530 $(OBJDIR)\digraph.obj \
531 $(OBJDIR)\edit.obj \
532 $(OBJDIR)\eval.obj \
533 $(OBJDIR)\ex_cmds.obj \
534 $(OBJDIR)\ex_cmds2.obj \
535 $(OBJDIR)\ex_docmd.obj \
536 $(OBJDIR)\ex_eval.obj \
537 $(OBJDIR)\ex_getln.obj \
538 $(OBJDIR)\fileio.obj \
539 $(OBJDIR)\fold.obj \
540 $(OBJDIR)\getchar.obj \
541 $(OBJDIR)\main.obj \
542 $(OBJDIR)\mark.obj \
543 $(OBJDIR)\memfile.obj \
544 $(OBJDIR)\memline.obj \
545 $(OBJDIR)\menu.obj \
546 $(OBJDIR)\message.obj \
547 $(OBJDIR)\misc1.obj \
548 $(OBJDIR)\misc2.obj \
549 $(OBJDIR)\move.obj \
550 $(OBJDIR)\mbyte.obj \
551 $(OBJDIR)\normal.obj \
552 $(OBJDIR)\ops.obj \
553 $(OBJDIR)\option.obj \
554 $(OBJDIR)\quickfix.obj \
555 $(OBJDIR)\regexp.obj \
556 $(OBJDIR)\screen.obj \
557 $(OBJDIR)\search.obj \
558 $(OBJDIR)\syntax.obj \
559 $(OBJDIR)\tag.obj \
560 $(OBJDIR)\term.obj \
561 $(OBJDIR)\ui.obj \
562 $(OBJDIR)\undo.obj \
563 $(OBJDIR)\version.obj \
564 $(OBJDIR)\window.obj \
565 $(OBJDIR)\pathdef.obj
566
567 !if ("$(OLE)"=="yes")
568 vimobj = $(vimobj) \
569 $(OBJDIR)\if_ole.obj
570 !endif
571
572 !ifdef PERL
573 vimobj = $(vimobj) \
574 $(OBJDIR)\if_perl.obj
575 !endif
576
577 !ifdef PYTHON
578 vimobj = $(vimobj) \
579 $(OBJDIR)\if_python.obj
580 !endif
581
582 !ifdef RUBY
583 vimobj = $(vimobj) \
584 $(OBJDIR)\if_ruby.obj
585 !endif
586
587 !ifdef TCL
588 vimobj = $(vimobj) \
589 $(OBJDIR)\if_tcl.obj
590 !endif
591
592 !if ("$(CSCOPE)"=="yes")
593 vimobj = $(vimobj) \
594 $(OBJDIR)\if_cscope.obj
595 !endif
596
597 !if ("$(NETBEANS)"=="yes")
598 vimobj = $(vimobj) \
599 $(OBJDIR)\netbeans.obj $(OBJDIR)\gui_beval.obj
600 !endif
601
602 !ifdef XPM
603 vimobj = $(vimobj) \
604 $(OBJDIR)\xpm_w32.obj
605 !endif
606
607 !if ("$(VIMDLL)"=="yes")
608 vimdllobj = $(vimobj)
609 !if ("$(DEBUG)"=="yes")
610 DLLTARGET = vim32d.dll
611 !else
612 DLLTARGET = vim32.dll
613 !endif
614 !else
615 DLLTARGET = joebob
616 !endif
617
618 !if ("$(GUI)"=="yes")
619 vimobj = $(vimobj) \
620 $(vimwinmain) \
621 $(OBJDIR)\gui.obj \
622 $(OBJDIR)\gui_w32.obj
623 !endif
624
625 !if ($(OSTYPE)==WIN32)
626 vimobj = $(vimobj) \
627 $(OBJDIR)\os_win32.obj $(OBJDIR)\os_mswin.obj
628 !elif ($(OSTYPE)==DOS16)
629 vimobj = $(vimobj) \
630 $(OBJDIR)\os_msdos.obj
631 !endif
632 # Blab what we are going to do:
633 MSG = Compiling $(OSTYPE) $(TARGET) $(OLETARGET), with:
634 !if ("$(GUI)"=="yes")
635 MSG = $(MSG) GUI
636 !endif
637 !if ("$(OLE)"=="yes")
638 MSG = $(MSG) OLE
639 !endif
640 !if ("$(USEDLL)"=="yes")
641 MSG = $(MSG) USEDLL
642 !endif
643 !if ("$(VIMDLL)"=="yes")
644 MSG = $(MSG) VIMDLL
645 !endif
646 !if ("$(FASTCALL)"=="yes")
647 MSG = $(MSG) FASTCALL
648 !endif
649 !if ("$(MBYTE)"=="yes")
650 MSG = $(MSG) MBYTE
651 !endif
652 !if ("$(IME)"=="yes")
653 MSG = $(MSG) IME
654 ! if "$(DYNAMIC_IME)" == "yes"
655 MSG = $(MSG)(dynamic)
656 ! endif
657 !endif
658 !if ("$(GETTEXT)"=="yes")
659 MSG = $(MSG) GETTEXT
660 !endif
661 !if ("$(ICONV)"=="yes")
662 MSG = $(MSG) ICONV
663 !endif
664 !if ("$(DEBUG)"=="yes")
665 MSG = $(MSG) DEBUG
666 !endif
667 !if ("$(CODEGUARD)"=="yes")
668 MSG = $(MSG) CODEGUARD
669 !endif
670 !if ("$(CSCOPE)"=="yes")
671 MSG = $(MSG) CSCOPE
672 !endif
673 !if ("$(NETBEANS)"=="yes")
674 MSG = $(MSG) NETBEANS
675 !endif
676 !ifdef XPM
677 MSG = $(MSG) XPM
678 !endif
679 !ifdef PERL
680 MSG = $(MSG) PERL
681 ! if "$(DYNAMIC_PERL)" == "yes"
682 MSG = $(MSG)(dynamic)
683 ! endif
684 !endif
685 !ifdef PYTHON
686 MSG = $(MSG) PYTHON
687 ! if "$(DYNAMIC_PYTHON)" == "yes"
688 MSG = $(MSG)(dynamic)
689 ! endif
690 !endif
691 !ifdef RUBY
692 MSG = $(MSG) RUBY
693 ! if "$(DYNAMIC_RUBY)" == "yes"
694 MSG = $(MSG)(dynamic)
695 ! endif
696 !endif
697 !ifdef TCL
698 MSG = $(MSG) TCL
699 ! if "$(DYNAMIC_TCL)" == "yes"
700 MSG = $(MSG)(dynamic)
701 ! endif
702 !endif
703 MSG = $(MSG) cpu=$(CPUARG)
704 MSG = $(MSG) Align=$(ALIGNARG)
705
706 !message $(MSG)
707
708 !if ($(OSTYPE)==DOS16)
709 TARGETS = $(TARGET)
710 !else
711 !if ("$(VIMDLL)"=="yes")
712 TARGETS = $(DLLTARGET)
713 !endif
714 TARGETS = $(TARGETS) $(TARGET)
715 !endif
716
717 # Targets:
718 all: vim vimrun.exe install.exe xxd uninstal.exe GvimExt/gvimext.dll
719
720 vim: $(OSTYPE) $(OBJDIR) $(OBJDIR)\bcc.cfg $(TARGETS)
721 @if exist $(OBJDIR)\version.obj del $(OBJDIR)\version.obj
722 @if exist auto\pathdef.c del auto\pathdef.c
723
724 $(OSTYPE):
725 -@md $(OSTYPE)
726
727 $(OBJDIR):
728 -@md $(OBJDIR)
729
730 xxd:
731 @cd xxd
732 $(MAKE) /f Make_bc5.mak BOR="$(BOR)" BCC="$(CC)"
733 @cd ..
734
735 GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
736 cd GvimExt
737 $(MAKE) /f Make_bc5.mak USEDLL=$(USEDLL) BOR=$(BOR)
738 cd ..
739
740 install.exe: dosinst.c $(OBJDIR)\bcc.cfg
741 !if ($(OSTYPE)==WIN32)
742 $(CC) $(CCARG) -WC -DWIN32 -einstall dosinst.c
743 !else
744 $(CC) $(CCARG) -WC -einstall dosinst.c
745 !endif
746
747 uninstal.exe: uninstal.c $(OBJDIR)\bcc.cfg
748 !if ($(OSTYPE)==WIN32)
749 $(CC) $(CCARG) -WC -DWIN32 -O2 -euninstal uninstal.c
750 !else
751 $(CC) $(CCARG) -WC -O2 -euninstal uninstal.c
752 !endif
753
754 clean:
755 !if "$(OS)" == "Windows_NT"
756 # For Windows NT/2000, doesn't work on Windows 95/98...
757 # $(COMSPEC) needed to ensure rmdir.exe is not run
758 -@$(COMSPEC) /C rmdir /Q /S $(OBJDIR)
759 !else
760 # For Windows 95/98, doesn't work on Windows NT/2000...
761 -@deltree /y $(OBJDIR)
762 !endif
763 -@del *.res
764 -@del vim32*.dll
765 -@del vim32*.lib
766 -@del *vim*.exe
767 -@del *install*.exe
768 -@del *.csm
769 -@del *.map
770 -@del *.ilc
771 -@del *.ild
772 -@del *.ilf
773 -@del *.ils
774 -@del *.tds
775 !ifdef PERL
776 -@del perl.lib
777 !endif
778 !ifdef PYTHON
779 -@del python.lib
780 !endif
781 !ifdef RUBY
782 -@del ruby.lib
783 !endif
784 !ifdef TCL
785 -@del tcl.lib
786 !endif
787 !ifdef XPM
788 -@del xpm.lib
789 !endif
790 cd xxd
791 $(MAKE) /f Make_bc5.mak BOR="$(BOR)" clean
792 cd ..
793 cd GvimExt
794 $(MAKE) /f Make_bc5.mak BOR="$(BOR)" clean
795 cd ..
796
797 $(DLLTARGET): $(OBJDIR) $(vimdllobj)
798 $(LINK) @&&|
799 $(LFLAGSDLL) +
800 c0d32.obj +
801 $(vimdllobj)
802 $<,$*
803 !if ("$(CODEGUARD)"=="yes")
804 cg32.lib+
805 !endif
806 # $(OSTYPE)==WIN32 causes os_mswin.c compilation. FEAT_SHORTCUT in it needs OLE
807 !if ("$(OLE)"=="yes" || $(OSTYPE)==WIN32)
808 ole2w32.lib +
809 !endif
810 !if ($(OSTYPE)==WIN32)
811 import32.lib+
812 !ifdef PERL
813 $(PERL_LIB_FLAG)perl.lib+
814 !endif
815 !ifdef PYTHON
816 $(PYTHON_LIB_FLAG)python.lib+
817 !endif
818 !ifdef RUBY
819 $(RUBY_LIB_FLAG)ruby.lib+
820 !endif
821 !ifdef TCL
822 $(TCL_LIB_FLAG)tcl.lib+
823 !endif
824 !ifdef XPM
825 xpm.lib+
826 !endif
827 !if ("$(USEDLL)"=="yes")
828 cw32i.lib
829 !else
830 cw32.lib
831 !endif
832 vim.def
833 !else
834 cl.lib
835 !endif
836 |
837
838 !if ("$(VIMDLL)"=="yes")
839 $(TARGET): $(OBJDIR) $(DLLTARGET) $(vimmain) $(OBJDIR)\$(RESFILE)
840 !else
841 $(TARGET): $(OBJDIR) $(vimobj) $(OBJDIR)\$(RESFILE)
842 !endif
843 $(LINK) @&&|
844 $(LFLAGS) +
845 $(STARTUPOBJ) +
846 !if ("$(VIMDLL)"=="yes")
847 $(vimmain)
848 !else
849 $(vimobj)
850 !endif
851 $<,$*
852 !if ($(OSTYPE)==WIN32)
853 !if ("$(CODEGUARD)"=="yes")
854 cg32.lib+
855 !endif
856 # $(OSTYPE)==WIN32 causes os_mswin.c compilation. FEAT_SHORTCUT in it needs OLE
857 !if ("$(OLE)"=="yes" || $(OSTYPE)==WIN32)
858 ole2w32.lib +
859 !endif
860 import32.lib+
861 !ifdef PERL
862 $(PERL_LIB_FLAG)perl.lib+
863 !endif
864 !ifdef PYTHON
865 $(PYTHON_LIB_FLAG)python.lib+
866 !endif
867 !ifdef RUBY
868 $(RUBY_LIB_FLAG)ruby.lib+
869 !endif
870 !ifdef TCL
871 $(TCL_LIB_FLAG)tcl.lib+
872 !endif
873 !ifdef XPM
874 xpm.lib+
875 !endif
876 !if ("$(USEDLL)"=="yes")
877 cw32i.lib
878 !else
879 cw32.lib
880 !endif
881
882 $(OBJDIR)\$(RESFILE)
883 !else
884 emu.lib + cl.lib
885 !endif
886 |
887
888 test:
889 cd testdir
890 $(MAKE) /NOLOGO -f Make_dos.mak win32
891 cd ..
892
893 $(OBJDIR)\ex_docmd.obj: ex_docmd.c ex_cmds.h
894
895 $(OBJDIR)\ex_eval.obj: ex_eval.c ex_cmds.h
896
897 $(OBJDIR)\if_ole.obj: if_ole.cpp
898
899 $(OBJDIR)\if_perl.obj: if_perl.c perl.lib
900 $(CC) $(CCARG) $(CC1) $(CC2)$@ -pc if_perl.c
901
902 if_perl.c: if_perl.xs typemap
903 $(PERL)\bin\perl.exe $(PERL)\lib\ExtUtils\xsubpp -prototypes -typemap \
904 $(PERL)\lib\ExtUtils\typemap if_perl.xs > $@
905
906 $(OBJDIR)\if_python.obj: if_python.c python.lib
907 $(CC) $(CCARG) $(CC1) $(CC2)$@ -pc if_python.c
908
909 $(OBJDIR)\if_ruby.obj: if_ruby.c ruby.lib
910 $(CC) $(CCARG) $(CC1) $(CC2)$@ -pc if_ruby.c
911
912 $(OBJDIR)\if_tcl.obj: if_tcl.c tcl.lib
913 $(CC) $(CCARG) $(CC1) $(CC2)$@ -pc if_tcl.c
914
915 $(OBJDIR)\xpm_w32.obj: xpm_w32.c xpm.lib
916 $(CC) $(CCARG) $(CC1) $(CC2)$@ -pc xpm_w32.c
917
918 $(OBJDIR)\netbeans.obj: netbeans.c $(NBDEBUG_DEP)
919 $(CC) $(CCARG) $(CC1) $(CC2)$@ netbeans.c
920
921 $(OBJDIR)\vim.res: vim.rc version.h tools.bmp tearoff.bmp \
922 vim.ico vim_error.ico vim_alert.ico vim_info.ico vim_quest.ico
923 $(BRC) -fo$(OBJDIR)\vim.res -i $(BOR)\include -w32 -r vim.rc @&&|
924 $(DEFINES)
925 |
926
927 $(OBJDIR)\pathdef.obj: auto\pathdef.c
928 $(CC) $(CCARG) $(CC1) $(CC2)$@ auto\pathdef.c
929
930
931 # Need to escape both quotes and backslashes in $INTERP_DEFINES
932 INTERP_DEFINES_ESC_BKS=$(INTERP_DEFINES:\=\\)
933 INTERP_DEFINES_ESC=$(INTERP_DEFINES_ESC_BKS:"=\")
934
935 # Note: the silly /*"*/ below are there to trick make into accepting
936 # the # character as something other than a comment without messing up
937 # the preprocessor directive.
938 auto\pathdef.c::
939 -@md auto
940 @echo creating auto/pathdef.c
941 @copy /y &&|
942 /* pathdef.c */
943 /*"*/#include "vim.h"/*"*/
944
945 char_u *default_vim_dir = (char_u *)"$(VIMRCLOC:\=\\)";
946 char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR:\=\\)";
947 char_u *all_cflags = (char_u *)"$(CC:\=\\) $(CFLAGS:\=\\) $(DEFINES) $(MBDEFINES) $(INTERP_DEFINES_ESC) $(OPT) $(EXETYPE) $(CPUARG) $(ALIGNARG) $(DEBUG_FLAG) $(CODEGUARD_FLAG)";
948 char_u *all_lflags = (char_u *)"$(LINK:\=\\) $(LFLAGS:\=\\)";
949 char_u *compiled_user = (char_u *)"$(USERNAME)";
950 char_u *compiled_sys = (char_u *)"$(USERDOMAIN)";
951 | auto\pathdef.c
952
953 perl.lib: $(PERL)\lib\CORE\perl$(PERL_VER).lib
954 coff2omf $(PERL)\lib\CORE\perl$(PERL_VER).lib $@
955
956 python.lib: $(PYTHON)\libs\python$(PYTHON_VER).lib
957 coff2omf $(PYTHON)\libs\python$(PYTHON_VER).lib $@
958
959 ruby.lib: $(RUBY)\lib\$(RUBY_INSTALL_NAME).lib
960 coff2omf $(RUBY)\lib\$(RUBY_INSTALL_NAME).lib $@
961
962 # For some reason, the coff2omf method doesn't work on libXpm.lib, so
963 # we have to manually generate an import library straight from the DLL.
964 xpm.lib: $(XPM)\lib\libXpm.lib
965 implib -a $@ $(XPM)\bin\libXpm.dll
966
967 tcl.lib: $(TCL_LIB)
968 !if ("$(DYNAMIC_TCL)" == "yes")
969 copy $(TCL_LIB) $@
970 !else
971 coff2omf $(TCL_LIB) $@
972 !endif
973
974 !if ("$(DYNAMIC_TCL)" == "yes")
975 tclstub$(TCL_VER)-bor.lib:
976 -@IF NOT EXIST $@ ECHO You must download tclstub$(TCL_VER)-bor.lib separately and\
977 place it in the src directory in order to compile a dynamic TCL-enabled\
978 (g)vim with the Borland compiler. You can get the tclstub$(TCL_VER)-bor.lib file\
979 at http://mywebpage.netscape.com/sharppeople/vim/tclstub$(TCL_VER)-bor.lib
980 !endif
981
982 # vimrun.exe:
983 vimrun.exe: vimrun.c
984 !if ("$(USEDLL)"=="yes")
985 $(CC) -WC -O1 -I$(INCLUDE) -L$(LIB) -D_RTLDLL vimrun.c cw32mti.lib
986 !else
987 $(CC) -WC -O1 -I$(INCLUDE) -L$(LIB) vimrun.c
988 !endif
989
990 # The dependency on $(OBJDIR) is to have bcc.cfg generated each time.
991 $(OBJDIR)\bcc.cfg: Make_bc5.mak $(OBJDIR)
992 copy /y &&|
993 $(CFLAGS)
994 -L$(LIB)
995 $(DEFINES)
996 $(MBDEFINES)
997 $(INTERP_DEFINES)
998 $(EXETYPE)
999 $(DEBUG_FLAG)
1000 $(OPT)
1001 $(CODEGUARD_FLAG)
1002 $(CPUARG)
1003 $(ALIGNARG)
1004 | $@
1005
1006 # vi:set sts=4 sw=4: