c1/bc.mak
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 12 Feb 2016 11:51:14 +0000
changeset 17 54798ae989cc
parent 16 6575d09a52b5
child 18 81ed8ce0852f
permissions -rw-r--r--
Initial work on LLVM-based C1 compiler
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
15
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
# $Header$
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
#
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
# DO NOT EDIT
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
# automagically generated from the projectDefinition: jv_dragonfly_c1.
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
#
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
# Warning: once you modify this file, do not rerun
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
#
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
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).
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
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.
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
# It shares common definitions with the unix-make in Make.spec.
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
# The bc.mak supports the following targets:
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
#    bmake         - compile all st-files to a classLib (dll)
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
#    bmake clean   - clean all temp files
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
#    bmake clobber - clean all
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
#
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
# Historic Note:
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
#  this used to contain only rules to make with borland
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
#    (called via bmake, by "make.exe -f bc.mak")
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
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
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
#    (called via vcmake, by "make.exe -f bc.mak -DUSEVC")
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
#
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
TOP=..\..\..\stx
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
INCLUDE_TOP=$(TOP)\..
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
!INCLUDE $(TOP)\rules\stdHeader_bc
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
!INCLUDE Make.spec
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
LIBNAME=libjv_dragonfly_c1
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
MODULE_PATH=dragonfly\c1
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
RESFILES=c1.$(RES)
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
17
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    38
LOCALINCLUDES= -I$(INCLUDE_TOP)\jv\dragonfly -I$(INCLUDE_TOP)\jv\llvm_s -I$(INCLUDE_TOP)\stx\libbasic
15
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
LOCALDEFINES=
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES)  -varPrefix=$(LIBNAME)
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
LOCALLIBS=
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
OBJS= $(COMMON_OBJS) $(WIN32_OBJS)
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
ALL::  classLibRule
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
classLibRule: $(OUTDIR) $(OUTDIR)$(LIBNAME).dll
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
!INCLUDE $(TOP)\rules\stdRules_bc
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
# build all mandatory prerequisite packages (containing superclasses) for this package
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
prereq:
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
	pushd ..\..\..\stx\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
17
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    55
	pushd .. & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
16
6575d09a52b5 Added C1LLVMMCJITMemoryManager, a memory manager for LLVM which uses Smalltalk/X code object...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
    56
	pushd ..\..\llvm_s & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
15
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
test: $(TOP)\goodies\builder\reports\NUL
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
	pushd $(TOP)\goodies\builder\reports & $(MAKE_BAT)
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
	$(TOP)\goodies\builder\reports\report-runner.bat -D . -r Builder::TestReport -p $(PACKAGE)
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
        
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
clean::
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
	del *.$(CSUFFIX)
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
# 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: 16
diff changeset
    73
$(OUTDIR)DragonFly__C1LLVMMCJITMemoryManager.$(O) DragonFly__C1LLVMMCJITMemoryManager.$(C) DragonFly__C1LLVMMCJITMemoryManager.$(H): DragonFly__C1LLVMMCJITMemoryManager.st $(INCLUDE_TOP)\jv\llvm_s\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMMCJITMemoryManager.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    74
$(OUTDIR)DragonFly__C1LLVMMTypes.$(O) DragonFly__C1LLVMMTypes.$(C) DragonFly__C1LLVMMTypes.$(H): DragonFly__C1LLVMMTypes.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: 16
diff changeset
    75
$(OUTDIR)jv_dragonfly_c1.$(O) jv_dragonfly_c1.$(C) jv_dragonfly_c1.$(H): jv_dragonfly_c1.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR)
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    76
$(OUTDIR)DragonFly__C1Compiler.$(O) DragonFly__C1Compiler.$(C) DragonFly__C1Compiler.$(H): DragonFly__C1Compiler.st $(INCLUDE_TOP)\jv\dragonfly\VMData.$(H) $(INCLUDE_TOP)\jv\dragonfly\VMOffsets.$(H) $(INCLUDE_TOP)\jv\dragonfly\c1\DragonFly__C1LLVMMTypes.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMIntPredicate.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
15
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
# ENDMAKEDEPEND --- do not remove this line
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
# **Must be at end**
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
# Enforce recompilation of package definition class if Mercurial working
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
# copy state changes. Together with --guessVersion it ensures that package
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
# definition class always contains correct binary revision string.
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
!IFDEF HGROOT
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
$(OUTDIR)jv_dragonfly_c1.$(O): $(HGROOT)\.hg\dirstate
eccc20e9c2e1 Added subpackage c1 for LLVM based compiler.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
!ENDIF