################################################################################
#
#
#   This is the makefile for all of the emulators.
#
#
#Revision History:
#
#   03-26-89  WAJ   Added small emulators and emfull.asm to build
#   04-02-89  WAJ   Added build for sepcial version of emmt.lib (emmtsql.lib) for SQL
#   04-06-89  WAJ   Added win87em.exe and win87em.lib to build.
#   04-07-89  WAJ   Added emulator.inc to EMASM list.
#   04-14-89  WAJ   Ifdefed MATHDIR.
#   05-16-89  WAJ   Added /nologo to $(LIB)
#   05-16-89  WAJ   Changed $(LIB) to $(LIBEXE)
#   05-16-89  WAJ   win87em.exe now made with $(LINK4)
#   05-30-89  WAJ   Added emqp.lib to makefile.
#   05-02-89  WAJ   Added $(AQ) to masm build line.
#   06-20-89  WAJ   Changed build to make Win 3.0 version of win87em.exe
#   06-26-89  WAJ   Removed emfull.obj from build.
#   06-28-89  WAJ   Changed name of Win2 win87em.exe map file to win87em.ma2
#   04-20-90  WAJ   Math project name is now mrt6.
#   04-26-90  WAJ   Math project name is now mrt7.
#   10-16-90  WAJ   Now use libw.lib not swinlibc.lib
#   09/09/91  JCR   Now builds emoem.src, OEM version of emoem.asm.
#   05/14/92  JWM   Added "WF" to WINFLAGS (DonC's WINFAST changes).
#   06/29/92  JWM   Now builds in DOS; math project name is now mrt8.
#   03/19/94  JWM   Links win87em.dll with /align:16, for Chicago
#   03/31/94  JWM   "WF" removed from WINFLAGS!!
#
################################################################################


!INCLUDE ..\makefile.inc


!IFNDEF  MATHDIR
MATHDIR = \mrt8
!ENDIF

SRCDIR = .
OBJDIR = .\objs
INCDIR = $(INCS)

ASM = $(ASM) -DLOOK_AHEAD $(AQ)

IFSTRIP = $(TOOLDIR)\ifstrip
LIBEXE = $(TOOLDIR)\lib /nologo
LINK4 = $(TOOLDIR)\link4
LINK = $(TOOLDIR)\link
IMPLIB = $(TOOLDIR)\implib
RC = $(TOOLDIR)\rc -x


all:  em 87 piem pi87 pem p87 emmt frontend basici basicij qc emt 87t pisem \
      psem emoem


basic: piem pi87 basici pisem
basicj: pem p87 basicij psem

win: win87em

###############################################################################
#
#   These are  the emulator's asm files
#
###############################################################################



EMASM = \
	$(SRCDIR)\emulator.inc	 \
	$(SRCDIR)\apisim.asm	 \
	$(SRCDIR)\em386.asm	 \
	$(SRCDIR)\emarith.asm	 \
	$(SRCDIR)\emconst.asm	 \
	$(SRCDIR)\emdecode.asm	 \
	$(SRCDIR)\emdisp.asm	 \
	$(SRCDIR)\emdoc.asm	 \
	$(SRCDIR)\emdos.asm	 \
	$(SRCDIR)\emds.asm	 \
	$(SRCDIR)\emerror.asm	 \
	$(SRCDIR)\emexcept.asm	 \
	$(SRCDIR)\emfadd.asm	 \
	$(SRCDIR)\emfcom.asm	 \
	$(SRCDIR)\emfconst.asm	 \
	$(SRCDIR)\emfdiv.asm	 \
	$(SRCDIR)\emfixfly.asm	 \
	$(SRCDIR)\emfmisc.asm	 \
	$(SRCDIR)\emfmul.asm	 \
	$(SRCDIR)\emfprem.asm	 \
	$(SRCDIR)\emfrndi.asm	 \
	$(SRCDIR)\emfsqrt.asm	 \
	$(SRCDIR)\emftran.asm	 \
	$(SRCDIR)\emintern.asm	 \
	$(SRCDIR)\emlsdbl.asm	 \
	$(SRCDIR)\emlsint.asm	 \
	$(SRCDIR)\emlsquad.asm	 \
	$(SRCDIR)\emlssng.asm	 \
	$(SRCDIR)\emlstmp.asm	 \
	$(SRCDIR)\emmain.asm	 \
	$(SRCDIR)\emnew.asm	 \
	$(SRCDIR)\emnormal.asm	 \
	$(SRCDIR)\emoem.asm	 \
	$(SRCDIR)\emoemqb.asm	 \
	$(SRCDIR)\emspec.asm	 \
	$(SRCDIR)\emstack.asm	 \
	$(SRCDIR)\emthread.asm	 \
	$(SRCDIR)\emu8087.asm	 \
	$(SRCDIR)\emulator.asm	 \
	$(SRCDIR)\emwin.asm	 \
	$(SRCDIR)\emxenix.asm




