From d4f15e95d6a66847eee99fb4bb2131d0622ba8b5 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Fri, 2 Dec 2005 18:27:39 +0000 Subject: Install links patch from Yann E. Morin. (Another thing hanging around in my tree forever. Tweaked the docs a bit.) --- INSTALL | 15 ++++++++++----- Makefile | 12 ++++-------- docs/busybox_header.pod | 15 +++++++-------- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/INSTALL b/INSTALL index 9f09110ce..c7165dec2 100644 --- a/INSTALL +++ b/INSTALL @@ -58,14 +58,19 @@ Installing busybox consists of creating symlinks (or hardlinks) to the busybox binary for each applet enabled in busybox, and making sure these symlinks are in the shell's command $PATH. Running "make install" creates these symlinks, or "make install-hardlinks" creates hardlinks instead (useful on systems with -a limited number of inodes). This install process ues the file +a limited number of inodes). This install process uses the file "busybox.links" (created by make), which contains the list of enabled applets and the path at which to install them. -The special applet name "busybox" (or with any optional suffix, such as -"busybox-static") uses the 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.) +Installing links to busybox is not always necessary. The special applet name +"busybox" (or with any optional suffix, such as "busybox-static") uses the +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 +also configure a standaone 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). Building out-of-tree: ===================== diff --git a/Makefile b/Makefile index f603d2d1a..6e0b7a322 100644 --- a/Makefile +++ b/Makefile @@ -129,8 +129,7 @@ help: @echo ' oldconfig - resolve any unresolved symbols in .config' @echo @echo 'Installation:' - @echo ' install - install busybox and symlinks into $prefix' - @echo ' install-hardlinks - install busybox and hardlinks into $prefix' + @echo ' install - install busybox into $prefix' @echo ' uninstall' @echo @echo 'Development:' @@ -196,8 +195,8 @@ defconfig: scripts/config/conf allbareconfig: scripts/config/conf @./scripts/config/conf -y $(CONFIG_CONFIG_IN) - sed -i -r -e "s/^(CONFIG_DEBUG|USING_CROSS_COMPILER|CONFIG_STATIC|CONFIG_SELINUX).*/# \1 is not set/" .config - sed -i -e "/FEATURE/s/=.*//;/^[^#]/s/.*FEATURE.*/# \0 is not set/;" .config + @sed -i -r -e "s/^(CONFIG_DEBUG|USING_CROSS_COMPILER|CONFIG_STATIC|CONFIG_SELINUX).*/# \1 is not set/" .config + @sed -i -e "/FEATURE/s/=.*//;/^[^#]/s/.*FEATURE.*/# \0 is not set/;" .config @echo "CONFIG_FEATURE_BUFFERS_GO_ON_STACK=y" >> .config @./scripts/config/conf -o $(CONFIG_CONFIG_IN) @@ -220,7 +219,7 @@ busybox.links: $(top_srcdir)/applets/busybox.mkll include/config.h $(top_srcdir) - $(SHELL) $^ >$@ install: $(top_srcdir)/applets/install.sh busybox busybox.links - $(SHELL) $< $(PREFIX) + $(SHELL) $< $(PREFIX) $(INSTALL_OPTS) ifeq ($(strip $(CONFIG_FEATURE_SUID)),y) @echo @echo @@ -236,9 +235,6 @@ uninstall: busybox.links rm -f $(PREFIX)/bin/busybox for i in `cat busybox.links` ; do rm -f $(PREFIX)$$i; done -install-hardlinks: $(top_srcdir)/applets/install.sh busybox busybox.links - $(SHELL) $< $(PREFIX) --hardlinks - # see if we are in verbose mode KBUILD_VERBOSE := ifdef V diff --git a/docs/busybox_header.pod b/docs/busybox_header.pod index 5af92401c..7a5b0f716 100644 --- a/docs/busybox_header.pod +++ b/docs/busybox_header.pod @@ -28,17 +28,16 @@ system. BusyBox is extremely configurable. This allows you to include only the components you need, thereby reducing binary size. Run 'make config' or 'make -menuconfig' to select the functionality that you wish to enable. The run +menuconfig' to select the functionality that you wish to enable. Then run 'make' to compile BusyBox using your configuration. After the compile has finished, you should use 'make install' to install -BusyBox. This will install the '/bin/busybox' binary, and will also create -symlinks pointing to the '/bin/busybox' binary for each utility that you -compile into BusyBox. By default, 'make install' will place these symlinks -into the './_install' directory, unless you have defined 'PREFIX', thereby -specifying some alternative location (i.e., 'make PREFIX=/tmp/foo install'). -If you wish to install using hardlinks, rather than the default of using -symlinks, you can use 'make PREFIX=/tmp/foo install-hardlinks' instead. +BusyBox. This will install the 'bin/busybox' binary, in the target directory +specified by PREFIX. PREFIX can be set when configuring BusyBox, or you can +specify an alternative location at install time (i.e., with a command line +like 'make PREFIX=/tmp/foo install'). If you enabled any applet installation +scheme (either as symlinks or hardlinks), these will also be installed in +the location pointed to by PREFIX. =head1 USAGE -- cgit v1.2.3