195 lines
4.6 KiB
Plaintext
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) ;
|