###############################################################################
#
#
#   This is how to build the normal emulators
#	ie no fwait polling
#	   no IBM bios checks
#
###############################################################################

em: $(OBJDIR)\em.lib $(OBJDIR)\emr.lib $(OBJDIR)\emp.lib

87: $(OBJDIR)\87.lib $(OBJDIR)\87r.lib $(OBJDIR)\87p.lib


$(OBJDIR)\em.lib: $(OBJDIR)\em.obj $(OBJDIR)\emoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\em.obj + $(OBJDIR)\emoem.obj;

$(OBJDIR)\emr.lib: $(OBJDIR)\emr.obj $(OBJDIR)\emoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\emr.obj + $(OBJDIR)\emoem.obj;

$(OBJDIR)\emp.lib: $(OBJDIR)\emp.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\emp.obj;


$(OBJDIR)\87.lib: $(OBJDIR)\87.obj $(OBJDIR)\emoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\87.obj + $(OBJDIR)\emoem.obj;

$(OBJDIR)\87r.lib: $(OBJDIR)\87r.obj $(OBJDIR)\emoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\87r.obj + $(OBJDIR)\emoem.obj;

$(OBJDIR)\87p.lib: $(OBJDIR)\87p.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\87p.obj;


$(OBJDIR)\em.obj: $(EMASM)
    $(ASM) -DDOS5 $(SRCDIR)\emulator.asm, $@;

$(OBJDIR)\emr.obj: $(EMASM)
    $(ASM) $(SRCDIR)\emulator.asm, $@;

$(OBJDIR)\emp.obj: $(EMASM)
    $(ASM) -DDOS5only $(SRCDIR)\emulator.asm, $@;

$(OBJDIR)\87.obj: $(EMASM)
    $(ASM) -DDOS5 $(SRCDIR)\emu8087.asm, $@;

$(OBJDIR)\87r.obj: $(EMASM)
    $(ASM) $(SRCDIR)\emu8087.asm, $@;

$(OBJDIR)\87p.obj: $(EMASM)
    $(ASM) -DDOS5only $(SRCDIR)\emu8087.asm, $@;


$(OBJDIR)\emoem.obj: $(SRCDIR)\emoem.asm
    $(ASM) $(SRCDIR)\emoem.asm, $@;




###############################################################################
#
#
#   This is how to build the IBM emulators
#	ie with fwait polling
#	   with IBM bios checks
#
###############################################################################


IBMFLAGS =-DPOLLING -DPCDOS

piem: $(OBJDIR)\piem.lib $(OBJDIR)\piemr.lib $(OBJDIR)\piemp.lib

pi87: $(OBJDIR)\pi87.lib $(OBJDIR)\pi87r.lib $(OBJDIR)\pi87p.lib


$(OBJDIR)\piem.lib: $(OBJDIR)\piem.obj $(OBJDIR)\emoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\piem.obj + $(OBJDIR)\emoem.obj;

$(OBJDIR)\piemr.lib: $(OBJDIR)\piemr.obj $(OBJDIR)\emoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\piemr.obj + $(OBJDIR)\emoem.obj;

$(OBJDIR)\piemp.lib: $(OBJDIR)\piemp.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\piemp.obj;


$(OBJDIR)\pi87.lib: $(OBJDIR)\pi87.obj $(OBJDIR)\emoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\pi87.obj + $(OBJDIR)\emoem.obj;

$(OBJDIR)\pi87r.lib: $(OBJDIR)\pi87r.obj $(OBJDIR)\emoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\pi87r.obj + $(OBJDIR)\emoem.obj;

$(OBJDIR)\pi87p.lib: $(OBJDIR)\pi87p.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\pi87p.obj;


$(OBJDIR)\piem.obj: $(EMASM)
    $(ASM) $(IBMFLAGS) -DDOS5 $(SRCDIR)\emulator.asm, $@;

