#############################################################################
#
# 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

#############################################################################
# Build the object module lists.                                            #
#############################################################################
OBJS =               \
        bsearch.obj  \
        lsearch.obj  \
        bdos.obj     \
        dosext.obj   \
        hqsort.obj   \
        movedata.obj \
        qsort.obj    \
        swab.obj     \
        castmptr.obj

!if $(MODEL) != t
    OBJS =  $(OBJS)   \
            ddvt.obj  \
            fddvt.obj
!endif

AUXOBJS =            \
        f_pcmp.obj   \
        f_scopy.obj  \
        h_pada.obj   \
        h_padd.obj   \
        h_pina.obj   \
        h_psbh.obj   \
        h_psbp.obj   \
        h_spush.obj  \
        n_pcmp.obj   \
        n_scopy.obj  \
        errormsg.obj \
        getswit.obj  \
        bdosptr.obj  \
        country.obj  \
        inport.obj   \
        outport.obj  \
        pureerr.obj

!if $d(DLL)
    IMPOBJS = $(AUXOBJS) \
            ddvt.obj     \
            fddvt.obj
!else
    OBJS    = $(AUXOBJS) $(OBJS)
!endif

#############################################################################
# Configure the environment appropriately.                                  #
#############################################################################
TASMCFG = 1        # Force tasm.cfg creation

!include rules.mak

#############################################################################
# Miscellaneous explicit rules.                                             #
#############################################################################
!if $(MODEL) == h
    COMPILE = $(CC) -mh -D__FARFUNCS__ -o$<
!else
    COMPILE = $(CC) -ml -D__FARFUNCS__ -o$<
!endif

hqsort.obj : qsort.cas
        $(COMPILE) $?

