From b7b6946b56219c09c72d6fe3f583333f42a2b05c Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni BACKGROUND Note: the contents of this section are obsolete since this
+ feature has been implemented. Buildroot has always supported building several projects in the same
tree if each project was for a different architecture. Building several
projects in the same buildroot source tree
- Background
PROJECT TO SHARE TOOLCHAIN AND PACKAGE BUILDS
+Work has started on a project which will allow the user to build multiple root file systems for the same architecture in the same tree. @@ -591,7 +594,7 @@ $ make me<TAB>
Only packages, not used by the first project, will have to go through the normal extract-configure-compile flow.
-IMPLEMENTATION
+The core of the solution is the introduction of two new directories:
@@ -646,7 +649,7 @@ $ make me<TAB>The resulting binaries for all architectures are stored in the
"$(BINARIES_DIR)"
directory.
-
SUMMARY
+The project will share directories which can be share without conflicts, but will use unique build directories, where the user @@ -693,7 +696,7 @@ $ make me<TAB> defaults to "make menuconfig".
-You may want to compile your own programs or other software that are not packaged in Buildroot. In order to do this, you can @@ -791,32 +794,19 @@ export PATH="$PATH:~/buildroot/build_mips/staging_dir/usr/bin/" mips-linux-gcc -o foo foo.c -
Important : do not try to move a gcc-3.x toolchain to an other - directory, it won't work. There are some hardcoded paths in the - gcc configuration. If the default toolchain directory - doesn't suit your needs, please refer to the Using the uClibc toolchain outside of - buildroot section.
-If you are using a current gcc-4.x, then use --sysroot and -isysroot - since these toolchains have fully functional sysroot support. No - hardcoded paths do exist in these configurations.
- -By default, the cross-compilation toolchain is generated inside
- build_ARCH/staging_dir/
. But sometimes, it may be useful to
- install it somewhere else, so that it can be used to compile other programs
- or by other users. Moving the build_ARCH/staging_dir/
- directory elsewhere is not possible if using gcc-3.x, because there
- are some hardcoded paths in the toolchain configuration. This works, thanks
- to sysroot support, with current, stable gcc-4.x toolchains, of course.
If you want to use the generated gcc-3.x toolchain for other purposes,
- you can configure Buildroot to generate it elsewhere using the
- option of the configuration tool : Build options ->
- Toolchain and header file location
, which defaults to
- $(BUILD_DIR)/staging_dir/
.
Important : do not try to move a gcc-3.x toolchain to an other
+ directory, it won't work. There are some hardcoded paths in the
+ gcc configuration. If you are using a current gcc-4.x, it
+ is possible to relocate the toolchain, but then
+ --sysroot
must be passed every time the compiler is
+ called to tell where the libraries and header files are, which
+ might be cumbersome.
It is also possible to generate the Buildroot toolchain in
+ another directory than build_ARCH/staging_dir
using
+ the Build options -> Toolchain and header file
+ location
option. This could be useful if the toolchain
+ must be shared with other users.