This commit is contained in:
Eric Andersen 1999-11-19 05:31:45 +00:00
parent 08b1034f4f
commit 6a76e652aa
11 changed files with 65 additions and 80 deletions

View File

@ -72,6 +72,9 @@ static const struct Applet applets[] = {
#ifdef BB_INIT //sbin #ifdef BB_INIT //sbin
{"init", init_main}, {"init", init_main},
#endif #endif
#ifdef BB_FEATURE_LINUXRC //
{"linuxrc", init_main},
#endif
#ifdef BB_KILL //bin #ifdef BB_KILL //bin
{"kill", kill_main}, {"kill", kill_main},
#endif #endif

View File

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/sh
sed -n '/^#define/{s/.*BB_//; s/$/.o/p; }' busybox.def.h | \ ls -1 `sed -n '/^#define/{s/.*BB_// ; s/$/.c/p; }' busybox.def.h | \
tr [:upper:] [:lower:] tr [:upper:] [:lower:]` 2> /dev/null | sed -e 's/\.c$/\.o/g'

View File

@ -6,17 +6,20 @@ if [ "$1" == "" ]; then
echo "No installation directory, aborting." echo "No installation directory, aborting."
exit 1; exit 1;
fi fi
rm -rf $1
# can't just use cat, rmdir is not unique
#h=`cat busybox.links`
h=`sort busybox.links | uniq` h=`sort busybox.links | uniq`
mkdir -p $1/bin
for i in $h ; do for i in $h ; do
[ ${verbose} ] && echo " making link to $i" echo "working on $i now"
mkdir -p $1/`echo $i | sed -e 's/\(^.*\/\)\(.*\)/\1/g' ` mypath=`echo $i | sed -e 's/\(^.*\/\)\(.*\)/\1/g' `;
ln -s busybox $1/bin/`echo $i | sed -e 's/\(^.*\/\)\(.*\)/\2/g' ` myapp=`echo $i | sed -e 's/\(^.*\/\)\(.*\)/\2/g' `;
echo "mkdir -p $1$mypath"
echo "(cd $1$mypath ; ln -s /bin/busybox $1$mypath$myapp )"
mkdir -p $1$mypath
(cd $1$mypath ; ln -s /bin/busybox $1$mypath$myapp )
done done
rm -f $1/bin/busybox rm -f $1/bin/busybox
install -m 755 busybox $1/bin/busybox install -m 755 busybox $1/bin/busybox

View File

@ -72,6 +72,9 @@ static const struct Applet applets[] = {
#ifdef BB_INIT //sbin #ifdef BB_INIT //sbin
{"init", init_main}, {"init", init_main},
#endif #endif
#ifdef BB_FEATURE_LINUXRC //
{"linuxrc", init_main},
#endif
#ifdef BB_KILL //bin #ifdef BB_KILL //bin
{"kill", kill_main}, {"kill", kill_main},
#endif #endif

View File

@ -64,3 +64,14 @@
// Don't turn BB_UTILITY off. It contains support code // Don't turn BB_UTILITY off. It contains support code
// that compiles to 0 if everything else if turned off. // that compiles to 0 if everything else if turned off.
#define BB_UTILITY #define BB_UTILITY
//
//This is where feature definitions go.
#define BB_FEATURE_LINUXRC
/* Turning this off makes things a bit smaller (and less pretty) */
#define BB_FEATURE_USE_TERMIOS
/* Turning this off makes things a bit smaller (and less pretty) */
#define BB_FEATURE_AUTOWIDTH

View File

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/sh
sed -n '/^#define/{s/.*BB_//; s/$/.o/p; }' busybox.def.h | \ ls -1 `sed -n '/^#define/{s/.*BB_// ; s/$/.c/p; }' busybox.def.h | \
tr [:upper:] [:lower:] tr [:upper:] [:lower:]` 2> /dev/null | sed -e 's/\.c$/\.o/g'

View File

@ -32,6 +32,7 @@
#include <stdio.h> #include <stdio.h>
#include <fcntl.h> #include <fcntl.h>
#include <errno.h> #include <errno.h>
#include <inttypes.h>
static const char dd_usage[] = static const char dd_usage[] =
"dd [if=name] [of=name] [bs=n] [count=n]\n\n" "dd [if=name] [of=name] [bs=n] [count=n]\n\n"
@ -92,27 +93,20 @@ static long getNum (const char *cp)
extern int dd_main (int argc, char **argv) extern int dd_main (int argc, char **argv)
{ {
const char *inFile; const char *inFile = NULL;
const char *outFile; const char *outFile = NULL;
char *cp; char *cp;
int inFd; int inFd;
int outFd; int outFd;
int inCc = 0; int inCc = 0;
int outCc; int outCc;
int skipBlocks; size_t blockSize = 512;
int blockSize; //uintmax_t skipBlocks = 0;
long count; uintmax_t count = (uintmax_t)-1;
long intotal; uintmax_t intotal;
long outTotal; uintmax_t outTotal;
unsigned char *buf; unsigned char *buf;
inFile = NULL;
outFile = NULL;
blockSize = 512;
skipBlocks = 0;
count = 1;
argc--; argc--;
argv++; argv++;
@ -125,14 +119,14 @@ extern int dd_main (int argc, char **argv)
else if (strncmp("count", *argv, 5) == 0) { else if (strncmp("count", *argv, 5) == 0) {
count = getNum ((strchr(*argv, '='))+1); count = getNum ((strchr(*argv, '='))+1);
if (count <= 0) { if (count <= 0) {
fprintf (stderr, "Bad count value %ld\n", count); fprintf (stderr, "Bad count value %s\n", *argv);
goto usage; goto usage;
} }
} }
else if (strncmp(*argv, "bs", 2) == 0) { else if (strncmp(*argv, "bs", 2) == 0) {
blockSize = getNum ((strchr(*argv, '='))+1); blockSize = getNum ((strchr(*argv, '='))+1);
if (blockSize <= 0) { if (blockSize <= 0) {
fprintf (stderr, "Bad block size value %d\n", blockSize); fprintf (stderr, "Bad block size value %s\n", *argv);
goto usage; goto usage;
} }
} }
@ -162,13 +156,8 @@ extern int dd_main (int argc, char **argv)
intotal = 0; intotal = 0;
outTotal = 0; outTotal = 0;
if (inFile == NULL) { if (inFile == NULL)
struct stat statBuf;
inFd = fileno(stdin); inFd = fileno(stdin);
if (fstat(inFd, &statBuf) < 0)
exit( FALSE);
count = statBuf.st_size;
}
else else
inFd = open (inFile, 0); inFd = open (inFile, 0);
@ -227,9 +216,9 @@ extern int dd_main (int argc, char **argv)
close (outFd); close (outFd);
free (buf); free (buf);
printf ("%ld+%d records in\n", intotal / blockSize, printf ("%ld+%d records in\n", (long)(intotal / blockSize),
(intotal % blockSize) != 0); (intotal % blockSize) != 0);
printf ("%ld+%d records out\n", outTotal / blockSize, printf ("%ld+%d records out\n", (long)(outTotal / blockSize),
(outTotal % blockSize) != 0); (outTotal % blockSize) != 0);
exit( TRUE); exit( TRUE);
usage: usage:

37
dd.c
View File

@ -32,6 +32,7 @@
#include <stdio.h> #include <stdio.h>
#include <fcntl.h> #include <fcntl.h>
#include <errno.h> #include <errno.h>
#include <inttypes.h>
static const char dd_usage[] = static const char dd_usage[] =
"dd [if=name] [of=name] [bs=n] [count=n]\n\n" "dd [if=name] [of=name] [bs=n] [count=n]\n\n"
@ -92,27 +93,20 @@ static long getNum (const char *cp)
extern int dd_main (int argc, char **argv) extern int dd_main (int argc, char **argv)
{ {
const char *inFile; const char *inFile = NULL;
const char *outFile; const char *outFile = NULL;
char *cp; char *cp;
int inFd; int inFd;
int outFd; int outFd;
int inCc = 0; int inCc = 0;
int outCc; int outCc;
int skipBlocks; size_t blockSize = 512;
int blockSize; //uintmax_t skipBlocks = 0;
long count; uintmax_t count = (uintmax_t)-1;
long intotal; uintmax_t intotal;
long outTotal; uintmax_t outTotal;
unsigned char *buf; unsigned char *buf;
inFile = NULL;
outFile = NULL;
blockSize = 512;
skipBlocks = 0;
count = 1;
argc--; argc--;
argv++; argv++;
@ -125,14 +119,14 @@ extern int dd_main (int argc, char **argv)
else if (strncmp("count", *argv, 5) == 0) { else if (strncmp("count", *argv, 5) == 0) {
count = getNum ((strchr(*argv, '='))+1); count = getNum ((strchr(*argv, '='))+1);
if (count <= 0) { if (count <= 0) {
fprintf (stderr, "Bad count value %ld\n", count); fprintf (stderr, "Bad count value %s\n", *argv);
goto usage; goto usage;
} }
} }
else if (strncmp(*argv, "bs", 2) == 0) { else if (strncmp(*argv, "bs", 2) == 0) {
blockSize = getNum ((strchr(*argv, '='))+1); blockSize = getNum ((strchr(*argv, '='))+1);
if (blockSize <= 0) { if (blockSize <= 0) {
fprintf (stderr, "Bad block size value %d\n", blockSize); fprintf (stderr, "Bad block size value %s\n", *argv);
goto usage; goto usage;
} }
} }
@ -162,13 +156,8 @@ extern int dd_main (int argc, char **argv)
intotal = 0; intotal = 0;
outTotal = 0; outTotal = 0;
if (inFile == NULL) { if (inFile == NULL)
struct stat statBuf;
inFd = fileno(stdin); inFd = fileno(stdin);
if (fstat(inFd, &statBuf) < 0)
exit( FALSE);
count = statBuf.st_size;
}
else else
inFd = open (inFile, 0); inFd = open (inFile, 0);
@ -227,9 +216,9 @@ extern int dd_main (int argc, char **argv)
close (outFd); close (outFd);
free (buf); free (buf);
printf ("%ld+%d records in\n", intotal / blockSize, printf ("%ld+%d records in\n", (long)(intotal / blockSize),
(intotal % blockSize) != 0); (intotal % blockSize) != 0);
printf ("%ld+%d records out\n", outTotal / blockSize, printf ("%ld+%d records out\n", (long)(outTotal / blockSize),
(outTotal % blockSize) != 0); (outTotal % blockSize) != 0);
exit( TRUE); exit( TRUE);
usage: usage:

View File

@ -6,17 +6,20 @@ if [ "$1" == "" ]; then
echo "No installation directory, aborting." echo "No installation directory, aborting."
exit 1; exit 1;
fi fi
rm -rf $1
# can't just use cat, rmdir is not unique
#h=`cat busybox.links`
h=`sort busybox.links | uniq` h=`sort busybox.links | uniq`
mkdir -p $1/bin
for i in $h ; do for i in $h ; do
[ ${verbose} ] && echo " making link to $i" echo "working on $i now"
mkdir -p $1/`echo $i | sed -e 's/\(^.*\/\)\(.*\)/\1/g' ` mypath=`echo $i | sed -e 's/\(^.*\/\)\(.*\)/\1/g' `;
ln -s busybox $1/bin/`echo $i | sed -e 's/\(^.*\/\)\(.*\)/\2/g' ` myapp=`echo $i | sed -e 's/\(^.*\/\)\(.*\)/\2/g' `;
echo "mkdir -p $1$mypath"
echo "(cd $1$mypath ; ln -s /bin/busybox $1$mypath$myapp )"
mkdir -p $1$mypath
(cd $1$mypath ; ln -s /bin/busybox $1$mypath$myapp )
done done
rm -f $1/bin/busybox rm -f $1/bin/busybox
install -m 755 busybox $1/bin/busybox install -m 755 busybox $1/bin/busybox

8
more.c
View File

@ -24,14 +24,6 @@
* *
*/ */
/* Turning this off makes things a bit smaller (and less pretty) */
#define BB_FEATURE_USE_TERMIOS
/* Turning this off makes things a bit smaller (and less pretty) */
#define BB_FEATURE_AUTOWIDTH
#include "internal.h" #include "internal.h"
#include <stdio.h> #include <stdio.h>
#include <fcntl.h> #include <fcntl.h>

View File

@ -24,14 +24,6 @@
* *
*/ */
/* Turning this off makes things a bit smaller (and less pretty) */
#define BB_FEATURE_USE_TERMIOS
/* Turning this off makes things a bit smaller (and less pretty) */
#define BB_FEATURE_AUTOWIDTH
#include "internal.h" #include "internal.h"
#include <stdio.h> #include <stdio.h>
#include <fcntl.h> #include <fcntl.h>