home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 26 / CD_ASCQ_26_1295.iso / vrac / tvme30.zip / DEMO.MAK < prev    next >
Text File  |  1995-08-02  |  14KB  |  470 lines

  1. #// System  : TVMEditor 3.00 - Virtual Memory Text Editor Library
  2. #// File    : DEMO.MAK
  3. #// Author  : Eric Woodruff,  CIS ID: 72134,1150
  4. #// Updated : Wed 08/02/95 17:54:19
  5. #// Note    : Copyright 1994-95, Eric Woodruff, All rights reserved
  6. #// Compiler: Borland C++ 3.1 to 4.xx
  7. #//
  8. #   Make file for building the TVMEditor 3.0 demo.  Unless overridden by
  9. #   command line flags, this will generate real mode, non-overlay executables.
  10. #
  11. #   NOTE: To create a demo that uses the Color Syntax Highlighter with
  12. #         TVMEditor, create a CSH directory under the TVMEDIT3 directory and
  13. #         copy the CSH library and header files to that directory.  Then, use
  14. #         the '-DCSH_LIBRARY=libname' option when you run make where
  15. #         'libname' is the name of the library to use.
  16. #         Example:  make -fdemo -DCSH_LIBRARY=CSH.LIB
  17. #         You will also need to copy the CSHDEFLT.DTA file to the TVMEDIT2
  18. #         directory so that the executable can find it.
  19. #
  20. # File location assumptions:
  21. #
  22. # Directory Tree for TVMEditor 3.00:
  23. #   TVMEDIT3               - Base directory. The name is not significant.
  24. #                            The source and library files are found here.
  25. #                            The executables are left here after the build.
  26. #   TVMEDIT3\SOURCE        - Location of TVIRTMEM.H (Registered Version)
  27. #   TVMEDIT3\OBJ???        - Object file dir(s) generated by the build.
  28. #                            Each build uses a unique name for the object dir
  29. #                            associated with the executables being created.
  30. #                            Once the demo(s) are built, you can delete these.
  31. #
  32. # ** NOTE: Run the make file from the base directory (i.e. TVMEDIT3 above).
  33. #
  34. # MAKE with:
  35. #
  36. # No command line flags:
  37. #       Compile for Borland C++ 4.xx using Turbo Vision 2.0
  38. #       Executables created will be for real mode, non-overlay.
  39. #       Directories: Compiler Root: C:\BC4
  40. #                          Include: C:\BC4\INCLUDE
  41. #                        Libraries: C:\BC4\LIB
  42. #                       TV Include: C:\BC4\INCLUDE\TVISION
  43. #
  44. # -DBC31
  45. #       Compile for Borland C++ 3.1 using Turbo Vision 1.03
  46. #       Executables created will be for real mode, non-overlay.
  47. #       Directories: Compiler Root: C:\BC
  48. #                          Include: C:\BC\INCLUDE
  49. #                        Libraries: C:\BC\LIB;C:\BC\TVISION\LIB
  50. #                       TV Include: C:\BC\TVISION\INCLUDE
  51. #
  52. # -DBC31 -DTV2
  53. #       Compile for Borland C++ 3.1 using Turbo Vision 2.0
  54. #       Library created will be for real mode, non-overlay.
  55. #       Directories: Compiler Root: C:\BC
  56. #                          Include: C:\BC\INCLUDE
  57. #                       TV Include: C:\BC\INCLUDE\TVISION
  58. #
  59. # -DTV103
  60. #       Compile for Borland C++ 4.xx using Turbo Vision 1.03
  61. #       Executables created will be for real mode, non-overlay.
  62. #       Directories: Compiler Root: C:\BC4
  63. #                          Include: C:\BC4\INCLUDE
  64. #                        Libraries: C:\BC4\LIB;C:\BC4\TVISION\LIB
  65. #                       TV Include: C:\BC4\TVISION\INCLUDE
  66. #
  67. # Flags for DEMO.MAK:
  68. #
  69. # These command line switches alter the build flags used during
  70. # compilation.  You can use them to alter the build characteristics or you
  71. # can edit the default option flag settings in the make file down below.
  72. #
  73. #     -DBC31         Build using Borland C++ 3.1
  74. #                    TV103 is automatically defined to use Turbo Vision 1.03
  75. #                    unless -DTV2 is specified (see below).
  76. #                    If not specified, Borland C++ 4.xx is assumed
  77. #
  78. #     -DTV2          Specify this with -DBC31 to compile for use with
  79. #                    BC++ 3.1 and TV 2.0.
  80. #
  81. #     -DTV103        Build for use with TV 1.03
  82. #                    If not specified, TV 2.0 is assumed (unless -DBC31 is
  83. #                    specified without -DTV2)
  84. #
  85. #     -DCPU286       Build demo for the 80286 and up (CPUFLAG = -2)
  86. #                    If not specified, compile for 8088 (CPUFLAG = -1- -2-)
  87. #                    NOTE:
  88. #                       If -DDOS16 (DPMI16), automatic CPUFLAG = -2
  89. #                       If -DDOS32 (DPMI32), automatic CPUFLAG = -3
  90. #
  91. #     -DOPT32        Compiler bugs prevent use of the optimization options
  92. #                    for 32-bit protected mode apps prior to BC++ 4.5.
  93. #                    BC++ 4.5 fixes the bugs, so define OPT32 to utilize
  94. #                    the optimization features of the 32-bit compiler.
  95. #
  96. #     -DOVERLAY      Build using overlayable version - TVMEDITO.LIB and
  97. #                                                      TVMEDTNO.LIB
  98. #
  99. #     -DDOS16        Build using 16-bit DPMI version - TVMED16.LIB
  100. #                    BC++ 4.xx and Power Pack required
  101. #
  102. #     -DDOS32        Build using 32-bit DPMI version - TVMED32.LIB
  103. #                    BC++ 4.xx and Power Pack required
  104. #
  105. #     -DDEBUG        Include full debug info in the demos, turn off all
  106. #                    optimizations, and enable the editor diagnostic checks.
  107. #                    Library name used depends on the above settings:
  108. #                       TVMEDITD.LIB             - Real mode, non overlay
  109. #                       TVMEDOD.LIB/TVMEDNOD.LIB - Real mode, overlay
  110. #                       TVMED16D.LIB             - 16-bit protected mode
  111. #                       TVMED32D.LIB             - 32-bit protected mode
  112. #
  113. #     -DBCROOT=...   Specifies the path where you installed the compiler
  114. #                    (i.e. C:\BC, C:\BC4, C:\BORLANDC, etc.)
  115. #
  116. #     -DTVINCDIR=... Specifies the path where you installed Turbo Vision's
  117. #                    header files
  118. #                    (i.e. C:\BC\TVISION\INCLUDE, C:\AF\INCLUDE, etc.)
  119. #
  120. #     -DTVLIBDIR=... Specifies the path where you installed Turbo Vision's
  121. #                    library files (i.e. \BC\TVISION\LIB or \BC4\LIB)
  122. #
  123. #     -DALIGNMENT=2  Optional word (=2) or dword (=4) aligned library.  Only
  124. #     -DALIGNMENT=4  use it if you have word or dword aligned libraries!
  125. #
  126. # Examples:
  127. #     make -fdemo                    - Real mode using BC++ 4/TV 2.0
  128. #     make -fdemo -DTV103            - Real mode using BC++ 4/TV 1.03
  129. #     make -fdemo -DBC31             - Real mode using BC++ 3.1/TV 1.03
  130. #     make -DBC31 -DTV2              - Real mode using BC++ 3.1/TV 2.0
  131. #
  132. #     make -fdemo -DCPU286           - Real mode, BC++ 4/TV 2.0, for 286
  133. #     make -fdemo -DOVERLAY -DCPU286 - Overlayed, BC++ 4/TV 2.0, for 286
  134. #     make -fdemo -DDOS16            - 16 bit DPMI
  135. #     make -fdemo -DDOS32            - 32 bit DPMI
  136. #     make -fdemo -DDOS32 -DDEBUG    - 32 bit DPMI with full debug info
  137. #
  138.  
  139. .autodepend
  140. .swap
  141. .silent
  142.  
  143. # ****************** Uncomment the appropriate lines to default to a
  144. # ****************** specific build mode.
  145.  
  146. # The value assigned is not important.  It's just to get the defintion
  147. # into existence.  If all are commented out, it defaults to BC++ 4.xx
  148. # with Turbo Vision 2.0.
  149.  
  150. # BC31 =
  151. # TV103 =
  152. # TV2 =
  153.  
  154. # If BC31 is defined and TV2 is not defined, enforce TV 1.03 usage.
  155. !if $d(BC31) && !$d(TV103) && !$d(TV2)
  156. TV103 =
  157. !endif
  158.  
  159. # ****************** Here's where to adjust the base directory location
  160.  
  161. !if !$d(BCROOT)
  162. !if $d(BC31)
  163. BCROOT = C:\BC
  164. !else
  165. BCROOT = C:\BC4
  166. !endif
  167. !endif
  168.  
  169. # ****************** Here's where to adjust the TV include file location
  170.  
  171. !if !$d(TVINCDIR)
  172. !if $d(TV103)
  173. TVINCDIR = $(BCROOT)\TVISION\INCLUDE
  174. !else
  175. TVINCDIR = $(BCROOT)\INCLUDE\TVISION
  176. !endif
  177. !endif
  178.  
  179. # ****************** Here's where to adjust the TV library file location
  180. !if !$d(TVLIBDIR)
  181. !if $d(TV103)
  182. TVLIBDIR = $(BCROOT)\TVISION\LIB
  183. !else
  184. TVLIBDIR =
  185. !endif
  186. !endif
  187.  
  188. # Set include file and library locations.
  189. INCLUDE  = $(BCROOT)\INCLUDE;$(TVINCDIR);.;.\SOURCE;.\CSH
  190. LIBDIR   = $(BCROOT)\LIB;$(TVLIBDIR);.\CSH
  191.  
  192. # ******************* Set up for 32 bit protected mode compile
  193. !if $d(DOS32)
  194.  
  195. !if $d(DEBUG)
  196. CFGNAME = DEMO32D.CFG
  197. LIBNAME = TVMED32D.LIB
  198. OBJDIR  = OBJS32D
  199. !else
  200. CFGNAME = DEMO32.CFG
  201. LIBNAME = TVMED32.LIB
  202. OBJDIR  = OBJS32
  203. !endif
  204.  
  205. CPUFLAG    = -3
  206. TARGETFLAG = -WX
  207. LINKFLAGS  = /Tpe /ax
  208. STARTUP    = c0x32.obj
  209. USERLIBS   = $(LIBNAME) tv32.lib
  210. STDLIBS    = dpmi32.lib cw32.lib
  211. DPMIDEF    = TV20DPMI.DEF
  212.  
  213. CC      = BCC32
  214. LIB     = TLIB
  215. LINK    = TLINK32
  216.  
  217. !else   # DOS32
  218.  
  219. # ******************* Set up for 16 bit protected mode compile
  220. !if $d(DOS16)
  221.  
  222. !if $d(DEBUG)
  223. CFGNAME = DEMO16D.CFG
  224. LIBNAME = TVMED16D.LIB
  225. OBJDIR  = OBJS16D
  226. !else
  227. CFGNAME = DEMO16.CFG
  228. LIBNAME = TVMED16.LIB
  229. OBJDIR  = OBJS16
  230. !endif
  231.  
  232. CPUFLAG    = -2
  233. TARGETFLAG = -WX -ml
  234. LINKFLAGS  = /Txe /Oc /Oi
  235. STARTUP    = c0x.obj
  236. USERLIBS   = $(LIBNAME) tv.lib
  237. STDLIBS    = dpmi16.lib emux.lib mathwl.lib cwl.lib
  238. DPMIDEF    = TV20DPMI.DEF
  239.  
  240. CC      = BCC
  241. LIB     = TLIB
  242. LINK    = TLINK
  243.  
  244. !else   # DOS16
  245. # ******************* Set up for real mode compile
  246.  
  247. !if $d(DEBUG)
  248.  
  249. !if $d(OVERLAY)
  250. CFGNAME = DEMOVYD.CFG
  251. LIBNAME = TVMEDOD.LIB
  252. NOVLLIB = TVMEDNOD.LIB
  253. OBJDIR  = OBJSOD
  254. !else
  255. CFGNAME = DEMOD.CFG
  256. LIBNAME = TVMEDITD.LIB
  257. OBJDIR  = OBJSD
  258. !endif
  259.  
  260. !else
  261.  
  262. !if $d(OVERLAY)
  263. CFGNAME = DEMOVY.CFG
  264. LIBNAME = TVMEDITO.LIB
  265. NOVLLIB = TVMEDTNO.LIB
  266. OBJDIR  = OBJSO
  267. !else
  268. CFGNAME = DEMO.CFG
  269. LIBNAME = TVMEDIT.LIB
  270. OBJDIR  = OBJS
  271. !endif
  272.  
  273. !endif
  274.  
  275. # Set CPU type being compiled for in real mode.
  276. !if $d(CPU286)
  277. CPUFLAG = -2
  278. !else
  279. CPUFLAG = -1- -2-
  280. !endif
  281.  
  282. TARGETFLAG = -ml
  283. LINKFLAGS  =
  284. STARTUP    = c0l.obj
  285. USERLIBS   = $(LIBNAME) tv.lib
  286. STDLIBS    = emu.lib mathl.lib cl.lib
  287. DPMIDEF    =
  288.  
  289. # Add TVADD.LIB for non-overlay BC++ 3.1/TV 2.0
  290. !if $d(BC31) && $d(TV2)
  291. USERLIBS   = $(USERLIBS) TVADD.LIB
  292. !endif
  293.  
  294. !if $d(OVERLAY)
  295. USERLIBS   = $(LIBNAME) tvo.lib
  296. STDLIBS    = $(NOVLLIB) tvno.lib overlay.lib emu.lib mathl.lib cl.lib
  297. !endif
  298.  
  299. CC      = BCC
  300. LIB     = TLIB
  301. LINK    = TLINK
  302.  
  303. !endif # DOS16
  304. !endif # DOS32
  305.  
  306. # ******************* Set other compiler options
  307.  
  308. LINKOVY_ON  =
  309. LINKOVY_OFF =
  310.  
  311. !if $d(OVERLAY)
  312. !if !$d(DOS16) && !$d(DOS32)
  313. !if $d(BC31)
  314. CCOVYFLAGS = -Y -Vs -Vb -B
  315. !else
  316. CCOVYFLAGS = -Y -Vs
  317. !endif
  318. LINKOVY_ON  = /o+
  319. LINKOVY_OFF = /o-
  320. !else
  321. !error There's no need to use overlays with the 16-bit or 32-bit DPMI versions.
  322. !endif
  323. !endif
  324.  
  325. !if $d(ALIGNMENT)
  326. ALIGNFLAG = -a$(ALIGNMENT)
  327. !else
  328. ALIGNFLAG =
  329. !endif
  330.  
  331. # ******************* Set debug and optimization options
  332.  
  333. CFLAGS1    =
  334. CFLAGSN32  =
  335.  
  336. !if $d(DEBUG)
  337.  
  338. CDEBUGFLAG = /v -k -N
  339. LINKFLAGS  = $(LINKFLAGS) /v
  340.  
  341. !else
  342.  
  343. CDEBUGFLAG = /v- /DNDEBUG -k- -N- -G-
  344.  
  345. # These optimization options **cannot** be used for the BC++ 4.0/4.02
  346. # 32-bit protected mode compiler due to bugs.   However, BC++ 4.5 fixes
  347. # these bugs, so define OPT32 to include these optimizations if you have it.
  348. !if !$d(DOS32) || $d(OPT32)
  349. CFLAGSN32 = -Oe -Os -O -Ob -Ol -Z
  350. !endif
  351.  
  352. !if !$d(DOS32)
  353. CFLAGSN32 = $(CFLAGSN32) -h -OW
  354. !endif
  355.  
  356. !endif
  357.  
  358. # Turn off exceptions and RTTI if using BC++ 4.xx
  359. !if !$d(BC31)
  360. CFLAGS1 = $(CFLAGS1) -RT- -x-
  361. !endif
  362.  
  363. # Put them all together.  Compiler options are spread across three definitions
  364. # because they can exceed 128 characters per line which causes it to fail.
  365. CFLAGS1 = $(CFLAGS1) -ff -w -w-sig -w-amp -P -n$(OBJDIR) /DINCLUDE_HEAPVIEW
  366. CFLAGS2 = $(CDEBUGFLAG) $(ALIGNFLAG) $(CCOVYFLAGS) $(CPUFLAG) $(CFLAGSN32)
  367. CFLAGS3 = -I$(INCLUDE) /DREPORT_EMS_XMS /DSHAREWARE
  368.  
  369. # For the Color Syntax Highlighter
  370. !if $d(CSH_LIBRARY)
  371. CFLAGS3 = $(CFLAGS3) /DCSH_LIBRARY
  372. USERLIBS = $(USERLIBS) $(CSH_LIBRARY)
  373. !endif  # CSH_LIBRARY
  374.  
  375. # For the automatic EOL insertion demo
  376. !if $d(AUTOEOL)
  377. CFLAGS3 = $(CFLAGS3) /DAUTOEOL
  378. !endif
  379.  
  380. # ******************* Build dependencies
  381.  
  382. !if $d(DOS32)
  383. DEMONAME = TVEDIT32
  384. !else
  385. !if $d(DOS16)
  386. DEMONAME = TVEDIT16
  387. !else
  388. DEMONAME = TVEDIT
  389. !endif
  390. !endif
  391.  
  392. .path.obj = $(OBJDIR)
  393.  
  394. RSCLST = BLDRSC.OBJ \
  395.          TFILENM.OBJ \
  396.          TINTEGER.OBJ
  397.  
  398. DEMOLST = TVEDIT1.OBJ \
  399.           TVEDIT2.OBJ \
  400.           TVEDIT3.OBJ \
  401.           TMACRO.OBJ \
  402.           MAPCOLOR.OBJ \
  403.           HEAPVIEW.OBJ \
  404.           TMSGVIEW.OBJ \
  405.           TFILENM.OBJ \
  406.           TINTEGER.OBJ
  407.  
  408. # Go ahead and build them.
  409.  
  410. .cpp.obj:
  411.      $(CC) -c +$(CFGNAME) {$< }
  412.  
  413. all: $(CFGNAME) dirs bldrsc.exe
  414.     DEL $(CFGNAME)
  415.  
  416. dirs:
  417.     echo !!
  418.     echo !! IF YOU ARE USING TV 1.03, RENAME TVCOLR.TV1 TO TVCOLR.H FIRST!
  419.     echo !!
  420.     echo !! IF YOU ARE USING TV 2.0, RENAME TVCOLR.TV2 TO TVCOLR.H FIRST!
  421.     echo !!
  422.     echo !! IF YOU ARE USING BC++ 3.1, RENAME TVMEDIT.BC3 TO TVMEDIT.LIB FIRST!
  423.     echo !!
  424.     echo !! IF YOU ARE USING BC++ 4.xx, RENAME TVMEDIT.BC4 TO TVMEDIT.LIB FIRST!
  425.     echo !!
  426.     echo !! IF YOU ARE USING TV 2.0, RENAME TVMEDIT.TV2 TO TVMEDIT.LIB FIRST!
  427.     echo !!
  428.     IF NOT EXIST $(OBJDIR) MD $(OBJDIR)
  429.  
  430. $(CFGNAME): demo.mak
  431.     ECHO $(TARGETFLAG) $(CFLAGS1) > $(CFGNAME)
  432.     ECHO $(CFLAGS2) >> $(CFGNAME)
  433.     ECHO $(CFLAGS3) >> $(CFGNAME)
  434.  
  435. bldrsc.exe: $(RSCLST) $(DEMOLST)
  436.   $(LINK) @&&|
  437. $(LINKFLAGS)/L$(LIBDIR) +       # linker options
  438. $(STARTUP) +                    # startup code
  439. $(OBJDIR)\bldrsc.obj +          # object files
  440. $(OBJDIR)\tfilenm.obj +
  441. $(OBJDIR)\tinteger.obj
  442. bldrsc                          # exe name
  443. bldrsc                          # mapfile
  444. $(LINKOVY_ON) $(USERLIBS) +     # overlayable libraries
  445. $(LINKOVY_OFF) $(STDLIBS)       # non-overlayable libraries
  446. $(DPMIDEF)                      # DPMI .DEF file (if any)
  447. |
  448.     bldrsc
  449.  
  450.   $(LINK) @&&|
  451. $(LINKFLAGS)/L$(LIBDIR) +       # linker options
  452. $(STARTUP) +                    # startup code
  453. $(OBJDIR)\tvedit1.obj +         # object files
  454. $(OBJDIR)\tvedit2.obj +
  455. $(OBJDIR)\tvedit3.obj +
  456. $(OBJDIR)\tmacro.obj +
  457. $(OBJDIR)\mapcolor.obj +
  458. $(OBJDIR)\tmsgview.obj +
  459. $(OBJDIR)\heapview.obj +
  460. $(OBJDIR)\tfilenm.obj +
  461. $(OBJDIR)\tinteger.obj
  462. $(DEMONAME)                     # exe name
  463. $(DEMONAME)                     # mapfile
  464. $(LINKOVY_ON) $(USERLIBS) +     # overlayable libraries
  465. $(LINKOVY_OFF) $(STDLIBS)       # non-overlayable libraries
  466. $(DPMIDEF)                      # DPMI .DEF file (if any)
  467. |
  468.  
  469. # End of TVMEditor 3.00 demo program make file
  470.