$(OBJDIR)\piemr.obj: $(EMASM)
    $(ASM) $(IBMFLAGS) $(SRCDIR)\emulator.asm, $@;

$(OBJDIR)\piemp.obj: $(EMASM)
    $(ASM) $(IBMFLAGS) -DDOS5only $(SRCDIR)\emulator.asm, $@;

$(OBJDIR)\pi87.obj: $(EMASM)
    $(ASM) $(IBMFLAGS) -DDOS5 $(SRCDIR)\emu8087.asm, $@;

$(OBJDIR)\pi87r.obj: $(EMASM)
    $(ASM) $(IBMFLAGS) $(SRCDIR)\emu8087.asm, $@;

$(OBJDIR)\pi87p.obj: $(EMASM)
    $(ASM) $(IBMFLAGS) -DDOS5only $(SRCDIR)\emu8087.asm, $@;



###############################################################################
#
#
#   This is how to build the multi thread version of the emulator
#
###############################################################################


MTFLAGS = -DMTHREAD -DDOS5only

emmt: $(OBJDIR)\emmt.lib $(OBJDIR)\87mt.lib



$(OBJDIR)\emmt.lib: $(OBJDIR)\emmt.obj $(OBJDIR)\emds.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\emmt.obj + $(OBJDIR)\emds.obj;

$(OBJDIR)\87mt.lib: $(OBJDIR)\87mt.obj $(OBJDIR)\emds.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\87mt.obj + $(OBJDIR)\emds.obj;


$(OBJDIR)\emmt.obj: $(EMASM)
    $(ASM) $(MTFLAGS) $(SRCDIR)\emulator.asm, $@;

$(OBJDIR)\87mt.obj: $(EMASM)
    $(ASM) $(MTFLAGS) $(SRCDIR)\emu8087.asm, $@;

$(OBJDIR)\emds.obj: $(SRCDIR)\emds.asm
    $(ASM) $(SRCDIR)\emds.asm, $@;





###############################################################################
#
#
#   This is how to build the front end emulators
#
###############################################################################


FRONTENDFLAGS = -Dfrontend

frontend: $(OBJDIR)\feemr.obj $(OBJDIR)\feem.obj $(OBJDIR)\feemp.obj


$(OBJDIR)\feem.obj: $(EMASM)
    $(ASM) $(FRONTENDFLAGS) -DDOS5 $(SRCDIR)\emulator.asm, $@;

$(OBJDIR)\feemr.obj: $(EMASM)
    $(ASM) $(FRONTENDFLAGS) $(SRCDIR)\emulator.asm, $@;

$(OBJDIR)\feemp.obj: $(EMASM)
    $(ASM) $(FRONTENDFLAGS) -DDOS5only $(SRCDIR)\emulator.asm, $@;



###############################################################################
#
#
#   This is how to build fwait polling versions of the emulators
#	ie with fwait polling
#	   no IBM bios check
#
#
###############################################################################


POLLINGFLAGS = -DPOLLING

pem: $(OBJDIR)\pem.lib $(OBJDIR)\pemr.lib $(OBJDIR)\pemp.lib
p87: $(OBJDIR)\p87.lib $(OBJDIR)\p87r.lib $(OBJDIR)\p87p.lib


$(OBJDIR)\pem.lib: $(OBJDIR)\pem.obj $(OBJDIR)\emoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\pem.obj + $(OBJDIR)\emoem.obj;

$(OBJDIR)\pemr.lib: $(OBJDIR)\pemr.obj $(OBJDIR)\emoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\pemr.obj + $(OBJDIR)\emoem.obj;

$(OBJDIR)\pemp.lib: $(OBJDIR)\pemp.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\pemp.obj;


$(OBJDIR)\p87.lib: $(OBJDIR)\p87.obj $(OBJDIR)\emoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\p87.obj + $(OBJDIR)\emoem.obj;

$(OBJDIR)\p87r.lib: $(OBJDIR)\p87r.obj $(OBJDIR)\emoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\p87r.obj + $(OBJDIR)\emoem.obj;

$(OBJDIR)\p87p.lib: $(OBJDIR)\p87p.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\p87p.obj;


$(OBJDIR)\pem.obj: $(EMASM)
    $(ASM) $(POLLINGFLAGS) -DDOS5 $(SRCDIR)\emulator.asm, $@;

