1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-25 15:00:45 -08:00
emacs/mps/code/makefile.jam
Nick Barnes 6a1a360814 Integrate changes from global graphics.
Copied from Perforce
 Change: 30250
 ServerID: perforce.ravenbrook.com
2002-06-18 14:14:55 +01:00

291 lines
8.3 KiB
Text

#
# Makefile for CORE RIP MPS subsystem
#
# $HopeName: SWmps!make:makefile.jam(trunk.11) $
#
# Variant details come before compilation rules
RequiresVariant warning_level : high ;
# RequiresVariant warnings_are_fatal ;
# generic_MPS turns off SW-specific configuration; Non_generic_MPS
# means SW. We do it this way round so that SW is the default. You
# never want to build a generic_MPS variant of SW, only of MPS tests.
ImplementsVariant generic_MPS ;
# Determine which MPS platform code matches this target.
local MPSOS ; local MPSPF ;
switch $(TargetOS) {
case win_32 :
MPSOS = w3 ;
switch $(TargetArch) {
case pentium : MPSPF = w3i3mv ;
case alpha : MPSPF = w3almv ;
case ppc : MPSPF = w3ppmv ;
}
case irix_5 : MPSOS = i5 ; MPSPF = i5m2cc ;
case irix_6 : MPSOS = ia ; MPSPF = iam4cc ;
case linux_2 : MPSOS = li ; MPSPF = lii4gc ;
case solaris : MPSOS = so ; MPSPF = sos8gc ;
case macos_8 : MPSOS = s7 ; MPSPF = s7ppac ;
case macos_x : MPSOS = xc ; MPSPF = xcppgc ;
}
if ! $(MPSPF) {
Error Cannot determine MPS platform for target $(TargetOS)-$(TargetArch) ;
}
# Set MPS configuration
AddToVar Inherited Local : C-Defines : CONFIG_PF_$(MPSPF:U) ;
AddToVar Inherited Local : C-Defines : CONFIG_PROD_EPCORE
: Variant Non_generic_MPS ;
AddToVar Inherited Local : C-Defines : CONFIG_PROD_MPS
: Variant generic_MPS ;
AddToVar Inherited Local : Suffix : mps : Variant generic_MPS ;
AddToVar Inherited Local : C-Defines : CONFIG_ASSERT : Build ASSERT ;
AddToVar Inherited Local : C-Defines : CONFIG_DEBUG : Build DEBUG ;
# Compilation rules
DependsOn all : mps ;
# C-IncludeExportDirectories
# : .. ;
AddToVar Local : VariantMPSsources
: prmcan.c protsw.c ssan.c than.c
mpsioan.c poolepdl.c poolepvm.c
: Variant Non_generic_MPS ;
switch $(MPSPF) {
case w3i3mv :
AddToVar Local : VariantMPSsources
: lockw3.c prmci3w3.c proti3.c protw3.c spi3.c ssw3i3.c thw3i3.c
mpsiw3.c
: Variant generic_MPS ;
AddToVar Local : VariantMPSsources : vmw3.c ;
case w3ppmv :
AddToVar Local : VariantMPSsources
: lockw3.c prmcan.c protw3.c span.c ssan.c than.c
mpsiw3.c
: Variant generic_MPS ;
AddToVar Local : VariantMPSsources : vmw3.c ;
case w3almv :
AddToVar Local : VariantMPSsources
: lockw3.c prmcan.c protw3.c span.c ssan.c than.c
mpsiw3.c
: Variant generic_MPS ;
AddToVar Local : VariantMPSsources : vmw3.c ;
case sos8gc :
AddToVar Local : VariantMPSsources
: lockan.c prmcan.c protso.c span.c sssus8.c than.c
: Variant generic_MPS ;
AddToVar Local : VariantMPSsources : vmso.c ;
case iam4cc :
AddToVar Local : VariantMPSsources
: lockan.c prmcan.c protan.c span.c ssan.c than.c
: Variant generic_MPS ;
AddToVar Local : VariantMPSsources : vmi5.c ;
case lii4gc :
AddToVar Local : VariantMPSsources
: lockli.c prmci3li.c protli.c protlii3.c proti3.c pthrdext.c
span.c sslii3.c thlii4.c
: Variant generic_MPS ;
AddToVar Local : VariantMPSsources : vmli.c ;
AddToVar Local Inherited : C-Defines : _REENTRANT : Variant generic_MPS ;
case s7ppac :
AddToVar Local : VariantMPSsources
: lockan.c prmcan.c protan.c span.c ssan.c than.c
: Variant generic_MPS ;
AddToVar Local : VariantMPSsources : vman.c ;
case xcppgc :
AddToVar Local : VariantMPSsources
: lockan.c prmcan.c protan.c span.c ssan.c than.c
: Variant generic_MPS ;
AddToVar Local : VariantMPSsources : vmxc.c ;
case * :
Error Undefined MPS platform ;
}
Library mps :
$(VariantMPSsources)
arena.c
arenacl.c
arenavm.c
boot.c
bt.c
buffer.c
cbs.c
dbgpool.c
dbgpooli.c
event.c
format.c
global.c
ld.c
locus.c
message.c
meter.c
mpm.c
mpsi.c
pool.c
poolabs.c
poolamc.c
poolams.c
poolamsi.c
poolawl.c
poollo.c
poolmfs.c
poolmrg.c
poolmv.c
poolmvff.c
poolsnc.c
protocol.c
ref.c
reserv.c
ring.c
root.c
sac.c
seg.c
shield.c
splay.c
trace.c
tract.c
version.c
walk.c
;
# Auxiliary tools
AddToVar Local : VariantPlinthSources : mpsioan.c : Variant generic_MPS ;
Library plinth :
$(VariantPlinthSources)
mpsliban.c
;
Executable eventcnv : eventcnv.c eventpro.c table.c ;
Executable replay
: replay.c eventrep.c eventpro.c table.c mpsliban.c fmtpstst.c ;
C-LinkWithLibraries replay : mps testlib ;
# Test files
# testrun is the target for building and running all tests.
FloatingDepends testrun ;
# testrun1 is an intermediate target required by a bug in GenericTarget.
DependsOn testrun : testrun1 ;
local testTarget ; MakeGristed testTarget : testrun : $(CurrentPath) ;
local testTarget1 ; MakeGristed testTarget1 : testrun1 : $(CurrentPath) ;
NOTFILE $(testTarget) $(testTarget1) ;
ALWAYS $(testTarget) $(testTarget1) ;
rule TestExecutable {
# TestExecutable executable : additional_sources : variant_for_testrun ;
Executable $(1) : $(1).c $(2).c ;
if $(MPSPF) in sos8gc {
# We'd like to do
# C-Exec-Linker_Libraries on $(1) += -lm ;
# but for some reason, it doesn't work. As long as there's nothing
# in this file after the TestExecutables, this AddToVar is harmless.
AddToVar Local : C-Exec-Linker_Libraries : -lm ;
}
C-LinkWithLibraries $(1) :
mps
plinth
testlib
;
# Parse the variant by using AddToVar.
AddToVar Local : runTest : yes : Variant $(3) ;
if $(runTest) = yes {
GenericTarget testrun1 : $(1:S=$(C-Exec-Suffix)) :
# There must be a space after $>, or GenericTarget won't replace it.
echo ...TESTING $> ...$(NewLine)
$> ;
}
ReplaceVar Local : runTest : : Variant $(3) ;
}
Library testlib :
testlib.c
;
TestExecutable abqtest : : mv2_broken ;
TestExecutable amcss : fmtdy fmtdytst : generic_MPS ;
TestExecutable amcsshe : fmthe : generic_MPS ;
TestExecutable amcssth : fmtdy fmtdytst : pthreads ;
TestExecutable amsss : fmtdy fmtdytst : generic_MPS ;
TestExecutable apss ;
TestExecutable arenacv ;
TestExecutable btcv ;
TestExecutable bttest : : interactive_test ;
TestExecutable cbstest ;
TestExecutable epdss : : Non_generic_MPS ;
TestExecutable epvmss : fmtpstst : Non_generic_MPS ;
TestExecutable finalcv : fmtdy fmtdytst ;
TestExecutable locbwcss ;
TestExecutable lockcov ;
TestExecutable lockutw3 : : Windows ;
TestExecutable locusss ;
TestExecutable locv ;
TestExecutable messtest ;
TestExecutable mpmss ;
TestExecutable mpsicv : fmtdy fmtdytst ;
TestExecutable mv2test : poolmv2 abq : mv2_broken ;
TestExecutable poolncv : pooln ;
TestExecutable qs : : generic_MPS ;
TestExecutable sacss ;
TestExecutable segsmss : fmtdy fmtdytst : generic_MPS ;
TestExecutable teletest : : interactive_test ;
# $Log: make:makefile.jam,v $
# Revision 1.11 2002/05/21 13:22:47 pekka
# Remove assert.c (change.mps.epcore.chub.160200)
#
# Revision 1.10 2002/05/09 17:50:03 pekka
# Add testrun
#
# Revision 1.9 2002/02/15 19:14:04 pekka
# Remove .s file on Solaris
#
# Revision 1.8 2002/02/12 14:45:00 pekka
# [Bug #24034]
# On Solaris, you have add -lm
#
# Revision 1.7 2002/02/07 17:13:52 pekka
# [Bug #24034]
# clean up
#
# Revision 1.6 2002/01/09 17:11:45 pekka
# Add poolamsi.c
#
# Revision 1.5 2002/01/04 17:25:06 pekka
# Add dbgpooli.c
#
# Revision 1.4 2002/01/02 19:50:04 pekka
# Clarify comment on generic_MPS; add some more tests
#
# Revision 1.3 2001/12/21 14:34:43 pekka
# Add missing Linux stuff
#
# Revision 1.2 2001/12/18 21:08:32 pekka
# Warnings can't be fatal yet
#
# Revision 1.1 2001/12/18 21:03:44 pekka
# new unit
# New makefile for building MPS with Jam Doughtnut
#