home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / BC_502 / OWLSRC.PAK / MAKEFILE < prev    next >
Encoding:
Text File  |  1997-05-06  |  34.5 KB  |  1,381 lines

  1. #-----------------------------------------------------------------------------
  2. # MAKEFILE for ObjectWindows Libraries
  3. # Copyright (c) 1991, 1996 by Borland International, All Rights Reserved
  4. #
  5. # $Revision:   10.85  $
  6. #
  7. # Defines:
  8. #   MODEL=<d|l|f|t> one of:
  9. #     dll, large (WIN16 default)
  10. #     flat (WIN32 default), or multithreaded (implies flat)
  11. #   WIN32        enables win32
  12. #   WIN16        enables win16
  13. #   MT           builds OWL to be used with multithreaded rtl
  14. #   VCL          builds OWL using the VCL-compatible RTL (cp32mt)
  15. #                 (implies -DMT and -DNAMESPACE; requires MODEL=t and WIN32)
  16. #   ALIGN=<1|2|4|8> specifies the alignment
  17. #   DIAGS        enables runtime diagnostics (adds 'd' to lib name before 'w')
  18. #   DEBUG        enables debug info for debuggers
  19. #   OWLNOPCH     disables precompiled headers for OWL
  20. #   OWLSECTION   enables sectioning of sources into multiple small objs
  21. #   OWLNAME=Xxx  lib/DLL name base (defaults to 'owl' req. for non-diag DLLs)
  22. #   OWLVER=nnn   version for OWL DLL (efaults to 52 req. for non-diag DLLs)
  23. #   USERDLL      builds OWL for use in a user DLL (adds 'u' to lib name after
  24. #                model)
  25. #   OWLFARVTABLE moves OWL class vtables out of dgroup (only 16-bit)
  26. #   CODEGUARD    builds OWL with CodeGuard:  1=basic data, 2=full checking
  27. #   NAMESPACE    builds OWL within a namespace "OWL"
  28. #   BCC32I       uses bcc32i instead of bcc32 to compile
  29. #   ILINK        uses ILINK32 instead of TLINK32 to link
  30. #   NO_EMULATED_CTRL   builds library using system implementation of common
  31. #                      controls
  32. #   REDEFINE_BOOL      builds library with BOOL mapped to bool
  33. #   DISABLE_EXCEPTIONS disables exception use in OWL & in macros
  34. #   NO_OWL1_COMPAT     builds library without API exposed for backward
  35. #                      compatibility with v1.0 of ObjectWindows.
  36. #   NO_OWL2_COMPAT     builds library without API exposed for backward
  37. #                      compatibility with v2.x of ObjectWindows.
  38. #                      NOTE: NO_OWL2_COMPAT implies NO_OWL1_COMPAT
  39. #
  40. #
  41. #   NO_OBJ_STREAMING   builds library without special code to allow
  42. #                      some OWL objects to be persisted in a stream
  43. #
  44. #
  45. #
  46. # Standard builds:
  47. #   make MODEL=l OWLSECTION=1                    large model library (owlwl.lib)
  48. #   make MODEL=d OWLNAME=Owl OWLVER=52          16bit DLL (owlwi.lib, owl52.dll)
  49. #   make WIN32=1 OWLSECTION=1                    32bit flat model library (owlwf.lib)
  50. #   make MODEL=d WIN32=1 OWLNAME=owl OWLVER=52  32bit DLL (owlwfi.lib, owl52f.dll)
  51. #
  52. # Diagnostic builds:
  53. #   make MODEL=l OWLSECTION=1 -DDIAGS  large model diag library (owldwl.lib)
  54. #   make MODEL=d DIAGS=1               16bit diag DLL (owldwi.lib owl52d.dll)
  55. #   make WIN32=1 OWLSECTION=1 -DDIAGS  32bit flat model diag lib (owldwf.lib)
  56. #   make MODEL=d WIN32=1 DIAGS=1       32bit diag DLL (owldwfi.lib owl52df.dll)
  57. #
  58. # Define these for alternate OWL build directories:
  59. #   OWLSRCDIR    defaults to: $(BCROOT)\source\owl
  60. #   OWLINCDIR    defaults to: $(BCROOT)\include
  61. #   OWLLIBDIR    defaults to: $(BCROOT)\lib
  62. #   OWLBINDIR    defaults to: $(BCROOT)\bin
  63. #
  64. # When building VCL-compatible programs, both BCROOT and BCBROOT need
  65. # to be defined.  If BC5\BIN is on your path first, then BCROOT is
  66. # defined by default.  If C++Builder is on your path first, BCBROOT
  67. # is defined by default.  You must define the other one (or both)
  68. # explicitly as an environment variable in order for the makefile to
  69. # locate the OWL source in the BC5 tree and the VCL libraries in the
  70. # BCB tree.
  71. #
  72. #   BCROOT        defaults to: $(BCBROOT)  ; one of these is always
  73. #   BCBROOT       defaults to: $(BCROOT)   ; defined by default
  74. #
  75. #   VCLINCDIR     defaults to: $(BCBROOT)\include;($BCBROOT)\include\vcl
  76. #   VCLOBJDIR     defaults to: $(BCBROOT)\lib\obj
  77. #   VCLLIBDIR     defaults to: $(BCBROOT)\lib
  78. #
  79. # Notes:
  80. #   The owl16.ord file should be maintained if OWL functions are changed
  81. #   otherwise warnings will be generated during the DLL link.
  82. #-----------------------------------------------------------------------------
  83.  
  84. .autodepend
  85. .cacheautodepend
  86. .swap
  87.  
  88. #--------------------------------------------------------------------
  89. # Fill in defaults. The following table describes the logic used for
  90. # assigning defaults. Blank means "don't care", ! means not defined
  91. #
  92. #   MODEL | DLL | WIN16 | WIN32 | RESULTS
  93. #  -------+-----+-------+-------+--------------------------------
  94. #     !   |  !  |   !   |       | MODEL=f    WIN32=1  (default)
  95. #   ==f|t | ==1 |   !   |       | MODEL=f|t  WIN32=1  DLL=1
  96. #   ==f|t |  !  |   !   |       | MODEL=f|t  WIN32=1
  97. #     !   |  !  |  ==1  |   !   | MODEL=l    WIN16=1  DLL=1
  98. #         | ==1 |  ==1  |   !   | MODEL=l    WIN16=1  DLL=1
  99. #   ==l   |  !  |       |   !   | MODEL=l    WIN16=1
  100. #---------+-----+-------+-------+--------------------------------
  101.  
  102. #
  103. # If no model is defined or implied, set a default
  104. #
  105. !if !$d(MODEL) && !defined(MT) && !$d(WIN16) && !$d(OS2) && !$d(VCL)
  106.   MODEL = f    # default build model = flat static, Win32
  107. !endif
  108.  
  109. #
  110. # DLL model implies some other settings
  111. #
  112. !if $(MODEL) == d     # model d is short for building the DLL-- flat or large
  113.   DLL = 1
  114. ! if !$d(WIN16) && !$d(OS2)
  115.     WIN32 = 1         # DLL is 32bit by default
  116. ! endif
  117. !endif
  118.  
  119. #
  120. # If no system was set, choose a default
  121. #
  122. !if (!$d(WIN32) && !$d(WIN16) && !$d(OS2))
  123. ! if $(MODEL) == t || $(MODEL) == f || $d(VCL) || $d(MT)
  124.     WIN32 = 1    # default to WIN32 switch on for flat or multi-threaded model
  125. ! elif $(MODEL)==l
  126.     WIN16 = 1    # default to WIN16 switch on for large model
  127. ! endif
  128. !endif
  129.  
  130. #
  131. # For multithreaded target, set the value of MT
  132. #
  133. !if $(MODEL) == t || $d(MT) || $d(VCL)
  134.   MT = mt       # model t implies MT. Use MT as 'mt' to build library names
  135. !endif
  136.  
  137. #
  138. # VCL compatibility implies use of namespace
  139. #
  140. !if $d(VCL)
  141.   NAMESPACE = 1
  142. !endif
  143.  
  144. #
  145. # Make sure model is consistent with system
  146. #
  147. !if $d(WIN32)
  148. ! if $d(MT) || $d(VCL)
  149.     MODEL = t
  150. ! else
  151.     MODEL = f
  152. ! endif
  153. !elif $d(DLL)
  154.   MODEL = l
  155. !endif
  156.  
  157. #
  158. # Figure out default data alignment based on target
  159. #
  160. !if !$d(ALIGN)
  161.   ALIGN = 1
  162. !endif
  163.  
  164. #
  165. # Check for incompatible choices and warn user
  166. #
  167. !if $d(VCL)
  168. ! if !$d(WIN32) || $(MODEL) != t
  169. !   error VCL-compatible library must be multithreaded 32-bit
  170. ! endif
  171. !endif
  172.  
  173. !if $d(DOS) && $d(MT)
  174. ! error Cannot build multi-thread library for DOS.
  175. !endif
  176.  
  177. !if $d(MODEL)
  178. ! if $(MODEL)!=l && $(MODEL)!=f && $(MODEL)!=t
  179. !   error MODEL must be l, f, or t
  180. ! endif
  181. !endif
  182.  
  183. !if $d(ILINK) && $d(WIN16)
  184. ! error Cannot build 16-bit targets with ILINK.
  185. !endif
  186.  
  187.  
  188. #--------------------------------------------------------------------
  189. # Dir & name components
  190. #--------------------------------------------------------------------
  191. !if $d(DLL)
  192.  
  193. ! if !$d(OWLNAME) && !$d(DIAGS)
  194. !   error MUST DEFINE LIBRARY NAME, e.g. "MAKE MODEL=d OWLNAME=YourName"
  195. ! endif
  196.  
  197. ! if $d(WIN32)
  198. !   if $d(VCL)
  199.       KEY = wvi                 # VCL-compatible import library
  200. !   else
  201.       KEY = w$(MODEL)i          # 32bit flat or multithread DLL import library
  202. !   endif
  203. ! else
  204.     KEY = wi                    # 16bit DLL import library
  205. ! endif
  206.  
  207. !else
  208.  
  209. ! if $d(VCL)
  210.     KEY = wv
  211. ! else
  212.     KEY = w$(MODEL)             # Static library uses w+model
  213. ! endif
  214.  
  215. !endif  # if/else $d(DLL)
  216.  
  217. ! if $d(USERDLL)
  218.   KEY = $(KEY)u                 # Static or import library for use by dlls
  219. ! endif
  220.  
  221. !if !$d(OWLNAME)
  222.   OWLNAME = owl
  223. ! if !$d(OWLVER)
  224.     OWLVER = 52
  225. ! endif
  226. !endif
  227.  
  228. #--------------------------------------------------------------------
  229. # Debug & diagnostic flags
  230. #--------------------------------------------------------------------
  231. !if $d(DEBUG)
  232.   CDBG = -v -k -Od #-vi # debug-info on, normal stack, no optimizations, inlines
  233. !endif
  234. !if 1 || $d(DEBUG)    # Leave public debug info in dll & strip to a .tds after
  235. ! if $d(WIN32)
  236.     LDBG = -v
  237. ! else
  238.     LDBG = -v -Vt
  239. ! endif
  240. !endif
  241.  
  242. !if $d(DIAGS)         # default diags use precondition, check, trace & warn
  243.   __DEBUG=2
  244.   __TRACE=1
  245.   __WARN=1
  246. ! if $d(WIN32) || $d(DLL)
  247.     BD=d              # Use BIDS Diag version when OWL lib is diag
  248. ! else
  249.     BD=db             # Extension compatible with traditional DOS names
  250. ! endif
  251.   OD=d                # OWL libs & dll get a 'd' for Diag versions
  252. !endif
  253.  
  254. #
  255. # Build up compiler diag switches based on settings
  256. #
  257. !if $d(__DEBUG)
  258.   CDIAG = -D__DEBUG=$(__DEBUG)
  259. !endif
  260. !if $d(__TRACE)
  261.   CDIAG = $(CDIAG) -D__TRACE
  262. !endif
  263. !if $d(__WARN)
  264.   CDIAG = $(CDIAG) -D__WARN
  265. !endif
  266.  
  267. #--------------------------------------------------------------------
  268. # Dir & search paths, & precompiled headers
  269. #--------------------------------------------------------------------
  270.  
  271. #
  272. # If neither or only one of the two root variables is defined,
  273. # read the file bcroot.inc and let it define whatever it wants to.
  274. #
  275. !if !$d(BCROOT) || !$d(BCBROOT)
  276. ! include $(MAKEDIR)\bcroot.inc
  277. ! if !$d(BCROOT) && !$d(BCBROOT)
  278.     BCROOT = $(MAKEDIR)\..
  279. ! endif
  280. !endif
  281.  
  282. #
  283. # At least one of the roots is certainly defined now.
  284. # If only one is defined, make them both the same.
  285. #
  286. !if !$d(BCROOT)
  287. BCROOT = $(BCBROOT)
  288. !elif !$d(BCBROOT)
  289. BCBROOT = $(BCROOT)
  290. !endif
  291.  
  292. #
  293. # Where to find BC tools, libraries and include files
  294. #
  295. BCSRCDIR = $(BCROOT)\source
  296. BCINCDIR = $(BCROOT)\include
  297. BCLIBDIR = $(BCROOT)\lib
  298. BCBINDIR = $(BCROOT)\bin
  299.  
  300. #
  301. # Where to find OWL dirs-- can set these for special layouts
  302. # Build search paths differently if OWL include dir is not below BC's
  303. #
  304. !if !$d(OWLSRCDIR)
  305.   OWLSRCDIR = $(BCSRCDIR)\owl
  306. !endif
  307.  
  308. #
  309. # Build include paths of OWL dependencies
  310. #
  311. INCLUDE=$(BCINCDIR)
  312. !if $d(BIDSINCDIR)
  313.   INCLUDE=$(BIDSINCDIR);$(INCLUDE)
  314. !endif
  315. !if $d(OCFINCDIR)
  316.   INCLUDE=$(OCFINCDIR);$(INCLUDE)
  317. !endif
  318.  
  319. #
  320. # Add OWL's include directory
  321. #
  322. !if !$d(OWLINCDIR)
  323.   OWLINCDIR     = $(BCINCDIR)
  324.   RCINCLUDEPATH = -i$(BCINCDIR)
  325. !else
  326.   RCINCLUDEPATH = -i$(OWLINCDIR) -i$(BCINCDIR)
  327. !endif
  328. INCLUDE=$(OWLINCDIR);$(INCLUDE)
  329.  
  330. #
  331. # Library/Bin paths
  332. #
  333. LIBPATH=$(BCLIBDIR)
  334. !if $d(BIDSLIBDIR)
  335.   LIBPATH=$(BIDSLIBDIR);$(LIBPATH)
  336. !endif
  337. !if $d(OCFLIBDIR)
  338.   LIBPATH=$(OCFLIBDIR);$(LIBPATH)
  339. !endif
  340. !if $d(OWLLIBDIR)
  341.   LIBPATH=$(OWLLIBDIR);$(LIBPATH)
  342. !else
  343.   OWLLIBDIR=$(BCLIBDIR)
  344. !endif
  345. !if !$d(OWLBINDIR)
  346.   OWLBINDIR = $(BCBINDIR)
  347. !endif
  348.  
  349. #
  350. # Paths for OBJs
  351. #
  352. OWLOBJDIR = $(OWLSRCDIR)\o\$(OD)$(KEY)   # Keep seperate diag/nondiag dirs
  353.  
  354. .PATH.obj = $(OWLOBJDIR)
  355. .PATH.res = $(OWLOBJDIR)
  356. .PATH.def = $(OWLOBJDIR)
  357. .PATH.lib = $(OWLLIBDIR)
  358. .PATH.cpp = $(OWLSRCDIR)
  359.  
  360. #
  361. # Where to find VCL libraries, objs, and headers
  362. #
  363. !if $d(VCL)
  364. ! if !$d(VCLLIBDIR)
  365.     VCLLIBDIR = $(BCBROOT)\lib
  366. ! endif
  367. ! if !$d(VCLOBJDIR)
  368.     VCLOBJDIR = $(VCLLIBDIR)\obj
  369. ! endif
  370. ! if !$d(VCLINCDIR)
  371.     VCLINCDIR = $(BCBROOT)\include\vcl
  372. ! endif
  373. INCLUDE = $(INCLUDE);$(VCLINCDIR)
  374. !endif
  375.  
  376. #
  377. # Define OWLNOPCH to disable the use of Precompiled headers when building OWL
  378. #
  379. !if !$d(OWLNOPCH)
  380.  CPCH= -H=$(OWLLIBDIR)\$(OWLNAME)$(OD)$(KEY).csm -H"pch.h" -D_OWLPCH
  381. ! if $d(WIN32) || $(__MAKE__) > 0x0370  # -Hc: !valid for 16-bit before v5.0
  382.     CPCH = $(CPCH) -Hc
  383. ! endif
  384. !endif
  385.  
  386. #--------------------------------------------------------------------
  387. # Library names
  388. #--------------------------------------------------------------------
  389. !if $d(DLL)
  390. ! if $d(WIN32)
  391. !   if $d(VCL)
  392.       OWLDLL = $(OWLBINDIR)\$(OWLNAME)$(OWLVER)$(OD)v.dll
  393. !   else
  394.       OWLDLL = $(OWLBINDIR)\$(OWLNAME)$(OWLVER)$(OD)$(MODEL).dll
  395. !   endif
  396. ! else
  397.     OWLDLL = $(OWLBINDIR)\$(OWLNAME)$(OWLVER)$(OD).dll
  398. ! endif
  399.   OWLDEF = owl.def
  400.   OWLRES = owl.res
  401. !endif
  402. OWLLIB = $(OWLLIBDIR)\$(OWLNAME)$(OD)$(KEY).lib
  403.  
  404. #
  405. # If building for VCL, use an RTL that begins "cp" instead of "cw"
  406. #
  407. !if $d(VCL)
  408.   RTLPFX=cp
  409. !else
  410.   RTLPFX=cw
  411. !endif
  412.  
  413. #--------------------------------------------------------------------
  414. # Tools and options which are Win16/Win32 independent
  415. #--------------------------------------------------------------------
  416. !if $d(NAMESPACE)
  417.   CFLAGS = $(CFLAGS) -DBI_NAMESPACE
  418. !endif
  419. !if $d(REDEFINE_BOOL)
  420.   CFLAGS = $(CFLAGS) -DBI_REDEFINE_BOOL
  421. !endif
  422. !if $d(NO_EMULATED_CTRL)            # Only use OS implementation of CmnCtrls
  423.   CFLAGS = $(CFLAGS) -DOWL_NATIVECTRL_ALWAYS
  424. !endif
  425. !if $d(NO_OWL2_COMPAT)              # Build without backward compatible API
  426. ! if !$d(NO_OWL1_COMPAT)            # No OWL2 Compat => No OWL1 Compat
  427.     NO_OWL1_COMPAT = 1
  428. ! endif
  429.   CFLAGS = $(CFLAGS) -DNO_OWL2_COMPAT
  430. !endif
  431. !if $d(NO_OWL1_COMPAT)              # Build without backward compatible API
  432.   CFLAGS = $(CFLAGS) -DNO_OWL1_COMPAT
  433. !endif
  434. #
  435. #
  436. #
  437. !if $d(NO_OBJ_STREAMING)            # Build without persistent/stream support
  438.   CFLAGS = $(CFLAGS) -DBI_NO_OBJ_STREAMING
  439. !endif
  440. #
  441. #
  442. #
  443.  
  444.  
  445. #--------------------------------------------------------------------
  446. # Tools and options for Win32
  447. #--------------------------------------------------------------------
  448.  
  449. !if $d(WIN32)
  450. ! if $d(BCC32I)
  451.     CC     = $(BCBINDIR)\bcc32i      # Highly optimizing compiler
  452. ! else
  453.     CC     = $(BCBINDIR)\bcc32       # Regular optimizing compiler
  454. ! endif
  455.   RCC      = brcc32 -w32             # Resource compiler
  456.   ASM      = $(BCBINDIR)\tasm32      # Assembler
  457. ! if $d(ILINK)
  458.   LINK     = $(BCBINDIR)\ilink32     # Linker
  459. ! else
  460.   LINK     = $(BCBINDIR)\tlink32     # Linker
  461. ! endif
  462.   LIB      = $(BCBINDIR)\tlib        # Librarian
  463.   IMPLIB   = $(BCBINDIR)\implib      # Import library generator
  464.   TDSTRIP  = $(BCBINDIR)\tdstrp32    # Debug info extractor
  465.  
  466. ! if !$d(NO_OWL_OPT)
  467.     CFLAGS = $(CFLAGS) -3 -d -k- -Ogmpv   # Optimizations (-O1gmpv), stdcall
  468. ! endif
  469. ! if $d(CODEGUARD)                   # d=add data, c=add calls, t=check this
  470.     CFLAGS = $(CFLAGS) -vGd -vGt
  471. !   if $(CODEGUARD) == 2
  472.       CFLAGS= $(CFLAGS) -vGc
  473. !   endif
  474. !  endif
  475.   CFLAGS   = $(CFLAGS) -i55          # Bump identifier length up to 55
  476.   CFGFILE  = bcc32.cfg               # Name of compiler's config file
  477. ! if $d(DEBUG)
  478.     LIBFLAGS = /P4096 #/C
  479. ! else
  480.     LIBFLAGS = /P1024 /0 #/C
  481. ! endif
  482.  
  483. ! if $d(DLL)
  484.     CFLAGS = $(CFLAGS) -WDE -D_BUILDOWLDLL
  485.     LFLAGS = $(LDBG) -Tpd -aa -x -c -r
  486. !   if !$d(BIDSILIB)
  487. !     if $d(VCL)
  488.         DLL32KEY = v
  489. !     else
  490.         DLL32KEY = $(MODEL)
  491. !     endif
  492.       BIDSILIB = bids$(BD)$(DLL32KEY)i
  493. !   endif
  494.     STDLIBS  = import32 $(RTLPFX)32$(MT)i   # Libs for linking the DLL
  495. !   if $d(CODEGUARD)
  496.       STDLIBS  = cg32 $(STDLIBS)
  497. !   endif
  498.     STARTUP  = c0d32
  499. ! else
  500.     CFLAGS = $(CFLAGS) -W
  501. ! endif
  502.  
  503. ! if $d(VCL)
  504.     CFLAGS  = $(CFLAGS) -b- -Vx -Ve
  505.     LFLAGS  = $(LFLAGS) -j$(VCLOBJDIR)
  506.     STDLIBS = $(STDLIBS)
  507. ! endif
  508.  
  509. ! if !$d(MT)
  510.     CFLAGS = $(CFLAGS) -WM-
  511. ! endif
  512.  
  513. ! if $d(VCL)
  514.     CFLAGS = $(CFLAGS) -a4
  515. ! elif $d(ALIGN)
  516.     CFLAGS = $(CFLAGS) -a$(ALIGN)
  517. ! endif
  518.  
  519. #--------------------------------------------------------------------
  520. # Tools and options for Win16
  521. #--------------------------------------------------------------------
  522. !else
  523.   CC       = $(BCBINDIR)\bcc         # Compiler
  524.   RCC      = brcc32 -31              # Resource compiler
  525.   ASM      = $(BCBINDIR)\tasm        # Assembler
  526.   LINK     = $(BCBINDIR)\tlink       # Linker
  527.   RLINK    = $(BCBINDIR)\rlink       # Resource linker
  528.   LIB      = $(BCBINDIR)\tlib        # Librarian
  529.  
  530.   # implib needs -o switch in 16 bit for compatibility
  531.   IMPLIB   = $(BCBINDIR)\implib -o -w # Import library generator
  532.   TDSTRIP  = $(BCBINDIR)\tdstrip     # Debug info extractor
  533.  
  534. ! if !$d(NO_OWL_OPT)
  535.     CFLAGS = $(CFLAGS) -3 -d -k- -O1gmpv # Optimizations
  536. ! else
  537.     CFLAGS = $(CFLAGS) -Od               # No optimizations
  538. ! endif
  539. ! if $d(CODEGUARD)                   # d=add data, c=add calls, t=check this
  540.     CFLAGS = $(CFLAGS) -vGd -vGt
  541. !  endif
  542.   CFLAGS   = -m$(MODEL) $(CFLAGS)    # Memory model
  543.  
  544. ! if $(MODEL) != s && $(MODEL) != m  # Large models can put strs in code seg
  545.     CFLAGS = $(CFLAGS) -dc
  546. ! endif
  547.  
  548. ! if $d(OWLFARVTABLE)
  549.     CFLAGS = $(CFLAGS) -D_OWLFARVTABLE;_BIDSFARVTABLE #;_RTLFARVTABLE
  550. ! endif
  551. ! if $d(DISABLE_EXCEPTIONS)
  552.     CFLAGS = $(CFLAGS) -DDISABLE_EXCEPTIONS -x-
  553. ! endif
  554.   CFGFILE = turboc.cfg
  555.  
  556. ! if $d(DEBUG)
  557.     LIBFLAGS = /P4096 /C
  558. ! else
  559.     LIBFLAGS = /P128  /0 /C
  560. ! endif
  561.  
  562. ! if $d(DLL)                         # Build the 16bit Owl DLL
  563.     # Dll, explicit export, far data into seg named OWL_FARDATA, compat excptns
  564.     CFLAGS = $(CFLAGS) -WDE -D_BUILDOWLDLL -zEOWL_FARDATA -xc
  565.     LFLAGS = $(LDBG) -Twd -n -s -c -C # -Oc -Oi -Oa -Or
  566. !   if $d(DEBUG)
  567.     LFLAGS = $(LFLAGS) -A=512
  568. !   endif
  569. !   if !$d(BIDSILIB)
  570.       BIDSILIB = bids$(BD)i
  571. !   endif
  572.     STDLIBS  = import crtldll         # Libs for linking the Owl DLL
  573. !if $d(CODEGUARD)
  574.     STDLIBS  = cg16 $(STDLIBS)
  575. !endif
  576.     STARTUP  = c0dl
  577.  
  578. ! else
  579. !   if $d(USERDLL)
  580.       CFLAGS = $(CFLAGS) -WDE -xc    # Build static Owl lib for use in DLLs
  581. !   else
  582.       CFLAGS = $(CFLAGS) -WSE        # Build static Owl lib for use in EXEs
  583. !   endif
  584. ! endif
  585.  
  586. ! if $d(ALIGN)
  587.     CFLAGS = $(CFLAGS) -a$(ALIGN)
  588. ! endif
  589.  
  590. !endif
  591.  
  592. #--------------------------------------------------------------------
  593. # Rules
  594. #--------------------------------------------------------------------
  595. .rc.res:
  596.   $(RCC) $(RCINCLUDEPATH) -fo$@ $.
  597.  
  598. .cpp.obj:
  599.   $(CC) {$& }
  600.  
  601. .asm.obj:
  602.   $(ASM) /mx $& $@
  603.  
  604. #--------------------------------------------------------------------
  605. # Various file lists needed for dependency checking and LIBing.
  606. #
  607. #   OBJS_CMN are the objs common to static libs and the dll
  608. #   OBJS_LIB are the objs that go into libs and implibs only, not the dlls
  609. #   OBJS_DLL are the objs that go into the dll only
  610. #   LIBDEPOBJS is the list of object files for lib/implib dependency checking
  611. #   LIBOBJS is the list of object files for building/addingto the libraries
  612. #   LINKOBJS is the list of object files for building the DLL
  613. #--------------------------------------------------------------------
  614.  
  615. # Common, unsectioned objs go into static libs and DLLs
  616. #
  617. OBJS_CMN =\
  618.  PFXappdict.obj\
  619.  PFXbitmap.obj\
  620.  PFXbitmapga.obj\
  621.  PFXbitset.obj\
  622.  PFXbuttonga.obj\
  623.  PFXcelarray.obj\
  624.  PFXchecklst.obj\
  625.  PFXchooseco.obj\
  626.  PFXchoosefo.obj\
  627.  PFXclipboar.obj\
  628.  PFXclipview.obj\
  629.  PFXcolmnhdr.obj\
  630.  PFXcommctrl.obj\
  631.  PFXcommdial.obj\
  632.  PFXcontrolb.obj\
  633.  PFXcontain.obj\
  634.  PFXcontrolg.obj\
  635.  PFXcreatedc.obj\
  636.  PFXcursor.obj\
  637.  PFXdatetime.obj\
  638.  PFXdc.obj\
  639.  PFXdibdc.obj\
  640.  PFXdibitmap.obj\
  641.  PFXdispatch.obj\
  642.  PFXdocking.obj\
  643.  PFXeventhan.obj\
  644.  PFXexcept.obj\
  645.  PFXfont.obj\
  646.  PFXgadget.obj\
  647.  PFXgadgetli.obj\
  648.  PFXgadgetwi.obj\
  649.  PFXgauge.obj\
  650.  PFXgdibase.obj\
  651.  PFXgdiobjec.obj\
  652.  PFXglyphbtn.obj\
  653.  PFXhotkey.obj\
  654.  PFXicon.obj\
  655.  PFXimagelst.obj\
  656.  PFXlayoutwi.obj\
  657.  PFXmailer.obj\
  658.  PFXmci.obj\
  659.  PFXmciwav.obj\
  660.  PFXmemorydc.obj\
  661.  PFXmenu.obj\
  662.  PFXmenugadg.obj\
  663.  PFXmessageb.obj\
  664.  PFXmetafile.obj\
  665.  PFXmetafldc.obj\
  666.  PFXmodegad.obj\
  667.  PFXmodversi.obj\
  668.  PFXnotetab.obj\
  669.  PFXowl.obj\
  670.  PFXpaintdc.obj\
  671.  PFXpalette.obj\
  672.  PFXpanespli.obj\
  673.  PFXpen.obj\
  674.  PFXpicklist.obj\
  675.  PFXpictwind.obj\
  676.  PFXpreview.obj\
  677.  PFXprevwin.obj\
  678.  PFXprintdc.obj\
  679.  PFXpropsht.obj\
  680.  PFXrcntfile.obj\
  681.  PFXresource.obj\
  682.  PFXregion.obj\
  683.  PFXrolldial.obj\
  684.  PFXserialze.obj\
  685.  PFXsplashwi.obj\
  686.  PFXstatusba.obj\
  687.  PFXswindow.obj\
  688.  PFXtabctrl.obj\
  689.  PFXtextgadg.obj\
  690.  PFXtimegadg.obj\
  691.  PFXtoolbox.obj\
  692.  PFXtooltip.obj\
  693.  PFXuiborder.obj\
  694.  PFXuiface.obj\
  695.  PFXuihandle.obj\
  696.  PFXuipart.obj\
  697.  PFXupdown.obj\
  698.  PFXversion.obj\
  699.  PFXwindow.obj\
  700.  PFXwindowdc.obj\
  701.  PFXwing.obj\
  702.  PFXwinsock.obj\
  703.  PFXwskaddr.obj\
  704.  PFXwskerr.obj\
  705.  PFXwskhostm.obj\
  706.  PFXwsksockm.obj\
  707.  PFXwskservm.obj\
  708.  PFXwsksock.obj\
  709.  PFXwsksockd.obj
  710.  
  711. !if !$d(NO_OWL1_COMPAT) && !$d(NO_OWL2_COMPAT)
  712. OBJS_CMN = $(OBJS_CMN) \
  713.  PFXcompat.obj\
  714.  PFXmoduleob.obj
  715. !endif
  716.  
  717. # Add in these objs when sectioning
  718. #
  719. !if $d(OWLSECTION)
  720. OBJS_CMN = $(OBJS_CMN)\
  721.  PFXapplica1.obj\
  722.  PFXapplica2.obj\
  723.  PFXapplica3.obj\
  724.  PFXapplica4.obj\
  725.  PFXbrush1.obj\
  726.  PFXbrush2.obj\
  727.  PFXbutton1.obj\
  728.  PFXbutton2.obj\
  729.  PFXcheckbo1.obj\
  730.  PFXcheckbo2.obj\
  731.  PFXcombobo1.obj\
  732.  PFXcombobo2.obj\
  733.  PFXcontrol1.obj\
  734.  PFXcontrol2.obj\
  735.  PFXdecfram1.obj\
  736.  PFXdecfram2.obj\
  737.  PFXdecmdif1.obj\
  738.  PFXdecmdif2.obj\
  739.  PFXdialog1.obj\
  740.  PFXdialog2.obj\
  741.  PFXdib1.obj\
  742.  PFXdib2.obj\
  743.  PFXdib3.obj\
  744.  PFXdib4.obj\
  745.  PFXdib5.obj\
  746.  PFXdib6.obj\
  747.  PFXdib7.obj\
  748.  PFXdocmang1.obj\
  749.  PFXdocmang2.obj\
  750.  PFXdocmang3.obj\
  751.  PFXdoctpl1.obj\
  752.  PFXdoctpl2.obj\
  753.  PFXdocumen1.obj\
  754.  PFXdocumen2.obj\
  755.  PFXedit1.obj\
  756.  PFXedit2.obj\
  757.  PFXeditfil1.obj\
  758.  PFXeditfil2.obj\
  759.  PFXeditsea1.obj\
  760.  PFXeditsea2.obj\
  761.  PFXeditvie1.obj\
  762.  PFXeditvie2.obj\
  763.  PFXfiledoc1.obj\
  764.  PFXfiledoc2.obj\
  765.  PFXfiltval1.obj\
  766.  PFXfiltval2.obj\
  767.  PFXfindrep1.obj\
  768.  PFXfindrep2.obj\
  769.  PFXfloatfr1.obj\
  770.  PFXfloatfr2.obj\
  771.  PFXframewi1.obj\
  772.  PFXframewi2.obj\
  773.  PFXframewi3.obj\
  774.  PFXgroupbo1.obj\
  775.  PFXgroupbo2.obj\
  776.  PFXhslider1.obj\
  777.  PFXhslider2.obj\
  778.  PFXinputdi1.obj\
  779.  PFXinputdi2.obj\
  780.  PFXlistbox1.obj\
  781.  PFXlistbox2.obj\
  782.  PFXlistvie1.obj\
  783.  PFXlistvie2.obj\
  784.  PFXlookval1.obj\
  785.  PFXlookval2.obj\
  786.  PFXmdichil1.obj\
  787.  PFXmdichil2.obj\
  788.  PFXmdiclie1.obj\
  789.  PFXmdiclie2.obj\
  790.  PFXmdifram1.obj\
  791.  PFXmdifram2.obj\
  792.  PFXmenudes1.obj\
  793.  PFXmenudes2.obj\
  794.  PFXmodule1.obj\
  795.  PFXmodule2.obj\
  796.  PFXmodule3.obj\
  797.  PFXmodule4.obj\
  798.  PFXopensav1.obj\
  799.  PFXopensav2.obj\
  800.  PFXpictval1.obj\
  801.  PFXpictval2.obj\
  802.  PFXprintdi1.obj\
  803.  PFXprintdi2.obj\
  804.  PFXprinter1.obj\
  805.  PFXprinter2.obj\
  806.  PFXprintou1.obj\
  807.  PFXprintou2.obj\
  808.  PFXradiobu1.obj\
  809.  PFXradiobu2.obj\
  810.  PFXrangevl1.obj\
  811.  PFXrangevl2.obj\
  812.  PFXscrollb1.obj\
  813.  PFXscrollb2.obj\
  814.  PFXscrolle1.obj\
  815.  PFXscrolle2.obj\
  816.  PFXslider1.obj\
  817.  PFXslider2.obj\
  818.  PFXstatic1.obj\
  819.  PFXstatic2.obj\
  820.  PFXtinycap1.obj\
  821.  PFXtinycap2.obj\
  822.  PFXvalidat1.obj\
  823.  PFXvalidat2.obj\
  824.  PFXview1.obj\
  825.  PFXview2.obj\
  826.  PFXvslider1.obj\
  827.  PFXvslider2.obj
  828.  
  829. # Add in these objs when not sectioning
  830. #
  831. !else
  832. OBJS_CMN = \
  833.  PFXmodule.obj\
  834.  $(OBJS_CMN)\
  835.  PFXapplicat.obj\
  836.  PFXbrush.obj\
  837.  PFXbutton.obj\
  838.  PFXcheckbox.obj\
  839.  PFXcombobox.obj\
  840.  PFXcontrol.obj\
  841.  PFXdecframe.obj\
  842.  PFXdecmdifr.obj\
  843.  PFXdialog.obj\
  844.  PFXdib.obj\
  845.  PFXdocmanag.obj\
  846.  PFXdoctpl.obj\
  847.  PFXdocument.obj\
  848.  PFXedit.obj\
  849.  PFXeditfile.obj\
  850.  PFXeditsear.obj\
  851.  PFXeditview.obj\
  852.  PFXfiledoc.obj\
  853.  PFXfiltval.obj\
  854.  PFXfindrepl.obj\
  855.  PFXfloatfra.obj\
  856.  PFXframewin.obj\
  857.  PFXgroupbox.obj\
  858.  PFXhslider.obj\
  859.  PFXinputdia.obj\
  860.  PFXlistbox.obj\
  861.  PFXlistview.obj\
  862.  PFXlookval.obj\
  863.  PFXmdichild.obj\
  864.  PFXmdiclien.obj\
  865.  PFXmdiframe.obj\
  866.  PFXmenudesc.obj\
  867.  PFXopensave.obj\
  868.  PFXpictval.obj\
  869.  PFXprintdia.obj\
  870.  PFXprinter.obj\
  871.  PFXprintout.obj\
  872.  PFXradiobut.obj\
  873.  PFXrangeval.obj\
  874.  PFXscrollba.obj\
  875.  PFXscroller.obj\
  876.  PFXslider.obj\
  877.  PFXstatic.obj\
  878.  PFXtinycapt.obj\
  879.  PFXvalidate.obj\
  880.  PFXview.obj\
  881.  PFXvslider.obj
  882. !endif
  883.  
  884. !if $d(WIN32)
  885. OBJS_CMN =$(OBJS_CMN)\
  886.  PFXanimctrl.obj\
  887.  PFXdraglist.obj\
  888.  PFXlistwind.obj\
  889.  PFXrichedit.obj\
  890.  PFXrichedpr.obj\
  891.  PFXdibblt32.obj\
  892.  PFXtreewind.obj\
  893.  PFXhlpmanag.obj
  894. !else
  895. OBJS_CMN =$(OBJS_CMN)\
  896.  PFXtreewn16.obj\
  897.  PFXdibblt16.obj
  898. !endif
  899.  
  900. # Objs that go into static libs and import libs, but not in the owl dll itself
  901. # These also get built differently when in the import library. Note that
  902. # classes in the modules are declared _USERCLASS instead of _OWLCLASS
  903. #
  904. OBJS_LIB =\
  905.  PFXglobal.obj
  906.  
  907. # OLE 2 classes get put into the lib.
  908. #
  909. !if $(MODEL) == l || $(MODEL) == f || $(MODEL) == t
  910. OBJS_OLE2=\
  911.  PFXstgdoc.obj\
  912.  PFXolewindo.obj\
  913.  PFXoledoc.obj\
  914.  PFXoleframe.obj\
  915.  PFXolemdifr.obj\
  916.  PFXoleview.obj
  917.  
  918. !if     $d(WIN32)
  919. OBJS_OLE2 = $(OBJS_OLE2) \
  920.  PFXoledialg.obj \
  921.  PFXshellitm.obj
  922. !endif
  923.  
  924. OBJS_LIB = $(OBJS_LIB) $(OBJS_OLE2)
  925. !endif
  926.  
  927. OBJS_LIB = $(OBJS_LIB)\
  928.  PFXvbxctl.obj
  929.  
  930. !if $d(USERDLL) || $d(WIN32)   # Lib for use by DLLs
  931. OBJS_LIB = $(OBJS_LIB)\
  932.  PFXlibmain.obj\
  933.  PFXowlmain.obj\
  934.  PFXinitdll.obj
  935. !endif
  936. !if !$d(USERDLL) || $d(WIN32)  # Lib for use in EXEs
  937. OBJS_LIB = $(OBJS_LIB)\
  938.  PFXwinmain.obj
  939. !endif
  940.  
  941. # Objs that go into the Owl DLL only
  942. #
  943. !if $d(DLL)
  944. OBJS_DLL =\
  945. tmplinst.obj
  946. !endif
  947.  
  948. # Put together obj groups into lists for different dependencies & tools
  949. #
  950. LIBDEPOBJS = $(OBJS_CMN:PFX=) $(OBJS_LIB:PFX=) $(OBJS_DLL:PFX=)
  951. !if $d(DLL)
  952.  LIBOBJS   = $(OBJS_LIB:PFX=+)
  953.  LINKOBJS  = $(OBJS_CMN:PFX=)  $(OBJS_DLL:PFX=)
  954. !else
  955.  LIBOBJS   = $(OBJS_CMN:PFX=+) $(OBJS_LIB:PFX=+)
  956. !endif
  957.  
  958. #--------------------------------------------------------------------
  959. # Targets
  960. #--------------------------------------------------------------------
  961. target: cfgfile $(OWLLIB)
  962.  
  963. cfgfile:
  964.   @-if not exist $(.PATH.cpp)\o\NUL md $(.PATH.cpp)\o
  965.   @-if not exist $(.PATH.obj)\NUL md $(.PATH.obj)
  966.   @copy &&|
  967. -I$(INCLUDE)
  968. -c -w $(CFLAGS) $(CDBG) $(CDIAG)
  969. $(CPCH) -n$(.PATH.obj)
  970. | $(CFGFILE) > NUL
  971.  
  972. !if $d(DLL)
  973.  
  974. $(.PATH.obj)\$(OWLRES):
  975.   $(RCC) $&.rc @&&|
  976. $(RCINCLUDEPATH)
  977. | -fo$@
  978.  
  979. !if $d(WIN32)
  980.  
  981. $(OWLLIB): $(LIBDEPOBJS) $(.PATH.obj)\$(OWLDEF) $(.PATH.obj)\$(OWLRES)
  982.   @cd $(.PATH.obj)
  983.   $(LINK) @&&|
  984. $(LFLAGS) -L$(LIBPATH);$(VCLLIBDIR) $(STARTUP) +
  985. $(LINKOBJS)
  986. $(OWLDLL)
  987.  
  988. $(BIDSILIB) $(STDLIBS)
  989. $(OWLDEF)
  990. $(OWLRES)
  991. |
  992.   $(TDSTRIP) -s $(OWLDLL)
  993.   $(IMPLIB) $(OWLLIB) $(OWLDLL)
  994.   $(LIB) $(LIBFLAGS) $(OWLLIB) @&&|
  995. $(LIBOBJS)
  996. |
  997.   @-del $*.bak
  998.   @cd $(.PATH.cpp)
  999.  
  1000. !if $d(USE_ORD32)
  1001. $(.PATH.obj)\$(OWLDEF): $(.PATH.cpp)\owl32.ord
  1002. !else
  1003. $(.PATH.obj)\$(OWLDEF):
  1004. !endif
  1005.   @copy &&|
  1006. LIBRARY     $(OWLNAME)$(OWLVER)$(OD)
  1007. DESCRIPTION 'ObjectWindows DLL'
  1008. EXETYPE     WINDOWS
  1009. DATA        MULTIPLE
  1010. EXPORTS
  1011. !if $d(USE_ORD32)
  1012. | + $(.PATH.cpp)\owl32.ord $(.PATH.obj)\$(OWLDEF) > NUL
  1013. !else
  1014. | $(.PATH.obj)\$(OWLDEF) > NUL
  1015. !endif
  1016.  
  1017.  
  1018.  
  1019. # Compile objs that aren't part of the Owl DLL as if they were user EXE or
  1020. # user DLL objs
  1021. #
  1022. $(OBJS_LIB:PFX=):
  1023. !if $d(USERDLL)
  1024.   $(CC)    -D_OWLDLL -U_BUILDOWLDLL {$&.cpp }
  1025. !else
  1026.   $(CC) -W -D_OWLDLL -U_BUILDOWLDLL {$&.cpp }
  1027. !endif
  1028.  
  1029. !else  # ! WIN32
  1030.  
  1031. #
  1032. # link once to get dll ordinals for implib,
  1033. # finish lib by adding additional objs,
  1034. # then re-link stripping name tables, add resources & tdstrip debug info
  1035. #
  1036. $(OWLLIB): $(LIBDEPOBJS) $(.PATH.obj)\$(OWLDEF) $(.PATH.obj)\$(OWLRES)
  1037.   @cd $(.PATH.obj)
  1038.   $(LINK) @&&|
  1039. $(LFLAGS) -Gn -L$(LIBPATH) $(STARTUP) +
  1040. $(LINKOBJS)
  1041. $(OWLDLL)
  1042.  
  1043. $(BIDSILIB) $(STDLIBS)
  1044. $(OWLDEF)
  1045. |
  1046.   $(RLINK) -v -k $(OWLRES) $(OWLDLL)
  1047.   $(IMPLIB) -i $(OWLLIB) $(OWLDEF) $(OWLDLL)
  1048.   $(LIB) $(LIBFLAGS) $(OWLLIB) @&&|
  1049. $(LIBOBJS)
  1050. |                                     # OWL_QUICK_LINK is used mainly to
  1051. !if !$d(OWL_QUICK_LINK)               # monitor the export tables of the DLL
  1052.   $(LINK) @&&|
  1053. $(LFLAGS) -Gr -Gn -L$(LIBPATH) $(STARTUP) +
  1054. $(LINKOBJS)
  1055. $(OWLDLL)
  1056.  
  1057. $(BIDSILIB) $(STDLIBS)
  1058. $(OWLDEF)
  1059. |
  1060.   $(RLINK) -v -k $(OWLRES) $(OWLDLL)
  1061. !endif
  1062.   $(TDSTRIP) -s $(OWLDLL)
  1063.   @-del $*.bak
  1064.   @cd $(.PATH.cpp)
  1065.  
  1066. $(.PATH.obj)\$(OWLDEF): $(.PATH.cpp)\owl16.ord
  1067.   @copy &&|
  1068. LIBRARY     $(OWLNAME)$(OWLVER)$(OD)
  1069. DESCRIPTION 'ObjectWindows DLL'
  1070. EXETYPE     WINDOWS
  1071. CODE        PRELOAD MOVEABLE DISCARDABLE
  1072. DATA        PRELOAD MOVEABLE SINGLE
  1073. HEAPSIZE    4096
  1074. EXPORTS
  1075. | + $(.PATH.cpp)\owl16.ord $(.PATH.obj)\$(OWLDEF) > NUL
  1076.  
  1077. # Compile objs that aren't part of the Owl DLL as if they were user EXE or
  1078. # user DLL objs
  1079. #
  1080. $(OBJS_LIB:PFX=):
  1081. !if $d(USERDLL)
  1082.   $(CC)     -D_OWLDLL -U_BUILDOWLDLL {$&.cpp }
  1083. !else
  1084.   # smart callback, far data into normal data seg DATA, could use CODE if RO
  1085.   $(CC) -WS -D_OWLDLL -U_BUILDOWLDLL -zFDATA {$&.cpp }
  1086. !endif
  1087.  
  1088. localex.obj: locale.cpp
  1089.   $(CC) -o$< locale.cpp
  1090.  
  1091. !endif # if/else WIN32
  1092.  
  1093. !else  # ! DLL
  1094.  
  1095. $(OWLLIB): $(LIBDEPOBJS)
  1096.   @-del $(OWLLIB)
  1097.   @cd $(.PATH.obj)
  1098.   $(LIB) $(LIBFLAGS) $(OWLLIB) @&&|
  1099. $(LIBOBJS)
  1100. |
  1101. !if $d(DEBUG) && $d(WIN16) && $d(STRIP_OBJS)  # This is a space saver
  1102.   $(TDSTRIP) *.obj
  1103. !endif
  1104.   @cd $(.PATH.cpp)
  1105.  
  1106. !endif
  1107.  
  1108. clean:
  1109.   @echo Removing .OBJs from $(.PATH.obj)
  1110.   @-if exist $(.PATH.obj)\*.obj del $(.PATH.obj)\*.obj
  1111.   @-if exist $(.PATH.obj)\*.csm del $(.PATH.obj)\*.csm
  1112.  
  1113. !if $d(WIN16)
  1114. NOOPT=-Od
  1115. !endif
  1116.  
  1117. applicat.obj: applicat.cpp
  1118.   $(CC) $(NOOPT) applicat.cpp
  1119.  
  1120. applica1.obj: applicat.cpp
  1121.   $(CC) $(NOOPT) -o$< -DSECTION=1 applicat.cpp
  1122. applica2.obj: applicat.cpp
  1123.   $(CC) $(NOOPT) -o$< -DSECTION=2 applicat.cpp
  1124. applica3.obj: applicat.cpp
  1125.   $(CC) $(NOOPT) -o$< -DSECTION=3 applicat.cpp
  1126. applica4.obj: applicat.cpp
  1127.   $(CC) $(NOOPT) -o$< -DSECTION=4 applicat.cpp
  1128.  
  1129. brush1.obj: brush.cpp
  1130.   $(CC) -o$< -DSECTION=1 brush.cpp
  1131. brush2.obj: brush.cpp
  1132.   $(CC) -o$< -DSECTION=2 brush.cpp
  1133.  
  1134. button1.obj: button.cpp
  1135.   $(CC) -o$< -DSECTION=1 button.cpp
  1136. button2.obj: button.cpp
  1137.   $(CC) -o$< -DSECTION=2 button.cpp
  1138.  
  1139. checkbo1.obj: checkbox.cpp
  1140.   $(CC) -o$< -DSECTION=1 checkbox.cpp
  1141. checkbo2.obj: checkbox.cpp
  1142.   $(CC) -o$< -DSECTION=2 checkbox.cpp
  1143.  
  1144. combobo1.obj: combobox.cpp
  1145.   $(CC) -o$< -DSECTION=1 combobox.cpp
  1146. combobo2.obj: combobox.cpp
  1147.   $(CC) -o$< -DSECTION=2 combobox.cpp
  1148.  
  1149. control1.obj: control.cpp
  1150.   $(CC) -o$< -DSECTION=1 control.cpp
  1151. control2.obj: control.cpp
  1152.   $(CC) -o$< -DSECTION=2 control.cpp
  1153.  
  1154. decfram1.obj: decframe.cpp
  1155.   $(CC) -o$< -DSECTION=1 decframe.cpp
  1156. decfram2.obj: decframe.cpp
  1157.   $(CC) -o$< -DSECTION=2 decframe.cpp
  1158.  
  1159. decmdif1.obj: decmdifr.cpp
  1160.   $(CC) -o$< -DSECTION=1 decmdifr.cpp
  1161. decmdif2.obj: decmdifr.cpp
  1162.   $(CC) -o$< -DSECTION=2 decmdifr.cpp
  1163.  
  1164. dialog1.obj: dialog.cpp
  1165.   $(CC) -o$< -DSECTION=1 dialog.cpp
  1166. dialog2.obj: dialog.cpp
  1167.   $(CC) -o$< -DSECTION=2 dialog.cpp
  1168.  
  1169. dib1.obj: dib.cpp
  1170.   $(CC) -o$< -DSECTION=1 dib.cpp
  1171. dib2.obj: dib.cpp
  1172.   $(CC) -o$< -DSECTION=2 dib.cpp
  1173. dib3.obj: dib.cpp
  1174.   $(CC) -o$< -DSECTION=3 dib.cpp
  1175. dib4.obj: dib.cpp
  1176.   $(CC) -o$< -DSECTION=4 dib.cpp
  1177. dib5.obj: dib.cpp
  1178.   $(CC) -o$< -DSECTION=5 dib.cpp
  1179. dib6.obj: dib.cpp
  1180.   $(CC) -o$< -DSECTION=6 dib.cpp
  1181. dib7.obj: dib.cpp
  1182.   $(CC) -o$< -DSECTION=7 dib.cpp
  1183.  
  1184. docmang1.obj: docmanag.cpp
  1185.   $(CC) -o$< -DSECTION=1 docmanag.cpp
  1186. docmang2.obj: docmanag.cpp
  1187.   $(CC) -o$< -DSECTION=2 docmanag.cpp
  1188. docmang3.obj: docmanag.cpp
  1189.   $(CC) -o$< -DSECTION=3 docmanag.cpp
  1190.  
  1191. doctpl1.obj: doctpl.cpp
  1192.   $(CC) -o$< -DSECTION=1 doctpl.cpp
  1193. doctpl2.obj: doctpl.cpp
  1194.   $(CC) -o$< -DSECTION=2 doctpl.cpp
  1195.  
  1196. documen1.obj: document.cpp
  1197.   $(CC) -o$< -DSECTION=1 document.cpp
  1198. documen2.obj: document.cpp
  1199.   $(CC) -o$< -DSECTION=2 document.cpp
  1200.  
  1201. edit1.obj: edit.cpp
  1202.   $(CC) -o$< -DSECTION=1 edit.cpp
  1203. edit2.obj: edit.cpp
  1204.   $(CC) -o$< -DSECTION=2 edit.cpp
  1205.  
  1206. editfil1.obj: editfile.cpp
  1207.   $(CC) -o$< -DSECTION=1 editfile.cpp
  1208. editfil2.obj: editfile.cpp
  1209.   $(CC) -o$< -DSECTION=2 editfile.cpp
  1210.  
  1211. editsea1.obj: editsear.cpp
  1212.   $(CC) -o$< -DSECTION=1 editsear.cpp
  1213. editsea2.obj: editsear.cpp
  1214.   $(CC) -o$< -DSECTION=2 editsear.cpp
  1215.  
  1216. editvie1.obj: editview.cpp
  1217.   $(CC) -o$< -DSECTION=1 editview.cpp
  1218. editvie2.obj: editview.cpp
  1219.   $(CC) -o$< -DSECTION=2 editview.cpp
  1220.  
  1221. filedoc1.obj: filedoc.cpp
  1222.   $(CC) -o$< -DSECTION=1 filedoc.cpp
  1223. filedoc2.obj: filedoc.cpp
  1224.   $(CC) -o$< -DSECTION=2 filedoc.cpp
  1225.  
  1226. filtval1.obj: filtval.cpp
  1227.   $(CC) -o$< -DSECTION=1 filtval.cpp
  1228. filtval2.obj: filtval.cpp
  1229.   $(CC) -o$< -DSECTION=2 filtval.cpp
  1230.  
  1231. findrep1.obj: findrepl.cpp
  1232.   $(CC) -o$< -DSECTION=1 findrepl.cpp
  1233. findrep2.obj: findrepl.cpp
  1234.   $(CC) -o$< -DSECTION=2 findrepl.cpp
  1235.  
  1236. floatfr1.obj: floatfra.cpp
  1237.   $(CC) -o$< -DSECTION=1 floatfra.cpp
  1238. floatfr2.obj: floatfra.cpp
  1239.   $(CC) -o$< -DSECTION=2 floatfra.cpp
  1240.  
  1241. framewi1.obj: framewin.cpp
  1242.   $(CC) -o$< -DSECTION=1 framewin.cpp
  1243. framewi2.obj: framewin.cpp
  1244.   $(CC) -o$< -DSECTION=2 framewin.cpp
  1245. framewi3.obj: framewin.cpp
  1246.   $(CC) -o$< -DSECTION=3 framewin.cpp
  1247.  
  1248. groupbo1.obj: groupbox.cpp
  1249.   $(CC) -o$< -DSECTION=1 groupbox.cpp
  1250. groupbo2.obj: groupbox.cpp
  1251.   $(CC) -o$< -DSECTION=2 groupbox.cpp
  1252.  
  1253. hslider1.obj: hslider.cpp
  1254.   $(CC) -o$< -DSECTION=1 hslider.cpp
  1255. hslider2.obj: hslider.cpp
  1256.   $(CC) -o$< -DSECTION=2 hslider.cpp
  1257.  
  1258. inputdi1.obj: inputdia.cpp
  1259.   $(CC) -o$< -DSECTION=1 inputdia.cpp
  1260. inputdi2.obj: inputdia.cpp
  1261.   $(CC) -o$< -DSECTION=2 inputdia.cpp
  1262.  
  1263. listbox1.obj: listbox.cpp
  1264.   $(CC) -o$< -DSECTION=1 listbox.cpp
  1265. listbox2.obj: listbox.cpp
  1266.   $(CC) -o$< -DSECTION=2 listbox.cpp
  1267.  
  1268. listvie1.obj: listview.cpp
  1269.   $(CC) -o$< -DSECTION=1 listview.cpp
  1270. listvie2.obj: listview.cpp
  1271.   $(CC) -o$< -DSECTION=2 listview.cpp
  1272.  
  1273. lookval1.obj: lookval.cpp
  1274.   $(CC) -o$< -DSECTION=1 lookval.cpp
  1275. lookval2.obj: lookval.cpp
  1276.   $(CC) -o$< -DSECTION=2 lookval.cpp
  1277.  
  1278. mdichil1.obj: mdichild.cpp
  1279.   $(CC) -o$< -DSECTION=1 mdichild.cpp
  1280. mdichil2.obj: mdichild.cpp
  1281.   $(CC) -o$< -DSECTION=2 mdichild.cpp
  1282.  
  1283. mdiclie1.obj: mdiclien.cpp
  1284.   $(CC) -o$< -DSECTION=1 mdiclien.cpp
  1285. mdiclie2.obj: mdiclien.cpp
  1286.   $(CC) -o$< -DSECTION=2 mdiclien.cpp
  1287.  
  1288. mdifram1.obj: mdiframe.cpp
  1289.   $(CC) -o$< -DSECTION=1 mdiframe.cpp
  1290. mdifram2.obj: mdiframe.cpp
  1291.   $(CC) -o$< -DSECTION=2 mdiframe.cpp
  1292.  
  1293. menudes1.obj: menudesc.cpp
  1294.   $(CC) -o$< -DSECTION=1 menudesc.cpp
  1295. menudes2.obj: menudesc.cpp
  1296.   $(CC) -o$< -DSECTION=2 menudesc.cpp
  1297.  
  1298. module1.obj: module.cpp
  1299.   $(CC) -o$< -DSECTION=1 module.cpp
  1300. module2.obj: module.cpp
  1301.   $(CC) -o$< -DSECTION=2 module.cpp
  1302. module3.obj: module.cpp
  1303.   $(CC) -o$< -DSECTION=3 module.cpp
  1304. module4.obj: module.cpp
  1305.   $(CC) -o$< -DSECTION=4 module.cpp
  1306.  
  1307. opensav1.obj: opensave.cpp
  1308.   $(CC) -o$< -DSECTION=1 opensave.cpp
  1309. opensav2.obj: opensave.cpp
  1310.   $(CC) -o$< -DSECTION=2 opensave.cpp
  1311.  
  1312. pictval1.obj: pictval.cpp
  1313.   $(CC) -o$< -DSECTION=1 pictval.cpp
  1314. pictval2.obj: pictval.cpp
  1315.   $(CC) -o$< -DSECTION=2 pictval.cpp
  1316.  
  1317. printou1.obj: printout.cpp
  1318.   $(CC) -o$< -DSECTION=1 printout.cpp
  1319. printou2.obj: printout.cpp
  1320.   $(CC) -o$< -DSECTION=2 printout.cpp
  1321.  
  1322. printer1.obj: printer.cpp
  1323.   $(CC) -o$< -DSECTION=1 printer.cpp
  1324. printer2.obj: printer.cpp
  1325.   $(CC) -o$< -DSECTION=2 printer.cpp
  1326.  
  1327. printdi1.obj: printdia.cpp
  1328.   $(CC) -o$< -DSECTION=1 printdia.cpp
  1329. printdi2.obj: printdia.cpp
  1330.   $(CC) -o$< -DSECTION=2 printdia.cpp
  1331.  
  1332. radiobu1.obj: radiobut.cpp
  1333.   $(CC) -o$< -DSECTION=1 radiobut.cpp
  1334. radiobu2.obj: radiobut.cpp
  1335.   $(CC) -o$< -DSECTION=2 radiobut.cpp
  1336.  
  1337. rangevl1.obj: rangeval.cpp
  1338.   $(CC) -o$< -DSECTION=1 rangeval.cpp
  1339. rangevl2.obj: rangeval.cpp
  1340.   $(CC) -o$< -DSECTION=2 rangeval.cpp
  1341.  
  1342. scrolle1.obj: scroller.cpp
  1343.   $(CC) -o$< -DSECTION=1 scroller.cpp
  1344. scrolle2.obj: scroller.cpp
  1345.   $(CC) -o$< -DSECTION=2 scroller.cpp
  1346.  
  1347. scrollb1.obj: scrollba.cpp
  1348.   $(CC) -o$< -DSECTION=1 scrollba.cpp
  1349. scrollb2.obj: scrollba.cpp
  1350.   $(CC) -o$< -DSECTION=2 scrollba.cpp
  1351.  
  1352. slider1.obj: slider.cpp
  1353.   $(CC) -o$< -DSECTION=1 slider.cpp
  1354. slider2.obj: slider.cpp
  1355.   $(CC) -o$< -DSECTION=2 slider.cpp
  1356.  
  1357. static1.obj: static.cpp
  1358.   $(CC) -o$< -DSECTION=1 static.cpp
  1359. static2.obj: static.cpp
  1360.   $(CC) -o$< -DSECTION=2 static.cpp
  1361.  
  1362. tinycap1.obj: tinycapt.cpp
  1363.   $(CC) -o$< -DSECTION=1 tinycapt.cpp
  1364. tinycap2.obj: tinycapt.cpp
  1365.   $(CC) -o$< -DSECTION=2 tinycapt.cpp
  1366.  
  1367. validat1.obj: validate.cpp
  1368.   $(CC) -o$< -DSECTION=1 validate.cpp
  1369. validat2.obj: validate.cpp
  1370.   $(CC) -o$< -DSECTION=2 validate.cpp
  1371.  
  1372. view1.obj: view.cpp
  1373.   $(CC) -o$< -DSECTION=1 view.cpp
  1374. view2.obj: view.cpp
  1375.   $(CC) -o$< -DSECTION=2 view.cpp
  1376.  
  1377. vslider1.obj: vslider.cpp
  1378.   $(CC) -o$< -DSECTION=1 vslider.cpp
  1379. vslider2.obj: vslider.cpp
  1380.   $(CC) -o$< -DSECTION=2 vslider.cpp
  1381.