changeset 966:bd2ea96aac53

Update READMEs.
author Rob Landley <rob@landley.net>
date Tue, 02 Feb 2010 21:24:32 -0600
parents bcab030a2394
children 19660e12c1de
files README sources/README www/downloads/README www/downloads/binaries/README
diffstat 4 files changed, 74 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/README	Tue Feb 02 19:37:11 2010 -0600
+++ b/README	Tue Feb 02 21:24:32 2010 -0600
@@ -79,15 +79,18 @@
 
 The build.sh script is a wrapper around other scripts.  The main three are:
 
-  cross-compiler.sh - create a cross compiler for the target.
+  simple-cross-compiler.sh - create a cross compiler for the target.
 
   root-filesystem.sh - use the cross compiler to build a root filesystem.
 
   system-image.sh - build a kernel and ext2 image to run under emulator.
 
-    # Or when building a cross-compile aware package, do something like:
-    #   export PATH=`pwd`/build/cross-compiler-i686/bin:$PATH
-    #   make CROSS_COMPILE=i686-
+An optional (but often useful) fourth script is:
+
+  native-compiler.sh - create a more complicated compiler for the target,
+                       statically linked against uClibc and with thread
+                       support and uClibc++.  (This can optionally be used
+                       to create a better cross compiler, via canadian cross.)
 
 This file is a brief introduction, for full documentation see
 
--- a/sources/README	Tue Feb 02 19:37:11 2010 -0600
+++ b/sources/README	Tue Feb 02 21:24:32 2010 -0600
@@ -5,6 +5,9 @@
 
   functions.sh: Function definitions, normally included from include.sh.
 
+  utility-functions.sh: Functions usable in contexts other than the FWL build,
+                        included from functions.sh.
+
   timeout.sh: Wrapper to run a command line with a timeout.
 
   trimconfig-busybox: Busybox config file to switch off bits of "allyesconfig"
--- a/www/downloads/README	Tue Feb 02 19:37:11 2010 -0600
+++ b/www/downloads/README	Tue Feb 02 21:24:32 2010 -0600
@@ -52,24 +52,43 @@
     used by later stages if it exists.  It is not target specific, and only
     needs to be run once when building multiple architectures.
 
-  cross-compiler.sh ARCH
+  simple-cross-compiler.sh ARCH
 
     Creates a cross compiler for the selected target architecture, built from
     gcc, binutils, uClibc, and the Linux kernel headers.
 
-    The resulting compiler is assembled in build/cross-compiler-ARCH and
-    then packaged as an adjacent tarball of the same name.
+    The resulting compiler is assembled in build/simple-cross-compiler-ARCH
+    and then packaged as an adjacent tarball of the same name.
+
+    (This compiler is sufficient to build a system image for the target, but
+    isn't as powerful as the compilers created by native-compiler.sh.)
+
+  native-compiler.sh ARCH
+
+    This (optional) step creates an additional compiler for the selected
+    target, using one or more of the existing simple cross compilers.  It
+    can create a purely native compiler (which runs on the target to produce
+    target code), or it can create a more complicated cross compiler
+    (statically linked against uClibc, with thread support and uClibc++)
+    using two simple cross compilers (one for the host, one for the target).
+    See build.sh and the config options STATIC_CC_HOST and NO_NATIVE_COMPILER
+    for details.
 
   root-filesystem.sh ARCH
 
-    Creates a root filesystem mfor the target, built from busybox and
-    uClibc.  Adds to it a native compiler built from the same packages as
-    the cross compiler, plus the packages make, bash, and distcc.
+    Creates a root filesystem for the target, built from busybox/toybox and
+    uClibc.
 
     This step uses the cross compiler built in the previous step.  It
     assembles the new filesystem in the build/root-filesystem-ARCH directory,
     then packages it as an adjacent tarball of the same name.
 
+    If a native compiler exists for the target (I.E. the native-compiler.sh
+    script was run, which build.sh will do if the environment variable
+    NO_NATIVE_COMPILER is not set), it adds that to the root filesystem and
+    builds the packages make, bash, and distcc to provide a native build
+    environment.
+
   system-image.sh ARCH
 
     Package up the root filesystem into a filesystem image (ext2, squashfs,
@@ -91,6 +110,10 @@
     existing architecture, repackaging the other architecture's root filesystem
     with a different Linux kernel configuration.
 
-The wrapper script buildall.sh runs build.sh on every available target,
+The sources/more directory contains additional scripts providing additonal
+functionality not called from build.sh.
+
+For example, sources/more/buildall.sh runs build.sh for every available target,
 with extra configure options to produce additional optional stages such as
-statically linked cross and native compilers.
+statically linked cross compilers and static native binaries for dropbear and
+strace.
--- a/www/downloads/binaries/README	Tue Feb 02 19:37:11 2010 -0600
+++ b/www/downloads/binaries/README	Tue Feb 02 21:24:32 2010 -0600
@@ -1,6 +1,6 @@
 The downloads/binaries directory contains prebuilt binary images, created by
-running ./buildall.sh in the most recent Firmware Linux source tarball.  The
-source packages for these binaries are mirrored at
+running sources/more/buildall.sh in the most recent Firmware Linux source
+tarball.  The source packages for these binaries are mirrored at
 "http://impactlinux.com/fwl/mirror".
 
 The following tarballs are found here:
@@ -54,9 +54,38 @@
   writeable ext2 image mounted on /home and 256 megs of memory for the
   emulated system).
 
-  If distccd and the appropriate $ARCH-cc cross compiler are the $PATH,
+  If both distccd and the appropriate $ARCH-cc cross compiler are in the $PATH,
   run-emulator.sh will automatically set up distcc to call out through the
   virtual network to the host's $ARCH-cc, to move the heavy lifting of
   compilation outside the emulator, and also take advantage of SMP.  (Doing
   so does not require the package being built to be cross compile aware.
-  The emulated build is still a simple single-context native build.)
+  As far as the emulated build environment is concerned, it's still performing
+  simple single-context native builds.)
+
+busybox-$ARCH
+
+  This is a prebuilt static busybox binary for the given target, implementing
+  numerous standard command line utilities.
+
+  To use, copy it to a target system (perhaps via wget), set the executable
+  bit, and create the appropriate symlinks to it.
+
+  Run ./busybox-$ARCH to see the list of supported commands.
+
+dropbearmulti-$ARCH
+
+  This is a prebuilt static dropbear binary for the given target, implementing
+  an ssh server and client.
+
+  To use, copy it to a target system (perhaps via wget), set the executable
+  bit, and create the appropriate symlinks to it.
+
+  Run ./dropbearmulti-$ARCH to see the list of supporte commands.
+
+strace-$ARCH
+
+  This is a prebuilt static strace binary for the given target, providing a
+  debugging tool listing all the system calls made by another program.
+
+  To use, copy it to a target system (perhaps via wget) and set the executable
+  bit.