Bump to version 1.22.1
[platform/upstream/busybox.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 731e58e..750cfc4 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
 
@@ -32,8 +45,13 @@ any built-in busybox applets directly, without looking for external
 programs by that name.  Supplying an empty command path (as above) means
 the only commands busybox can find are the built-in ones.
 
 programs by that name.  Supplying an empty command path (as above) means
 the only commands busybox can find are the built-in ones.
 
-(Note that the standalone shell currently requires /proc/self/exe to
-launch new applets.)
+Note that the standalone shell requires CONFIG_BUSYBOX_EXEC_PATH
+to be set appropriately, depending on whether or not /proc/self/exe is
+available. If you do not have /proc, then point that config option
+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:
 ====================
@@ -55,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
@@ -82,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).
 
@@ -102,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
 
@@ -112,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