#############################################################################
#
# The make process relies on the creation of DLL and library response file  #
# creation.  To control the location of object modules the following should #
# be defined:                                                               #
#                                                                           #
#     IMPOBJS - A list of object modules that should appear in the DLL      #
#               import library.                                             #
#                                                                           #
#        OBJS - If a DLL is build, this is a list of the object modules     #
#               that are linked into the DLL.  If building a library, this  #
#               is the list of object modules that goes into the library.   #
#                                                                           #
# The building of miscellaneous object modules and libraries is controlled  #
# by the list of files in the MISC variable.                                #
#                                                                           #
#############################################################################

#############################################################################
# In order to build the OBJ list for 16 bit platforms, a definition of      #
# MODEL is required.                                                        #
#############################################################################
!if ($(OS) == DOS || $(OS) == WIN16) && !$d(MODEL)
!    error MODEL is required
!endif

#############################################################################
# Force iostreams into a different segment.                                 #
#############################################################################
!if $(OS) == WIN16 && ($(MODEL) == m || $(MODEL) == l)
    CCPFX = -zC_TEXTA
!endif

!if $(OS) == WIN16 && $d(DLL)
    CCPFX = $(CCPFX) -zTDATA
!endif

!if $(OS) == DOS && ($(MODEL) == m || $(MODEL) == l || $(MODEL) == h)
    CCPFX = -zC_TEXTA
!endif

#############################################################################
# Build the object module lists.                                            #
#############################################################################
OBJS =               \
	fsattch.obj  \
	fsbattch.obj \
	fsbclose.obj \
	fsbctr1.obj  \
	fsbctr2.obj  \
	fsbctr3.obj  \
	fsbdtr.obj   \
	fsboflow.obj \
	fsbopen.obj  \
	fsbsbuf.obj  \
	fsbskoff.obj \
	fsbsync.obj  \
	fsbuflow.obj \
	fsclose.obj  \
	fsctr1.obj   \
	fsctr2.obj   \
	fsctr3.obj   \
	fsctr4.obj   \
	fsdtr.obj    \
	fsopen.obj   \
	fssbuf.obj   \
	ifsctr1.obj  \
	ifsctr2.obj  \
	ifsctr3.obj  \
	ifsctr4.obj  \
	ifsdtr.obj   \
	iofsctr1.obj \
	iofsctr2.obj \
	iofsctr3.obj \
	iofsctr4.obj \
	iofsdtr.obj  \
	iosrctr1.obj \
	iosrctr2.obj \
	iosrdtr.obj  \
	iostasn1.obj \
	iostasn2.obj \
	iostctr1.obj \
	iostctr2.obj \
	iostctr3.obj \
	iostdtr1.obj \
	iostdtr2.obj \
	isrctr1.obj  \
	isrctr2.obj  \
	isrdtr.obj   \
	istasn1.obj  \
	istasn2.obj  \
	istctr1.obj  \
	istctr2.obj  \
	istctr3.obj  \
	istctr4.obj  \
	istdget.obj  \
	istdipfx.obj \
	istdtr1.obj  \
	istdtr2.obj  \
	isteatwh.obj \
	istebuf.obj  \
	istechp.obj  \
        istedbl.obj  \
        isteflt.obj  \
	isteint.obj  \
        isteldbl.obj \
	istelng.obj  \
	istepchr.obj \
	isteschr.obj \
	istesh.obj   \
	isteuchr.obj \
	isteuint.obj \
	isteulng.obj \
	isteush.obj  \
	istgbuf.obj  \
	istget.obj   \
	istgline.obj \
	istgpchr.obj \
	istgschr.obj \
	istgstr.obj  \
	istguchr.obj \
	istign.obj   \
	istmanip.obj \
	istpback.obj \
	istread.obj  \
	istskoff.obj \
	istskpos.obj \
	isttellg.obj \
	istx.obj     \
	mnrstflg.obj \
	mnsbase.obj  \
	mnsetflg.obj \
	mnsetw.obj   \
	mnsfill.obj  \
	mnsprec.obj  \
	ofsctr1.obj  \
	ofsctr2.obj  \
	ofsctr3.obj  \
	ofsctr4.obj  \
	ofsdtr.obj   \
	osrctr1.obj  \
	osrctr2.obj  \
	osrdtr.obj   \
	ostasn1.obj  \
	ostasn2.obj  \
	ostctr1.obj  \
	ostctr2.obj  \
	ostctr3.obj  \
	ostdtr1.obj  \
	ostdtr2.obj  \
	ostfloat.obj \
	ostflush.obj \
	ostibuf.obj  \
	ostint.obj   \
	ostischr.obj \
	ostmanip.obj \
	ostopfx.obj  \
	ostosfx.obj  \
	ostoutst.obj \
	ostptr.obj   \
	ostskoff.obj \
	ostskpos.obj \
	osttellp.obj \
	ostwrite.obj \
	ostx.obj     \
	sdbctr.obj   \
	sdbdtr.obj   \
	sdboflow.obj \
	sdbpbfl.obj  \
	sdbskoff.obj \
	sdbsync.obj  \
	sdbuflow.obj \
	sdctr.obj    \
	sddtr.obj    \
	srbctr1.obj  \
	srbctr2.obj  \
	srbctr3.obj  \
	srbctr4.obj  \
	srbctr5.obj  \
	srbctr6.obj  \
	srbdalc.obj  \
	srbdtr.obj   \
	srbfreez.obj \
	srbinit.obj  \
	srboflow.obj \
	srbsbuf.obj  \
	srbskoff.obj \
	srbstr.obj   \
	srbsync.obj  \
	srbuflow.obj \
	srctr1.obj   \
	srctr2.obj   \
	srdtr.obj    \
	stbalc.obj   \
	stbctr1.obj  \
	stbctr2.obj  \
	stbdbp.obj   \
	stbdnext.obj \
	stbdsgtn.obj \
	stbdsptn.obj \
	stbdtr.obj   \
	stboflow.obj \
	stbpbfl.obj  \
	stbsbuf.obj  \
	stbsetb.obj  \
	stbsetg.obj  \
	stbsetp.obj  \
	stbsgetn.obj \
	stbskoff.obj \
	stbskpos.obj \
	stbsputn.obj \
	stbstb1.obj  \
	stbsync.obj  \
	stbtalc.obj  \
	stbuflow.obj \
	stclear.obj  \
	stctr1.obj   \
	stctr2.obj   \
	stdtr.obj    \
	stflags.obj  \
	stinit.obj   \
	stiword.obj  \
	stpword.obj  \
	stsetf1.obj  \
	stsetf2.obj  \
	stsetst.obj  \
	stskip.obj   \
	stsync.obj   \
	sttie.obj    \
	stunset.obj  \
	stusize.obj  \
	stxalc.obj


AUXOBJS =            \
	ioststd.obj  \
	istws.obj    \
	ostendl.obj  \
	ostends.obj  \
	ostmflsh.obj \
	stdec.obj    \
	sthex.obj    \
	stoct.obj

!if $(OS) == WIN16 && $d(DLL)
    IMPOBJS = $(AUXOBJS)
!else
    OBJS    = $(AUXOBJS) $(OBJS)
!endif

#############################################################################
# Configure the environment apprpriately.                                   #
#############################################################################
PCH = 1    # Turn on precompiled headers!!

!include rules.mak

