bc.mak
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 29 Aug 2018 21:32:19 +0100
changeset 50 7f439240d923
parent 27 73e7acbd16ff
permissions -rw-r--r--
UDIS86: fixed crash caused by keeping `ud_t` structure on smalltalk heap ...and this the structure may move. Thisx resulted on hard-to-debug heap corruptions because `ud_t.asm_buf` is initializad to a pointer to `ud_t.asm_buf_int`. Therefore when the bytearray moved, the pointer become invalid and subsequent call to `ud_disassemble()` smashed whatever object happened to be where the bytearray were. The fix is straigtforward, use `ExternalBytes`! Sigh.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
# $Header$
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
#
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
# DO NOT EDIT
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
# automagically generated from the projectDefinition: jv_dragonfly.
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
#
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
# Warning: once you modify this file, do not rerun
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
#
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
# Notice, that the name bc.mak is historical (from times, when only borland c was supported).
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
# This file contains make rules for the win32 platform using either borland-bcc or visual-c.
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
# It shares common definitions with the unix-make in Make.spec.
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
# The bc.mak supports the following targets:
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
#    bmake         - compile all st-files to a classLib (dll)
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
#    bmake clean   - clean all temp files
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
#    bmake clobber - clean all
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
#
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
# Historic Note:
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
#  this used to contain only rules to make with borland
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
#    (called via bmake, by "make.exe -f bc.mak")
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
#  this has changed; it is now also possible to build using microsoft visual c
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
#    (called via vcmake, by "make.exe -f bc.mak -DUSEVC")
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
#
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
TOP=..\..\stx
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
INCLUDE_TOP=$(TOP)\..
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
!INCLUDE $(TOP)\rules\stdHeader_bc
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
!INCLUDE Make.spec
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
LIBNAME=libjv_dragonfly
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
MODULE_PATH=dragonfly
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
RESFILES=dragonfly.$(RES)
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
27
73e7acbd16ff Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 24
diff changeset
    38
LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libcomp
2
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
LOCALDEFINES=
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES)  -varPrefix=$(LIBNAME)
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
LOCALLIBS=
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
OBJS= $(COMMON_OBJS) $(WIN32_OBJS)
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
ALL::  classLibRule
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
classLibRule: $(OUTDIR) $(OUTDIR)$(LIBNAME).dll
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
!INCLUDE $(TOP)\rules\stdRules_bc
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
# build all mandatory prerequisite packages (containing superclasses) for this package
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
prereq:
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
	pushd ..\..\stx\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
test: $(TOP)\goodies\builder\reports\NUL
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
	pushd $(TOP)\goodies\builder\reports & $(MAKE_BAT)
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
	$(TOP)\goodies\builder\reports\report-runner.bat -D . -r Builder::TestReport -p $(PACKAGE)
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
        
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
clean::
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
	del *.$(CSUFFIX)
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
17
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    71
$(OUTDIR)CompiledCodeObjectSectionFormat.$(O) CompiledCodeObjectSectionFormat.$(C) CompiledCodeObjectSectionFormat.$(H): CompiledCodeObjectSectionFormat.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
27
73e7acbd16ff Simple method prologue / epilogue implementation
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 24
diff changeset
    72
$(OUTDIR)VMConstants.$(O) VMConstants.$(C) VMConstants.$(H): VMConstants.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
17
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    73
$(OUTDIR)VMOffsets.$(O) VMOffsets.$(C) VMOffsets.$(H): VMOffsets.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    74
$(OUTDIR)jv_dragonfly.$(O) jv_dragonfly.$(C) jv_dragonfly.$(H): jv_dragonfly.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR)
24
5aace704e3c8 Added some examples showing use of CompiledCodeObject
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    75
$(OUTDIR)CompiledCodeObject.$(O) CompiledCodeObject.$(C) CompiledCodeObject.$(H): CompiledCodeObject.st $(INCLUDE_TOP)\jv\dragonfly\CompiledCodeObjectSectionFormat.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
17
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    76
$(OUTDIR)CompiledCodeObjectSection.$(O) CompiledCodeObjectSection.$(C) CompiledCodeObjectSection.$(H): CompiledCodeObjectSection.st $(INCLUDE_TOP)\jv\dragonfly\CompiledCodeObjectSectionFormat.$(H) $(INCLUDE_TOP)\stx\libbasic\ArrayedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalBytes.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\UninterpretedBytes.$(H) $(STCHDR)
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
    77
$(OUTDIR)VMData.$(O) VMData.$(C) VMData.$(H): VMData.st $(INCLUDE_TOP)\jv\dragonfly\VMOffsets.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
2
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libbasic\CompiledCode.$(H) $(INCLUDE_TOP)\stx\libbasic\ExecutableFunction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
# ENDMAKEDEPEND --- do not remove this line
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
# **Must be at end**
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
# Enforce recompilation of package definition class if Mercurial working
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
# copy state changes. Together with --guessVersion it ensures that package
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
# definition class always contains correct binary revision string.
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
!IFDEF HGROOT
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
$(OUTDIR)jv_dragonfly.$(O): $(HGROOT)\.hg\dirstate
88445baa732f Introduced a CompiledCodeObject - an interface to VM's macine code management.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
!ENDIF