mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
719 lines
19 KiB
719 lines
19 KiB
################################################################################
|
|
#
|
|
#
|
|
# 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
|