$(OBJDIR)\pemr.obj: $(EMASM)
    $(ASM) $(POLLINGFLAGS) $(SRCDIR)\emulator.asm, $@;

$(OBJDIR)\pemp.obj: $(EMASM)
    $(ASM) $(POLLINGFLAGS) -DDOS5only $(SRCDIR)\emulator.asm, $@;

$(OBJDIR)\p87.obj: $(EMASM)
    $(ASM) $(POLLINGFLAGS) -DDOS5 $(SRCDIR)\emu8087.asm, $@;

$(OBJDIR)\p87r.obj: $(EMASM)
    $(ASM) $(POLLINGFLAGS) $(SRCDIR)\emu8087.asm, $@;

$(OBJDIR)\p87p.obj: $(EMASM)
    $(ASM) $(POLLINGFLAGS) -DDOS5only $(SRCDIR)\emu8087.asm, $@;




###############################################################################
#
#
#   This is how to build the QC emulator
#	ie stand alone
#	   no control c hooking
#
###############################################################################


QCFLAGS  = -DSTANDALONE -D_NO87INSTALL -D_NOCTRLC

qc: $(OBJDIR)\sanemr.lib


$(OBJDIR)\sanemr.lib: $(OBJDIR)\saemr.obj $(OBJDIR)\anemoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\saemr.obj + $(OBJDIR)\anemoem.obj;



$(OBJDIR)\saemr.obj: $(EMASM)
    $(ASM) $(QCFLAGS) $(SRCDIR)\emulator.asm, $@;

$(OBJDIR)\anemoem.obj: $(SRCDIR)\emoem.asm
    $(ASM) $(QCFLAGS) $(SRCDIR)\emoem.asm, $@;


###############################################################################
#
#
#   This is how to build the BASIC interpreter's emulators
#	ie fwait polling
#	   IBM bios check
#	   no control c hooking
#
#	    Note. Basic also uses the piem?.lib and pi87?.lib
#
###############################################################################


BASICINTFLAGS = -D_NOCTRLC

basici: $(OBJDIR)\pinemr.lib $(OBJDIR)\pin87r.lib


$(OBJDIR)\pinemr.lib: $(OBJDIR)\piemr.obj $(OBJDIR)\nemoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\piemr.obj + $(OBJDIR)\nemoem.obj;

$(OBJDIR)\pin87r.lib: $(OBJDIR)\pi87r.obj $(OBJDIR)\nemoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\pi87r.obj + $(OBJDIR)\nemoem.obj;


$(OBJDIR)\nemoem.obj: $(SRCDIR)\emoem.asm
    $(ASM) $(BASICINTFLAGS) $(SRCDIR)\emoem.asm, $@;




###############################################################################
#
#
#   This is how to build the BASICJ interpreter's emulators
#	ie fwait polling
#	   no control c hooking
#
#	    Note. Basicj also uses the pem?.lib and p87?.lib
#
###############################################################################


basicij: $(OBJDIR)\pnemr.lib $(OBJDIR)\pn87r.lib


$(OBJDIR)\pnemr.lib: $(OBJDIR)\pemr.obj $(OBJDIR)\nemoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\pemr.obj + $(OBJDIR)\nemoem.obj;

$(OBJDIR)\pn87r.lib: $(OBJDIR)\p87r.obj $(OBJDIR)\nemoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\p87r.obj + $(OBJDIR)\nemoem.obj;


###############################################################################
#
#
#   This is how to build fwait polling versions of the small emulators
#   with limited instructions.	(for BASIC)
#
#	ie with fwait polling
#	   with limited instructions
#	   no IBM bios check
#
#
###############################################################################


SMALL_POLLING_FLAGS = -DPOLLING -DSMALL_EMULATOR

psem: $(OBJDIR)\psem.lib $(OBJDIR)\psemr.lib $(OBJDIR)\psemp.lib


$(OBJDIR)\psem.lib: $(OBJDIR)\psem.obj $(OBJDIR)\emoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\psem.obj + $(OBJDIR)\emoem.obj;

$(OBJDIR)\psemr.lib: $(OBJDIR)\psemr.obj $(OBJDIR)\emoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\psemr.obj + $(OBJDIR)\emoem.obj;

$(OBJDIR)\psemp.lib: $(OBJDIR)\psemp.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\psemp.obj;


