Jamfile for gdb's bfd library.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12099 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
9231a159cf
commit
25c32f636c
185
src/bin/gdb/bfd/Jamfile
Normal file
185
src/bin/gdb/bfd/Jamfile
Normal file
@ -0,0 +1,185 @@
|
||||
SubDir OBOS_TOP src bin gdb bfd ;
|
||||
|
||||
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) include ] ;
|
||||
SubDirHdrs [ FDirName $(OBOS_TOP) src bin gawk intl ] ;
|
||||
# Use gawk's libintl for the time being.
|
||||
# TODO: Put a current version of intl ot src/libs and build a static lib
|
||||
# all interested apps can link against.
|
||||
|
||||
SubDirCcFlags -DHAVE_CONFIG_H -D_GNU_SOURCE ;
|
||||
|
||||
# architecture specific sources
|
||||
local bfdArchSources ;
|
||||
if $(OBOS_ARCH) = x86 {
|
||||
bfdArchSources =
|
||||
cpu-i386.c
|
||||
elf32-i386.c
|
||||
pe-i386.c
|
||||
pei-i386.c
|
||||
;
|
||||
|
||||
ObjectCcFlags archures.c targets.c :
|
||||
-DDEFAULT_VECTOR=bfd_elf32_i386_vec
|
||||
-DSELECT_VECS=\"&bfd_elf32_i386_vec,&i386pe_vec,&i386pei_vec,&bfd_elf32_little_generic_vec,&bfd_elf32_big_generic_vec\"
|
||||
-DSELECT_ARCHITECTURES=\"&bfd_i386_arch\"
|
||||
-DHAVE_bfd_elf32_i386_vec
|
||||
-DHAVE_i386pe_vec
|
||||
-DHAVE_i386pei_vec
|
||||
-DHAVE_bfd_elf32_little_generic_vec
|
||||
-DHAVE_bfd_elf32_big_generic_vec
|
||||
;
|
||||
} else if $(OBOS_ARCH) = ppc {
|
||||
bfdArchSources =
|
||||
cpu-powerpc.c
|
||||
elf32-ppc.c
|
||||
pe-ppc.c
|
||||
pei-ppc.c
|
||||
;
|
||||
# TODO: Check, if this is correct (probably is).
|
||||
# TODO: Add correct CcFlags foor archures.c and targets.c.
|
||||
} # else: architecture not supported by Haiku
|
||||
|
||||
local bfdBaseSources =
|
||||
archive.c
|
||||
archures.c
|
||||
bfd.c
|
||||
bfdio.c
|
||||
bfdwin.c
|
||||
cache.c
|
||||
coffgen.c
|
||||
corefile.c
|
||||
format.c
|
||||
init.c
|
||||
libbfd.c
|
||||
opncls.c
|
||||
reloc.c
|
||||
section.c
|
||||
syms.c
|
||||
targets.c
|
||||
hash.c
|
||||
linker.c
|
||||
srec.c
|
||||
binary.c
|
||||
tekhex.c
|
||||
ihex.c
|
||||
stabs.c
|
||||
stab-syms.c
|
||||
merge.c
|
||||
dwarf2.c
|
||||
simple.c
|
||||
archive64.c
|
||||
;
|
||||
|
||||
local bfdGenericSources =
|
||||
cofflink.c
|
||||
dwarf1.c
|
||||
elf.c
|
||||
elf32.c
|
||||
elf32-gen.c
|
||||
elflink.c
|
||||
elf-eh-frame.c
|
||||
elf-strtab.c
|
||||
;
|
||||
|
||||
local bfdGeneratedSources = peigen.c ;
|
||||
|
||||
local bfdAllSources =
|
||||
$(bfdBaseSources)
|
||||
$(bfdGenericSources)
|
||||
$(bfdArchSources)
|
||||
$(bfdGeneratedSources)
|
||||
;
|
||||
|
||||
StaticLibrary <gdb>bfd :
|
||||
$(bfdAllSources)
|
||||
|
||||
: [ FCurrentObjectsDir ]
|
||||
;
|
||||
|
||||
|
||||
# generate source files/headers
|
||||
|
||||
rule BFDSimpleSed
|
||||
{
|
||||
# BFDSimpleSed <target> : <source> : <sed expression>
|
||||
|
||||
local target = [ FGristFiles $(1) ] ;
|
||||
local source = [ FGristFiles $(2) ] ;
|
||||
|
||||
SED_EXPRESSION on $(target) = $(3) ;
|
||||
|
||||
Depends $(target) : $(source) ;
|
||||
SEARCH on $(source) = $(SEARCH_SOURCE) ;
|
||||
MakeLocate $(target) : $(LOCATE_SOURCE) ;
|
||||
Clean clean : $(target) ;
|
||||
|
||||
BFDSimpleSed1 $(target) : $(source) ;
|
||||
}
|
||||
|
||||
actions BFDSimpleSed1
|
||||
{
|
||||
sed -e $(SED_EXPRESSION) < $(2) > $(1)
|
||||
}
|
||||
|
||||
rule BFDFileSed
|
||||
{
|
||||
# BFDFileSed <target> : <source> : <sed file>
|
||||
|
||||
local target = [ FGristFiles $(1) ] ;
|
||||
local source = [ FGristFiles $(2) ] ;
|
||||
local sedFile = [ FGristFiles $(3) ] ;
|
||||
|
||||
SED_FILE on $(target) = $(sedFile) ;
|
||||
SEARCH on $(sedFile) = $(SEARCH_SOURCE) ;
|
||||
Depends $(target) : $(sedFile) ;
|
||||
|
||||
Depends $(target) : $(source) ;
|
||||
SEARCH on $(source) = $(SEARCH_SOURCE) ;
|
||||
MakeLocate $(target) : $(LOCATE_SOURCE) ;
|
||||
Clean clean : $(target) ;
|
||||
|
||||
BFDFileSed1 $(target) : $(source) ;
|
||||
}
|
||||
|
||||
actions BFDFileSed1 bind SED_FILE
|
||||
{
|
||||
sed -f $(SED_FILE) < $(2) > $(1)
|
||||
}
|
||||
|
||||
rule BFDCopyConfigHeaders
|
||||
{
|
||||
# BFDCopyConfigHeaders <header names> ;
|
||||
local sources = $(1:G=$(SOURCE_GRIST:E)!config) ;
|
||||
|
||||
local source ;
|
||||
for source in $(1) {
|
||||
local target = [ FGristFiles $(source) ] ;
|
||||
File $(target) : $(source) ;
|
||||
SEARCH on $(source) = [ FDirName $(SUBDIR) config-$(OBOS_ARCH) ] ;
|
||||
MakeLocate $(target) : $(LOCATE_SOURCE) ;
|
||||
}
|
||||
}
|
||||
|
||||
local bfdHeadersToCopy =
|
||||
bfd-in3.h
|
||||
bfd.h
|
||||
bfdver.h # could be generated, too, but that'd require several `sed's
|
||||
config.h
|
||||
;
|
||||
|
||||
BFDSimpleSed peigen.c : peXXigen.c : s/XX/pe/g ;
|
||||
BFDSimpleSed elf32-target.h : elfxx-target.h : s/NN/32/g ;
|
||||
BFDFileSed targmatch.h : config.bfd : targmatch.sed ;
|
||||
BFDCopyConfigHeaders $(bfdHeadersToCopy) ;
|
||||
|
||||
# Make a pseudo-target for all generated headers and make all object files
|
||||
# depend on them.
|
||||
|
||||
local bfdGeneratedHeaders
|
||||
= [ FGristFiles $(bfdHeadersToCopy) elf32-target.h targmatch.h ] ;
|
||||
|
||||
Depends gdb-bfd-generated-headers : $(bfdGeneratedHeaders) ;
|
||||
NotFile gdb-bfd-generated-headers ;
|
||||
|
||||
Depends [ FGristFiles $(bfdAllSources:S=$(SUFOBJ)) ]
|
||||
: gdb-bfd-generated-headers ;
|
Loading…
Reference in New Issue
Block a user