--- Begin Message ---
Package: busybox
Version: 0.60.3-1
Severity: wishlist
Here's take two of that patch. Please burn the other one; it did not
build; this one does. Once more, this patch adds a "busybox-initrd"
binary package. It is intended for use on a swiss army knife initrd
perhaps for an installer.
Index: ChangeLog
===================================================================
RCS file: ChangeLog
diff -N ChangeLog
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ChangeLog 4 Aug 2002 07:12:03 -0000 1.3
@@ -0,0 +1,13 @@
+2002-08-03 Karl M. Hegbloom <[email protected]>
+
+ * Makefile (VERSION): ediff merge changes from last vendor checkin
+
+2001-12-05 Karl M. Hegbloom <[email protected]>
+
+ * grep.c (grep_main): also define char *junk when defined
+ BB_FEATURE_GREP_EGREP_ALIAS
+
+ * Makefile (TAGS): New target
+ - Clean up according to my formatting conventions.
+
+
Index: Issues
===================================================================
RCS file: Issues
diff -N Issues
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ Issues 5 Dec 2001 23:56:58 -0000 1.1
@@ -0,0 +1,11 @@
+-*- text -*-
+
+ cp does not preserve hard links; it used to; what happened?
+
+ Will the syslogd handle more than one process keeping a log handle
+ open, with openlog? Or will it block until the first one lets go?
+
+ cp duplicates a lot of code that is also in the "copy_file" function.
+
+ What happened to the combined "cp_mv.c" that I wrote?
+
Index: Makefile
===================================================================
RCS file: /var/cvs/NetworkModule/busybox/Makefile,v
retrieving revision 1.1.1.2
retrieving revision 1.4
diff -u -u -r1.1.1.2 -r1.4
--- Makefile 27 Apr 2002 08:43:00 -0000 1.1.1.2
+++ Makefile 4 Aug 2002 08:04:56 -0000 1.4
@@ -1,6 +1,7 @@
# Makefile for busybox
#
-# Copyright (C) 1999-2002 Erik Andersen <[email protected]>
+# Copyright (C) 1999,2000,2001 Erik Andersen <[email protected]>
+# Copyright (C) 2001 Karl M. Hegbloom <[email protected]>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -25,163 +26,217 @@
# With a modern GNU make(1) (highly recommended, that's what all the
# developers use), all of the following configuration values can be
# overridden at the command line. For example:
+#
# make CROSS=powerpc-linux- BB_SRC_DIR=$HOME/busybox PREFIX=/mnt/app
# If you want to add some simple compiler switches (like -march=i686),
-# especially from the command line, use this instead of CFLAGS directly.
-# For optimization overrides, it's better still to set OPTIMIZATION.
+# especially from the command line, use this instead of CFLAGS
+# directly. For optimization overrides, it's better still to set
+# OPTIMIZATION.
+#
CFLAGS_EXTRA =
-
+
# If you want a static binary, turn this on.
+#
DOSTATIC = false
# Set the following to `true' to make a debuggable build.
# Leave this set to `false' for production use.
+#
DODEBUG = false
-# Setting this to `true' will cause busybox to directly use the system's
-# password and group functions. Assuming you use GNU libc, when this is
-# `true', you will need to install the /etc/nsswitch.conf configuration file
-# and the required libnss_* libraries. This generally makes your embedded
-# system quite a bit larger... If you leave this off, busybox will directly use
-# the /etc/password, /etc/group files (and your system will be smaller, and I
-# will get fewer emails asking about how glibc NSS works). Enabling this adds
-# just 1.4k to the binary size (which is a _lot_ less then glibc NSS costs).
-# Note that if you want hostname resolution to work with glibc, you still need
-# the libnss_* libraries.
+# Setting this to `true' will cause busybox to directly use the
+# system's password and group functions. Assuming you use GNU libc,
+# when this is `true', you will need to install the /etc/nsswitch.conf
+# configuration file and the required libnss_* libraries. This
+# generally makes your embedded system quite a bit larger... If you
+# leave this off, busybox will directly use the /etc/password,
+# /etc/group files (and your system will be smaller, and I will get
+# fewer emails asking about how glibc NSS works). Enabling this adds
+# just 1.4k to the binary size (which is a _lot_ less then glibc NSS
+# costs). Note that if you want hostname resolution to work with
+# glibc, you still need the libnss_* libraries.
+#
USE_SYSTEM_PWD_GRP = true
-# This enables compiling with dmalloc ( http://dmalloc.com/ )
-# which is an excellent public domain mem leak and malloc problem
-# detector. To enable dmalloc, before running busybox you will
-# want to first set up your environment.
-# eg: `export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile`
-# The debug= value is generated using the following command
+# This enables compiling with dmalloc ( http://dmalloc.com/ ) which is
+# an excellent public domain mem leak and malloc problem detector. To
+# enable dmalloc, before running busybox you will want to first set up
+# your environment:
+#
+# export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
+#
+# The debug= value is generated using the following command:
+#
# dmalloc -p log-stats -p log-non-free -p log-bad-space -p log-elapsed-time \
# -p check-fence -p check-heap -p check-lists -p check-blank \
# -p check-funcs -p realloc-copy -p allow-free-null
+#
# Do not enable this for production builds...
+#
DODMALLOC = false
# Electric-fence is another very useful malloc debugging library.
+#
# Do not enable this for production builds...
+#
DOEFENCE = false
-# If you want large file summit support, turn this on.
-# This has no effect if you don't have a kernel with lfs
-# support, and a system with libc-2.1.3 or later.
-# Some of the programs that can benefit from lfs support
-# are dd, gzip, mount, tar, and mkfs_minix.
-# LFS allows you to use the above programs for files
-# larger than 2GB!
-DOLFS = false
+# If you want large file summit support, turn this on. This has no
+# effect if you don't have a kernel with lfs support, and a system
+# with libc-2.1.3 or later. Some of the programs that can benefit
+# from lfs support are dd, gzip, mount, tar, and mkfs_minix. LFS
+# allows you to use the above programs for files larger than 2GB!
+#
+DOLFS = true
# If you have a "pristine" source directory, point BB_SRC_DIR to it.
# Experimental and incomplete; tell the mailing list
# <[email protected]> if you do or don't like it so far.
+#
BB_SRC_DIR =
# If you are running a cross compiler, you may want to set this
# to something more interesting, like "powerpc-linux-".
+#
CROSS =
-CC = $(CROSS)gcc
-AR = $(CROSS)ar
+CC = $(CROSS)gcc
+AR = $(CROSS)ar
STRIP = $(CROSS)strip
-# To compile vs uClibc, just use the compiler wrapper built by uClibc...
+# To compile vs uClibc, just use the compiler wrapper built by uClibc.
# Everything should compile and work as expected these days...
-#CC=/usr/i386-linux-uclibc/usr/bin/i386-uclibc-gcc
+#
+# CC = /usr/i386-linux-uclibc/usr/bin/i386-uclibc-gcc
# To compile vs some other alternative libc, you may need to use/adjust
# the following lines to meet your needs...
#
-# If you are using Red Hat 6.x with the compatible RPMs (for developing under
-# Red Hat 5.x and glibc 2.0) uncomment the following. Be sure to read about
-# using the compatible RPMs (compat-*) at http://www.redhat.com !
-#LIBCDIR=/usr/i386-glibc20-linux
-#
-# The following is used for libc5 (if you install altgcc and libc5-altdev
-# on a Debian system).
-#LIBCDIR=/usr/i486-linuxlibc1
+# If you are using Red Hat 6.x with the compatible RPMs (for
+# developing under Red Hat 5.x and glibc 2.0) uncomment the following.
+# Be sure to read about using the compatible RPMs (compat-*) at
+# http://www.redhat.com !
+#
+# LIBCDIR=/usr/i386-glibc20-linux
+
+# The following is used for libc5 (if you install altgcc and
+# libc5-altdev on a Debian system).
#
+# LIBCDIR=/usr/i486-linuxlibc1
+
# For other libraries, you are on your own...
-#LDFLAGS+=-nostdlib
-#LIBRARIES = $(LIBCDIR)/lib/libc.a -lgcc
-#CROSS_CFLAGS+=-nostdinc -I$(LIBCDIR)/include -I$(GCCINCDIR)
-#GCCINCDIR = $(shell gcc -print-search-dirs | sed -ne "s/install: \(.*\)/\1include/gp")
+#
+# LDFLAGS += -nostdlib
+# LIBRARIES = $(LIBCDIR)/lib/libc.a -lgcc
+# CROSS_CFLAGS += -nostdinc -I$(LIBCDIR)/include -I$(GCCINCDIR)
+# GCCINCDIR = $(shell gcc -print-search-dirs | sed -ne "s/install: \(.*\)/\1include/gp")
# use '-Os' optimization if available, else use -O2
-OPTIMIZATION := ${shell if $(CC) -Os -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \
- then echo "-Os"; else echo "-O2" ; fi}
+#
+OPTIMIZATION := $(shell \
+ if $(CC) -Os -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \
+ then \
+ echo "-Os"; \
+ else \
+ echo "-O2"; \
+ fi)
WARNINGS = -Wall -Wshadow
+ARFLAGS = -r
-ARFLAGS = -r
-
-#
#--------------------------------------------------------
-# If you're going to do a lot of builds with a non-vanilla configuration,
-# it makes sense to adjust parameters above, so you can type "make"
-# by itself, instead of following it by the same half-dozen overrides
-# every time. The stuff below, on the other hand, is probably less
-# prone to casual user adjustment.
+# If you're going to do a lot of builds with a non-vanilla config-
+# uration, it makes sense to adjust parameters above, so you can type
+# "make" by itself, instead of following it by the same half-dozen
+# overrides every time. The stuff below, on the other hand, is
+# probably less prone to casual user adjustment.
#
-TARGET_ARCH=${shell $(CC) -dumpmachine | sed -e s'/-linux//' -e 's/i.86/i386/' -e 's/sparc.*/sparc/' \
- -e 's/arm.*/arm/g' -e 's/m68k.*/m68k/' -e 's/ppc/powerpc/g'}
+TARGET_ARCH = \
+ $(shell $(CC) -dumpmachine | \
+ sed -e s'/-linux//' \
+ -e 's/i.86/i386/' \
+ -e 's/sparc.*/sparc/' \
+ -e 's/arm.*/arm/g' \
+ -e 's/m68k.*/m68k/' \
+ -e 's/ppc/powerpc/g')
+
# Some nice architecture specific optimizations
+#
ifeq ($(strip $(TARGET_ARCH)),arm)
- OPTIMIZATION+=-fstrict-aliasing
+ OPTIMIZATION += -fstrict-aliasing
endif
+
ifeq ($(strip $(TARGET_ARCH)),i386)
- OPTIMIZATION+=-march=i386
- OPTIMIZATION += ${shell if $(CC) -mpreferred-stack-boundary=2 -S -o /dev/null -xc \
- /dev/null >/dev/null 2>&1; then echo "-mpreferred-stack-boundary=2"; fi}
- OPTIMIZATION += ${shell if $(CC) -malign-functions=0 -malign-jumps=0 -S -o /dev/null -xc \
- /dev/null >/dev/null 2>&1; then echo "-malign-functions=0 -malign-jumps=0"; fi}
- CFLAGS+=-pipe
+
+ OPTIMIZATION += -march=i386
+
+ OPTIMIZATION += \
+ $(shell if $(CC) -mpreferred-stack-boundary=2 -S \
+ -o /dev/null -xc \
+ /dev/null >/dev/null 2>&1; \
+ then \
+ echo "-mpreferred-stack-boundary=2"; \
+ fi)
+
+ OPTIMIZATION += \
+ $(shell if $(CC) -malign-functions=0 \
+ -malign-jumps=0 \
+ -S -o /dev/null -xc \
+ /dev/null >/dev/null 2>&1; \
+ then \
+ echo "-malign-functions=0 -malign-jumps=0"; \
+ fi)
+
+ CFLAGS += -pipe
else
- CFLAGS+=-pipe
+ CFLAGS += -pipe
endif
+
ifeq ($(strip $(DOLFS)),true)
# For large file support
- CFLAGS+=-D_FILE_OFFSET_BITS=64 -D__USE_FILE_OFFSET64
+ CFLAGS += -D_FILE_OFFSET_BITS=64 -D__USE_FILE_OFFSET64
endif
+
ifeq ($(strip $(DODMALLOC)),true)
# For testing mem leaks with dmalloc
- CFLAGS+=-DDMALLOC
- LIBRARIES = -ldmalloc
- # Force debug=true, since this is useless when not debugging...
- DODEBUG = true
+ CFLAGS += -DDMALLOC
+ LIBRARIES = -ldmalloc
+ # Force debug = true, since this is useless when not debugging...
+ DODEBUG = true
else
ifeq ($(strip $(DOEFENCE)),true)
- LIBRARIES = -lefence
- # Force debug=true, since this is useless when not debugging...
- DODEBUG = true
+ LIBRARIES = -lefence
+ # Force debug = true, since this is useless when not debugging...
+ DODEBUG = true
endif
endif
+
ifeq ($(strip $(DODEBUG)),true)
- CFLAGS += $(WARNINGS) -g -D_GNU_SOURCE
- LDFLAGS += -Wl,-warn-common
- STRIPCMD = /bin/true -Since_we_are_debugging
+ CFLAGS += $(WARNINGS) -g -D_GNU_SOURCE
+ LDFLAGS += -Wl,-warn-common
+ STRIPCMD = /bin/true -Since_we_are_debugging
else
- CFLAGS += $(WARNINGS) $(OPTIMIZATION) -fomit-frame-pointer -D_GNU_SOURCE
- LDFLAGS += -s -Wl,-warn-common
- STRIPCMD = $(STRIP) -s --remove-section=.note --remove-section=.comment
+ CFLAGS += $(WARNINGS) $(OPTIMIZATION) -fomit-frame-pointer -D_GNU_SOURCE
+ LDFLAGS += -s -Wl,-warn-common
+ STRIPCMD = $(STRIP) -s --remove-section=.note --remove-section=.comment
endif
+
ifeq ($(strip $(DOSTATIC)),true)
LDFLAGS += --static
#
- #use '-ffunction-sections -fdata-sections' and '--gc-sections' (if they
- # work) to try and strip out any unused junk. Doesn't do much for me,
- # but you may want to give it a shot...
+ # Use '-ffunction-sections -fdata-sections' and '--gc-sections'
+ # (if they work) to try and strip out any unused junk. Doesn't do
+ # much for me, but you may want to give it a shot...
#
- #ifeq ($(shell $(CC) -ffunction-sections -fdata-sections -S \
- # -o /dev/null -xc /dev/null 2>/dev/null && $(LD) \
- # --gc-sections -v >/dev/null && echo 1),1)
- # CFLAGS += -ffunction-sections -fdata-sections
- # LDFLAGS += --gc-sections
- #endif
+# ifeq ($(shell $(CC) -ffunction-sections
+# -fdata-sections
+# -S -o /dev/null -xc /dev/null 2>/dev/null
+# && $(LD) --gc-sections -v >/dev/null
+# && echo 1),1)
+# CFLAGS += -ffunction-sections -fdata-sections
+# LDFLAGS += --gc-sections
+# endif
endif
ifndef $(PREFIX)
@@ -189,9 +244,11 @@
endif
# Additional complications due to support for pristine source dir.
-# Include files in the build directory should take precedence over
-# the copy in BB_SRC_DIR, both during the compilation phase and the
-# shell script that finds the list of object files.
+#
+# Include files in the build directory should take precedence over the
+# copy in BB_SRC_DIR, both during the compilation phase and the shell
+# script that finds the list of object files.
+#
# Work in progress by <[email protected]>.
#
ifneq ($(strip $(BB_SRC_DIR)),)
@@ -201,9 +258,12 @@
# CFLAGS += -I- -I. $(patsubst %,-I%,$(subst :, ,$(VPATH)))
#endif
-# We need to set APPLET_SOURCES to something like
+# We need to set APPLET_SOURCES to something like:
+#
# $(shell busybox.sh Config.h)
-# but in a manner that works with VPATH and BB_SRC_DIR.
+#
+# ... but in a manner that works with VPATH and BB_SRC_DIR.
+#
# Possible ways to approach this:
#
# 1. Explicitly search through .:$(VPATH) for busybox.sh and config.h,
@@ -230,7 +290,7 @@
# And option 4:
-include applet_source_list
-OBJECTS = $(APPLET_SOURCES:.c=.o) busybox.o usage.o applets.o
+OBJECTS = $(APPLET_SOURCES:.c=.o) busybox.o usage.o applets.o
CFLAGS += $(CROSS_CFLAGS)
CFLAGS += -DBB_VER='"$(VERSION)"'
CFLAGS += -DBB_BT='"$(BUILDTIME)"'
@@ -242,56 +302,145 @@
PWD_GRP = pwd_grp
PWD_GRP_DIR = $(BB_SRC_DIR:=/)$(PWD_GRP)
PWD_LIB = libpwd.a
- PWD_CSRC=__getpwent.c pwent.c getpwnam.c getpwuid.c putpwent.c getpw.c \
- fgetpwent.c __getgrent.c grent.c getgrnam.c getgrgid.c fgetgrent.c \
- initgroups.c setgroups.c
- PWD_OBJS=$(patsubst %.c,$(PWD_GRP)/%.o, $(PWD_CSRC))
-ifneq ($(strip $(BB_SRC_DIR)),)
- PWD_CFLAGS = -I- -I.
-endif
+ PWD_CSRC = \
+ __getpwent.c \
+ pwent.c \
+ getpwnam.c \
+ getpwuid.c \
+ putpwent.c \
+ getpw.c \
+ fgetpwent.c \
+ __getgrent.c \
+ grent.c \
+ getgrnam.c \
+ getgrgid.c \
+ fgetgrent.c \
+ initgroups.c \
+ setgroups.c
+ PWD_OBJS = $(patsubst %.c,$(PWD_GRP)/%.o, $(PWD_CSRC))
+ ifneq ($(strip $(BB_SRC_DIR)),)
+ PWD_CFLAGS = -I- -I.
+ endif
PWD_CFLAGS += -I$(PWD_GRP_DIR)
else
- CFLAGS += -DUSE_SYSTEM_PWD_GRP
+ CFLAGS += -DUSE_SYSTEM_PWD_GRP
endif
-
-LIBBB = libbb
-LIBBB_LIB = libbb.a
-LIBBB_CSRC= ask_confirmation.c chomp.c concat_path_file.c copy_file.c \
-copy_file_chunk.c libc5.c device_open.c error_msg.c \
-error_msg_and_die.c fgets_str.c find_mount_point.c find_pid_by_name.c \
-find_root_device.c full_read.c full_write.c get_console.c \
-get_last_path_component.c get_line_from_file.c gz_open.c human_readable.c \
-isdirectory.c kernel_version.c loop.c mode_string.c module_syscalls.c mtab.c \
-mtab_file.c my_getgrnam.c my_getgrgid.c my_getpwnam.c my_getpwnamegid.c \
-my_getpwuid.c parse_mode.c parse_number.c perror_msg.c perror_msg_and_die.c \
-print_file.c process_escape_sequence.c read_package_field.c recursive_action.c \
-safe_read.c safe_strncpy.c syscalls.c syslog_msg_with_name.c time_string.c \
-trim.c unzip.c vdprintf.c verror_msg.c vperror_msg.c wfopen.c xfuncs.c \
-xgetcwd.c xreadlink.c xregcomp.c interface.c remove_file.c last_char_is.c \
-copyfd.c vherror_msg.c herror_msg.c herror_msg_and_die.c xgethostbyname.c \
-dirname.c make_directory.c create_icmp_socket.c u_signal_names.c arith.c \
-simplify_path.c
-LIBBB_OBJS=$(patsubst %.c,$(LIBBB)/%.o, $(LIBBB_CSRC))
+
+LIBBB = libbb
+LIBBB_LIB = libbb.a
+
+# Q: Has the link order been thought over? Does it matter?
+#
+LIBBB_CSRC = \
+ ask_confirmation.c \
+ chomp.c \
+ concat_path_file.c \
+ copy_file.c \
+ copy_file_chunk.c \
+ libc5.c \
+ device_open.c \
+ error_msg.c \
+ error_msg_and_die.c \
+ fgets_str.c \
+ find_mount_point.c \
+ find_pid_by_name.c \
+ find_root_device.c \
+ full_read.c \
+ full_write.c \
+ get_console.c \
+ get_last_path_component.c \
+ get_line_from_file.c \
+ gz_open.c \
+ human_readable.c \
+ isdirectory.c \
+ kernel_version.c \
+ loop.c \
+ mode_string.c \
+ module_syscalls.c \
+ mtab.c \
+ mtab_file.c \
+ my_getgrnam.c \
+ my_getgrgid.c \
+ my_getpwnam.c \
+ my_getpwnamegid.c \
+ my_getpwuid.c \
+ parse_mode.c \
+ parse_number.c \
+ perror_msg.c \
+ perror_msg_and_die.c \
+ print_file.c \
+ process_escape_sequence.c \
+ read_package_field.c \
+ recursive_action.c \
+ safe_read.c \
+ safe_strncpy.c \
+ syscalls.c \
+ syslog_msg_with_name.c \
+ time_string.c \
+ trim.c \
+ unzip.c \
+ vdprintf.c \
+ verror_msg.c \
+ vperror_msg.c \
+ wfopen.c \
+ xfuncs.c \
+ xgetcwd.c \
+ xreadlink.c \
+ xregcomp.c \
+ interface.c \
+ remove_file.c \
+ last_char_is.c \
+ copyfd.c \
+ vherror_msg.c \
+ herror_msg.c \
+ herror_msg_and_die.c \
+ xgethostbyname.c \
+ dirname.c \
+ make_directory.c \
+ create_icmp_socket.c \
+ u_signal_names.c \
+ arith.c \
+ simplify_path.c
+
+LIBBB_OBJS = $(patsubst %.c,$(LIBBB)/%.o, $(LIBBB_CSRC))
ifeq ($(strip $(BB_SRC_DIR)),)
LIBBB_CFLAGS += -I$(LIBBB)
else
LIBBB_CFLAGS = -I- -I. -I./$(LIBBB) -I$(BB_SRC_DIR)/$(LIBBB) -I$(BB_SRC_DIR)
endif
-LIBBB_MSRC=libbb/messages.c
-LIBBB_MESSAGES= full_version name_too_long omitting_directory not_a_directory \
-memory_exhausted invalid_date invalid_option io_error dash_dash_help \
-write_error too_few_args name_longer_than_foo unknown can_not_create_raw_socket
-LIBBB_MOBJ=$(patsubst %,$(LIBBB)/%.o, $(LIBBB_MESSAGES))
-
-LIBBB_ARCSRC=libbb/unarchive.c
-LIBBB_ARCOBJ= archive_offset seek_sub_file extract_archive unarchive \
-get_header_ar get_header_cpio get_header_tar deb_extract
-LIBBB_AROBJS=$(patsubst %,$(LIBBB)/%.o, $(LIBBB_ARCOBJ))
+LIBBB_MSRC = libbb/messages.c
+LIBBB_MESSAGES = \
+ full_version name_too_long \
+ omitting_directory not_a_directory \
+ memory_exhausted \
+ invalid_date \
+ invalid_option \
+ io_error \
+ dash_dash_help \
+ write_error \
+ too_few_args \
+ name_longer_than_foo \
+ unknown \
+ can_not_create_raw_socket
+LIBBB_MOBJ = $(patsubst %,$(LIBBB)/%.o, $(LIBBB_MESSAGES))
+
+LIBBB_ARCSRC = libbb/unarchive.c
+LIBBB_ARCOBJ = \
+ archive_offset \
+ seek_sub_file \
+ extract_archive \
+ unarchive \
+ get_header_ar \
+ get_header_cpio \
+ get_header_tar \
+ deb_extract
+LIBBB_AROBJS = $(patsubst %,$(LIBBB)/%.o, $(LIBBB_ARCOBJ))
-# Put user-supplied flags at the end, where they
-# have a chance of winning.
+# Put user-supplied flags at the end, where they have a chance of
+# winning.
+#
CFLAGS += $(CFLAGS_EXTRA)
.EXPORT_ALL_VARIABLES:
@@ -360,9 +509,13 @@
$(CC) $(LDFLAGS) -o $@ $(OBJECTS) $(LIBBB_LIB) $(PWD_LIB) $(LIBRARIES)
$(STRIPCMD) $(PROG)
-# Without VPATH, rule expands to "/bin/sh busybox.mkll Config.h applets.h"
-# but with VPATH, some or all of those file names are resolved to the
-# directories in which they live.
+# Without VPATH, this rule expands to:
+#
+# /bin/sh busybox.mkll Config.h applets.h
+#
+# ... but with VPATH, some or all of those file names are resolved to
+# the directories in which they live.
+#
busybox.links: busybox.mkll Config.h applets.h
- $(SHELL) $^ >$@
@@ -413,9 +566,9 @@
@ $(SHELL) $< > $@
test tests:
- # old way of doing it
- #cd tests && $(MAKE) all
- # new way of doing it
+# The old way of doing it:
+# cd tests && $(MAKE) all
+# ... and the new way of doing it:
cd tests && ./tester.sh
clean:
@@ -462,6 +615,8 @@
\
tar -cvzf busybox-$(VERSION).tar.gz busybox-$(VERSION)/;
-.PHONY: tags
+.PHONY: TAGS tags
+TAGS:
+ etags $(shell find . -name '*.[hc]')
tags:
ctags -R .
Index: grep.c
===================================================================
RCS file: /var/cvs/NetworkModule/busybox/grep.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -u -r1.1.1.2 -r1.2
Index: debian/.cvsignore
===================================================================
RCS file: debian/.cvsignore
diff -N debian/.cvsignore
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ debian/.cvsignore 6 Dec 2001 01:25:10 -0000 1.1
@@ -0,0 +1,10 @@
+busybox-initrd
+busybox-static
+busybox-udeb
+busybox-udeb.substvars
+busybox_builddir
+busybox_initrd_builddir
+busybox_static_builddir
+busybox_udeb_builddir
+files
+tmp
Index: debian/Config.h-initrd
===================================================================
RCS file: debian/Config.h-initrd
diff -N debian/Config.h-initrd
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ debian/Config.h-initrd 4 Aug 2002 07:55:43 -0000 1.3
@@ -0,0 +1,492 @@
+/* vi: set sw=4 ts=4: */
+// This file defines the feature set to be compiled into busybox.
+// When you turn things off here, they won't be compiled in at all.
+//
+//// This file is parsed by sed. You MUST use single line comments.
+// i.e., //#define BB_BLAH
+//
+//
+// BusyBox Applications
+//#define BB_ADJTIMEX
+#define BB_AR
+#define BB_ASH
+#define BB_BASENAME
+#define BB_CAT
+#define BB_CHGRP
+#define BB_CHMOD
+#define BB_CHOWN
+#define BB_CHROOT
+#define BB_CHVT
+#define BB_CLEAR
+#define BB_CMP
+#define BB_CP
+//#define BB_CPIO
+#define BB_CUT
+#define BB_DATE
+#define BB_DC
+#define BB_DD
+#define BB_DEALLOCVT
+#define BB_DF
+#define BB_DIRNAME
+#define BB_DMESG
+#define BB_DOS2UNIX
+#define BB_DPKG
+#define BB_DPKG_DEB
+#define BB_DUTMP
+#define BB_DU
+#define BB_DUMPKMAP
+#define BB_ECHO
+#define BB_ENV
+#define BB_EXPR
+#define BB_FBSET
+#define BB_FDFLUSH
+#define BB_FIND
+#define BB_FREE
+#define BB_FREERAMDISK
+#define BB_FSCK_MINIX
+#define BB_GETOPT
+#define BB_GREP
+#define BB_GUNZIP
+#define BB_GZIP
+#define BB_HALT
+#define BB_HEAD
+#define BB_HOSTID
+#define BB_HOSTNAME
+//#define BB_HUSH
+#define BB_ID
+#define BB_IFCONFIG
+#define BB_INIT
+//#define BB_INSMOD
+#define BB_KILL
+#define BB_KILLALL
+#define BB_KLOGD
+//#define BB_LASH
+#define BB_LENGTH
+#define BB_LN
+#define BB_LOADACM
+#define BB_LOADFONT
+#define BB_LOADKMAP
+#define BB_LOGGER
+#define BB_LOGNAME
+#define BB_LOSETUP
+#define BB_LS
+//#define BB_LSMOD
+#define BB_MAKEDEVS
+#define BB_MD5SUM
+#define BB_MKDIR
+#define BB_MKFIFO
+#define BB_MKFS_MINIX
+#define BB_MKNOD
+#define BB_MKSWAP
+#define BB_MKTEMP
+//#define BB_MODPROBE
+#define BB_MORE
+#define BB_MOUNT
+//#define BB_MSH
+#define BB_MT
+#define BB_MV
+#define BB_NC
+#define BB_NSLOOKUP
+#define BB_PIDOF
+#define BB_PING
+#define BB_PIVOT_ROOT
+#define BB_POWEROFF
+#define BB_PRINTF
+#define BB_PS
+#define BB_PWD
+#define BB_RDATE
+#define BB_READLINK
+#define BB_REBOOT
+#define BB_RENICE
+#define BB_RESET
+#define BB_RM
+#define BB_RMDIR
+//#define BB_RMMOD
+#define BB_ROUTE
+//#define BB_RPM2CPIO
+#define BB_SED
+#define BB_SETKEYCODES
+#define BB_SLEEP
+#define BB_SORT
+#define BB_STTY
+#define BB_SWAPONOFF
+#define BB_SYNC
+#define BB_SYSLOGD
+#define BB_TAIL
+#define BB_TAR
+#define BB_TEE
+#define BB_TEST
+#define BB_TELNET
+#define BB_TFTP
+#define BB_TIME
+#define BB_TOUCH
+#define BB_TR
+#define BB_TRACEROUTE
+#define BB_TRUE_FALSE
+#define BB_TTY
+#define BB_UNIX2DOS
+#define BB_UUENCODE
+#define BB_UUDECODE
+#define BB_UMOUNT
+#define BB_UNIQ
+#define BB_UNAME
+//#define BB_UPDATE
+#define BB_UPTIME
+#define BB_USLEEP
+#define BB_VI
+//#define BB_WATCHDOG
+#define BB_WC
+#define BB_WGET
+#define BB_WHICH
+#define BB_WHOAMI
+#define BB_XARGS
+#define BB_YES
+// End of Applications List
+//
+//
+//
+// ---------------------------------------------------------
+// This is where feature definitions go. Generally speaking,
+// turning this stuff off makes things a bit smaller (and less
+// pretty/useful).
+//
+//
+// If you enabled one or more of the shells, you may select which one
+// should be run when sh is invoked:
+#define BB_FEATURE_SH_IS_ASH
+//#define BB_FEATURE_SH_IS_HUSH
+//#define BB_FEATURE_SH_IS_LASH
+//#define BB_FEATURE_SH_IS_MSH
+//
+// BusyBox will, by default, malloc space for its buffers. This costs code
+// size for the call to xmalloc. You can use the following feature to have
+// them put on the stack. For some very small machines with limited stack
+// space, this can be deadly. For most folks, this works just fine...
+//#define BB_FEATURE_BUFFERS_GO_ON_STACK
+// The third alternative for buffer allocation is to use BSS. This works
+// beautifully for computers with a real MMU (and OS support), but wastes
+// runtime RAM for uCLinux. This behavior was the only one available for
+// BusyBox versions 0.48 and earlier.
+//#define BB_FEATURE_BUFFERS_GO_IN_BSS
+//
+// Turn this on to use Erik's very cool devps, and devmtab kernel drivers,
+// thereby eliminating the need for the /proc filesystem and thereby saving
+// lots and lots memory for more important things. NOTE: If you enable this
+// feature, you _must_ have patched the kernel to include the devps patch that
+// is included in the busybox/kernel-patches directory. You will also need to
+// create some device special files in /dev on your embedded system:
+// mknod /dev/mtab c 10 22
+// mknod /dev/ps c 10 21
+// I emailed Linus and this patch will not be going into the stock kernel.
+//#define BB_FEATURE_USE_DEVPS_PATCH
+//
+// show verbose usage messages
+#define BB_FEATURE_VERBOSE_USAGE
+//
+// Use termios to manipulate the screen ('more' is prettier with this on)
+#define BB_FEATURE_USE_TERMIOS
+//
+// calculate terminal & column widths (for more, ls, and telnet)
+#define BB_FEATURE_AUTOWIDTH
+//
+// show username/groupnames for ls
+#define BB_FEATURE_LS_USERNAME
+//
+// show file timestamps in ls
+#define BB_FEATURE_LS_TIMESTAMPS
+//
+// enable ls -p and -F
+#define BB_FEATURE_LS_FILETYPES
+//
+// sort the file names
+#define BB_FEATURE_LS_SORTFILES
+//
+// enable ls -R
+#define BB_FEATURE_LS_RECURSIVE
+//
+// enable ls -L
+#define BB_FEATURE_LS_FOLLOWLINKS
+//
+// Use color to identify different file types
+#define BB_FEATURE_LS_COLOR
+//
+// Disable for a smaller (but less functional) ping
+#define BB_FEATURE_FANCY_PING
+//
+// Make init use a simplified /etc/inittab file (recommended).
+#define BB_FEATURE_USE_INITTAB
+//
+//Enable init being called as /linuxrc
+//#define BB_FEATURE_LINUXRC
+//
+//Have init enable core dumping for child processes (for debugging only)
+//#define BB_FEATURE_INIT_COREDUMPS
+//
+//Make sure nothing is printed to the console on boot
+//#define BB_FEATURE_EXTRA_QUIET
+//
+// enable syslogd -R remotehost
+#define BB_FEATURE_REMOTE_LOG
+//
+// enable syslogd -C
+//#define BB_FEATURE_IPC_SYSLOG
+//
+//Disable for a simple tail implementation (2.34k vs 3k for the full one).
+//Both provide 'tail -f', but this cuts out -c, -q, -s, and -v.
+#define BB_FEATURE_FANCY_TAIL
+//
+// Enable support for loop devices in mount
+#define BB_FEATURE_MOUNT_LOOP
+//
+// Enable support for a real /etc/mtab file instead of /proc/mounts
+//#define BB_FEATURE_MTAB_SUPPORT
+//
+// Enable support for mounting remote NFS volumes.
+// You may need to mount with "-o nolock" if you are
+// not running a local portmapper daemon...
+//
+// If you are using uClibc, be sure that you've already compiled
+// uClibc with INCLUDE_RPC=true (contained in the Config file)
+#define BB_FEATURE_NFSMOUNT
+//
+// Enable support forced filesystem unmounting
+// (i.e., in case of an unreachable NFS system).
+#define BB_FEATURE_MOUNT_FORCE
+//
+// Enable support for creation of tar files.
+#define BB_FEATURE_TAR_CREATE
+//
+// Enable support for "--exclude" and "-X" for excluding files
+#define BB_FEATURE_TAR_EXCLUDE
+//
+// Enable support for tar -z option (currently only works for inflating)
+#define BB_FEATURE_TAR_GZIP
+//
+// Enable reverse sort
+#define BB_FEATURE_SORT_REVERSE
+//
+// Enable uniqe sort
+#define BB_FEATURE_SORT_UNIQUE
+//
+// Enable command line editing in the shell.
+// Only relevant if a shell is enabled. On by default.
+#define BB_FEATURE_COMMAND_EDITING
+//
+// Enable tab completion in the shell. This is now working quite nicely.
+// This feature adds a bit over 4k. Only relevant if a shell is enabled.
+#define BB_FEATURE_COMMAND_TAB_COMPLETION
+//
+// Attempts to match usernames in a ~-prefixed path
+#define BB_FEATURE_COMMAND_USERNAME_COMPLETION
+//
+//Allow the shell to invoke all the compiled in BusyBox applets as if they
+//were shell builtins. Nice for staticly linking an emergency rescue shell,
+//among other things. Off by default.
+// Only relevant if a shell is enabled.
+//#define BB_FEATURE_SH_STANDALONE_SHELL
+//
+//When this is enabled, busybox shell applets can be called using full path
+//names. This causes applets (i.e., most busybox commands) to override
+//real commands on the filesystem. For example, if you run run /bin/cat, it
+//will use BusyBox cat even if /bin/cat exists on the filesystem and is _not_
+//busybox. Some systems want this, others do not. Choose wisely. :-) This
+//only has meaning when BB_FEATURE_SH_STANDALONE_SHELL is enabled.
+// Only relevant if a shell is enabled. Off by default.
+//#define BB_FEATURE_SH_APPLETS_ALWAYS_WIN
+//
+// Uncomment this option for a fancy shell prompt that includes the
+// current username and hostname. On systems that don't have usernames
+// or hostnames, this can look hideous.
+// Only relevant if a shell is enabled.
+#define BB_FEATURE_SH_FANCY_PROMPT
+//
+// Uncomment this option to disable job control. Job control lets you
+// run jobs in the background (which completely useless for is all you
+// are doing is running scripts). Disabing this is bad for interactive
+// use, since when you hit ^C in an application, it will also kill the
+// shell. This adds about 2.5k on an x86 system.
+#define BB_FEATURE_ASH_JOB_CONTROL
+//
+//Turn on extra fbset options
+#define BB_FEATURE_FBSET_FANCY
+//
+//Turn on fbset readmode support
+#define BB_FEATURE_FBSET_READMODE
+//
+// Support insmod/lsmod/rmmod for post 2.1 kernels
+#define BB_FEATURE_NEW_MODULE_INTERFACE
+//
+// Support insmod/lsmod/rmmod for pre 2.1 kernels
+//#define BB_FEATURE_OLD_MODULE_INTERFACE
+//
+// Support module version checking
+//#define BB_FEATURE_INSMOD_VERSION_CHECKING
+//
+// Support for uClinux memory usage optimization, which will load the image
+// directly into the kernel memory. This divides memory requrements by three.
+// If you are not running uClinux (i.e., your CPU has an MMU) leave this
+// disabled...
+//#define BB_FEATURE_INSMOD_LOADINKMEM
+//
+// Support for Minix filesystem, version 2
+#define BB_FEATURE_MINIX2
+//
+// Enable ifconfig status reporting output -- this feature adds 7k.
+#define BB_FEATURE_IFCONFIG_STATUS
+//
+// Enable ifconfig slip-specific options "keepalive" and "outfill"
+//#define BB_FEATURE_IFCONFIG_SLIP
+//
+// Enable ifconfig options "mem_start", "io_addr", and "irq".
+//#define BB_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
+//
+// Enable ifconfig option "hw". Currently works for only with "ether".
+#define BB_FEATURE_IFCONFIG_HW
+//
+// Allows "broadcast +" to set broadcast automatically based on hostaddr
+// and netmask, at a cost of about 100 bytes of code (i386).
+#define BB_FEATURE_IFCONFIG_BROADCAST_PLUS
+//
+// Enable busybox --install [-s]
+// to create links (or symlinks) for all the commands that are
+// compiled into the binary. (needs /proc filesystem)
+#define BB_FEATURE_INSTALLER
+//
+// Enable a nifty progress meter in wget (adds just under 2k)
+#define BB_FEATURE_WGET_STATUSBAR
+//
+// Enable HTTP authentication in wget
+#define BB_FEATURE_WGET_AUTHENTICATION
+//
+// Clean up all memory before exiting -- usually not needed
+// as the OS can clean up... Don't enable this unless you
+// have a really good reason for cleaning things up manually.
+//#define BB_FEATURE_CLEAN_UP
+//
+// Support for human readable output by ls, du, etc.(example 13k, 23M, 235G)
+#define BB_FEATURE_HUMAN_READABLE
+//
+// Support for the find -type option.
+#define BB_FEATURE_FIND_TYPE
+//
+// Support for the find -perm option.
+#define BB_FEATURE_FIND_PERM
+//
+// Support for the find -mtime option.
+#define BB_FEATURE_FIND_MTIME
+//
+//// Support for the find -newer option.
+#define BB_FEATURE_FIND_NEWER
+//
+// Support for the -A -B and -C context flags in grep
+#define BB_FEATURE_GREP_CONTEXT
+//
+// Support for the EGREP applet (alias to the grep applet)
+#define BB_FEATURE_GREP_EGREP_ALIAS
+//
+// Tell tftp what commands that should be supported.
+#define BB_FEATURE_TFTP_PUT
+#define BB_FEATURE_TFTP_GET
+//
+// features for vi
+#define BB_FEATURE_VI_COLON // ":" colon commands, no "ex" mode
+#define BB_FEATURE_VI_YANKMARK // Yank/Put commands and Mark cmds
+#define BB_FEATURE_VI_SEARCH // search and replace cmds
+#define BB_FEATURE_VI_USE_SIGNALS // catch signals
+#define BB_FEATURE_VI_DOT_CMD // remember previous cmd and "." cmd
+#define BB_FEATURE_VI_READONLY // vi -R and "view" mode
+#define BB_FEATURE_VI_SETOPTS // set-able options, ai ic showmatch
+#define BB_FEATURE_VI_SET // :set
+#define BB_FEATURE_VI_WIN_RESIZE // handle window resize
+//
+// Enable a if you system have setuped locale
+//#define BB_LOCALE_SUPPORT
+//
+// Support for TELNET to pass TERM type to remote host. Adds 384 bytes.
+#define BB_FEATURE_TELNET_TTYPE
+//
+// Support for devfs.
+#define BB_FEATURE_DEVFS
+//
+// End of Features List
+//
+//
+//
+//
+//
+//
+//---------------------------------------------------
+// Nothing beyond this point should ever be touched by
+// mere mortals so leave this stuff alone.
+//
+#include <features.h>
+#if defined __UCLIBC__ && ! defined __UCLIBC_HAS_MMU__
+ #undef BB_RPM2CPIO /* Uses gz_open(), which uses fork() */
+ #undef BB_DPKG_DEB /* Uses gz_open(), which uses fork() */
+ #undef BB_FEATURE_TAR_GZIP /* Uses fork() */
+ #undef BB_UPDATE /* Uses daemon() */
+#endif
+#if defined BB_ASH || defined BB_HUSH || defined BB_LASH || defined BB_MSH
+ #if defined BB_FEATURE_COMMAND_EDITING
+ #define BB_CMDEDIT
+ #else
+ #undef BB_FEATURE_COMMAND_EDITING
+ #undef BB_FEATURE_COMMAND_TAB_COMPLETION
+ #undef BB_FEATURE_COMMAND_USERNAME_COMPLETION
+ #undef BB_FEATURE_SH_FANCY_PROMPT
+ #endif
+#else
+ #undef BB_FEATURE_SH_APPLETS_ALWAYS_WIN
+ #undef BB_FEATURE_SH_STANDALONE_SHELL
+ #undef BB_FEATURE_SH_FANCY_PROMPT
+#endif
+//
+#if (defined BB_ASH || defined BB_HUSH || defined BB_MSH) && ! defined BB_TEST
+ #define BB_TEST
+#endif
+//
+#ifdef BB_KILLALL
+ #ifndef BB_KILL
+ #define BB_KILL
+ #endif
+#endif
+//
+#ifndef BB_INIT
+ #undef BB_FEATURE_LINUXRC
+#endif
+//
+#if defined BB_MOUNT && defined BB_FEATURE_NFSMOUNT
+ #define BB_NFSMOUNT
+#endif
+//
+#if defined BB_FEATURE_AUTOWIDTH
+ #ifndef BB_FEATURE_USE_TERMIOS
+ #define BB_FEATURE_USE_TERMIOS
+ #endif
+#endif
+//
+#if defined BB_INSMOD || defined BB_LSMOD
+ #if ! defined BB_FEATURE_NEW_MODULE_INTERFACE && ! defined BB_FEATURE_OLD_MODULE_INTERFACE
+ #define BB_FEATURE_NEW_MODULE_INTERFACE
+ #endif
+#endif
+//
+#ifdef BB_UNIX2DOS
+ #define BB_DOS2UNIX
+#endif
+//
+#ifdef BB_SYSLOGD
+ #if defined BB_FEATURE_IPC_SYSLOG
+ #define BB_LOGREAD
+ #endif
+#endif
+//
+#if defined BB_ASH && defined BB_FEATURE_SH_IS_ASH
+# define shell_main ash_main
+#elif defined BB_HUSH && defined BB_FEATURE_SH_IS_HUSH
+# define shell_main hush_main
+#elif defined BB_LASH && defined BB_FEATURE_SH_IS_LASH
+# define shell_main lash_main
+#elif defined BB_MSH && defined BB_FEATURE_SH_IS_MSH
+# define shell_main msh_main
+#endif
Index: debian/changelog
===================================================================
RCS file: /var/cvs/NetworkModule/busybox/debian/changelog,v
retrieving revision 1.1.1.2
retrieving revision 1.4
diff -u -u -r1.1.1.2 -r1.4
--- debian/changelog 27 Apr 2002 07:55:02 -0000 1.1.1.2
+++ debian/changelog 4 Aug 2002 07:11:46 -0000 1.4
@@ -1,3 +1,9 @@
+busybox (1:0.60.3-1.01) unstable; urgency=low
+
+ * Bittersweet Enterprises build for Freekbox distro project
+
+ -- Karl M. Hegbloom <[email protected]> Sat, 3 Aug 2002 23:51:15 -0700
+
busybox (1:0.60.3-1) unstable; urgency=low
* New version released. See Changelog for non-Debian specific details.
@@ -22,6 +28,23 @@
* Enable hostname (closes: #120511)
-- Erik Andersen <[email protected]> Thu, 6 Dec 2001 00:06:33 -0700
+
+busybox (1:0.60.2-1.02) unstable; urgency=low
+
+ * Micro Sharp Netule build.
+ * Config.h-initrd: turn off BB_DPKG, BB_DPKG_DEB, BB_LSMOD, BB_RMMOD,
+ BB_UPDATE, BB_WATCHDOG, BB_FEATURE_LINUXRC; turn on
+ BB_FEATURE_INIT_COREDUMPS, BB_FEATURE_COMMAND_USERNAME_COMPLETION.
+
+ -- Karl M. Hegbloom <[email protected]> Thu, 13 Dec 2001 15:44:21 -0800
+
+busybox (1:0.60.2-1.01) unstable; urgency=low
+
+ * Micro Sharp version.
+ * Add busybox-initrd package.
+ * Fixed preprocessor error in grep.c; patch submitted to Debian BTS.
+
+ -- Karl M. Hegbloom <[email protected]> Wed, 5 Dec 2001 13:49:41 -0800
busybox (1:0.60.2-1) unstable; urgency=low
Index: debian/control
===================================================================
RCS file: /var/cvs/NetworkModule/busybox/debian/control,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -u -r1.1.1.1 -r1.2
--- debian/control 26 Jul 2001 14:45:21 -0000 1.1.1.1
+++ debian/control 6 Dec 2001 01:26:46 -0000 1.2
@@ -46,6 +46,28 @@
your system from certain destruction. Invoke "busybox", and it will list the
available builtin commands.
+Package: busybox-initrd
+Architecture: any
+Depends: ${shlibs:Depends}
+Section: shells
+Description: Standalone rescue shell with tons of builtin utilities.
+ BusyBox combines tiny versions of many common UNIX utilities into a single
+ small executable. It provides minimalist replacements for the most common
+ utilities you would usually find on your desktop system (i.e., ls, cp, mv,
+ mount, tar, etc.). The utilities in BusyBox generally have fewer options than
+ their full-featured GNU cousins; however, the options that are included
+ provide the expected functionality and behave very much like their GNU
+ counterparts.
+ .
+ BusyBox-initrd provides you with a dynamicly linked simple stand
+ alone shell that provides all the utilities available in BusyBox.
+ This package is intended to be used in an initrd that will double as
+ a rescue system, in the event that you screw up your system.
+ .
+ So you know where your mkinitrd set can find it, the busybox binary
+ shipped with this package will be placed in
+ /usr/lib/initrd-busybox/busybox.
+
Package: busybox-udeb
Architecture: any
Depends: ${shlibs:Depends}
Index: debian/rules
===================================================================
RCS file: /var/cvs/NetworkModule/busybox/debian/rules,v
retrieving revision 1.1.1.2
retrieving revision 1.4
diff -u -u -r1.1.1.2 -r1.4
--- debian/rules 27 Apr 2002 09:07:09 -0000 1.1.1.2
+++ debian/rules 4 Aug 2002 10:17:03 -0000 1.4
@@ -5,21 +5,26 @@
# things to be recompiled...)
# This is the debhelper compatability version to use.
-#export DH_COMPAT=1
+# export DH_COMPAT = 1
-bbbd=debian/busybox_builddir
-bb=debian/tmp
-bbsbd=debian/busybox_static_builddir
-bbs=debian/busybox-static
-bbubd=debian/busybox_udeb_builddir
-bbu=debian/busybox-udeb
+bbbd = debian/busybox_builddir
+bb = debian/tmp
+
+bbsbd = debian/busybox_static_builddir
+bbs = debian/busybox-static
+
+bbibd = debian/busybox_initrd_builddir
+bbi = debian/busybox-initrd
+
+bbubd = debian/busybox_udeb_builddir
+bbu = debian/busybox-udeb
clean:
dh_testdir
dh_testroot
- rm -f debian/build-stamp-busybox debian/build-stamp-busybox-static debian/build-stamp-busybox-udeb
+ rm -f debian/build-stamp-busybox debian/build-stamp-busybox-static debian/build-stamp-busybox-initrd debian/build-stamp-busybox-udeb
-$(MAKE) clean
- -rm -rf $(bb) $(bbbd) $(bbs) $(bbsbd) $(bbubd) $(bbu)
+ -rm -rf $(bb) $(bbbd) $(bbs) $(bbsbd) $(bbi) $(bbibd) $(bbu) $(bbubd)
dh_clean
build: debian/build-stamp-busybox
@@ -29,6 +34,7 @@
cp Makefile $(bbbd)
cp debian/Config.h-deb $(bbbd)/Config.h
-(cd $(bbbd); $(MAKE) "BB_SRC_DIR=../../" applet_source_list)
+ (cd $(bbbd); $(MAKE) "BB_SRC_DIR=../../" doc)
(cd $(bbbd); $(MAKE) USE_SYSTEM_PWD_GRP=false "BB_SRC_DIR=../../")
touch debian/build-stamp-busybox
@@ -80,6 +86,37 @@
do_static: half_clean build-static install-static
+build-initrd: debian/build-stamp-busybox-initrd
+debian/build-stamp-busybox-initrd:
+ dh_testdir
+ mkdir -p $(bbibd)
+ cp Makefile $(bbibd)
+ cp debian/Config.h-initrd $(bbibd)/Config.h
+ (cd $(bbibd); $(MAKE) USE_SYSTEM_PWD_GRP=false "BB_SRC_DIR=../../")
+ touch debian/build-stamp-busybox-initrd
+
+install-initrd: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+ # Do not run 'make install', since we do not want all the symlinks.
+ # This just installs the busybox binary...
+ #(cd $(bbibd); $(MAKE) "BB_SRC_DIR=../../" "PREFIX=../../$(bbi)" install)
+ mkdir -p $(bbi)/usr/lib/initrd-busybox
+ cp $(bbibd)/busybox $(bbi)/usr/lib/initrd-busybox/busybox
+# mkdir -p $(bbi)/usr/share/doc/busybox-initrd/busybox
+# cp $(bbibd)/docs/busybox/BusyBox.html $(bbi)/usr/share/doc/busybox-initrd/busybox/
+# mkdir -p $(bbi)/usr/share/man/man1/
+# cp $(bbibd)/docs/BusyBox.1 $(bbi)/usr/share/man/man1/busybox.1
+
+second_half_clean:
+ dh_testdir
+ dh_testroot
+ rm -rf $(bbi) debian/build-stamp-busybox-initrd
+ -$(MAKE) clean
+
+do_initrd: second_half_clean build-initrd install-initrd
# Now for the .udeb stuff
@@ -121,7 +158,7 @@
# We have nothing to do by default.
# Build architecture-dependent files here.
-binary-arch: busybox busybox-static busybox-udeb
+binary-arch: busybox busybox-static busybox-initrd busybox-udeb
busybox: install
@echo "--- Building: $@"
@@ -166,6 +203,26 @@
dh_md5sums -p$@
dh_builddeb -p$@
+busybox-initrd: do_initrd
+ @echo "--- Building: $@"
+ dh_testdir
+ dh_testroot
+ dh_installdirs
+ dh_installdocs -p$@ $(bbibd)/docs/BusyBox.txt \
+ $(bbibd)/docs/BusyBox.html docs/style-guide.txt \
+ AUTHORS README TODO
+ rm -rf `find $(bbi) -name CVS`
+ rm -f `find $(bbi) -name .cvsignore`
+ dh_installchangelogs -p$@ Changelog
+ dh_undocumented -p$@
+ dh_strip -p$@
+ dh_compress -p$@
+ dh_fixperms -p$@
+ dh_installdeb -p$@
+ dh_shlibdeps -p$@
+ dh_gencontrol -p$@
+ dh_md5sums -p$@
+ dh_builddeb -p$@
# Note that this builds a .udeb, which is not policy compliant or anything.
#
--
As any limb well and duly exercised, grows stronger,
the nerves of the body are corroborated thereby. --I. Watts. .''`.
Debian -- The blue collar Linux distribution. : :' :
<URL:http://www.debian.org/social_contract> `. `'
--- End Message ---