windows-nt/Source/XPSP1/NT/base/mvdm/wow16/win87em/makefile
2020-09-26 16:20:57 +08:00

720 lines
19 KiB
Makefile

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