$(OBJDIR)\psem.obj: $(EMASM)
    $(ASM) $(SMALL_POLLING_FLAGS) -DDOS5 $(SRCDIR)\emulator.asm, $@;

$(OBJDIR)\psemr.obj: $(EMASM)
    $(ASM) $(SMALL_POLLING_FLAGS) $(SRCDIR)\emulator.asm, $@;

$(OBJDIR)\psemp.obj: $(EMASM)
    $(ASM) $(SMALL_POLLING_FLAGS) -DDOS5only $(SRCDIR)\emulator.asm, $@;



###############################################################################
#
#
#   This is how to build fwait polling versions of the small emulators
#   with limited instructions and IBM bios checks. (for BASIC)
#
#	ie with fwait polling
#	   with limited instructions
#	   with IBM bios check
#
#
###############################################################################


SMALL_IBM_FLAGS = -DPOLLING -DPCDOS -DSMALL_EMULATOR

pisem: $(OBJDIR)\pisem.lib $(OBJDIR)\pisemr.lib $(OBJDIR)\pisemp.lib


$(OBJDIR)\pisem.lib: $(OBJDIR)\pisem.obj $(OBJDIR)\emoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\pisem.obj + $(OBJDIR)\emoem.obj;

$(OBJDIR)\pisemr.lib: $(OBJDIR)\pisemr.obj $(OBJDIR)\emoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\pisemr.obj + $(OBJDIR)\emoem.obj;

$(OBJDIR)\pisemp.lib: $(OBJDIR)\pisemp.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\pisemp.obj;


$(OBJDIR)\pisem.obj: $(EMASM)
    $(ASM) $(SMALL_IBM_FLAGS) -DDOS5 $(SRCDIR)\emulator.asm, $@;

$(OBJDIR)\pisemr.obj: $(EMASM)
    $(ASM) $(SMALL_IBM_FLAGS) $(SRCDIR)\emulator.asm, $@;

$(OBJDIR)\pisemp.obj: $(EMASM)
    $(ASM) $(SMALL_IBM_FLAGS) -DDOS5only $(SRCDIR)\emulator.asm, $@;



###############################################################################
#
#
#   This is how to build the emulators with .com file support (or tiny model)
#	ie  .com support
#	    no fwait polling
#	    no IBM bios checks
#
###############################################################################

TINYFLAGS = -D_COM_


emt: $(OBJDIR)\emt.lib $(OBJDIR)\emtr.lib

87t: $(OBJDIR)\87t.lib $(OBJDIR)\87tr.lib


$(OBJDIR)\emt.lib: $(OBJDIR)\emt.obj $(OBJDIR)\emoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\emt.obj + $(OBJDIR)\emoem.obj;

$(OBJDIR)\emtr.lib: $(OBJDIR)\emtr.obj $(OBJDIR)\emoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\emtr.obj + $(OBJDIR)\emoem.obj;

$(OBJDIR)\87t.lib: $(OBJDIR)\87t.obj $(OBJDIR)\emoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\87t.obj + $(OBJDIR)\emoem.obj;

$(OBJDIR)\87tr.lib: $(OBJDIR)\87tr.obj $(OBJDIR)\emoem.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\87tr.obj + $(OBJDIR)\emoem.obj;



$(OBJDIR)\emt.obj: $(EMASM)
    $(ASM) $(TINYFLAGS)  -DDOS5 $(SRCDIR)\emulator.asm, $@;

$(OBJDIR)\emtr.obj: $(EMASM)
    $(ASM) $(TINYFLAGS)  $(SRCDIR)\emulator.asm, $@;

$(OBJDIR)\87t.obj: $(EMASM)
    $(ASM) $(TINYFLAGS)  -DDOS5 $(SRCDIR)\emu8087.asm, $@;

$(OBJDIR)\87tr.obj: $(EMASM)
    $(ASM) $(TINYFLAGS)  $(SRCDIR)\emu8087.asm, $@;



###############################################################################
#
#
#   This is how to build the special verison of emmt.lib for SQL.  The only
#   difference between the normal emmt.lib is that this verison always gets
#   a new CS alias to the stack segment when an exception occurs.  This lets
#   the SQL swap stacks.
#
###############################################################################


MT_SQL_FLAGS = -DMTHREAD -DDOS5only -DSQL_EMMT

emmtsql: $(OBJDIR)\emmtsql.lib


