home *** CD-ROM | disk | FTP | other *** search
- #-----------------------------------------------------------------------------
- # MAKEFILE for Class Libraries
- # Copyright (c) Borland International 1991, 1996, All Rights Reserved
- #
- # $Revision: 5.51 $
- #
- # Defines:
- # -DDOS, -DWIN32, -DOS2 Specifies target system
- # (DOS implies WIN16 for Windows specific classes)
- # -DMT Build multi-thread version
- # -DVCL builds OWL using the VCL-compatible RTL (cp32mt)
- # (implies -DMT and -DNAMESPACE;
- # requires MODEL=t and WIN32)
- # MODEL=<s|c|m|l|h> Specifies memory model for DOS library.
- # Required when building DOS library.
- # BIDSNAME=xxx Base name of the target library or DLL
- # Always required.
- # BIDSDLLNAME=xxx Overrides base name of target for DLLs only
- # BIDSVER=xxx Base name of the target library or DLL
- # -DDLL Build a DLL.
- # -DDIAGS Build the diagnostic version of the target.
- # -DOBJECTS Also build the object-based containers
- # -DBIDSFARVTABLE Moves class vtables out of dgroup
- # CODEGUARD Builds classlib with CodeGuard:
- # 1=basic data, 2=full checking
- # NAMESPACE builds BIDS within a namespace "ClassLib"
- # ALIGN=<1|2|4|8> Specifies the alignment
- # BCC32I Uses bcc32i instead of bcc32 to compile
- # ILINK Uses ILINK32 instead of TLINK32 to link
- # -DBI_REDEFINE_BOOL Builds library with BOOL mapped to bool
- #
- # 16-bit non-diagnostic static libraries:
- # make -r -DDOS MODEL=s BIDSNAME=bids
- # make -r -DDOS MODEL=c BIDSNAME=bids
- # make -r -DDOS MODEL=m BIDSNAME=bids
- # make -r -DDOS MODEL=l BIDSNAME=bids
- # make -r -DDOS MODEL=h BIDSNAME=bids
- #
- # 16-bit diagnostic static libraries:
- # make -r -DDOS MODEL=s -DDIAGS BIDSNAME=bids
- # make -r -DDOS MODEL=c -DDIAGS BIDSNAME=bids
- # make -r -DDOS MODEL=m -DDIAGS BIDSNAME=bids
- # make -r -DDOS MODEL=l -DDIAGS BIDSNAME=bids
- # make -r -DDOS MODEL=h -DDIAGS BIDSNAME=bids
- #
- # 16-bit DLLs:
- # make -r -DDOS -DDLL BIDSNAME=bids
- # make -r -DDOS -DDLL -DDIAGS BIDSNAME=bids
- #
- # WIN32 libraries:
- # make -r -DWIN32 BIDSNAME=bidsf
- # make -r -DWIN32 -DDIAGS BIDSNAME=bids
- #
- # WIN32 DLLs:
- # make -r -DWIN32 -DDLL BIDSNAME=bids
- # make -r -DWIN32 -DDLL -DDIAGS BIDSNAME=bids
- #
- # OS/2 libraries:
- # make -r -DOS2 BIDSNAME=bids
- # make -r -DOS2 -DDIAGS BIDSNAME=bids
- #
- # OS/2 DLLs:
- # make -r -DOS2 -DDLL BIDSNAME=bids
- # make -r -DOS2 -DDLL -DDIAGS BIDSNAME=bids
- #
- # Define these for alternate BIDS build directories:
- # BIDSSRCDIR defaults to: $(BCROOT)\source\CLASSL
- # BIDSINCDIR defaults to: $(BCROOT)\include
- # BIDSLIBDIR defaults to: $(BCROOT)\lib
- # BIDSBINDIR defaults to: $(BCROOT)\bin
- #
- # When building VCL-compatible libraries, the makefile defaults
- # assume BCROOT points to the base of the C++Builder tree. If
- # you are building in the context of Borland C++, then you must
- # set BCBROOT explicitly yourself.
- #
- # BCBROOT defaults to: $(BCROOT) (root of C++Builder)
- # VCLINCDIR defaults to: $(BCBROOT)\include\VCL
- # VCLOBJDIR defaults to: $(BCBROOT)\lib\obj
- # VCLLIBDIR defaults to: $(BCBROOT)\lib
- #-----------------------------------------------------------------------------
-
- .autodepend
- .cacheautodepend
- .swap
-
- #
- # If no model is defined or implied, set a default
- #
- !if !$d(MODEL) && !$d(DOS) && !$d(WIN16) && !$d(OS2) && !$d(VCL)
- MODEL = f # default build model = flat static, Win32
- # MODEL = d # default build model = flat DLL, Win32
- !endif
-
- #
- # If no system was set, choose one
- #
- !if (!$d(WIN32) && !$d(WIN16) && !$d(OS2))
- ! if $(MODEL) == d
- DLL = 1 # model d means to build the DLL model
- WIN32 = 1 # 32bit DLL
- ! elif ($(MODEL) == t || $(MODEL) == f || $(VCL)) && !$d(OS2)
- WIN32 = 1 # must use WIN32 switch for flat, threaded, or VCL
- ! endif
- !endif
-
- #
- # For multithreaded target, set the value of MT
- #
- !if $(MODEL) == t || $d(MT) || $d(VCL)
- MT = mt # model t implies MT. Use MT as 'mt' to build library names
- !endif
-
- #
- # VCL compatibility implies use of namespace
- #
- !if $d(VCL)
- NAMESPACE = 1
- !endif
-
- #
- # Make sure model is consistent with system
- #
- !if $d(WIN32)
- ! if $d(MT) || $d(VCL)
- MODEL = t
- ! else
- MODEL = f
- ! endif
- !elif $d(OS2)
- MODEL = 2
- !else
- ! if $d(DLL)
- MODEL = l
- ! endif
- ! if !$d(DOS)
- DOS = 1
- ! endif
- ! if !$d(WIN16)
- WIN16 = 1
- ! endif
- !endif
-
- #
- # Figure out default data alignment based on target
- #
- !if !$d(ALIGN)
- ! if $d(WIN32)
- ALIGN = 1
- ! else
- ALIGN = 1
- ! endif
- !endif
-
- #
- # Check for incompatible choices and warn user
- #
- !if $d(VCL)
- ! if !$d(WIN32) || $(MODEL) != t
- ! error VCL-compatible library must be multithreaded 32-bit
- ! endif
- !endif
-
- !if $d(DOS) && $d(MT)
- ! error Cannot build multi-thread library for DOS.
- !endif
-
- !if $d(MODEL)
- ! if $(MODEL)!=s && $(MODEL)!=c && $(MODEL)!=m && $(MODEL)!=l && $(MODEL)!=h && $(MODEL)!=f && $(MODEL)!=t
- ! error MODEL must be s, c, m, l, h, f or t
- ! endif
- !endif
-
- !if $d(ILINK) && $d(WIN16)
- ! error Cannot build 16-bit targets with ILINK.
- !endif
-
- #--------------------------------------------------------------------
- # dir & name components
- #--------------------------------------------------------------------
- !if $d(DLL)
-
- ! if !$d(BIDSNAME) && !$d(DIAGS)
- ! error MUST DEFINE LIBRARY NAME, e.g. "MAKE MODEL=d BIDSNAME=YourName"
- ! endif
- ! if !$d(BIDSDLLNAME)
- BIDSDLLNAME= $(BIDSNAME)
- !endif
- ! if $d(WIN32)
- ! if $d(VCL)
- KEY = vi # compatible with VCL (e.g. BDS52VI.LIB)
- ! else
- KEY = $(MODEL)i # Win32 flat or multithread DLL import library
- ! endif
- ! elif $d(OS2)
- KEY = i$(MODEL) # OS2 DLL import library
- ! else
- KEY = i # Dos/Win16 DLL import library
- ! endif
-
- !else
-
- ! if $d(VCL)
- KEY = v # Compatible with VCL (e.g. BIDSV.LIB)
- ! else
- KEY = $(MODEL) # Static library just uses model
- ! endif
-
- !endif # if/else $d(DLL)
-
- #! if $d(USERDLL)
- # KEY = $(KEY)u # Static or import library for use by dlls
- #! endif
-
- !if !$d(BIDSNAME)
- BIDSNAME = bids
- ! if !$d(BIDSVER)
- BIDSVER = 52
- ! 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
- ! if $d(DOS) && !$d(DLL)
- BD=db # Bids Diag version mark (db for older dos libs)
- ! else
- BD=d # Bids Diag version mark
- ! endif
- OD=d # Owl Diag version mark
- !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)
- ! include $(MAKEDIR)\bcroot.inc
- !endif
- !if !$d(BCROOT)
- BCROOT = $(MAKEDIR)\..
- !endif
-
- #
- # Where to find BC tools, libraries and include files
- #
- BCSRCDIR = $(BCROOT)\source
- !if $d(WIN32)
- BCINCDIR = $(BCROOT)\include\win32;$(BCROOT)\include
- !else
- BCINCDIR = $(BCROOT)\include\win16;$(BCROOT)\include
- !endif
- BCLIBDIR = $(BCROOT)\lib
- BCBINDIR = $(BCROOT)\bin
-
- #
- # Where to find Bids dirs-- can set these for special layouts
- # Build search paths differently if Bids include dir is not below BC's
- #
- !if !$d(BIDSSRCDIR)
- BIDSSRCDIR = $(BCSRCDIR)\classlib
- !endif
-
- !if !$d(BIDSINCDIR)
- BIDSINCDIR = $(BCINCDIR)
- INCLUDE = $(BCINCDIR)
- RCINCLUDEPATH = -i$(BCINCDIR)
- !else
- INCLUDE = $(BIDSINCDIR);$(BCINCDIR)
- RCINCLUDEPATH = -i$(BIDSINCDIR) -i$(BCINCDIR)
- !endif
-
- !if !$d(BIDSLIBDIR)
- BIDSLIBDIR = $(BCLIBDIR)
- !endif
-
- !if !$d(BIDSBINDIR)
- BIDSBINDIR = $(BCBINDIR)
- !endif
-
- BIDSOBJDIR = $(BIDSSRCDIR)\o\$(BD)$(KEY) # Keep seperate diag/nondiag dirs
-
- .PATH.obj = $(BIDSOBJDIR)
- .PATH.res = $(BIDSOBJDIR)
- .PATH.def = $(BIDSOBJDIR)
- .PATH.lib = $(BIDSLIBDIR)
- .PATH.cpp = $(BIDSSRCDIR)
- .PATH.cpo = $(BIDSSRCDIR)\obsolete
-
- #
- # Define BIDSNOPCH to disable the use of Precompiled headers when building BIDS
- #
- !if !$d(BIDSNOPCH)
- CPCH= -H=$(BIDSLIBDIR)\$(BIDSNAME)$(BD)$(KEY).csm -H"pch.h" -D_BIDSPCH -D_WSYSPCH
- ! if $d(WIN32) || $(__MAKE__) > 0x0370 # -Hc is not valid in earlier 16-bit
- CPCH = $(CPCH) -Hc
- ! endif
- !endif
-
- #
- # Where to find VCL libraries, objs, and headers
- #
- !if $d(VCL)
- ! if !$d(BCBROOT)
- BCBROOT = $(BCROOT)
- ! endif
- ! if !$d(VCLLIBDIR)
- VCLLIBDIR = $(BCBROOT)\lib
- ! endif
- ! if !$d(VCLOBJDIR)
- VCLOBJDIR = $(VCLLIBDIR)\obj
- ! endif
- ! if !$d(VCLINCDIR)
- VCLINCDIR = $(BCBROOT)\include\vcl
- ! endif
- INCLUDE = $(INCLUDE);$(VCLINCDIR)
- !endif
-
- #--------------------------------------------------------------------
- # library names
- #--------------------------------------------------------------------
- !if $d(DLL)
-
- ! if $d(VCL)
- DLL32KEY = v
- ! else
- DLL32KEY = $(MODEL)
- ! endif
-
- ! if $d(WIN32)
- BIDSDLL = $(BIDSBINDIR)\$(BIDSDLLNAME)$(BIDSVER)$(BD)$(DLL32KEY).dll
- ! else
- BIDSDLL = $(BIDSBINDIR)\$(BIDSDLLNAME)$(BIDSVER)$(BD).dll
- ! endif
-
- BIDSDEF = bids.def
- BIDSRES = version.res #bids.res
-
- !endif
- BIDSLIB = $(BIDSLIBDIR)\$(BIDSNAME)$(BD)$(KEY).lib
-
- #
- # If building for VCL, use an RTL that begins "cp" instead of "cw"
- #
- !if $d(VCL)
- RTLPFX=cp
- !else
- RTLPFX=cw
- !endif
-
- #--------------------------------------------------------------------
- # Options which are memory model independent
- #--------------------------------------------------------------------
- !if $d(NAMESPACE)
- CFLAGS = $(CFLAGS) -DBI_NAMESPACE
- !endif
- !if $d(BI_REDEFINE_BOOL)
- CFLAGS = $(CFLAGS) -DBI_REDEFINE_BOOL
- !endif
-
- #--------------------------------------------------------------------
- # Tools and options for Win32
- #--------------------------------------------------------------------
- !if $d(WIN32)
- ! if $d(BCC32I)
- CC = $(BCBINDIR)\bcc32i # Highly optimizing compiler
- ! else
- CC = $(BCBINDIR)\bcc32 # Regular optimizing compiler
- ! endif
- RCC = brcc32 -DWIN32 # Resource compiler
- ! if $d(ILINK)
- LINK = $(BCBINDIR)\ilink32 # Linker
- ! else
- LINK = $(BCBINDIR)\tlink32 # Linker
- ! endif
- LIB = $(BCBINDIR)\tlib # Librarian
- IMPLIB = $(BCBINDIR)\implib # Import library generator
- TDSTRIP = $(BCBINDIR)\tdstrp32 # Debug info extractor
-
- CFLAGS = $(CFLAGS) -d -k- -O1gmpv # Optimizations
- ! if $d(CODEGUARD) # d=add data, c=add calls, t=check this
- CFLAGS = $(CFLAGS) -vGd -vGt
- ! if $(CODEGUARD) == 2
- CFLAGS= $(CFLAGS) -vGc
- ! endif
- ! endif
- CFGFILE = bcc32.cfg # Name of compiler's config file
- ! if $d(DEBUG)
- LIBOPTS = /P512 /C
- ! else
- LIBOPTS = /P32 /0 /C
- ! endif
-
- ! if $d(DLL)
- CFLAGS = $(CFLAGS) -WDE -D_BUILDBIDSDLL -D_BUILDSVCSDLL -D_BUILDWSYSDLL
- LFLAGS = $(LDBG) -Tpd -s -c
- STDLIBS = import32 $(RTLPFX)32$(MT)i # Libs for linking the DLL
- ! if $d(CODEGUARD)
- STDLIBS = cg32 $(STDLIBS)
- ! endif
- STARTUP = c0d32
- ! else
- CFLAGS = $(CFLAGS) #!TH why always windows? -W
- ! endif
-
- ! if $d(VCL)
- CFLAGS = $(CFLAGS) -b- -Vx -Ve
- LFLAGS = $(LFLAGS) -j$(VCLOBJDIR)
- STDLIBS = $(STDLIBS)
- ! endif
-
- ! if !$d(MT)
- CFLAGS = $(CFLAGS) -WM-
- ! endif
-
- ! if $d(VCL)
- CFLAGS = $(CFLAGS) -a4
- ! elif $d(ALIGN)
- CFLAGS = $(CFLAGS) -a$(ALIGN)
- ! endif
-
- #--------------------------------------------------------------------
- # Tools and options for OS/2
- #--------------------------------------------------------------------
- !elif $d(OS2)
- CC = $(BCBINDIR)\bcc # Compiler
- RCC = brcc # Resource compiler
- LINK = $(BCBINDIR)\tlink # Linker
- LIB = $(BCBINDIR)\tlib # Librarian
- IMPLIB = $(BCBINDIR)\implib # Import library generator
- TDSTRIP = $(BCBINDIR)\tdstrip # Debug info extractor
-
- CFLAGS = $(CFLAGS) -d -k- -O1gmpv# Optimizations
- CFGFILE = turboc.cfg # Name of compiler's config file
- ! if $d(DEBUG)
- LIBOPTS = /P512 /C
- ! else
- LIBOPTS = /P32 /0 /C
- ! endif
-
- ! if $d(DLL)
- CFLAGS = $(CFLAGS) -WDE -D_BUILDBIDSDLL -D_BUILDSVCSDLL -D_BUILDWSYSDLL
- LFLAGS = $(LDBG) -Tod -s -c
- STDLIBS = c2$(MT)i os2 # Libs for linking the DLL
- STARTUP = c02d
- ! else
- CFLAGS = $(CFLAGS) -W
- ! endif
- ! if $d(MT)
- CFLAGS = $(CFLAGS) -sm
- ! endif
-
- #--------------------------------------------------------------------
- # Tools and options for DOS / Win16
- #--------------------------------------------------------------------
- !elif $d(WIN16)
- CC = $(BCBINDIR)\bcc # Compiler
- RCC = brcc # Resource compiler
- LINK = $(BCBINDIR)\tlink # Linker
- RLINK = $(BCBINDIR)\rlink # Resource linker
- LIB = $(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
-
- CFLAGS = $(CFLAGS) -2- -d -k- -O1gmpv # Optimizations
- CFLAGS = $(CFLAGS) -m$(MODEL) # Memory Model
- ! if $d(DLL) && $d(CODEGUARD) # Enable compiler's CodeGuard support
- CFLAGS = $(CFLAGS) -vGd -vGt
- ! endif
-
- #! if $(MODEL) != s && $(MODEL) != m # Far data models can put strs in code seg
- # CFLAGS=$(CFLAGS) -dc
- #! endif
- ! if $d(BIDSFARVTABLE)
- CFLAGS = $(CFLAGS) -D_BIDSFARVTABLE #;_RTLFARVTABLE
- ! endif
- ! if $d(DISABLE_EXCEPTIONS)
- CFLAGS = $(CFLAGS) -DDISABLE_EXCEPTIONS -x-
- ! endif
- CFGFILE = turboc.cfg
-
- ! if $d(DEBUG)
- LIBOPTS = /P512 /C
- ! else
- LIBOPTS = /P32 /0 /C
- ! endif
-
- ! if $d(DLL) # Build the 16bit DLL
- # Dll, explicit export, compat excptns
- CFLAGS = $(CFLAGS) -WDE -D_BUILDBIDSDLL -D_BUILDSVCSDLL -D_BUILDWSYSDLL -xc
- LFLAGS = $(LDBG) -Twd -n -s -c -C -Oc -Oi -Oa -Or
- STDLIBS = import crtldll # Libs for linking the DLL
- !if $d(CODEGUARD)
- STDLIBS = cg16 $(STDLIBS)
- !endif
- STARTUP = c0dl
- ! else
- ! if $(MODEL) == h
- CFLAGS = $(CFLAGS) -D_Windows # Fool headers to get windows incs
- ! else
- ! if $d(USERDLL)
- CFLAGS = $(CFLAGS) -WDE -xc # Build static lib for use in DLLs
- ! endif
- ! endif
- ! endif
- ! if $d(ALIGN)
- CFLAGS = $(CFLAGS) -a$(ALIGN)
- ! endif
-
- !else
- ! error No platform defined. Define one of: DOS, WIN16, WIN32, OS2
- !endif
-
- #--------------------------------------------------------------------
- # Rules
- #--------------------------------------------------------------------
- .rc.res:
- $(RCC) $(RCINCLUDEPATH) -fo$@ $.
-
- .cpp.obj:
- $(CC) {$& }
-
- .cpo.obj:
- $(CC) -P {$& }
-
- #-----------------------------------------------------------------------------
- #
- # Build the various file lists needed for dependency checking,
- # and LIBing.
- #
- # OBJS is the main list, conditionalized for the various targets
- # and options.
- #
- # OBJS_LIB are the objs that only go in libs & implib, not the dll
- #
- # OBJS_DLL are the objs that only go in the dll, not the libs
- #
- # DEPOBJS is the list of object files for dependency checking
- #
- # LIBOBJS is the list of object files for building the library
- #
- #-----------------------------------------------------------------------------
-
- # Old Object Container files
- #
- !if $d(OBJECTS)
- OBJS = \
- PFXassoc.obj \
- PFXbtree.obj \
- PFXbtreeinn.obj \
- PFXbtreelfn.obj \
- PFXcollect.obj \
- PFXcontain.obj \
- PFXdbllist.obj \
- PFXhashtbl.obj \
- PFXldate.obj \
- PFXlist.obj \
- PFXltime.obj \
- PFXobject.obj
- !endif
-
- # BIDS Container files
- #
- OBJS = $(OBJS) \
- PFXbinimp.obj \
- PFXheapsel.obj
-
- !if $d(DOS) && !$d(DLL)
- OBJS = $(OBJS) PFXtimer.obj
- !endif
-
- # Class Library files
- #
- OBJS = $(OBJS) \
- PFXcastable.obj \
- PFXdate.obj \
- PFXdateio.obj \
- PFXdatep.obj \
- PFXobjstrm.obj \
- PFXtime.obj \
- PFXtimep.obj \
- PFXversion.obj \
- PFXcmdline.obj \
- PFXfile.obj \
- PFXtimeio.obj \
- PFXfilename.obj
-
- #!if $(MODEL)!=h # use these files for huge model
- #OBJS = $(OBJS) \
- # PFXfilename.obj
- #!endif
-
- !if $d(WIN32) || $d(OS2)
- OBJS = $(OBJS) PFXthread.obj
- !endif
-
- # Services Library files. Most are not needed for BorlandC++
- #
- OBJS = $(OBJS) \
- PFXmemory.obj
-
- # WinSys Library files (some MSW specific)
- #
- !if $(MODEL)!=h
- OBJS = $(OBJS) \
- PFXcolor.obj
- !else
- !endif
-
- !if !$d(OS2)
-
- OBJS = $(OBJS) \
- PFXexbase.obj \
- PFXgeometrp.obj \
- PFXgeometrs.obj \
- PFXgeometry.obj \
- PFXsystem.obj \
- PFXreglink.obj
-
- ! if $(MODEL)!=h # do not compile thse when using huge model
- OBJS = $(OBJS) \
- PFXdiaginit.obj \
- PFXmsgthred.obj \
- PFXprofile.obj \
- PFXuimetric.obj \
- PFXwsyscls.obj \
- PFXwsysclsp.obj \
- PFXwsysclss.obj
- ! endif
-
- !endif
-
-
- OBJS_LIB = \
- PFXlocale.obj \
- PFXlocaleco.obj \
- PFXlocaleid.obj \
- PFXustring.obj \
- PFXregheap.obj \
- PFXregistry.obj # needs ole2 & prev 3 need TLocaleString currently
-
- OBJS_DLL =
-
- !if $d(OBJECTS)
- !if $d(TEMPLATES)
- OBJS = $(OBJS) \
- PFXbabstary.obj \
- PFXbdict.obj \
- PFXbsortary.obj
- !else
- OBJS = $(OBJS) \
- PFXabstarry.obj \
- PFXarray.obj \
- PFXdeque.obj \
- PFXdict.obj \
- PFXsortarry.obj \
- PFXstack.obj
- !endif
- !endif
-
- !if $d(DLL)
- OBJS = $(OBJS) PFXclasmain.obj
- !endif
-
- !if $d(DLL) && $d(OBJECTS)
-
- !if $d(TEMPLATES)
- OBJS = $(OBJS) PFXtmpl2.obj
- !else
- OBJS = $(OBJS) PFXtmpl1.obj
- !endif
-
- !endif
-
- !if $d(DLL) && !$d(OBJECTS) && !$d(OS2)
- RESFILE = version.res
- !endif
-
- DEPOBJS = $(OBJS:PFX=) $(OBJS_LIB:PFX=) $(OBJS_DLL:PFX=)
- !if $d(DLL)
- LIBOBJS = $(OBJS_LIB:PFX=+)
- LINKOBJS = $(OBJS:PFX=) $(OBJS_DLL:PFX=)
- !else
- LIBOBJS = $(OBJS:PFX=+) $(OBJS_LIB:PFX=+)
- !endif
-
- #-----------------------------------------------------------------------------
- # These are the targets that we can make.
- #
- # target: builds the target file
- #
- # cfgfile: builds a .CFG file with the correct flags
- #-----------------------------------------------------------------------------
-
- !if $d(DLL)
- DEFFILE=deffile
- !endif
-
- target: cfgfile $(BIDSLIB)
-
- cfgfile:
- @-if not exist $(.PATH.cpp)\o\NUL md $(.PATH.cpp)\o
- @-if not exist $(.PATH.obj)\NUL md $(.PATH.obj)
- @copy &&|
- -I$(INCLUDE)
- -c -w $(CFLAGS) $(CDBG) $(CDIAG)
- $(CPCH) -n$(.PATH.obj)
- | $(CFGFILE) > NUL
-
- !if $d(DLL)
-
- $(.PATH.obj)\$(BIDSRES):
- $(RCC) $&.rc @&&|
- $(RCINCLUDEPATH)
- | -fo$@
-
- !if $d(WIN32)
-
- $(BIDSLIB): $(DEPOBJS) $(.PATH.obj)\$(BIDSDEF) $(.PATH.obj)\$(BIDSRES)
- @cd $(.PATH.obj)
- $(LINK) @&&|
- $(LFLAGS) -L$(BCLIBDIR);$(VCLLIBDIR) $(STARTUP) +
- $(LINKOBJS)
- $(BIDSDLL)
-
- $(STDLIBS)
- $(BIDSDEF)
- $(BIDSRES)
- |
- !if !$d(DIAGS)
- $(TDSTRIP) -s $(BIDSDLL)
- !endif
- $(IMPLIB) $(BIDSLIB) $(BIDSDLL)
- $(LIB) $(LIBOPTS) $(BIDSLIB) @&&|
- $(LIBOBJS)
- |
- @-del $*.bak
- @cd $(.PATH.cpp)
-
- $(.PATH.obj)\$(BIDSDEF):
- @copy &&|
- LIBRARY $(BIDSNAME)$(BIDSVER)$(BD) INITINSTANCE #
- DESCRIPTION 'Borland Class Library for C++'
- #EXETYPE WINDOWS
- DATA MULTIPLE NONSHARED
- | $(.PATH.obj)\$(BIDSDEF) > NUL
-
- !else # ! WIN32
-
- $(BIDSLIB): $(DEPOBJS) $(.PATH.obj)\$(BIDSDEF) $(.PATH.obj)\$(BIDSRES)
- @cd $(.PATH.obj)
- $(LINK) @&&|
- $(LFLAGS) -L$(BCLIBDIR) $(STARTUP) +
- $(LINKOBJS)
- $(BIDSDLL)
-
- $(STDLIBS)
- $(BIDSDEF)
- |
- $(RLINK) @&&|
- -v -31 -k $(BIDSRES) $(BIDSDLL)
- |
- # $(IMPLIB) -i $(BIDSLIB) $(BIDSDEF) $(BIDSDLL) #
- $(IMPLIB) -i $(BIDSLIB) $(BIDSDLL)
- $(LIB) $(LIBOPTS) $(BIDSLIB) @&&|
- $(LIBOBJS)
- |
- !if !$d(DIAGS)
- $(TDSTRIP) -s $(BIDSDLL)
- !endif
- @-del $*.bak
- @cd $(.PATH.cpp)
-
- $(.PATH.obj)\$(BIDSDEF):
- @copy &&|
- LIBRARY $(BIDSDLLNAME)$(BIDSVER)$(BD)
- DESCRIPTION 'Borland Class Library for C++'
- EXETYPE WINDOWS
- CODE PRELOAD MOVEABLE DISCARDABLE
- DATA PRELOAD MOVEABLE SINGLE
- HEAPSIZE 4096
- EXPORTS
- WEP @1 RESIDENTNAME
- | $(.PATH.obj)\$(BIDSDEF) > NUL
-
- !endif # if/else WIN32
-
- !else # ! DLL
-
- $(BIDSLIB): $(DEPOBJS)
- @-del $(BIDSLIB)
- @cd $(.PATH.obj)
- $(LIB) $(LIBOPTS) $(BIDSLIB) @&&|
- $(LIBOBJS)
- |
- @cd $(.PATH.cpp)
-
- !endif
-
- #-----------------------------------------------------------------------------
- # We need an implicit rule for building .OBJ files, and a few
- # explicit rules for special cases.
- #
- # TIMER.OBJ is never built for windows, so doesn't need the
- # windows flags.
- #-----------------------------------------------------------------------------
- CFLAGS_WIN=-W $(CFLAGS_WIN)
-
- # For pre v5.0 tools, LPCWSTR is only defined via OLE headers
- #
- !if $(__MAKE__) <= 0x0370
- CFLAGS_WIN=$(CFLAGS_WIN) -DINC_OLE2
- !endif
- !if $(MODEL)==l && $d(CODEGUARD)
- CFLAGS_WIN=-vGd -vGt $(CFLAGS_WIN)
- !endif
-
- !if $(MODEL)!=h
- file.obj: file.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- filename.obj: filename.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- memory.obj: memory.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- timeio.obj: timeio.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- exbase.obj: exbase.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- geometrp.obj: geometrp.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- geometrs.obj: geometrs.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- geometry.obj: geometry.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- system.obj: system.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- reglink.obj: reglink.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- locale.obj: locale.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- localeco.obj: localeco.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- localeid.obj: localeid.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- ustring.obj: ustring.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- regheap.obj: regheap.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- registry.obj: registry.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- !endif
-
- color.obj: color.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- diaginit.obj: diaginit.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- msgthred.obj: msgthred.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- profile.obj: profile.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- uimetric.obj: uimetric.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- wsyscls.obj: wsyscls.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- wsysclss.obj: wsysclss.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
- wsysclsp.obj: wsysclsp.cpp
- $(CC) $(CFLAGS_WIN) {$& }
-
-