412ca2a4d4
========================================================= The purpose of the BSP patch is to allow building several boards inside the same buildroot tree. For this to work, each board has to have its own "$(TARGET_DIR)" and all *configurable* packages must be rebuilt for each board. They are now built in the "$(PROJECT_BUILD_DIR)" All non configurable packages can and should still be built in the "$(BUILD_DIR)". If a package is built for one board, then when you build for a second board of the same architecture the build becomes a simple copy of the resulting binaries. ----- Define BR2_PROJECT which will be used as the selector between different boards. Note that BR2_PROJECT allow you to build multiple root file systems for a single board, and should not be confused with BR2_BOARD_NAME which relates to the H/W. ----- Define PROJECT_BUILD_DIR as "PROJECT_BUILD_DIR/$(PROJECT)" Define BINARIES_DIR as "binaries/$(PROJECT)" Define TARGET_DIR as "$(PROJECT_BUILD_DIR)/root" (some prefix/postfix may apply) Resulting images are stored in "$(BINARIES_DIR)" ----- Define a few new environment variables in Makefile PROJECT: Stripped BR2_PROJECT DATE: Date of build in YYYY-MM-DD format HOSTNAME: Stripped BR2_HOSTNAME => /etc/hostname BANNER: Stripped BR2_BANNER => /etc/issue Linux and Busybox will be built in $(PROJECT_BUILD_DIR) More patches will be needed later to ensure all configurable packages are built in this directory. |
||
---|---|---|
docs | ||
package | ||
project | ||
target | ||
toolchain | ||
.defconfig | ||
Config.in | ||
Makefile |
To build and use the buildroot stuff, do the following: 1) run 'make' 2) select the packages you wish to compile 3) run 'make' 4) wait while it compiles 5) Use your shiny new root filesystem. Depending on which sortof root filesystem you selected, you may want to loop mount it, chroot into it, nfs mount it on your target device, burn it to flash, or whatever is appropriate for your target system. You do not need to be root to build or run buildroot. Have fun! -Erik Offline build: ============== In order to do an offline-build (not connected to the net), fetch all selected source by issuing a $ make source before you disconnect. If your build-host is never connected, then you have to copy buildroot and your toplevel .config to a machine that has an internet-connection and issue "make source" there, then copy the content of your dl/ dir to the build-host. More finegrained configuration: =============================== You can specify a config-file for uClibc: $ make UCLIBC_CONFIG_FILE=/my/uClibc.config To use a non-standart host-compiler (if you do not have 'gcc'), make sure that the compiler is in your PATH and that the library paths are setup properly, if your compiler is built dynamically: $ make HOSTCC=gcc-4.3.orig HOSTCXX=gcc-4.3-mine Depending on your configuration, there are some targets you can use to use menuconfig of certain packages. This includes: $ make HOSTCC=gcc-4.3 linux26-menuconfig $ make HOSTCC=gcc-4.3 uclibc-menuconfig $ make HOSTCC=gcc-4.3 busybox-menuconfig Please feed suggestions, bug reports, insults, and bribes back to: Erik Andersen <andersen@codepoet.org> or the buildroot mailing list.