#----------------------------------------------------------------------------- # ObjectWindows - (C) Copyright 1991, 1993 by Borland International # # MAKEFILE for ObjectWindows Libraries # # Defines: # MODEL= one of: dll(default), small, medium, large or flat # WIN32 enables win32 static (flat) or DLL # DIAGS enables runtime diagnostics (adds 'd' to lib name before 'w') # DEBUG enables debug info for TDW & TD32 # NOOWLPCH disables precompiled headers for owl # OWLSECTION enables sectioning of sources into multiple small objs # OWLNAME=Xxx lib & DLL name base, Defaults to 'Owl'. Req. for non-diag DLLs # OWLVER=nnn version for Owl DLL. Defaults to 250. Req. for non-diag DLLs # USERDLL builds Owl for use in a user DLL (adds 'u' to lib name after # model) # OWLFARVTABLE moves owl class vtables out of dgroup # DISABLE_EXCEPTIONS disables exception use in Owl & in macros # # Define these for alternate owl build directories: # OWLSRCDIR defaults to: $(BCROOT)\source\owl # OWLINCDIR defaults to: $(BCROOT)\include # OWLLIBDIR defaults to: $(BCROOT)\lib # OWLBINDIR defaults to: $(BCROOT)\bin # # Standard builds: # make MODEL=s -DOWLSECTION small model library (owlws.lib) # make MODEL=m -DOWLSECTION medium model library (owlwm.lib) # make MODEL=l -DOWLSECTION large model library (owlwl.lib) # make OWLNAME=Owl OWLVER=250 16bit DLL (owlwi.lib, owl250.dll) # make -DWIN32 -DOWLSECTION 32bit flat model library (owlwf.lib) # make -DWIN32 OWLNAME=Owl OWLVER=250 32bit DLL (owlwfi.lib, owl250f.dll) # # Diagnostic builds: # make MODEL=s -DOWLSECTION -DDIAGS small model diag library (owldws.lib) # make MODEL=m -DOWLSECTION -DDIAGS medium model diag library (owldwm.lib) # make MODEL=l -DOWLSECTION -DDIAGS large model diag library (owldwl.lib) # make -DDIAGS 16bit diag DLL (owldwi.lib, owl250d.dll) # make -DWIN32 -DOWLSECTION -DDIAGS 32bit flat model diag lib (owldwf.lib) # make -DWIN32 -DDIAGS 32bit diag DLL (owldwfi.lib, owl250df.dll) # # Notes: # The owl16.ord file should be maintained if Owl functions are changed # otherwise warnings will be generated during the DLL link. # #----------------------------------------------------------------------------- .autodepend .cacheautodepend .swap #-------------------------------------------------------------------- # fill in defaults #-------------------------------------------------------------------- !if !$d(MODEL) || $(MODEL) == d DLL = 1 !endif !if $(MODEL) == f WIN32 = 1 !endif !if $d(WIN32) MODEL = f !elif $d(DLL) || !$d(MODEL) MODEL = l !endif #-------------------------------------------------------------------- # dir & name components #-------------------------------------------------------------------- !if $d(DLL) ! if !$d(OWLNAME) && !$d(DIAGS) ! error MUST DEFINE LIBRARY NAME, e.g. "MAKE MODEL=d OWLNAME=YourName" ! endif ! if $d(WIN32) KEY = wfi # 32bit DLL import library ! else KEY = wi # 16bit DLL import library ! endif !else KEY = w$(MODEL) # Static library !endif # if/else $d(DLL) ! if $d(USERDLL) KEY = $(KEY)u # Static or import library for use by dlls ! endif !if !$d(OWLNAME) OWLNAME=Owl ! if !$d(OWLVER) OWLVER=250 ! endif !endif #-------------------------------------------------------------------- # debug & diagnostic flags #-------------------------------------------------------------------- !if $d(DEBUG) CDBG = -v -k -Od # debug-info on, normal stack, no optimizations !endif !if 1 || $d(DEBUG) # Leave public debug info in dll & strip to a .tds after ! if $d(WIN32) LDBG = -v ! else LDBG = -v -Vt ! endif !endif !if $d(DIAGS) # default diags use precondition, check, trace & warn __DEBUG=2 __TRACE=1 __WARN=1 BD=d # Use Bids Diag version when Owl lib is diag OD=d # Owl libs & dll get a 'd' for Diag versions !endif # # Build up compiler diag switches based on settings # !if $d(__DEBUG) CDIAG = -D__DEBUG=$(__DEBUG) !endif !if $d(__TRACE) CDIAG = $(CDIAG) -D__TRACE !endif !if $d(__WARN) CDIAG = $(CDIAG) -D__WARN !endif #-------------------------------------------------------------------- # dir & search paths, & precompiled headers #-------------------------------------------------------------------- # # BC tools BCBINDIR can be based on MAKEDIR if no BCROOT is defined # !if $d(BCROOT) BCBINDIR = $(BCROOT)\bin !else BCBINDIR = $(MAKEDIR) !endif # # default bcroot to whatever is in bcroot.inc # !if !$d(BCROOT) #BCROOT = $(MAKEDIR)\.. !include $(MAKEDIR)\bcroot.inc !endif # # Where to find Owl dirs-- can set these for special layouts # !if !$d(OWLSRCDIR) OWLSRCDIR = $(BCROOT)\source\owl !endif !if !$d(OWLINCDIR) OWLINCDIR = $(BCROOT)\include !endif !if !$d(OWLLIBDIR) OWLLIBDIR = $(BCROOT)\lib !endif !if !$d(OWLBINDIR) OWLBINDIR = $(BCROOT)\bin !endif # # Where to find BC tools, libraries and include files # BCINCDIR = $(BCROOT)\include BCLIBDIR = $(BCROOT)\lib # # Build search paths differently if Owl include dir is not below BC's # !if "$(OWLINCDIR)" == "$(BCINCDIR)" INCLUDE = $(BCINCDIR) RCINCLUDEPATH = -i$(BCINCDIR) !else INCLUDE = $(OWLINCDIR);$(BCINCDIR) RCINCLUDEPATH = -i$(OWLINCDIR) -i$(BCINCDIR) !endif OWLOBJDIR = $(OWLSRCDIR)\object\$(OD)$(KEY) # Keep seperate diag/nondiag dirs .PATH.obj = $(OWLOBJDIR) .PATH.res = $(OWLOBJDIR) .PATH.def = $(OWLOBJDIR) .PATH.lib = $(OWLLIBDIR) .PATH.cpp = $(OWLSRCDIR) # # Define NOOWLPCH to disable the use of Precompiled headers when building Owl # !if !$d(NOOWLPCH) CPCH= -H=$(OWLLIBDIR)\$(OWLNAME)$(OD)$(KEY).csm -H"owl/owlpch.h" -D_OWLPCH ! if $d(WIN32) CPCH= $(CPCH) -Hc ! endif !endif #-------------------------------------------------------------------- # library names #-------------------------------------------------------------------- !if $d(DLL) ! if $d(WIN32) OWLDLL = $(OWLBINDIR)\$(OWLNAME)$(OWLVER)$(OD)f.dll ! else OWLDLL = $(OWLBINDIR)\$(OWLNAME)$(OWLVER)$(OD).dll ! endif OWLDEF = owl.def OWLRES = owl.res !endif OWLLIB = $(OWLLIBDIR)\$(OWLNAME)$(OD)$(KEY).lib #-------------------------------------------------------------------- # tools and options for 32bit #-------------------------------------------------------------------- !if $d(WIN32) BCC = $(BCBINDIR)\bcc32 # Compiler BRCC = brcc32 # Resource compiler BCCASM = $(BCBINDIR)\tasm32 # Assembler TLINK = $(BCBINDIR)\tlink32 # Linker TLIB = $(BCBINDIR)\tlib # Librarian IMPLIB = $(BCBINDIR)\implib # Import library generator TDSTRIP = $(BCBINDIR)\tdstrp32 # Debug info extractor COPTS = -d -k- -O1gmpv # Optimizations CFGFILE = bcc32.cfg # Name of compiler's config file ! if $d(DEBUG) TLIBOPTS = /P512 ! else TLIBOPTS = /P32 /0 ! endif ! if $d(DLL) CWIN = -WDE -D_BUILDOWLDLL LFLAGS = $(LDBG) -Tpd -aa -s -c ! if !$d(BIDSILIB) BIDSILIB = bids$(BD)fi ! endif STDLIBS = import32 cw32i # Libs for linking the Owl DLL ! else CWIN = -W ! endif #-------------------------------------------------------------------- # tools and options for 16bit #-------------------------------------------------------------------- !else BCC = $(BCBINDIR)\bcc # Compiler BRCC = brcc # Resource compiler BCCASM = $(BCBINDIR)\tasm # Assembler TLINK = $(BCBINDIR)\tlink # Linker TLIB = $(BCBINDIR)\tlib # Librarian # implib needs -o switch in 16 bit for compatibility IMPLIB = $(BCBINDIR)\implib -o # Import library generator TDSTRIP = $(BCBINDIR)\tdstrip # Debug info extractor CMDL = -m$(MODEL) COPTS = -3 -d -k- -O1gmpv # Optimizations ! if $(MODEL) != s && $(MODEL) != m # Large models can put strs in code seg COPTS = $(COPTS) -dc ! endif ! if $(MODEL) == s # Small model turns off some options DISABLE_EXCEPTIONS = 1 COPTS = $(COPTS) -DNO_GDI_ORPHAN_CONTROL ! endif ! if $d(OWLFARVTABLE) COPTS = $(COPTS) -D_OWLFARVTABLE;_BIDSFARVTABLE #;_RTLFARVTABLE ! endif ! if $d(DISABLE_EXCEPTIONS) COPTS = $(COPTS) -DDISABLE_EXCEPTIONS -x- ! endif CFGFILE = turboc.cfg ! if $d(DEBUG) TLIBOPTS = /P512 ! else TLIBOPTS = /P32 /0 ! endif ! if $d(DLL) # Build the 16bit Owl DLL # Dll, explicit export, far data into seg named OWL_FARDATA, compat excptns CWIN = -WDE -D_BUILDOWLDLL -zEOWL_FARDATA -xc LFLAGS = $(LDBG) -Twd -n -s -c -C -Oc -Oi -Oa -Or ! if !$d(BIDSILIB) BIDSILIB = bids$(BD)i ! endif STDLIBS = import crtldll # Libs for linking the Owl DLL ! else ! if $d(USERDLL) CWIN = -WDE -xc # Build static Owl lib for use in DLLs ! else CWIN = -WSE # Build static Owl lib for use in EXEs ! endif ! endif !endif #-------------------------------------------------------------------- # rules #-------------------------------------------------------------------- .rc.res: $(BRCC) $(RCINCLUDEPATH) -fo$@ $. .cpp.obj: $(BCC) {$. } #-------------------------------------------------------------------- # Various file lists needed for dependency checking and LIBing. # # OBJS_CMN are the objs common to static libs and the dll # OBJS_LIB are the objs that go into libs and implibs only, not the dlls # OBJS_DLL are the objs that go into the owl dll only # LIBDEPOBJS is the list of object files for lib/implib dependency checking # LIBOBJS is the list of object files for building/addingto the libraries # LINKOBJS is the list of object files for building the DLL #-------------------------------------------------------------------- # Common Objs go into static libs and DLLs # OBJS_CMN =\ PFXappdict.obj\ PFXbitmap.obj\ PFXbitmapga.obj\ PFXbitset.obj\ PFXbrush.obj\ PFXbuttonga.obj\ PFXcelarray.obj\ PFXchooseco.obj\ PFXchoosefo.obj\ PFXclipboar.obj\ PFXclipview.obj\ PFXcolor.obj\ PFXcommdial.obj\ PFXcompat.obj\ PFXcontrolb.obj\ PFXcontrolg.obj\ PFXcreatedc.obj\ PFXcursor.obj\ PFXdc.obj\ PFXdispatch.obj\ PFXeventhan.obj\ PFXexcept.obj\ PFXfont.obj\ PFXgadget.obj\ PFXgadgetwi.obj\ PFXgauge.obj\ PFXgdibase.obj\ PFXgdiobjec.obj\ PFXicon.obj\ PFXlayoutwi.obj\ PFXmemorydc.obj\ PFXmenu.obj\ PFXmessageb.obj\ PFXmetafile.obj\ PFXmetafldc.obj\ PFXmoduleob.obj\ PFXowl.obj\ PFXowldiag.obj\ PFXpaintdc.obj\ PFXpalette.obj\ PFXpen.obj\ PFXpreview.obj\ PFXprintdc.obj\ PFXprofile.obj\ PFXregion.obj\ PFXstatusba.obj\ PFXswindow.obj\ PFXtextgadg.obj\ PFXtoolbox.obj\ PFXuihandle.obj\ PFXversion.obj\ PFXwindow.obj\ PFXwindowdc.obj # Add in these objs when sectioning # !if $d(OWLSECTION) OBJS_CMN = $(OBJS_CMN)\ PFXapplica1.obj\ PFXapplica2.obj\ PFXapplica3.obj\ PFXapplica4.obj\ PFXbutton1.obj\ PFXbutton2.obj\ PFXcheckbo1.obj\ PFXcheckbo2.obj\ PFXcombobo1.obj\ PFXcombobo2.obj\ PFXcontrol1.obj\ PFXcontrol2.obj\ PFXdecfram1.obj\ PFXdecfram2.obj\ PFXdecmdif1.obj\ PFXdecmdif2.obj\ PFXdialog1.obj\ PFXdialog2.obj\ PFXdib1.obj\ PFXdib2.obj\ PFXdib3.obj\ PFXdib4.obj\ PFXdib5.obj\ PFXdib6.obj\ PFXdocmang1.obj\ PFXdocmang2.obj\ PFXdoctpl1.obj\ PFXdoctpl2.obj\ PFXdocview1.obj\ PFXdocview2.obj\ PFXedit1.obj\ PFXedit2.obj\ PFXeditfil1.obj\ PFXeditfil2.obj\ PFXeditsea1.obj\ PFXeditsea2.obj\ PFXeditvie1.obj\ PFXeditvie2.obj\ PFXfiledoc1.obj\ PFXfiledoc2.obj\ PFXfiltval1.obj\ PFXfiltval2.obj\ PFXfindrep1.obj\ PFXfindrep2.obj\ PFXfloatfr1.obj\ PFXfloatfr2.obj\ PFXframewi1.obj\ PFXframewi2.obj\ PFXframewi3.obj\ PFXgroupbo1.obj\ PFXgroupbo2.obj\ PFXhslider1.obj\ PFXhslider2.obj\ PFXinputdi1.obj\ PFXinputdi2.obj\ PFXlistbox1.obj\ PFXlistbox2.obj\ PFXlistvie1.obj\ PFXlistvie2.obj\ PFXlookval1.obj\ PFXlookval2.obj\ PFXmdichil1.obj\ PFXmdichil2.obj\ PFXmdiclie1.obj\ PFXmdiclie2.obj\ PFXmdifram1.obj\ PFXmdifram2.obj\ PFXmenudes1.obj\ PFXmenudes2.obj\ PFXmodule1.obj\ PFXmodule2.obj\ PFXmodule3.obj\ PFXmodule4.obj\ PFXopensav1.obj\ PFXopensav2.obj\ PFXpictval1.obj\ PFXpictval2.obj\ PFXprintdi1.obj\ PFXprintdi2.obj\ PFXprinter1.obj\ PFXprinter2.obj\ PFXprintou1.obj\ PFXprintou2.obj\ PFXradiobu1.obj\ PFXradiobu2.obj\ PFXrangevl1.obj\ PFXrangevl2.obj\ PFXscrollb1.obj\ PFXscrollb2.obj\ PFXscrolle1.obj\ PFXscrolle2.obj\ PFXslider1.obj\ PFXslider2.obj\ PFXstatic1.obj\ PFXstatic2.obj\ PFXtinycap1.obj\ PFXtinycap2.obj\ PFXvalidat1.obj\ PFXvalidat2.obj\ PFXvslider1.obj\ PFXvslider2.obj # Add in these objs when not sectioning # !else OBJS_CMN = $(OBJS_CMN)\ PFXapplicat.obj\ PFXbutton.obj\ PFXcheckbox.obj\ PFXcombobox.obj\ PFXcontrol.obj\ PFXdecframe.obj\ PFXdib.obj\ PFXdialog.obj\ PFXdecmdifr.obj\ PFXdocmanag.obj\ PFXdoctpl.obj\ PFXdocview.obj\ PFXedit.obj\ PFXeditfile.obj\ PFXeditsear.obj\ PFXeditview.obj\ PFXfiledoc.obj\ PFXfiltval.obj\ PFXfindrepl.obj\ PFXfloatfra.obj\ PFXframewin.obj\ PFXgroupbox.obj\ PFXhslider.obj\ PFXinputdia.obj\ PFXlistbox.obj\ PFXlistview.obj\ PFXlookval.obj\ PFXmdichild.obj\ PFXmdiclien.obj\ PFXmdiframe.obj\ PFXmenudesc.obj\ PFXmodule.obj\ PFXopensave.obj\ PFXpictval.obj\ PFXprinter.obj\ PFXprintdia.obj\ PFXprintout.obj\ PFXradiobut.obj\ PFXrangeval.obj\ PFXscrollba.obj\ PFXscroller.obj\ PFXslider.obj\ PFXstatic.obj\ PFXtinycapt.obj\ PFXvalidate.obj\ PFXvslider.obj !endif # Objs that go into static libs and import libs, but not in the owl dll itself # These also get built differently when in the import library. Note that # classes in the modules are declared _USERCLASS instead of _OWLCLASS # OBJS_LIB =\ PFXglobal.obj # OLE 2 classes get put into the lib. Small & medium model not supported # !if $(MODEL) == l || $(MODEL) == f OBJS_OLE2=\ PFXstgdoc.obj\ PFXolewindo.obj\ PFXoledoc.obj\ PFXoleframe.obj\ PFXolemdifr.obj\ PFXoleview.obj !if $(MODEL) == l OBJS_OLE2=$(OBJS_OLE2)\ PFXoledlg.obj\ PFXchgicon.obj\ PFXinsobj.obj\ PFXpastespc.obj\ PFXlinks.obj\ PFXlinkguid.obj\ PFXolemeta.obj !endif OBJS_LIB = $(OBJS_LIB) $(OBJS_OLE2) !endif OBJS_LIB = $(OBJS_LIB)\ PFXvbxctl.obj !if $d(USERDLL) || $d(WIN32) # Lib for use by DLLs OBJS_LIB = $(OBJS_LIB)\ PFXlibmain.obj\ PFXowlmain.obj !endif !if !$d(USERDLL) || $d(WIN32) # Lib for use in EXEs OBJS_LIB = $(OBJS_LIB)\ PFXwinmain.obj !endif # Objs that go into the Owl DLL only # !if $d(DLL) OBJS_DLL = !endif # Put together obj groups into lists for different dependencies & tools # LIBDEPOBJS = $(OBJS_CMN:PFX=) $(OBJS_LIB:PFX=) $(OBJS_DLL:PFX=) !if $(DLL) LIBOBJS = $(OBJS_LIB:PFX=+) LINKOBJS = $(OBJS_CMN:PFX=) $(OBJS_DLL:PFX=) !else LIBOBJS = $(OBJS_CMN:PFX=+) $(OBJS_LIB:PFX=+) !endif #-------------------------------------------------------------------- # targets #-------------------------------------------------------------------- all: cfgfile $(OWLLIB) cfgfile: @-if not exist $(OWLSRCDIR)\object\NUL md $(OWLSRCDIR)\object @-if not exist $(OWLOBJDIR)\NUL md $(OWLOBJDIR) @copy &&| -I$(INCLUDE) -c -w $(CMDL) $(CWIN) $(COPTS) $(CDBG) $(CDIAG) $(CPCH) -n$(.PATH.obj) $(CCFOWL) | $(CFGFILE) > NUL !if $d(DLL) !if $d(WIN32) $(OWLLIB): $(LIBDEPOBJS) $(.PATH.obj)\$(OWLDEF) $(.PATH.obj)\$(OWLRES) @cd $(.PATH.obj) $(TLINK) @&&| $(LFLAGS) -L$(BCLIBDIR) c0d32 + $(LINKOBJS) $(OWLDLL) $(BIDSILIB) $(STDLIBS) $(OWLDEF) $(OWLRES) | !if !$d(DIAGS) $(TDSTRIP) -s $(OWLDLL) !endif $(IMPLIB) $(OWLLIB) $(OWLDLL) $(TLIB) $(TLIBOPTS) $(OWLLIB) @&&| $(LIBOBJS) | @-del $*.bak @cd $(.PATH.cpp) $(.PATH.obj)\$(OWLRES): $(BRCC) $(RCINCLUDEPATH) -fo$@ $&.rc $(.PATH.obj)\$(OWLDEF): @cd $(.PATH.obj) @copy &&| LIBRARY $(OWLNAME)$(OWLVER)$(OD) DESCRIPTION 'ObjectWindows DLL' EXETYPE WINDOWS DATA MULTIPLE NONSHARED | $(OWLDEF) > NUL @cd $(.PATH.cpp) # Compile objs that aren't part of the Owl DLL as if they were user EXE or # user DLL objs # $(OBJS_LIB:PFX=): !if $d(USERDLL) $(BCC) -D_OWLDLL -U_BUILDOWLDLL {$&.cpp } !else $(BCC) -W -D_OWLDLL -U_BUILDOWLDLL {$&.cpp } !endif !else # ! WIN32 # # link once to get dll ordinals for implib, # finish lib by adding additional objs, # then re-link stripping name tables, add resources & tdstrip debug info # $(OWLLIB): $(LIBDEPOBJS) $(.PATH.obj)\$(OWLDEF) $(.PATH.obj)\$(OWLRES) @cd $(.PATH.obj) $(TLINK) @&&| $(LFLAGS) -Gn -L$(BCLIBDIR) c0dl + $(LINKOBJS) $(OWLDLL) $(BIDSILIB) $(STDLIBS) $(OWLDEF) | $(IMPLIB) -i $(OWLLIB) $(OWLDEF) $(OWLDLL) $(TLIB) $(TLIBOPTS) $(OWLLIB) @&&| $(LIBOBJS) | $(TLINK) @&&| $(LFLAGS) -Gr -Gn -L$(BCLIBDIR) c0dl + $(LINKOBJS) $(OWLDLL) $(BIDSILIB) $(STDLIBS) $(OWLDEF) $(OWLRES) | !if !$d(DIAGS) $(TDSTRIP) -s $(OWLDLL) !endif @-del $*.bak @cd $(.PATH.cpp) $(.PATH.obj)\$(OWLRES): $(BRCC) $(RCINCLUDEPATH) -fo$@ $&.rc $(.PATH.obj)\$(OWLDEF): $(LIBDEPOBJS) $(.PATH.cpp)\owl16.ord @copy &&| LIBRARY $(OWLNAME)$(OWLVER)$(OD) DESCRIPTION 'ObjectWindows DLL' EXETYPE WINDOWS CODE PRELOAD MOVEABLE DISCARDABLE DATA PRELOAD MOVEABLE SINGLE HEAPSIZE 4096 EXPORTS WEP @1 RESIDENTNAME | + $(.PATH.cpp)\owl16.ord $(.PATH.obj)\$(OWLDEF) > NUL # Compile objs that aren't part of the Owl DLL as if they were user EXE or # user DLL objs # $(OBJS_LIB:PFX=): !if $d(USERDLL) $(BCC) -D_OWLDLL -U_BUILDOWLDLL {$&.cpp } !else # smart callback, far data into normal data seg DATA, could use CODE if RO $(BCC) -WS -D_OWLDLL -U_BUILDOWLDLL -zFDATA {$&.cpp } !endif localex.obj: locale.cpp $(BCC) -o$< locale.cpp !endif # if/else WIN32 !else # ! DLL $(OWLLIB): $(LIBDEPOBJS) @-del $(OWLLIB) @cd $(.PATH.obj) $(TLIB) $(TLIBOPTS) $(OWLLIB) @&&| $(LIBOBJS) | @cd $(.PATH.cpp) !endif clean: @echo Removing .OBJs from $(.PATH.obj) @-if exist $(.PATH.obj)\*.obj del $(.PATH.obj)\*.obj @-if exist $(.PATH.obj)\*.csm del $(.PATH.obj)\*.csm applica1.obj: applicat.cpp $(BCC) -o$< -DSECTION=1 applicat.cpp applica2.obj: applicat.cpp $(BCC) -o$< -DSECTION=2 applicat.cpp applica3.obj: applicat.cpp $(BCC) -o$< -DSECTION=3 applicat.cpp applica4.obj: applicat.cpp $(BCC) -o$< -DSECTION=4 applicat.cpp button1.obj: button.cpp $(BCC) -o$< -DSECTION=1 button.cpp button2.obj: button.cpp $(BCC) -o$< -DSECTION=2 button.cpp checkbo1.obj: checkbox.cpp $(BCC) -o$< -DSECTION=1 checkbox.cpp checkbo2.obj: checkbox.cpp $(BCC) -o$< -DSECTION=2 checkbox.cpp combobo1.obj: combobox.cpp $(BCC) -o$< -DSECTION=1 combobox.cpp combobo2.obj: combobox.cpp $(BCC) -o$< -DSECTION=2 combobox.cpp control1.obj: control.cpp $(BCC) -o$< -DSECTION=1 control.cpp control2.obj: control.cpp $(BCC) -o$< -DSECTION=2 control.cpp decfram1.obj: decframe.cpp $(BCC) -o$< -DSECTION=1 decframe.cpp decfram2.obj: decframe.cpp $(BCC) -o$< -DSECTION=2 decframe.cpp decmdif1.obj: decmdifr.cpp $(BCC) -o$< -DSECTION=1 decmdifr.cpp decmdif2.obj: decmdifr.cpp $(BCC) -o$< -DSECTION=2 decmdifr.cpp dialog1.obj: dialog.cpp $(BCC) -o$< -DSECTION=1 dialog.cpp dialog2.obj: dialog.cpp $(BCC) -o$< -DSECTION=2 dialog.cpp dib1.obj: dib.cpp $(BCC) -o$< -DSECTION=1 dib.cpp dib2.obj: dib.cpp $(BCC) -o$< -DSECTION=2 dib.cpp dib3.obj: dib.cpp $(BCC) -o$< -DSECTION=3 dib.cpp dib4.obj: dib.cpp $(BCC) -o$< -DSECTION=4 dib.cpp dib5.obj: dib.cpp $(BCC) -o$< -DSECTION=5 dib.cpp dib6.obj: dib.cpp $(BCC) -o$< -DSECTION=6 dib.cpp docmang1.obj: docmanag.cpp $(BCC) -o$< -DSECTION=1 docmanag.cpp docmang2.obj: docmanag.cpp $(BCC) -o$< -DSECTION=2 docmanag.cpp doctpl1.obj: doctpl.cpp $(BCC) -o$< -DSECTION=1 doctpl.cpp doctpl2.obj: doctpl.cpp $(BCC) -o$< -DSECTION=2 doctpl.cpp docview1.obj: docview.cpp $(BCC) -o$< -DSECTION=1 docview.cpp docview2.obj: docview.cpp $(BCC) -o$< -DSECTION=2 docview.cpp edit1.obj: edit.cpp $(BCC) -o$< -DSECTION=1 edit.cpp edit2.obj: edit.cpp $(BCC) -o$< -DSECTION=2 edit.cpp editfil1.obj: editfile.cpp $(BCC) -o$< -DSECTION=1 editfile.cpp editfil2.obj: editfile.cpp $(BCC) -o$< -DSECTION=2 editfile.cpp editsea1.obj: editsear.cpp $(BCC) -o$< -DSECTION=1 editsear.cpp editsea2.obj: editsear.cpp $(BCC) -o$< -DSECTION=2 editsear.cpp editvie1.obj: editview.cpp $(BCC) -o$< -DSECTION=1 editview.cpp editvie2.obj: editview.cpp $(BCC) -o$< -DSECTION=2 editview.cpp filedoc1.obj: filedoc.cpp $(BCC) -o$< -DSECTION=1 filedoc.cpp filedoc2.obj: filedoc.cpp $(BCC) -o$< -DSECTION=2 filedoc.cpp filtval1.obj: filtval.cpp $(BCC) -o$< -DSECTION=1 filtval.cpp filtval2.obj: filtval.cpp $(BCC) -o$< -DSECTION=2 filtval.cpp findrep1.obj: findrepl.cpp $(BCC) -o$< -DSECTION=1 findrepl.cpp findrep2.obj: findrepl.cpp $(BCC) -o$< -DSECTION=2 findrepl.cpp floatfr1.obj: floatfra.cpp $(BCC) -o$< -DSECTION=1 floatfra.cpp floatfr2.obj: floatfra.cpp $(BCC) -o$< -DSECTION=2 floatfra.cpp framewi1.obj: framewin.cpp $(BCC) -o$< -DSECTION=1 framewin.cpp framewi2.obj: framewin.cpp $(BCC) -o$< -DSECTION=2 framewin.cpp framewi3.obj: framewin.cpp $(BCC) -o$< -DSECTION=3 framewin.cpp groupbo1.obj: groupbox.cpp $(BCC) -o$< -DSECTION=1 groupbox.cpp groupbo2.obj: groupbox.cpp $(BCC) -o$< -DSECTION=2 groupbox.cpp hslider1.obj: hslider.cpp $(BCC) -o$< -DSECTION=1 hslider.cpp hslider2.obj: hslider.cpp $(BCC) -o$< -DSECTION=2 hslider.cpp inputdi1.obj: inputdia.cpp $(BCC) -o$< -DSECTION=1 inputdia.cpp inputdi2.obj: inputdia.cpp $(BCC) -o$< -DSECTION=2 inputdia.cpp listbox1.obj: listbox.cpp $(BCC) -o$< -DSECTION=1 listbox.cpp listbox2.obj: listbox.cpp $(BCC) -o$< -DSECTION=2 listbox.cpp listvie1.obj: listview.cpp $(BCC) -o$< -DSECTION=1 listview.cpp listvie2.obj: listview.cpp $(BCC) -o$< -DSECTION=2 listview.cpp lookval1.obj: lookval.cpp $(BCC) -o$< -DSECTION=1 lookval.cpp lookval2.obj: lookval.cpp $(BCC) -o$< -DSECTION=2 lookval.cpp mdichil1.obj: mdichild.cpp $(BCC) -o$< -DSECTION=1 mdichild.cpp mdichil2.obj: mdichild.cpp $(BCC) -o$< -DSECTION=2 mdichild.cpp mdiclie1.obj: mdiclien.cpp $(BCC) -o$< -DSECTION=1 mdiclien.cpp mdiclie2.obj: mdiclien.cpp $(BCC) -o$< -DSECTION=2 mdiclien.cpp mdifram1.obj: mdiframe.cpp $(BCC) -o$< -DSECTION=1 mdiframe.cpp mdifram2.obj: mdiframe.cpp $(BCC) -o$< -DSECTION=2 mdiframe.cpp menudes1.obj: menudesc.cpp $(BCC) -o$< -DSECTION=1 menudesc.cpp menudes2.obj: menudesc.cpp $(BCC) -o$< -DSECTION=2 menudesc.cpp module1.obj: module.cpp $(BCC) -o$< -DSECTION=1 module.cpp module2.obj: module.cpp $(BCC) -o$< -DSECTION=2 module.cpp module3.obj: module.cpp $(BCC) -o$< -DSECTION=3 module.cpp module4.obj: module.cpp $(BCC) -o$< -DSECTION=4 module.cpp opensav1.obj: opensave.cpp $(BCC) -o$< -DSECTION=1 opensave.cpp opensav2.obj: opensave.cpp $(BCC) -o$< -DSECTION=2 opensave.cpp pictval1.obj: pictval.cpp $(BCC) -o$< -DSECTION=1 pictval.cpp pictval2.obj: pictval.cpp $(BCC) -o$< -DSECTION=2 pictval.cpp printou1.obj: printout.cpp $(BCC) -o$< -DSECTION=1 printout.cpp printou2.obj: printout.cpp $(BCC) -o$< -DSECTION=2 printout.cpp printer1.obj: printer.cpp $(BCC) -o$< -DSECTION=1 printer.cpp printer2.obj: printer.cpp $(BCC) -o$< -DSECTION=2 printer.cpp printdi1.obj: printdia.cpp $(BCC) -o$< -DSECTION=1 printdia.cpp printdi2.obj: printdia.cpp $(BCC) -o$< -DSECTION=2 printdia.cpp radiobu1.obj: radiobut.cpp $(BCC) -o$< -DSECTION=1 radiobut.cpp radiobu2.obj: radiobut.cpp $(BCC) -o$< -DSECTION=2 radiobut.cpp rangevl1.obj: rangeval.cpp $(BCC) -o$< -DSECTION=1 rangeval.cpp rangevl2.obj: rangeval.cpp $(BCC) -o$< -DSECTION=2 rangeval.cpp scrolle1.obj: scroller.cpp $(BCC) -o$< -DSECTION=1 scroller.cpp scrolle2.obj: scroller.cpp $(BCC) -o$< -DSECTION=2 scroller.cpp scrollb1.obj: scrollba.cpp $(BCC) -o$< -DSECTION=1 scrollba.cpp scrollb2.obj: scrollba.cpp $(BCC) -o$< -DSECTION=2 scrollba.cpp slider1.obj: slider.cpp $(BCC) -o$< -DSECTION=1 slider.cpp slider2.obj: slider.cpp $(BCC) -o$< -DSECTION=2 slider.cpp static1.obj: static.cpp $(BCC) -o$< -DSECTION=1 static.cpp static2.obj: static.cpp $(BCC) -o$< -DSECTION=2 static.cpp tinycap1.obj: tinycapt.cpp $(BCC) -o$< -DSECTION=1 tinycapt.cpp tinycap2.obj: tinycapt.cpp $(BCC) -o$< -DSECTION=2 tinycapt.cpp validat1.obj: validate.cpp $(BCC) -o$< -DSECTION=1 validate.cpp validat2.obj: validate.cpp $(BCC) -o$< -DSECTION=2 validate.cpp vslider1.obj: vslider.cpp $(BCC) -o$< -DSECTION=1 vslider.cpp vslider2.obj: vslider.cpp $(BCC) -o$< -DSECTION=2 vslider.cpp