home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / bc45 / owlsrc.pak / MAKEFILE < prev    next >
Encoding:
Text File  |  1997-07-24  |  25.0 KB  |  999 lines

  1. #-----------------------------------------------------------------------------
  2. # ObjectWindows - (C) Copyright 1991, 1993 by Borland International
  3. #
  4. # MAKEFILE for ObjectWindows Libraries
  5. #
  6. # Defines:
  7. #   MODEL=<d|s|m|l|f>   one of: dll(default), small, medium, large or flat
  8. #   WIN32        enables win32 static (flat) or DLL
  9. #   DIAGS        enables runtime diagnostics (adds 'd' to lib name before 'w')
  10. #   DEBUG        enables debug info for TDW & TD32
  11. #   NOOWLPCH     disables precompiled headers for owl
  12. #   OWLSECTION   enables sectioning of sources into multiple small objs
  13. #   OWLNAME=Xxx  lib & DLL name base, Defaults to 'Owl'. Req. for non-diag DLLs
  14. #   OWLVER=nnn   version for Owl DLL. Defaults to 250. Req. for non-diag DLLs
  15. #   USERDLL      builds Owl for use in a user DLL (adds 'u' to lib name after
  16. #                model)
  17. #   OWLFARVTABLE moves owl class vtables out of dgroup
  18. #   DISABLE_EXCEPTIONS disables exception use in Owl & in macros
  19. #
  20. # Define these for alternate owl build directories:
  21. #   OWLSRCDIR    defaults to: $(BCROOT)\source\owl
  22. #   OWLINCDIR    defaults to: $(BCROOT)\include
  23. #   OWLLIBDIR    defaults to: $(BCROOT)\lib
  24. #   OWLBINDIR    defaults to: $(BCROOT)\bin
  25. #
  26. # Standard builds:
  27. #   make MODEL=s -DOWLSECTION            small model library (owlws.lib)
  28. #   make MODEL=m -DOWLSECTION            medium model library (owlwm.lib)
  29. #   make MODEL=l -DOWLSECTION            large model library (owlwl.lib)
  30. #   make OWLNAME=Owl OWLVER=250          16bit DLL (owlwi.lib, owl250.dll)
  31. #   make -DWIN32 -DOWLSECTION            32bit flat model library (owlwf.lib)
  32. #   make -DWIN32 OWLNAME=Owl OWLVER=250  32bit DLL (owlwfi.lib, owl250f.dll)
  33. #
  34. # Diagnostic builds:
  35. #   make MODEL=s -DOWLSECTION -DDIAGS  small model diag library (owldws.lib)
  36. #   make MODEL=m -DOWLSECTION -DDIAGS  medium model diag library (owldwm.lib)
  37. #   make MODEL=l -DOWLSECTION -DDIAGS  large model diag library (owldwl.lib)
  38. #   make -DDIAGS                       16bit diag DLL (owldwi.lib, owl250d.dll)
  39. #   make -DWIN32 -DOWLSECTION -DDIAGS  32bit flat model diag lib (owldwf.lib)
  40. #   make -DWIN32 -DDIAGS               32bit diag DLL (owldwfi.lib, owl250df.dll)
  41. #
  42. # Notes:
  43. #   The owl16.ord file should be maintained if Owl functions are changed
  44. #   otherwise warnings will be generated during the DLL link.
  45. #
  46. #-----------------------------------------------------------------------------
  47.  
  48. .autodepend
  49. .cacheautodepend
  50. .swap
  51.  
  52. #--------------------------------------------------------------------
  53. # fill in defaults
  54. #--------------------------------------------------------------------
  55. !if !$d(MODEL) || $(MODEL) == d
  56.   DLL = 1
  57. !endif
  58. !if $(MODEL) == f
  59.   WIN32 = 1
  60. !endif
  61. !if $d(WIN32)
  62.   MODEL = f
  63. !elif $d(DLL) || !$d(MODEL)
  64.   MODEL = l
  65. !endif
  66.  
  67. #--------------------------------------------------------------------
  68. # dir & name components
  69. #--------------------------------------------------------------------
  70. !if $d(DLL)
  71.  
  72. ! if !$d(OWLNAME) && !$d(DIAGS)
  73. !   error MUST DEFINE LIBRARY NAME, e.g. "MAKE MODEL=d OWLNAME=YourName"
  74. ! endif
  75. ! if $d(WIN32)
  76.     KEY = wfi                   # 32bit DLL import library
  77. ! else
  78.     KEY = wi                    # 16bit DLL import library
  79. ! endif
  80.  
  81. !else
  82.  
  83. KEY = w$(MODEL)                 # Static library
  84.  
  85. !endif  # if/else $d(DLL)
  86.  
  87. ! if $d(USERDLL)
  88.   KEY = $(KEY)u                 # Static or import library for use by dlls
  89. ! endif
  90.  
  91. !if !$d(OWLNAME)
  92.   OWLNAME=Owl
  93. ! if !$d(OWLVER)
  94.     OWLVER=250
  95. ! endif
  96. !endif
  97.  
  98. #--------------------------------------------------------------------
  99. # debug & diagnostic flags
  100. #--------------------------------------------------------------------
  101. !if $d(DEBUG)
  102.   CDBG = -v -k -Od    # debug-info on, normal stack, no optimizations
  103. !endif
  104. !if 1 || $d(DEBUG)    # Leave public debug info in dll & strip to a .tds after
  105. ! if $d(WIN32)
  106.     LDBG = -v
  107. ! else
  108.     LDBG = -v -Vt
  109. ! endif
  110. !endif
  111.  
  112. !if $d(DIAGS)         # default diags use precondition, check, trace & warn
  113.   __DEBUG=2
  114.   __TRACE=1
  115.   __WARN=1
  116.   BD=d                # Use Bids Diag version when Owl lib is diag
  117.   OD=d                # Owl libs & dll get a 'd' for Diag versions
  118. !endif
  119.  
  120. #
  121. # Build up compiler diag switches based on settings
  122. #
  123. !if $d(__DEBUG)
  124.   CDIAG = -D__DEBUG=$(__DEBUG)
  125. !endif
  126. !if $d(__TRACE)
  127.   CDIAG = $(CDIAG) -D__TRACE
  128. !endif
  129. !if $d(__WARN)
  130.   CDIAG = $(CDIAG) -D__WARN
  131. !endif
  132.  
  133. #--------------------------------------------------------------------
  134. # dir & search paths, & precompiled headers
  135. #--------------------------------------------------------------------
  136.  
  137. #
  138. # BC tools BCBINDIR can be based on MAKEDIR if no BCROOT is defined
  139. #
  140. !if $d(BCROOT)
  141.   BCBINDIR = $(BCROOT)\bin
  142. !else
  143.   BCBINDIR = $(MAKEDIR)
  144. !endif
  145.  
  146. #
  147. # default bcroot to whatever is in bcroot.inc
  148. #
  149. !if !$d(BCROOT)
  150.   #BCROOT = $(MAKEDIR)\..
  151.   !include $(MAKEDIR)\bcroot.inc
  152. !endif
  153.  
  154. #
  155. # Where to find Owl dirs-- can set these for special layouts
  156. #
  157. !if !$d(OWLSRCDIR)
  158.   OWLSRCDIR = $(BCROOT)\source\owl
  159. !endif
  160.  
  161. !if !$d(OWLINCDIR)
  162.   OWLINCDIR = $(BCROOT)\include
  163. !endif
  164.  
  165. !if !$d(OWLLIBDIR)
  166.   OWLLIBDIR = $(BCROOT)\lib
  167. !endif
  168.  
  169. !if !$d(OWLBINDIR)
  170.   OWLBINDIR = $(BCROOT)\bin
  171. !endif
  172.  
  173. #
  174. # Where to find BC tools, libraries and include files
  175. #
  176. BCINCDIR = $(BCROOT)\include
  177. BCLIBDIR = $(BCROOT)\lib
  178.  
  179. #
  180. # Build search paths differently if Owl include dir is not below BC's
  181. #
  182. !if "$(OWLINCDIR)" == "$(BCINCDIR)"
  183.   INCLUDE       = $(BCINCDIR)
  184.   RCINCLUDEPATH = -i$(BCINCDIR)
  185. !else
  186.   INCLUDE       = $(OWLINCDIR);$(BCINCDIR)
  187.   RCINCLUDEPATH = -i$(OWLINCDIR) -i$(BCINCDIR)
  188. !endif
  189.  
  190. OWLOBJDIR = $(OWLSRCDIR)\object\$(OD)$(KEY)   # Keep seperate diag/nondiag dirs
  191.  
  192. .PATH.obj = $(OWLOBJDIR)
  193. .PATH.res = $(OWLOBJDIR)
  194. .PATH.def = $(OWLOBJDIR)
  195. .PATH.lib = $(OWLLIBDIR)
  196. .PATH.cpp = $(OWLSRCDIR)
  197.  
  198. #
  199. # Define NOOWLPCH to disable the use of Precompiled headers when building Owl
  200. #
  201. !if !$d(NOOWLPCH)
  202.   CPCH= -H=$(OWLLIBDIR)\$(OWLNAME)$(OD)$(KEY).csm -H"owl/owlpch.h" -D_OWLPCH
  203. ! if $d(WIN32)
  204.   CPCH= $(CPCH) -Hc
  205. ! endif
  206. !endif
  207.  
  208. #--------------------------------------------------------------------
  209. # library names
  210. #--------------------------------------------------------------------
  211. !if $d(DLL)
  212. ! if $d(WIN32)
  213.     OWLDLL = $(OWLBINDIR)\$(OWLNAME)$(OWLVER)$(OD)f.dll
  214. ! else
  215.     OWLDLL = $(OWLBINDIR)\$(OWLNAME)$(OWLVER)$(OD).dll
  216. ! endif
  217.   OWLDEF = owl.def
  218.   OWLRES = owl.res
  219. !endif
  220. OWLLIB = $(OWLLIBDIR)\$(OWLNAME)$(OD)$(KEY).lib
  221.  
  222. #--------------------------------------------------------------------
  223. # tools and options for 32bit
  224. #--------------------------------------------------------------------
  225. !if $d(WIN32)
  226.   BCC      = $(BCBINDIR)\bcc32       # Compiler
  227.   BRCC     = brcc32                  # Resource compiler
  228.   BCCASM   = $(BCBINDIR)\tasm32      # Assembler
  229.   TLINK    = $(BCBINDIR)\tlink32     # Linker
  230.   TLIB     = $(BCBINDIR)\tlib        # Librarian
  231.   IMPLIB   = $(BCBINDIR)\implib      # Import library generator
  232.   TDSTRIP  = $(BCBINDIR)\tdstrp32    # Debug info extractor
  233.  
  234.   COPTS    = -d -k- -O1gmpv          # Optimizations
  235.   CFGFILE  = bcc32.cfg               # Name of compiler's config file
  236. ! if $d(DEBUG)
  237.     TLIBOPTS = /P512
  238. ! else
  239.     TLIBOPTS = /P32 /0
  240. ! endif
  241.  
  242. ! if $d(DLL)
  243.     CWIN = -WDE -D_BUILDOWLDLL
  244.     LFLAGS   = $(LDBG) -Tpd -aa -s -c
  245. !   if !$d(BIDSILIB)
  246.       BIDSILIB = bids$(BD)fi
  247. !   endif
  248.     STDLIBS  = import32 cw32i        # Libs for linking the Owl DLL
  249. ! else
  250.     CWIN = -W
  251. ! endif
  252.  
  253. #--------------------------------------------------------------------
  254. # tools and options for 16bit
  255. #--------------------------------------------------------------------
  256. !else
  257.   BCC      = $(BCBINDIR)\bcc         # Compiler
  258.   BRCC     = brcc                    # Resource compiler
  259.   BCCASM   = $(BCBINDIR)\tasm        # Assembler
  260.   TLINK    = $(BCBINDIR)\tlink       # Linker
  261.   TLIB     = $(BCBINDIR)\tlib        # Librarian
  262.  
  263.   # implib needs -o switch in 16 bit for compatibility
  264.   IMPLIB   = $(BCBINDIR)\implib -o   # Import library generator
  265.   TDSTRIP  = $(BCBINDIR)\tdstrip     # Debug info extractor
  266.  
  267.   CMDL     = -m$(MODEL)
  268.   COPTS    = -3 -d -k- -O1gmpv       # Optimizations
  269.  
  270. ! if $(MODEL) != s && $(MODEL) != m  # Large models can put strs in code seg
  271.     COPTS = $(COPTS) -dc
  272. ! endif
  273. ! if $(MODEL) == s                   # Small model turns off some options
  274.     DISABLE_EXCEPTIONS = 1
  275.     COPTS = $(COPTS) -DNO_GDI_ORPHAN_CONTROL
  276. ! endif
  277. ! if $d(OWLFARVTABLE)
  278.     COPTS = $(COPTS) -D_OWLFARVTABLE;_BIDSFARVTABLE #;_RTLFARVTABLE
  279. ! endif
  280. ! if $d(DISABLE_EXCEPTIONS)
  281.     COPTS = $(COPTS) -DDISABLE_EXCEPTIONS -x-
  282. ! endif
  283.   CFGFILE = turboc.cfg
  284.  
  285. ! if $d(DEBUG)
  286.     TLIBOPTS = /P512
  287. ! else
  288.     TLIBOPTS = /P32 /0
  289. ! endif
  290.  
  291. ! if $d(DLL)                         # Build the 16bit Owl DLL
  292.     # Dll, explicit export, far data into seg named OWL_FARDATA, compat excptns
  293.     CWIN = -WDE -D_BUILDOWLDLL -zEOWL_FARDATA -xc
  294.     LFLAGS = $(LDBG) -Twd -n -s -c -C -Oc -Oi -Oa -Or
  295. !   if !$d(BIDSILIB)
  296.       BIDSILIB = bids$(BD)i
  297. !   endif
  298.     STDLIBS  = import crtldll        # Libs for linking the Owl DLL
  299.  
  300. ! else
  301. !   if $d(USERDLL)
  302.       CWIN = -WDE -xc                # Build static Owl lib for use in DLLs
  303. !   else
  304.       CWIN = -WSE                    # Build static Owl lib for use in EXEs
  305. !   endif
  306. ! endif
  307.  
  308. !endif
  309.  
  310. #--------------------------------------------------------------------
  311. # rules
  312. #--------------------------------------------------------------------
  313. .rc.res:
  314.   $(BRCC) $(RCINCLUDEPATH) -fo$@ $.
  315.  
  316. .cpp.obj:
  317.   $(BCC) {$. }
  318.  
  319. #--------------------------------------------------------------------
  320. # Various file lists needed for dependency checking and LIBing.
  321. #
  322. #   OBJS_CMN are the objs common to static libs and the dll
  323. #   OBJS_LIB are the objs that go into libs and implibs only, not the dlls
  324. #   OBJS_DLL are the objs that go into the owl dll only
  325. #   LIBDEPOBJS is the list of object files for lib/implib dependency checking
  326. #   LIBOBJS is the list of object files for building/addingto the libraries
  327. #   LINKOBJS is the list of object files for building the DLL
  328. #--------------------------------------------------------------------
  329.  
  330. # Common Objs go into static libs and DLLs
  331. #
  332. OBJS_CMN =\
  333.  PFXappdict.obj\
  334.  PFXbitmap.obj\
  335.  PFXbitmapga.obj\
  336.  PFXbitset.obj\
  337.  PFXbrush.obj\
  338.  PFXbuttonga.obj\
  339.  PFXcelarray.obj\
  340.  PFXchooseco.obj\
  341.  PFXchoosefo.obj\
  342.  PFXclipboar.obj\
  343.  PFXclipview.obj\
  344.  PFXcolor.obj\
  345.  PFXcommdial.obj\
  346.  PFXcompat.obj\
  347.  PFXcontrolb.obj\
  348.  PFXcontrolg.obj\
  349.  PFXcreatedc.obj\
  350.  PFXcursor.obj\
  351.  PFXdc.obj\
  352.  PFXdispatch.obj\
  353.  PFXeventhan.obj\
  354.  PFXexcept.obj\
  355.  PFXfont.obj\
  356.  PFXgadget.obj\
  357.  PFXgadgetwi.obj\
  358.  PFXgauge.obj\
  359.  PFXgdibase.obj\
  360.  PFXgdiobjec.obj\
  361.  PFXicon.obj\
  362.  PFXlayoutwi.obj\
  363.  PFXmemorydc.obj\
  364.  PFXmenu.obj\
  365.  PFXmessageb.obj\
  366.  PFXmetafile.obj\
  367.  PFXmetafldc.obj\
  368.  PFXmoduleob.obj\
  369.  PFXowl.obj\
  370.  PFXowldiag.obj\
  371.  PFXpaintdc.obj\
  372.  PFXpalette.obj\
  373.  PFXpen.obj\
  374.  PFXpreview.obj\
  375.  PFXprintdc.obj\
  376.  PFXprofile.obj\
  377.  PFXregion.obj\
  378.  PFXstatusba.obj\
  379.  PFXswindow.obj\
  380.  PFXtextgadg.obj\
  381.  PFXtoolbox.obj\
  382.  PFXuihandle.obj\
  383.  PFXversion.obj\
  384.  PFXwindow.obj\
  385.  PFXwindowdc.obj
  386.  
  387. # Add in these objs when sectioning
  388. #
  389. !if $d(OWLSECTION)
  390. OBJS_CMN = $(OBJS_CMN)\
  391.  PFXapplica1.obj\
  392.  PFXapplica2.obj\
  393.  PFXapplica3.obj\
  394.  PFXapplica4.obj\
  395.  PFXbutton1.obj\
  396.  PFXbutton2.obj\
  397.  PFXcheckbo1.obj\
  398.  PFXcheckbo2.obj\
  399.  PFXcombobo1.obj\
  400.  PFXcombobo2.obj\
  401.  PFXcontrol1.obj\
  402.  PFXcontrol2.obj\
  403.  PFXdecfram1.obj\
  404.  PFXdecfram2.obj\
  405.  PFXdecmdif1.obj\
  406.  PFXdecmdif2.obj\
  407.  PFXdialog1.obj\
  408.  PFXdialog2.obj\
  409.  PFXdib1.obj\
  410.  PFXdib2.obj\
  411.  PFXdib3.obj\
  412.  PFXdib4.obj\
  413.  PFXdib5.obj\
  414.  PFXdib6.obj\
  415.  PFXdocmang1.obj\
  416.  PFXdocmang2.obj\
  417.  PFXdoctpl1.obj\
  418.  PFXdoctpl2.obj\
  419.  PFXdocview1.obj\
  420.  PFXdocview2.obj\
  421.  PFXedit1.obj\
  422.  PFXedit2.obj\
  423.  PFXeditfil1.obj\
  424.  PFXeditfil2.obj\
  425.  PFXeditsea1.obj\
  426.  PFXeditsea2.obj\
  427.  PFXeditvie1.obj\
  428.  PFXeditvie2.obj\
  429.  PFXfiledoc1.obj\
  430.  PFXfiledoc2.obj\
  431.  PFXfiltval1.obj\
  432.  PFXfiltval2.obj\
  433.  PFXfindrep1.obj\
  434.  PFXfindrep2.obj\
  435.  PFXfloatfr1.obj\
  436.  PFXfloatfr2.obj\
  437.  PFXframewi1.obj\
  438.  PFXframewi2.obj\
  439.  PFXframewi3.obj\
  440.  PFXgroupbo1.obj\
  441.  PFXgroupbo2.obj\
  442.  PFXhslider1.obj\
  443.  PFXhslider2.obj\
  444.  PFXinputdi1.obj\
  445.  PFXinputdi2.obj\
  446.  PFXlistbox1.obj\
  447.  PFXlistbox2.obj\
  448.  PFXlistvie1.obj\
  449.  PFXlistvie2.obj\
  450.  PFXlookval1.obj\
  451.  PFXlookval2.obj\
  452.  PFXmdichil1.obj\
  453.  PFXmdichil2.obj\
  454.  PFXmdiclie1.obj\
  455.  PFXmdiclie2.obj\
  456.  PFXmdifram1.obj\
  457.  PFXmdifram2.obj\
  458.  PFXmenudes1.obj\
  459.  PFXmenudes2.obj\
  460.  PFXmodule1.obj\
  461.  PFXmodule2.obj\
  462.  PFXmodule3.obj\
  463.  PFXmodule4.obj\
  464.  PFXopensav1.obj\
  465.  PFXopensav2.obj\
  466.  PFXpictval1.obj\
  467.  PFXpictval2.obj\
  468.  PFXprintdi1.obj\
  469.  PFXprintdi2.obj\
  470.  PFXprinter1.obj\
  471.  PFXprinter2.obj\
  472.  PFXprintou1.obj\
  473.  PFXprintou2.obj\
  474.  PFXradiobu1.obj\
  475.  PFXradiobu2.obj\
  476.  PFXrangevl1.obj\
  477.  PFXrangevl2.obj\
  478.  PFXscrollb1.obj\
  479.  PFXscrollb2.obj\
  480.  PFXscrolle1.obj\
  481.  PFXscrolle2.obj\
  482.  PFXslider1.obj\
  483.  PFXslider2.obj\
  484.  PFXstatic1.obj\
  485.  PFXstatic2.obj\
  486.  PFXtinycap1.obj\
  487.  PFXtinycap2.obj\
  488.  PFXvalidat1.obj\
  489.  PFXvalidat2.obj\
  490.  PFXvslider1.obj\
  491.  PFXvslider2.obj
  492.  
  493. # Add in these objs when not sectioning
  494. #
  495. !else
  496. OBJS_CMN = $(OBJS_CMN)\
  497.  PFXapplicat.obj\
  498.  PFXbutton.obj\
  499.  PFXcheckbox.obj\
  500.  PFXcombobox.obj\
  501.  PFXcontrol.obj\
  502.  PFXdecframe.obj\
  503.  PFXdib.obj\
  504.  PFXdialog.obj\
  505.  PFXdecmdifr.obj\
  506.  PFXdocmanag.obj\
  507.  PFXdoctpl.obj\
  508.  PFXdocview.obj\
  509.  PFXedit.obj\
  510.  PFXeditfile.obj\
  511.  PFXeditsear.obj\
  512.  PFXeditview.obj\
  513.  PFXfiledoc.obj\
  514.  PFXfiltval.obj\
  515.  PFXfindrepl.obj\
  516.  PFXfloatfra.obj\
  517.  PFXframewin.obj\
  518.  PFXgroupbox.obj\
  519.  PFXhslider.obj\
  520.  PFXinputdia.obj\
  521.  PFXlistbox.obj\
  522.  PFXlistview.obj\
  523.  PFXlookval.obj\
  524.  PFXmdichild.obj\
  525.  PFXmdiclien.obj\
  526.  PFXmdiframe.obj\
  527.  PFXmenudesc.obj\
  528.  PFXmodule.obj\
  529.  PFXopensave.obj\
  530.  PFXpictval.obj\
  531.  PFXprinter.obj\
  532.  PFXprintdia.obj\
  533.  PFXprintout.obj\
  534.  PFXradiobut.obj\
  535.  PFXrangeval.obj\
  536.  PFXscrollba.obj\
  537.  PFXscroller.obj\
  538.  PFXslider.obj\
  539.  PFXstatic.obj\
  540.  PFXtinycapt.obj\
  541.  PFXvalidate.obj\
  542.  PFXvslider.obj
  543. !endif
  544.  
  545. # Objs that go into static libs and import libs, but not in the owl dll itself
  546. # These also get built differently when in the import library. Note that
  547. # classes in the modules are declared _USERCLASS instead of _OWLCLASS
  548. #
  549. OBJS_LIB =\
  550.  PFXglobal.obj
  551.  
  552. # OLE 2 classes get put into the lib. Small & medium model not supported
  553. #
  554. !if $(MODEL) == l || $(MODEL) == f
  555. OBJS_OLE2=\
  556.  PFXstgdoc.obj\
  557.  PFXolewindo.obj\
  558.  PFXoledoc.obj\
  559.  PFXoleframe.obj\
  560.  PFXolemdifr.obj\
  561.  PFXoleview.obj
  562. !if $(MODEL) == l
  563. OBJS_OLE2=$(OBJS_OLE2)\
  564.  PFXoledlg.obj\
  565.  PFXchgicon.obj\
  566.  PFXinsobj.obj\
  567.  PFXpastespc.obj\
  568.  PFXlinks.obj\
  569.  PFXlinkguid.obj\
  570.  PFXolemeta.obj
  571. !endif
  572. OBJS_LIB = $(OBJS_LIB) $(OBJS_OLE2)
  573. !endif
  574.  
  575. OBJS_LIB = $(OBJS_LIB)\
  576.  PFXvbxctl.obj
  577.  
  578. !if $d(USERDLL) || $d(WIN32)   # Lib for use by DLLs
  579. OBJS_LIB = $(OBJS_LIB)\
  580.  PFXlibmain.obj\
  581.  PFXowlmain.obj
  582. !endif
  583. !if !$d(USERDLL) || $d(WIN32)  # Lib for use in EXEs
  584. OBJS_LIB = $(OBJS_LIB)\
  585.  PFXwinmain.obj
  586. !endif
  587.  
  588. # Objs that go into the Owl DLL only
  589. #
  590. !if $d(DLL)
  591. OBJS_DLL =
  592. !endif
  593.  
  594. # Put together obj groups into lists for different dependencies & tools
  595. #
  596. LIBDEPOBJS = $(OBJS_CMN:PFX=) $(OBJS_LIB:PFX=) $(OBJS_DLL:PFX=)
  597. !if $(DLL)
  598.  LIBOBJS   = $(OBJS_LIB:PFX=+)
  599.  LINKOBJS  = $(OBJS_CMN:PFX=)  $(OBJS_DLL:PFX=)
  600. !else
  601.  LIBOBJS   = $(OBJS_CMN:PFX=+) $(OBJS_LIB:PFX=+)
  602. !endif
  603.  
  604. #--------------------------------------------------------------------
  605. # targets
  606. #--------------------------------------------------------------------
  607. all: cfgfile $(OWLLIB)
  608.  
  609. cfgfile:
  610.   @-if not exist $(OWLSRCDIR)\object\NUL md $(OWLSRCDIR)\object
  611.   @-if not exist $(OWLOBJDIR)\NUL md $(OWLOBJDIR)
  612.   @copy &&|
  613. -I$(INCLUDE)
  614. -c -w $(CMDL) $(CWIN) $(COPTS)
  615. $(CDBG) $(CDIAG)
  616. $(CPCH) -n$(.PATH.obj) $(CCFOWL)
  617. | $(CFGFILE) > NUL
  618.  
  619. !if $d(DLL)
  620.  
  621. !if $d(WIN32)
  622.  
  623. $(OWLLIB): $(LIBDEPOBJS) $(.PATH.obj)\$(OWLDEF) $(.PATH.obj)\$(OWLRES)
  624.   @cd $(.PATH.obj)
  625.   $(TLINK) @&&|
  626. $(LFLAGS) -L$(BCLIBDIR) c0d32 +
  627. $(LINKOBJS)
  628. $(OWLDLL)
  629.  
  630. $(BIDSILIB) $(STDLIBS)
  631. $(OWLDEF)
  632. $(OWLRES)
  633. |
  634. !if !$d(DIAGS)
  635.   $(TDSTRIP) -s $(OWLDLL)
  636. !endif
  637.   $(IMPLIB) $(OWLLIB) $(OWLDLL)
  638.   $(TLIB) $(TLIBOPTS) $(OWLLIB) @&&|
  639. $(LIBOBJS)
  640. |
  641.   @-del $*.bak
  642.   @cd $(.PATH.cpp)
  643.  
  644. $(.PATH.obj)\$(OWLRES):
  645.   $(BRCC) $(RCINCLUDEPATH) -fo$@ $&.rc
  646.  
  647. $(.PATH.obj)\$(OWLDEF):
  648.   @cd $(.PATH.obj)
  649.   @copy &&|
  650. LIBRARY     $(OWLNAME)$(OWLVER)$(OD)
  651. DESCRIPTION 'ObjectWindows DLL'
  652. EXETYPE     WINDOWS
  653. DATA        MULTIPLE NONSHARED
  654. | $(OWLDEF) > NUL
  655.   @cd $(.PATH.cpp)
  656.  
  657. # Compile objs that aren't part of the Owl DLL as if they were user EXE or
  658. # user DLL objs
  659. #
  660. $(OBJS_LIB:PFX=):
  661. !if $d(USERDLL)
  662.   $(BCC)    -D_OWLDLL -U_BUILDOWLDLL {$&.cpp }
  663. !else
  664.   $(BCC) -W -D_OWLDLL -U_BUILDOWLDLL {$&.cpp }
  665. !endif
  666.  
  667. !else  # ! WIN32
  668.  
  669. #
  670. # link once to get dll ordinals for implib,
  671. # finish lib by adding additional objs,
  672. # then re-link stripping name tables, add resources & tdstrip debug info
  673. #
  674. $(OWLLIB): $(LIBDEPOBJS) $(.PATH.obj)\$(OWLDEF) $(.PATH.obj)\$(OWLRES)
  675.   @cd $(.PATH.obj)
  676.   $(TLINK) @&&|
  677. $(LFLAGS) -Gn -L$(BCLIBDIR) c0dl +
  678. $(LINKOBJS)
  679. $(OWLDLL)
  680.  
  681. $(BIDSILIB) $(STDLIBS)
  682. $(OWLDEF)
  683.  
  684. |
  685.   $(IMPLIB) -i $(OWLLIB) $(OWLDEF) $(OWLDLL)
  686.   $(TLIB) $(TLIBOPTS) $(OWLLIB) @&&|
  687. $(LIBOBJS)
  688. |
  689.   $(TLINK) @&&|
  690. $(LFLAGS) -Gr -Gn -L$(BCLIBDIR) c0dl +
  691. $(LINKOBJS)
  692. $(OWLDLL)
  693.  
  694. $(BIDSILIB) $(STDLIBS)
  695. $(OWLDEF)
  696. $(OWLRES)
  697. |
  698. !if !$d(DIAGS)
  699.   $(TDSTRIP) -s $(OWLDLL)
  700. !endif
  701.   @-del $*.bak
  702.   @cd $(.PATH.cpp)
  703.  
  704. $(.PATH.obj)\$(OWLRES):
  705.   $(BRCC) $(RCINCLUDEPATH) -fo$@ $&.rc
  706.  
  707. $(.PATH.obj)\$(OWLDEF): $(LIBDEPOBJS) $(.PATH.cpp)\owl16.ord
  708.   @copy &&|
  709. LIBRARY     $(OWLNAME)$(OWLVER)$(OD)
  710. DESCRIPTION 'ObjectWindows DLL'
  711. EXETYPE     WINDOWS
  712. CODE        PRELOAD MOVEABLE DISCARDABLE
  713. DATA        PRELOAD MOVEABLE SINGLE
  714. HEAPSIZE    4096
  715. EXPORTS
  716.     WEP @1 RESIDENTNAME
  717. | + $(.PATH.cpp)\owl16.ord $(.PATH.obj)\$(OWLDEF) > NUL
  718.  
  719. # Compile objs that aren't part of the Owl DLL as if they were user EXE or
  720. # user DLL objs
  721. #
  722. $(OBJS_LIB:PFX=):
  723. !if $d(USERDLL)
  724.   $(BCC)     -D_OWLDLL -U_BUILDOWLDLL {$&.cpp }
  725. !else
  726.   # smart callback, far data into normal data seg DATA, could use CODE if RO
  727.   $(BCC) -WS -D_OWLDLL -U_BUILDOWLDLL -zFDATA {$&.cpp }
  728. !endif
  729.  
  730. localex.obj: locale.cpp
  731.   $(BCC) -o$< locale.cpp
  732.  
  733. !endif # if/else WIN32
  734.  
  735. !else  # ! DLL
  736.  
  737. $(OWLLIB): $(LIBDEPOBJS)
  738.   @-del $(OWLLIB)
  739.   @cd $(.PATH.obj)
  740.   $(TLIB) $(TLIBOPTS) $(OWLLIB) @&&|
  741. $(LIBOBJS)
  742. |
  743.   @cd $(.PATH.cpp)
  744.  
  745. !endif
  746.  
  747. clean:
  748.   @echo Removing .OBJs from $(.PATH.obj)
  749.   @-if exist $(.PATH.obj)\*.obj del $(.PATH.obj)\*.obj
  750.   @-if exist $(.PATH.obj)\*.csm del $(.PATH.obj)\*.csm
  751.  
  752. applica1.obj: applicat.cpp
  753.   $(BCC) -o$< -DSECTION=1 applicat.cpp
  754. applica2.obj: applicat.cpp
  755.   $(BCC) -o$< -DSECTION=2 applicat.cpp
  756. applica3.obj: applicat.cpp
  757.   $(BCC) -o$< -DSECTION=3 applicat.cpp
  758. applica4.obj: applicat.cpp
  759.   $(BCC) -o$< -DSECTION=4 applicat.cpp
  760.  
  761. button1.obj: button.cpp
  762.   $(BCC) -o$< -DSECTION=1 button.cpp
  763. button2.obj: button.cpp
  764.   $(BCC) -o$< -DSECTION=2 button.cpp
  765.  
  766. checkbo1.obj: checkbox.cpp
  767.   $(BCC) -o$< -DSECTION=1 checkbox.cpp
  768. checkbo2.obj: checkbox.cpp
  769.   $(BCC) -o$< -DSECTION=2 checkbox.cpp
  770.  
  771. combobo1.obj: combobox.cpp
  772.   $(BCC) -o$< -DSECTION=1 combobox.cpp
  773. combobo2.obj: combobox.cpp
  774.   $(BCC) -o$< -DSECTION=2 combobox.cpp
  775.  
  776. control1.obj: control.cpp
  777.   $(BCC) -o$< -DSECTION=1 control.cpp
  778. control2.obj: control.cpp
  779.   $(BCC) -o$< -DSECTION=2 control.cpp
  780.  
  781. decfram1.obj: decframe.cpp
  782.   $(BCC) -o$< -DSECTION=1 decframe.cpp
  783. decfram2.obj: decframe.cpp
  784.   $(BCC) -o$< -DSECTION=2 decframe.cpp
  785.  
  786. decmdif1.obj: decmdifr.cpp
  787.   $(BCC) -o$< -DSECTION=1 decmdifr.cpp
  788. decmdif2.obj: decmdifr.cpp
  789.   $(BCC) -o$< -DSECTION=2 decmdifr.cpp
  790.  
  791. dialog1.obj: dialog.cpp
  792.   $(BCC) -o$< -DSECTION=1 dialog.cpp
  793. dialog2.obj: dialog.cpp
  794.   $(BCC) -o$< -DSECTION=2 dialog.cpp
  795.  
  796. dib1.obj: dib.cpp
  797.   $(BCC) -o$< -DSECTION=1 dib.cpp
  798. dib2.obj: dib.cpp
  799.   $(BCC) -o$< -DSECTION=2 dib.cpp
  800. dib3.obj: dib.cpp
  801.   $(BCC) -o$< -DSECTION=3 dib.cpp
  802. dib4.obj: dib.cpp
  803.   $(BCC) -o$< -DSECTION=4 dib.cpp
  804. dib5.obj: dib.cpp
  805.   $(BCC) -o$< -DSECTION=5 dib.cpp
  806. dib6.obj: dib.cpp
  807.   $(BCC) -o$< -DSECTION=6 dib.cpp
  808.  
  809. docmang1.obj: docmanag.cpp
  810.   $(BCC) -o$< -DSECTION=1 docmanag.cpp
  811. docmang2.obj: docmanag.cpp
  812.   $(BCC) -o$< -DSECTION=2 docmanag.cpp
  813.  
  814. doctpl1.obj: doctpl.cpp
  815.   $(BCC) -o$< -DSECTION=1 doctpl.cpp
  816. doctpl2.obj: doctpl.cpp
  817.   $(BCC) -o$< -DSECTION=2 doctpl.cpp
  818.  
  819. docview1.obj: docview.cpp
  820.   $(BCC) -o$< -DSECTION=1 docview.cpp
  821. docview2.obj: docview.cpp
  822.   $(BCC) -o$< -DSECTION=2 docview.cpp
  823.  
  824. edit1.obj: edit.cpp
  825.   $(BCC) -o$< -DSECTION=1 edit.cpp
  826. edit2.obj: edit.cpp
  827.   $(BCC) -o$< -DSECTION=2 edit.cpp
  828.  
  829. editfil1.obj: editfile.cpp
  830.   $(BCC) -o$< -DSECTION=1 editfile.cpp
  831. editfil2.obj: editfile.cpp
  832.   $(BCC) -o$< -DSECTION=2 editfile.cpp
  833.  
  834. editsea1.obj: editsear.cpp
  835.   $(BCC) -o$< -DSECTION=1 editsear.cpp
  836. editsea2.obj: editsear.cpp
  837.   $(BCC) -o$< -DSECTION=2 editsear.cpp
  838.  
  839. editvie1.obj: editview.cpp
  840.   $(BCC) -o$< -DSECTION=1 editview.cpp
  841. editvie2.obj: editview.cpp
  842.   $(BCC) -o$< -DSECTION=2 editview.cpp
  843.  
  844. filedoc1.obj: filedoc.cpp
  845.   $(BCC) -o$< -DSECTION=1 filedoc.cpp
  846. filedoc2.obj: filedoc.cpp
  847.   $(BCC) -o$< -DSECTION=2 filedoc.cpp
  848.  
  849. filtval1.obj: filtval.cpp
  850.   $(BCC) -o$< -DSECTION=1 filtval.cpp
  851. filtval2.obj: filtval.cpp
  852.   $(BCC) -o$< -DSECTION=2 filtval.cpp
  853.  
  854. findrep1.obj: findrepl.cpp
  855.   $(BCC) -o$< -DSECTION=1 findrepl.cpp
  856. findrep2.obj: findrepl.cpp
  857.   $(BCC) -o$< -DSECTION=2 findrepl.cpp
  858.  
  859. floatfr1.obj: floatfra.cpp
  860.   $(BCC) -o$< -DSECTION=1 floatfra.cpp
  861. floatfr2.obj: floatfra.cpp
  862.   $(BCC) -o$< -DSECTION=2 floatfra.cpp
  863.  
  864. framewi1.obj: framewin.cpp
  865.   $(BCC) -o$< -DSECTION=1 framewin.cpp
  866. framewi2.obj: framewin.cpp
  867.   $(BCC) -o$< -DSECTION=2 framewin.cpp
  868. framewi3.obj: framewin.cpp
  869.   $(BCC) -o$< -DSECTION=3 framewin.cpp
  870.  
  871. groupbo1.obj: groupbox.cpp
  872.   $(BCC) -o$< -DSECTION=1 groupbox.cpp
  873. groupbo2.obj: groupbox.cpp
  874.   $(BCC) -o$< -DSECTION=2 groupbox.cpp
  875.  
  876. hslider1.obj: hslider.cpp
  877.   $(BCC) -o$< -DSECTION=1 hslider.cpp
  878. hslider2.obj: hslider.cpp
  879.   $(BCC) -o$< -DSECTION=2 hslider.cpp
  880.  
  881. inputdi1.obj: inputdia.cpp
  882.   $(BCC) -o$< -DSECTION=1 inputdia.cpp
  883. inputdi2.obj: inputdia.cpp
  884.   $(BCC) -o$< -DSECTION=2 inputdia.cpp
  885.  
  886. listbox1.obj: listbox.cpp
  887.   $(BCC) -o$< -DSECTION=1 listbox.cpp
  888. listbox2.obj: listbox.cpp
  889.   $(BCC) -o$< -DSECTION=2 listbox.cpp
  890.  
  891. listvie1.obj: listview.cpp
  892.   $(BCC) -o$< -DSECTION=1 listview.cpp
  893. listvie2.obj: listview.cpp
  894.   $(BCC) -o$< -DSECTION=2 listview.cpp
  895.  
  896. lookval1.obj: lookval.cpp
  897.   $(BCC) -o$< -DSECTION=1 lookval.cpp
  898. lookval2.obj: lookval.cpp
  899.   $(BCC) -o$< -DSECTION=2 lookval.cpp
  900.  
  901. mdichil1.obj: mdichild.cpp
  902.   $(BCC) -o$< -DSECTION=1 mdichild.cpp
  903. mdichil2.obj: mdichild.cpp
  904.   $(BCC) -o$< -DSECTION=2 mdichild.cpp
  905.  
  906. mdiclie1.obj: mdiclien.cpp
  907.   $(BCC) -o$< -DSECTION=1 mdiclien.cpp
  908. mdiclie2.obj: mdiclien.cpp
  909.   $(BCC) -o$< -DSECTION=2 mdiclien.cpp
  910.  
  911. mdifram1.obj: mdiframe.cpp
  912.   $(BCC) -o$< -DSECTION=1 mdiframe.cpp
  913. mdifram2.obj: mdiframe.cpp
  914.   $(BCC) -o$< -DSECTION=2 mdiframe.cpp
  915.  
  916. menudes1.obj: menudesc.cpp
  917.   $(BCC) -o$< -DSECTION=1 menudesc.cpp
  918. menudes2.obj: menudesc.cpp
  919.   $(BCC) -o$< -DSECTION=2 menudesc.cpp
  920.  
  921. module1.obj: module.cpp
  922.   $(BCC) -o$< -DSECTION=1 module.cpp
  923. module2.obj: module.cpp
  924.   $(BCC) -o$< -DSECTION=2 module.cpp
  925. module3.obj: module.cpp
  926.   $(BCC) -o$< -DSECTION=3 module.cpp
  927. module4.obj: module.cpp
  928.   $(BCC) -o$< -DSECTION=4 module.cpp
  929.  
  930. opensav1.obj: opensave.cpp
  931.   $(BCC) -o$< -DSECTION=1 opensave.cpp
  932. opensav2.obj: opensave.cpp
  933.   $(BCC) -o$< -DSECTION=2 opensave.cpp
  934.  
  935. pictval1.obj: pictval.cpp
  936.   $(BCC) -o$< -DSECTION=1 pictval.cpp
  937. pictval2.obj: pictval.cpp
  938.   $(BCC) -o$< -DSECTION=2 pictval.cpp
  939.  
  940. printou1.obj: printout.cpp
  941.   $(BCC) -o$< -DSECTION=1 printout.cpp
  942. printou2.obj: printout.cpp
  943.   $(BCC) -o$< -DSECTION=2 printout.cpp
  944.  
  945. printer1.obj: printer.cpp
  946.   $(BCC) -o$< -DSECTION=1 printer.cpp
  947. printer2.obj: printer.cpp
  948.   $(BCC) -o$< -DSECTION=2 printer.cpp
  949.  
  950. printdi1.obj: printdia.cpp
  951.   $(BCC) -o$< -DSECTION=1 printdia.cpp
  952. printdi2.obj: printdia.cpp
  953.   $(BCC) -o$< -DSECTION=2 printdia.cpp
  954.  
  955. radiobu1.obj: radiobut.cpp
  956.   $(BCC) -o$< -DSECTION=1 radiobut.cpp
  957. radiobu2.obj: radiobut.cpp
  958.   $(BCC) -o$< -DSECTION=2 radiobut.cpp
  959.  
  960. rangevl1.obj: rangeval.cpp
  961.   $(BCC) -o$< -DSECTION=1 rangeval.cpp
  962. rangevl2.obj: rangeval.cpp
  963.   $(BCC) -o$< -DSECTION=2 rangeval.cpp
  964.  
  965. scrolle1.obj: scroller.cpp
  966.   $(BCC) -o$< -DSECTION=1 scroller.cpp
  967. scrolle2.obj: scroller.cpp
  968.   $(BCC) -o$< -DSECTION=2 scroller.cpp
  969.  
  970. scrollb1.obj: scrollba.cpp
  971.   $(BCC) -o$< -DSECTION=1 scrollba.cpp
  972. scrollb2.obj: scrollba.cpp
  973.   $(BCC) -o$< -DSECTION=2 scrollba.cpp
  974.  
  975. slider1.obj: slider.cpp
  976.   $(BCC) -o$< -DSECTION=1 slider.cpp
  977. slider2.obj: slider.cpp
  978.   $(BCC) -o$< -DSECTION=2 slider.cpp
  979.  
  980. static1.obj: static.cpp
  981.   $(BCC) -o$< -DSECTION=1 static.cpp
  982. static2.obj: static.cpp
  983.   $(BCC) -o$< -DSECTION=2 static.cpp
  984.  
  985. tinycap1.obj: tinycapt.cpp
  986.   $(BCC) -o$< -DSECTION=1 tinycapt.cpp
  987. tinycap2.obj: tinycapt.cpp
  988.   $(BCC) -o$< -DSECTION=2 tinycapt.cpp
  989.  
  990. validat1.obj: validate.cpp
  991.   $(BCC) -o$< -DSECTION=1 validate.cpp
  992. validat2.obj: validate.cpp
  993.   $(BCC) -o$< -DSECTION=2 validate.cpp
  994.  
  995. vslider1.obj: vslider.cpp
  996.   $(BCC) -o$< -DSECTION=1 vslider.cpp
  997. vslider2.obj: vslider.cpp
  998.   $(BCC) -o$< -DSECTION=2 vslider.cpp
  999.