$(OBJDIR)\emmtsql.lib: $(OBJDIR)\emmtsql.obj $(OBJDIR)\emds.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\emmtsql.obj + $(OBJDIR)\emds.obj;


$(OBJDIR)\emmtsql.obj: $(EMASM)
    $(ASM) $(MT_SQL_FLAGS) $(SRCDIR)\emulator.asm, $@;



###############################################################################
#
#
#   This is how to build the Windows emulator.
#
###############################################################################


WINFLAGS = -DPOLLING -DWINDOWS -D_NOCTRLC -DPCDOS


win87em: $(OBJDIR)\win87em.dll $(OBJDIR)\win87em.lib


$(OBJDIR)\win87em.ex2: $(OBJDIR)\win87em.obj  $(OBJDIR)\emoemwin.obj \
	$(SRCDIR)\libw.lib  $(SRCDIR)\win87em2.def
    $(LINK) /noi/nod @<<
$(OBJDIR)\win87em.obj+
$(OBJDIR)\emoemwin.obj+

$(OBJDIR)\win87em.ex2
$(OBJDIR)\win87em.ma2/map
$(SRCDIR)\libw.lib+

$(SRCDIR)\win87em2.def;
<<


$(OBJDIR)\win87em.dll: $(OBJDIR)\win87em.obj  $(OBJDIR)\emoemwin.obj \
	$(SRCDIR)\libw.lib  $(SRCDIR)\win87em3.def
    $(LINK) /align:16 /noi/nod @<<
$(OBJDIR)\win87em.obj+
$(OBJDIR)\emoemwin.obj+

$(OBJDIR)\win87em.dll
$(OBJDIR)\win87em.map/map
$(SRCDIR)\libw.lib+

$(SRCDIR)\win87em3.def;
<<
    $(RC) $@


$(OBJDIR)\win87em.lib: $(SRCDIR)\win87em.def $(OBJDIR)\87emstar.obj  \
	    $(OBJDIR)\wfpsig.obj $(OBJDIR)\wfpinit.obj
    $(IMPLIB)  $@  $(SRCDIR)\win87em.def
    $(LIBEXE)  $@ + $(OBJDIR)\87emstar.obj + $(OBJDIR)\wfpsig.obj + $(OBJDIR)\wfpinit.obj;
    erase $(@R).bak

$(OBJDIR)\win87em.obj: $(EMASM)
    $(ASM) $(WINFLAGS) $(SRCDIR)\emulator.asm, $@;

$(OBJDIR)\emoemwin.obj: $(SRCDIR)\emoemwin.asm
    $(ASM) $(WINFLAGS) $(SRCDIR)\emoemwin.asm, $@;

$(OBJDIR)\87emstar.obj: $(SRCDIR)\87emstar.asm
    $(ASM) $(WINFLAGS) $(SRCDIR)\87emstar.asm, $@;

$(OBJDIR)\wfpsig.obj: $(SRCDIR)\wfpsig.asm
    $(ASM) $(WINFLAGS) $(SRCDIR)\wfpsig.asm, $@;

$(OBJDIR)\wfpinit.obj: $(SRCDIR)\wfpinit.asm
    $(ASM) $(WINFLAGS) $(SRCDIR)\wfpinit.asm, $@;



###############################################################################
#
#
#   This is how to build the Quick Pascal emulators.
#
###############################################################################

QPASCALFLAGS = -DQP


emqp: $(OBJDIR)\emqp.lib


$(OBJDIR)\emqp.lib: $(OBJDIR)\emqp.obj $(OBJDIR)\emoemqp.obj
    if exist $@  erase $@
    $(LIBEXE) $@ + $(OBJDIR)\emqp.obj + $(OBJDIR)\emoemqp.obj;



$(OBJDIR)\emqp.obj: $(EMASM)
    $(ASM) $(QPASCALFLAGS)  $(SRCDIR)\emulator.asm, $@;

$(OBJDIR)\emoemqp.obj: $(SRCDIR)\emoemqp.asm
    $(ASM) $(QPASCALFLAGS) $(SRCDIR)\emoemqp.asm, $@;


###############################################################################
#
#   This is how to build emoem.src, the OEM version of emoem.asm.
#
###############################################################################


emoem: $(SRCDIR)\emoem.src

$(SRCDIR)\emoem.src: $(SRCDIR)\emoem.asm
    $(IFSTRIP) -w -xsrc -f $(SRCDIR)\switch.src $(SRCDIR)\emoem.asm