Install links patch from Yann E. Morin. (Another thing hanging around in my

tree forever.  Tweaked the docs a bit.)
This commit is contained in:
Rob Landley 2005-12-02 18:27:39 +00:00
parent d1569c215c
commit d4f15e95d6
3 changed files with 21 additions and 21 deletions

15
INSTALL
View File

@ -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 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, in the shell's command $PATH. Running "make install" creates these symlinks,
or "make install-hardlinks" creates hardlinks instead (useful on systems with 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 "busybox.links" (created by make), which contains the list of enabled applets
and the path at which to install them. and the path at which to install them.
The special applet name "busybox" (or with any optional suffix, such as Installing links to busybox is not always necessary. The special applet name
"busybox-static") uses the first argument to determine which applet to behave "busybox" (or with any optional suffix, such as "busybox-static") uses the
as (for example, "./busybox cat LICENSE"). (Running the busybox applet with first argument to determine which applet to behave as, for example
no arguments gives a list of all enabled applets.) "./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: Building out-of-tree:
===================== =====================

View File

@ -129,8 +129,7 @@ help:
@echo ' oldconfig - resolve any unresolved symbols in .config' @echo ' oldconfig - resolve any unresolved symbols in .config'
@echo @echo
@echo 'Installation:' @echo 'Installation:'
@echo ' install - install busybox and symlinks into $prefix' @echo ' install - install busybox into $prefix'
@echo ' install-hardlinks - install busybox and hardlinks into $prefix'
@echo ' uninstall' @echo ' uninstall'
@echo @echo
@echo 'Development:' @echo 'Development:'
@ -196,8 +195,8 @@ defconfig: scripts/config/conf
allbareconfig: scripts/config/conf allbareconfig: scripts/config/conf
@./scripts/config/conf -y $(CONFIG_CONFIG_IN) @./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 -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 -e "/FEATURE/s/=.*//;/^[^#]/s/.*FEATURE.*/# \0 is not set/;" .config
@echo "CONFIG_FEATURE_BUFFERS_GO_ON_STACK=y" >> .config @echo "CONFIG_FEATURE_BUFFERS_GO_ON_STACK=y" >> .config
@./scripts/config/conf -o $(CONFIG_CONFIG_IN) @./scripts/config/conf -o $(CONFIG_CONFIG_IN)
@ -220,7 +219,7 @@ busybox.links: $(top_srcdir)/applets/busybox.mkll include/config.h $(top_srcdir)
- $(SHELL) $^ >$@ - $(SHELL) $^ >$@
install: $(top_srcdir)/applets/install.sh busybox busybox.links install: $(top_srcdir)/applets/install.sh busybox busybox.links
$(SHELL) $< $(PREFIX) $(SHELL) $< $(PREFIX) $(INSTALL_OPTS)
ifeq ($(strip $(CONFIG_FEATURE_SUID)),y) ifeq ($(strip $(CONFIG_FEATURE_SUID)),y)
@echo @echo
@echo @echo
@ -236,9 +235,6 @@ uninstall: busybox.links
rm -f $(PREFIX)/bin/busybox rm -f $(PREFIX)/bin/busybox
for i in `cat busybox.links` ; do rm -f $(PREFIX)$$i; done 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 # see if we are in verbose mode
KBUILD_VERBOSE := KBUILD_VERBOSE :=
ifdef V ifdef V

View File

@ -28,17 +28,16 @@ system.
BusyBox is extremely configurable. This allows you to include only the BusyBox is extremely configurable. This allows you to include only the
components you need, thereby reducing binary size. Run 'make config' or 'make 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. 'make' to compile BusyBox using your configuration.
After the compile has finished, you should use 'make install' to install After the compile has finished, you should use 'make install' to install
BusyBox. This will install the '/bin/busybox' binary, and will also create BusyBox. This will install the 'bin/busybox' binary, in the target directory
symlinks pointing to the '/bin/busybox' binary for each utility that you specified by PREFIX. PREFIX can be set when configuring BusyBox, or you can
compile into BusyBox. By default, 'make install' will place these symlinks specify an alternative location at install time (i.e., with a command line
into the './_install' directory, unless you have defined 'PREFIX', thereby like 'make PREFIX=/tmp/foo install'). If you enabled any applet installation
specifying some alternative location (i.e., 'make PREFIX=/tmp/foo install'). scheme (either as symlinks or hardlinks), these will also be installed in
If you wish to install using hardlinks, rather than the default of using the location pointed to by PREFIX.
symlinks, you can use 'make PREFIX=/tmp/foo install-hardlinks' instead.
=head1 USAGE =head1 USAGE