haiku/src/libs/stdc++/Jamfile
Oliver Tappe f2ced752a0 - added implementation of stdc++ for haiku
- this differs slightly from the one that lives in buildtools/gcc as it
  has been "ported" to the newer libio that haiku uses as part of its own
  libroot


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9906 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-10 20:33:33 +00:00

195 lines
4.6 KiB
Plaintext

SubDir OBOS_TOP src libs stdc++ ;
local savedCcFlags = $(CCFLAGS) ;
CCFLAGS = ;
local savedC++Flags = $(C++FLAGS) ;
C++FLAGS = ;
# define header-searchpaths all by ourselves, as including system headers
# messes things up:
# use the following paths to make use of the headers contained in glibc,
# but this doesn't work yet, as the libio we are using here and the one
# contained in our libroot are different versions.
HDRS =
[ FDirName $(OBOS_TOP) src kernel libroot posix glibc libio ]
[ FDirName $(OBOS_TOP) src kernel libroot posix glibc stdlib ]
[ FDirName $(OBOS_TOP) src kernel libroot posix glibc stdio-common ]
[ FDirName $(OBOS_TOP) src kernel libroot posix glibc include ]
[ FDirName $(OBOS_TOP) src kernel libroot posix glibc include arch x86 ]
[ FDirName $(OBOS_TOP) headers cpp ]
[ FDirName $(OBOS_TOP) src kernel libroot posix glibc ]
[ FDirName $(OBOS_TOP) headers posix ]
[ FDirName $(OBOS_TOP) headers os ]
[ FDirName $(OBOS_TOP) headers os kernel ]
[ FDirName $(OBOS_TOP) headers os storage ]
[ FDirName $(OBOS_TOP) headers os support ]
$(LIBGCC_DIR)/include ; # such that include_next will work
# some source-files generate several different objects, depending on
# the defines that are used during the compilation call.
# So we explicitly state each of these (with their respective defines):
rule GenerateStdC++Object
{
# GenerateStdC++Object <object> : <source> : <defines> ;
local object = [ FGristFiles $(1) ] ;
local sources = $(2) ;
local defines = $(3) ;
local source ;
for source in [ FGristFiles $(sources) ] {
CCFLAGS on $(source:S=$(SUFOBJ)) = $(savedCcFlags) -Wno-missing-prototypes ;
C++FLAGS on $(source:S=$(SUFOBJ)) = $(savedC++Flags) -nostdinc++ -fno-implicit-templates
-Wno-sign-compare -fpic ;
}
SetupObjectsDir ;
MakeLocateObjects $(object) ;
if $(object) {
Object $(object) : $(sources) ;
} else {
Objects $(sources) ;
}
if $(defines) {
if $(object) {
ObjectDefines $(object) : $(defines) ;
} else {
ObjectDefines $(sources) : $(defines) ;
}
}
}
GenerateStdC++Object cstrio.o
: sinst.cc
: C EXTRACT INSERT GETLINE
;
GenerateStdC++Object cstrmain.o
: sinst.cc
: C REP MAIN TRAITS ADDSS ADDPS ADDCS ADDSP ADDSC EQSS EQPS EQSP NESS NEPS
NESP LTSS LTPS LTSP GTSS GTPS GTSP LESS LEPS LESP GESS GEPS GESP ;
GenerateStdC++Object dcomio.o
: cinst.cc
: D EXTRACT INSERT ;
GenerateStdC++Object dcomplex.o
: cinst.cc
: D MAIN ADDCC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC DIVCF
DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR CONJ NORM COS
COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT ;
GenerateStdC++Object fcomio.o
: cinst.cc
: F EXTRACT INSERT ;
GenerateStdC++Object fcomplex.o
: cinst.cc
: F MAIN ADDCC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC DIVCF
DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR CONJ NORM COS
COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT ;
GenerateStdC++Object ldcomio.o
: cinst.cc
: LD EXTRACT INSERT ;
GenerateStdC++Object ldcomplex.o
: cinst.cc
: LD MAIN ADDCC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC DIVCF
DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR CONJ NORM COS
COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT ;
# generate standard objects through our new rule, too:
GenerateStdC++Object
: cmathi.cc
cstdlibi.cc
cstringi.cc
stdexcepti.cc ;
# c++ parts from libio:
GenerateStdC++Object
: builtinbuf.cc
editbuf.cc
filebuf.cc
fstream.cc
indstream.cc
ioassign.cc
ioextend.cc
iomanip.cc
iostream.cc
isgetline.cc
isgetsb.cc
isscan.cc
osform.cc
parsestream.cc
pfstream.cc
PlotFile.cc
procbuf.cc
sbform.cc
sbgetline.cc
sbscan.cc
SFile.cc
stdexcepti.cc
stdiostream.cc
stdstrbufs.cc
stdstreams.cc
stlinst.cc
stream.cc
streambuf.cc
strstream.cc ;
# stuff imported from libiberty:
GenerateStdC++Object
: basename.c getpagesize.c insque.c sigsetmask.c strerror.c vfork.c ;
SharedLibraryFromObjects stdc++.r4.so :
basename.o
builtinbuf.o
cmathi.o
cstdlibi.o
cstringi.o
cstrio.o
cstrmain.o
dcomio.o
dcomplex.o
editbuf.o
fcomio.o
fcomplex.o
filebuf.o
fstream.o
getpagesize.o
indstream.o
insque.o
ioassign.o
ioextend.o
iomanip.o
iostream.o
isgetline.o
isgetsb.o
isscan.o
ldcomio.o
ldcomplex.o
osform.o
parsestream.o
pfstream.o
PlotFile.o
procbuf.o
sbform.o
sbgetline.o
sbscan.o
SFile.o
sigsetmask.o
stdexcepti.o
stdiostream.o
stdstrbufs.o
stdstreams.o
stlinst.o
stream.o
streambuf.o
strerror.o
strstream.o
vfork.o ;
CCFLAGS = $(savedCcFlags) ;
C++FLAGS = $(savedC++Flags) ;