From 773318958f9c126e067bc7219fa157c291963aff Mon Sep 17 00:00:00 2001 From: Oliver Tappe Date: Sun, 19 May 2013 23:30:23 +0200 Subject: [PATCH] Add new package haiku_cross_devel.hpkg * This package is meant for providing haikuporter with a development environment for building cross packages. --- build/jam/HaikuPackages | 1 + build/jam/packages/HaikuCrossDevel | 62 ++++++++++++++++++++++++ src/data/package_infos/haiku_cross_devel | 22 +++++++++ 3 files changed, 85 insertions(+) create mode 100644 build/jam/packages/HaikuCrossDevel create mode 100644 src/data/package_infos/haiku_cross_devel diff --git a/build/jam/HaikuPackages b/build/jam/HaikuPackages index 52bcf5ed13..ec3dfc33a1 100644 --- a/build/jam/HaikuPackages +++ b/build/jam/HaikuPackages @@ -2,6 +2,7 @@ # subdirectory. local packages = Haiku + HaikuCrossDevel HaikuDevel HaikuUserguide HaikuWelcome diff --git a/build/jam/packages/HaikuCrossDevel b/build/jam/packages/HaikuCrossDevel new file mode 100644 index 0000000000..0c2e03acd1 --- /dev/null +++ b/build/jam/packages/HaikuCrossDevel @@ -0,0 +1,62 @@ +# 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. + +local haikuCrossDevelPackage = haiku_cross_devel.hpkg ; +HaikuPackage $(haikuCrossDevelPackage) ; + +local arch ; +if $(HAIKU_GCC_VERSION[1]) = 2 { + arch = x86_gcc2 ; +} else { + arch = $(TARGET_ARCH) ; +} +local developCrossLibDirTokens = develop cross lib $(arch) ; + +# glue code +AddFilesToPackage $(developCrossLibDirTokens) : + crti.o + crtn.o + init_term_dyn.o + start_dyn.o + haiku_version_glue.o +; + +# kernel +AddFilesToPackage $(developCrossLibDirTokens) : kernel.so : _KERNEL_ ; + +# libraries +AddLibrariesToPackage $(developCrossLibDirTokens) : + libroot.so +; + +# static libraries +AddFilesToPackage $(developCrossLibDirTokens) : liblocalestub.a ; + +# the POSIX error code mapper library +AddFilesToPackage $(developCrossLibDirTokens) : libposix_error_mapper.a ; + +# headers +local developCrossHeadersDirTokens = develop cross headers $(arch) ; +local headerDir ; +for headerDir in config glibc os posix { + CopyDirectoryToPackage $(developCrossHeadersDirTokens) + : [ FDirName $(HAIKU_TOP) headers $(headerDir) ] ; +} + +# BSD and GNU compatibility headers +#for headerDib 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 $(haikuCrossDevelPackage) : haiku_cross_devel ; diff --git a/src/data/package_infos/haiku_cross_devel b/src/data/package_infos/haiku_cross_devel new file mode 100644 index 0000000000..130f241e95 --- /dev/null +++ b/src/data/package_infos/haiku_cross_devel @@ -0,0 +1,22 @@ +name haiku_cross_devel +version R1~alpha3_pm-1 +architecture x86_gcc2 +summary "The Haiku base system files for cross development" + +description "The package contains all files associated with the base system +needed for cross development, like static libraries, glue code, library symlinks, +header files, etc." + +packager "The Haiku build system" +vendor "Haiku Project" + +copyrights "2001-2011 Haiku, Inc. et al" +licenses "MIT" + +provides { + haiku_cross_devel = R1~alpha3_pm-1 +} + +requires { + haiku == R1~alpha3_pm-1 +}