haiku/build/jam/packages/HaikuCrossDevel

77 lines
2.5 KiB
Plaintext
Raw Normal View History

# This package is like the HaikuDevel package, but it is meant for cross
# development, i.e. it assumes that a specific cross compiler is installed
# on the Haiku system where this package is being used.
# The main use of this package is to provide HaikuPorter with a development
# environment for a cross-build Haiku platform.
# first create the actual cross development package
local haikuCrossDevelSysrootPackage
= haiku_cross_devel_sysroot_$(HAIKU_PACKAGING_ARCH).hpkg ;
HaikuPackage $(haikuCrossDevelSysrootPackage) ;
local developCrossLibDirTokens = develop lib ;
# glue code
AddFilesToPackage $(developCrossLibDirTokens) :
<src!system!glue!arch!$(TARGET_ARCH)>crti.o
<src!system!glue!arch!$(TARGET_ARCH)>crtn.o
<src!system!glue>init_term_dyn.o
<src!system!glue>start_dyn.o
<src!system!glue>haiku_version_glue.o
;
# kernel
AddFilesToPackage $(developCrossLibDirTokens) : kernel.so : _KERNEL_ ;
# libraries
2013-07-19 15:13:25 +02:00
AddLibrariesToPackage $(developCrossLibDirTokens) :
libbsd.so
<revisioned>libroot.so
2013-05-30 00:21:25 +02:00
$(HAIKU_SHARED_LIBSTDC++) $(HAIKU_SHARED_LIBSUPC++)
;
# static libraries
AddFilesToPackage $(developCrossLibDirTokens) : liblocalestub.a ;
# the POSIX error code mapper library
AddFilesToPackage $(developCrossLibDirTokens) : libposix_error_mapper.a ;
# headers
local developCrossHeadersDirTokens = develop headers ;
local headerDir ;
for headerDir in config glibc os posix {
CopyDirectoryToPackage $(developCrossHeadersDirTokens)
: [ FDirName $(HAIKU_TOP) headers $(headerDir) ] ;
}
# BSD and GNU compatibility headers
2013-05-30 00:21:25 +02:00
for headerDir in bsd gnu {
CopyDirectoryToPackage $(developCrossHeadersDirTokens)
: [ FDirName $(HAIKU_TOP) headers compatibility $(headerDir) ] ;
}
# cpp headers
if $(HAIKU_GCC_VERSION[1]) = 2 {
# GCC 2 only -- for GCC 4 they come with the DevelopmentBase package
CopyDirectoryToPackage $(developCrossHeadersDirTokens) c++
: [ FDirName $(HAIKU_TOP) headers cpp ] : 2.95.3 ;
}
BuildHaikuPackage $(haikuCrossDevelSysrootPackage) : haiku_cross_devel_sysroot ;
# Now create a wrapper package which just contains the actual cross development
# package. This wrapper package can safely be installed into the system
# hierarchy of the target system, from where haikuporter will fetch it when
# needed.
local haikuCrossDevelPackage
= haiku_cross_devel_$(HAIKU_PACKAGING_ARCH).hpkg ;
HaikuPackage $(haikuCrossDevelPackage) ;
# add the wrapped package
local developCrossDirTokens = develop cross ;
AddFilesToPackage $(developCrossDirTokens) : $(haikuCrossDevelSysrootPackage) ;
BuildHaikuPackage $(haikuCrossDevelPackage) : haiku_cross_devel ;