dd: code shrink
[oweals/busybox.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 6644481a3e4b2eba0364cb4e0a7a9c2e9745ac24..750cfc45bfd6de4a96ff73ebcd4e512a395ad96b 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -5,7 +5,7 @@ The BusyBox build process is similar to the Linux kernel build:
 
   make menuconfig     # This creates a file called ".config"
   make                # This creates the "busybox" executable
 
   make menuconfig     # This creates a file called ".config"
   make                # This creates the "busybox" executable
-  make install        # or make PREFIX=/path/from/root install
+  make install        # or make CONFIG_PREFIX=/path/from/root install
 
 The full list of configuration and install options is available by typing:
 
 
 The full list of configuration and install options is available by typing:
 
@@ -19,11 +19,24 @@ it, is to enable all features and then use "standalone shell" mode with a
 blank command $PATH.
 
 To enable all features, use "make defconfig", which produces the largest
 blank command $PATH.
 
 To enable all features, use "make defconfig", which produces the largest
-general-purpose configuration.  (It's allyesconfig minus debugging options,
+general-purpose configuration.  It's allyesconfig minus debugging options,
 optional packaging choices, and a few special-purpose features requiring
 optional packaging choices, and a few special-purpose features requiring
-extra configuration to use.)
+extra configuration to use.  Then enable "standalone shell" feature:
 
   make defconfig
 
   make defconfig
+  make menuconfig
+  # select Busybox Settings
+  #   then General Configuration
+  #     then exec prefers applets
+  #   exit back to top level menu
+  #   select Shells
+  #     then Standalone shell
+  #   exit back to top level menu
+  # exit and save new configuration
+  #   OR
+  # use these commands to modify .config directly:
+  sed -e 's/.*FEATURE_PREFER_APPLETS.*/CONFIG_FEATURE_PREFER_APPLETS=y/' -i .config
+  sed -e 's/.*FEATURE_SH_STANDALONE.*/CONFIG_FEATURE_SH_STANDALONE=y/' -i .config
   make
   PATH= ./busybox ash
 
   make
   PATH= ./busybox ash
 
@@ -34,8 +47,11 @@ the only commands busybox can find are the built-in ones.
 
 Note that the standalone shell requires CONFIG_BUSYBOX_EXEC_PATH
 to be set appropriately, depending on whether or not /proc/self/exe is
 
 Note that the standalone shell requires CONFIG_BUSYBOX_EXEC_PATH
 to be set appropriately, depending on whether or not /proc/self/exe is
-available or not. If you do not have /proc, then point that config option
+available. If you do not have /proc, then point that config option
 to the location of your busybox binary, usually /bin/busybox.
 to the location of your busybox binary, usually /bin/busybox.
+Another solution is to patch the kernel (see
+examples/linux-*_proc_self_exe.patch) to make exec("/proc/self/exe")
+always work.
 
 Configuring Busybox:
 ====================
 
 Configuring Busybox:
 ====================
@@ -57,7 +73,9 @@ create a known starting point.
 Other starting configurations (mostly used for testing purposes) include
 "make allbareconfig" (enables all applets but disables all optional features),
 "make allyesconfig" (enables absolutely everything including debug features),
 Other starting configurations (mostly used for testing purposes) include
 "make allbareconfig" (enables all applets but disables all optional features),
 "make allyesconfig" (enables absolutely everything including debug features),
-and "make randconfig" (produce a random configuration).
+and "make randconfig" (produce a random configuration).  The configs/ directory
+contains a number of additional configuration files ending in _defconfig which
+are useful in specific cases.  "make help" will list them.
 
 Configuring BusyBox produces a file ".config", which can be saved for future
 use.  Run "make oldconfig" to bring a .config file from an older version of
 
 Configuring BusyBox produces a file ".config", which can be saved for future
 use.  Run "make oldconfig" to bring a .config file from an older version of
@@ -84,7 +102,7 @@ first argument to determine which applet to behave as, for example
 "./busybox cat LICENSE".  (Running the busybox applet with no arguments gives
 a list of all enabled applets.) The standalone shell can also call busybox
 applets without links to busybox under other names in the filesystem.  You can
 "./busybox cat LICENSE".  (Running the busybox applet with no arguments gives
 a list of all enabled applets.) The standalone shell can also call busybox
 applets without links to busybox under other names in the filesystem.  You can
-also configure a standaone install capability into the busybox base applet,
+also configure a standalone install capability into the busybox base applet,
 and then install such links at runtime with one of "busybox --install" (for
 hardlinks) or "busybox --install -s" (for symlinks).
 
 and then install such links at runtime with one of "busybox --install" (for
 hardlinks) or "busybox --install -s" (for symlinks).
 
@@ -104,7 +122,7 @@ somewhere else.
 
 To build out of tree, cd to an empty directory and configure busybox from there:
 
 
 To build out of tree, cd to an empty directory and configure busybox from there:
 
-  make -f /path/to/source/Makefile defconfig
+  make KBUILD_SRC=/path/to/source -f /path/to/source/Makefile defconfig
   make
   make install
 
   make
   make install
 
@@ -114,12 +132,11 @@ configuration step, as in:
   make O=/some/empty/directory allyesconfig
   cd /some/empty/directory
   make
   make O=/some/empty/directory allyesconfig
   cd /some/empty/directory
   make
-  make PREFIX=. install
+  make CONFIG_PREFIX=. install
 
 More Information:
 =================
 
 Se also the busybox FAQ, under the questions "How can I get started using
 BusyBox" and "How do I build a BusyBox-based system?"  The BusyBox FAQ is
 
 More Information:
 =================
 
 Se also the busybox FAQ, under the questions "How can I get started using
 BusyBox" and "How do I build a BusyBox-based system?"  The BusyBox FAQ is
-available from http://www.busybox.net/FAQ.html or as the file
-docs/busybox.net/FAQ.html in this tarball.
+available from http://www.busybox.net/FAQ.html