asm/bc.mak
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sat, 01 Sep 2018 00:18:23 +0100
changeset 51 bac3aa0c73ef
parent 24 5aace704e3c8
permissions -rw-r--r--
UDIS86: fix `UDIS86Instruction >> branchTarget` to handle indirect branch using memory argument ...such as: jmp 0x0($rdx) In that case, branch target address is not statically known so `nil` is returned. Callers must handle this.

# $Header$
#
# DO NOT EDIT
# automagically generated from the projectDefinition: jv_dragonfly_asm.
#
# Warning: once you modify this file, do not rerun
# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
#
# Notice, that the name bc.mak is historical (from times, when only borland c was supported).
# This file contains make rules for the win32 platform using either borland-bcc or visual-c.
# It shares common definitions with the unix-make in Make.spec.
# The bc.mak supports the following targets:
#    bmake         - compile all st-files to a classLib (dll)
#    bmake clean   - clean all temp files
#    bmake clobber - clean all
#
# Historic Note:
#  this used to contain only rules to make with borland
#    (called via bmake, by "make.exe -f bc.mak")
#  this has changed; it is now also possible to build using microsoft visual c
#    (called via vcmake, by "make.exe -f bc.mak -DUSEVC")
#
TOP=..\..\..\stx
INCLUDE_TOP=$(TOP)\..



!INCLUDE $(TOP)\rules\stdHeader_bc

!INCLUDE Make.spec

LIBNAME=libjv_dragonfly_asm
MODULE_PATH=dragonfly\asm
RESFILES=asm.$(RES)



LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\libbasic
LOCALDEFINES=

STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES)  -varPrefix=$(LIBNAME)
LOCALLIBS=

OBJS= $(COMMON_OBJS) $(WIN32_OBJS)

ALL::  classLibRule

classLibRule: $(OUTDIR) $(OUTDIR)$(LIBNAME).dll

!INCLUDE $(TOP)\rules\stdRules_bc

# build all mandatory prerequisite packages (containing superclasses) for this package
prereq:
	pushd ..\..\..\stx\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "







test: $(TOP)\goodies\builder\reports\NUL
	pushd $(TOP)\goodies\builder\reports & $(MAKE_BAT)
	$(TOP)\goodies\builder\reports\report-runner.bat -D . -r Builder::TestReport -p $(PACKAGE)
        
clean::
	del *.$(CSUFFIX)


# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
$(OUTDIR)AJAssembler.$(O) AJAssembler.$(C) AJAssembler.$(H): AJAssembler.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJCallInfo.$(O) AJCallInfo.$(C) AJCallInfo.$(H): AJCallInfo.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJConstants.$(O) AJConstants.$(C) AJConstants.$(H): AJConstants.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
$(OUTDIR)AJGeneratedCode.$(O) AJGeneratedCode.$(C) AJGeneratedCode.$(H): AJGeneratedCode.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJInstruction.$(O) AJInstruction.$(C) AJInstruction.$(H): AJInstruction.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJLineStream.$(O) AJLineStream.$(C) AJLineStream.$(H): AJLineStream.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJRoutineStackManager.$(O) AJRoutineStackManager.$(C) AJRoutineStackManager.$(H): AJRoutineStackManager.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)jv_dragonfly_asm.$(O) jv_dragonfly_asm.$(C) jv_dragonfly_asm.$(H): jv_dragonfly_asm.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR)
$(OUTDIR)AJAlignmentInstruction.$(O) AJAlignmentInstruction.$(C) AJAlignmentInstruction.$(H): AJAlignmentInstruction.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJConstants.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJInstruction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJCdeclCallInfo.$(O) AJCdeclCallInfo.$(C) AJCdeclCallInfo.$(H): AJCdeclCallInfo.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJCallInfo.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJData.$(O) AJData.$(C) AJData.$(H): AJData.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJConstants.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJInstruction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJInstructionDecoration.$(O) AJInstructionDecoration.$(C) AJInstructionDecoration.$(H): AJInstructionDecoration.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJInstruction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJJumpInstruction.$(O) AJJumpInstruction.$(C) AJJumpInstruction.$(H): AJJumpInstruction.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJInstruction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJJumpLabel.$(O) AJJumpLabel.$(C) AJJumpLabel.$(H): AJJumpLabel.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJInstruction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJOperand.$(O) AJOperand.$(C) AJOperand.$(H): AJOperand.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJConstants.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJReleaseTemps.$(O) AJReleaseTemps.$(C) AJReleaseTemps.$(H): AJReleaseTemps.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJInstruction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJReserveTemp.$(O) AJReserveTemp.$(C) AJReserveTemp.$(H): AJReserveTemp.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJInstruction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJRoutineEpilogue.$(O) AJRoutineEpilogue.$(C) AJRoutineEpilogue.$(H): AJRoutineEpilogue.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJInstruction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJRoutinePrologue.$(O) AJRoutinePrologue.$(C) AJRoutinePrologue.$(H): AJRoutinePrologue.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJInstruction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJStackInstruction.$(O) AJStackInstruction.$(C) AJStackInstruction.$(H): AJStackInstruction.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJInstruction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJStdCallCallInfo.$(O) AJStdCallCallInfo.$(C) AJStdCallCallInfo.$(H): AJStdCallCallInfo.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJCallInfo.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJx86Instruction.$(O) AJx86Instruction.$(C) AJx86Instruction.$(H): AJx86Instruction.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJInstruction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJx86Registers.$(O) AJx86Registers.$(C) AJx86Registers.$(H): AJx86Registers.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJConstants.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
$(OUTDIR)AJBaseReg.$(O) AJBaseReg.$(C) AJBaseReg.$(H): AJBaseReg.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJConstants.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJOperand.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJCallArgument.$(O) AJCallArgument.$(C) AJCallArgument.$(H): AJCallArgument.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJInstruction.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJStackInstruction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJCallCleanup.$(O) AJCallCleanup.$(C) AJCallCleanup.$(H): AJCallCleanup.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJInstruction.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJStackInstruction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJImmediate.$(O) AJImmediate.$(C) AJImmediate.$(H): AJImmediate.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJOperand.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJMem.$(O) AJMem.$(C) AJMem.$(H): AJMem.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJConstants.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJOperand.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJx64Instruction.$(O) AJx64Instruction.$(C) AJx64Instruction.$(H): AJx64Instruction.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJInstruction.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJx86Instruction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJx86Assembler.$(O) AJx86Assembler.$(C) AJx86Assembler.$(H): AJx86Assembler.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJAssembler.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJConstants.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJx86Registers.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJx86InstructionDescription.$(O) AJx86InstructionDescription.$(C) AJx86InstructionDescription.$(H): AJx86InstructionDescription.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJConstants.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJx86Registers.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJx86JumpInstruction.$(O) AJx86JumpInstruction.$(C) AJx86JumpInstruction.$(H): AJx86JumpInstruction.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJInstruction.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJJumpInstruction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJMMRegister.$(O) AJMMRegister.$(C) AJMMRegister.$(H): AJMMRegister.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJBaseReg.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJOperand.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJRegister.$(O) AJRegister.$(C) AJRegister.$(H): AJRegister.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJBaseReg.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJConstants.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJOperand.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJx64Assembler.$(O) AJx64Assembler.$(C) AJx64Assembler.$(H): AJx64Assembler.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJAssembler.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJx86Assembler.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJx86Registers.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJx64InstructionDescription.$(O) AJx64InstructionDescription.$(C) AJx64InstructionDescription.$(H): AJx64InstructionDescription.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJx86InstructionDescription.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJx64JumpInstruction.$(O) AJx64JumpInstruction.$(C) AJx64JumpInstruction.$(H): AJx64JumpInstruction.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJInstruction.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJJumpInstruction.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJx86JumpInstruction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJx87Register.$(O) AJx87Register.$(C) AJx87Register.$(H): AJx87Register.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJBaseReg.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJConstants.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJOperand.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJxMMRegister.$(O) AJxMMRegister.$(C) AJxMMRegister.$(H): AJxMMRegister.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJBaseReg.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJOperand.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJx86GPRegister.$(O) AJx86GPRegister.$(C) AJx86GPRegister.$(H): AJx86GPRegister.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJBaseReg.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJOperand.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJRegister.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJx86Registers.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJx64RipRegister.$(O) AJx64RipRegister.$(C) AJx64RipRegister.$(H): AJx64RipRegister.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJBaseReg.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJOperand.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJRegister.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJx86GPRegister.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJx86Registers.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libbasic\ArithmeticValue.$(H) $(INCLUDE_TOP)\stx\libbasic\Boolean.$(H) $(INCLUDE_TOP)\stx\libbasic\False.$(H) $(INCLUDE_TOP)\stx\libbasic\Integer.$(H) $(INCLUDE_TOP)\stx\libbasic\Magnitude.$(H) $(INCLUDE_TOP)\stx\libbasic\Number.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\PeekableStream.$(H) $(INCLUDE_TOP)\stx\libbasic\PositionableStream.$(H) $(INCLUDE_TOP)\stx\libbasic\Stream.$(H) $(INCLUDE_TOP)\stx\libbasic\True.$(H) $(INCLUDE_TOP)\stx\libbasic\WriteStream.$(H) $(STCHDR)

# ENDMAKEDEPEND --- do not remove this line

# **Must be at end**

# Enforce recompilation of package definition class if Mercurial working
# copy state changes. Together with --guessVersion it ensures that package
# definition class always contains correct binary revision string.
!IFDEF HGROOT
$(OUTDIR)jv_dragonfly_asm.$(O): $(HGROOT)\.hg\dirstate
!ENDIF