diff -urpN busybox.1/archival/Kbuild busybox.2/archival/Kbuild
--- busybox.1/archival/Kbuild	2006-10-03 23:33:39.000000000 +0200
+++ busybox.2/archival/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,18 +4,19 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:=
-obj-y				+= libunarchive/
-obj-$(CONFIG_AR)		+= ar.o
-obj-$(CONFIG_BUNZIP2)		+= bunzip2.o
-obj-$(CONFIG_UNLZMA)		+= unlzma.o
-obj-$(CONFIG_CPIO)		+= cpio.o
-obj-$(CONFIG_DPKG)		+= dpkg.o
-obj-$(CONFIG_DPKG_DEB)		+= dpkg_deb.o
-obj-$(CONFIG_GUNZIP)		+= gunzip.o
-obj-$(CONFIG_GZIP)		+= gzip.o
-obj-$(CONFIG_RPM2CPIO)		+= rpm2cpio.o
-obj-$(CONFIG_RPM)		+= rpm.o
-obj-$(CONFIG_TAR)		+= tar.o
-obj-$(CONFIG_UNCOMPRESS)	+= uncompress.o
-obj-$(CONFIG_UNZIP)		+= unzip.o
+libs-y				+= libunarchive/
+
+lib-y:=
+lib-$(CONFIG_AR)		+= ar.o
+lib-$(CONFIG_BUNZIP2)		+= bunzip2.o
+lib-$(CONFIG_UNLZMA)		+= unlzma.o
+lib-$(CONFIG_CPIO)		+= cpio.o
+lib-$(CONFIG_DPKG)		+= dpkg.o
+lib-$(CONFIG_DPKG_DEB)		+= dpkg_deb.o
+lib-$(CONFIG_GUNZIP)		+= gunzip.o
+lib-$(CONFIG_GZIP)		+= gzip.o
+lib-$(CONFIG_RPM2CPIO)		+= rpm2cpio.o
+lib-$(CONFIG_RPM)		+= rpm.o
+lib-$(CONFIG_TAR)		+= tar.o
+lib-$(CONFIG_UNCOMPRESS)	+= uncompress.o
+lib-$(CONFIG_UNZIP)		+= unzip.o
diff -urpN busybox.1/archival/libunarchive/Kbuild busybox.2/archival/libunarchive/Kbuild
--- busybox.1/archival/libunarchive/Kbuild	2006-10-03 23:33:39.000000000 +0200
+++ busybox.2/archival/libunarchive/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,7 +4,7 @@
 #
 # Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
 
-obj-y:= \
+lib-y:= \
 \
 	data_skip.o \
 	data_extract_all.o \
@@ -36,24 +36,24 @@ DPKG_FILES:= \
 	get_header_tar.o \
 	filter_accept_list_reassign.o
 
-obj-$(CONFIG_AR)			+= get_header_ar.o unpack_ar_archive.o
-obj-$(CONFIG_BUNZIP2)			+= decompress_bunzip2.o
-obj-$(CONFIG_UNLZMA)			+= decompress_unlzma.o
-obj-$(CONFIG_CPIO)			+= get_header_cpio.o
-obj-$(CONFIG_DPKG)			+= $(DPKG_FILES)
-obj-$(CONFIG_DPKG_DEB)			+= $(DPKG_FILES)
-obj-$(CONFIG_FEATURE_DEB_TAR_GZ)	+= $(GUNZIP_FILES) get_header_tar_gz.o
-obj-$(CONFIG_FEATURE_DEB_TAR_BZ2)	+= decompress_bunzip2.o get_header_tar_bz2.o
-obj-$(CONFIG_FEATURE_DEB_TAR_LZMA)	+= decompress_unlzma.o get_header_tar_lzma.o
-obj-$(CONFIG_GUNZIP)			+= $(GUNZIP_FILES)
-obj-$(CONFIG_FEATURE_GUNZIP_UNCOMPRESS)	+= decompress_uncompress.o
-obj-$(CONFIG_RPM2CPIO)			+= $(GUNZIP_FILES) get_header_cpio.o
-obj-$(CONFIG_RPM)			+= $(GUNZIP_FILES) get_header_cpio.o
-obj-$(CONFIG_TAR)			+= get_header_tar.o
-obj-$(CONFIG_FEATURE_TAR_BZIP2)		+= decompress_bunzip2.o get_header_tar_bz2.o
-obj-$(CONFIG_FEATURE_TAR_LZMA)		+= decompress_unlzma.o get_header_tar_lzma.o
-obj-$(CONFIG_FEATURE_TAR_GZIP)		+= $(GUNZIP_FILES) get_header_tar_gz.o
-obj-$(CONFIG_FEATURE_TAR_COMPRESS)	+= decompress_uncompress.o
-obj-$(CONFIG_UNCOMPRESS)		+= decompress_uncompress.o
-obj-$(CONFIG_UNZIP)			+= $(GUNZIP_FILES)
-obj-$(CONFIG_FEATURE_COMPRESS_USAGE)	+= decompress_bunzip2.o
+lib-$(CONFIG_AR)			+= get_header_ar.o unpack_ar_archive.o
+lib-$(CONFIG_BUNZIP2)			+= decompress_bunzip2.o
+lib-$(CONFIG_UNLZMA)			+= decompress_unlzma.o
+lib-$(CONFIG_CPIO)			+= get_header_cpio.o
+lib-$(CONFIG_DPKG)			+= $(DPKG_FILES)
+lib-$(CONFIG_DPKG_DEB)			+= $(DPKG_FILES)
+lib-$(CONFIG_FEATURE_DEB_TAR_GZ)	+= $(GUNZIP_FILES) get_header_tar_gz.o
+lib-$(CONFIG_FEATURE_DEB_TAR_BZ2)	+= decompress_bunzip2.o get_header_tar_bz2.o
+lib-$(CONFIG_FEATURE_DEB_TAR_LZMA)	+= decompress_unlzma.o get_header_tar_lzma.o
+lib-$(CONFIG_GUNZIP)			+= $(GUNZIP_FILES)
+lib-$(CONFIG_FEATURE_GUNZIP_UNCOMPRESS)	+= decompress_uncompress.o
+lib-$(CONFIG_RPM2CPIO)			+= $(GUNZIP_FILES) get_header_cpio.o
+lib-$(CONFIG_RPM)			+= $(GUNZIP_FILES) get_header_cpio.o
+lib-$(CONFIG_TAR)			+= get_header_tar.o
+lib-$(CONFIG_FEATURE_TAR_BZIP2)		+= decompress_bunzip2.o get_header_tar_bz2.o
+lib-$(CONFIG_FEATURE_TAR_LZMA)		+= decompress_unlzma.o get_header_tar_lzma.o
+lib-$(CONFIG_FEATURE_TAR_GZIP)		+= $(GUNZIP_FILES) get_header_tar_gz.o
+lib-$(CONFIG_FEATURE_TAR_COMPRESS)	+= decompress_uncompress.o
+lib-$(CONFIG_UNCOMPRESS)		+= decompress_uncompress.o
+lib-$(CONFIG_UNZIP)			+= $(GUNZIP_FILES)
+lib-$(CONFIG_FEATURE_COMPRESS_USAGE)	+= decompress_bunzip2.o
diff -urpN busybox.1/console-tools/Kbuild busybox.2/console-tools/Kbuild
--- busybox.1/console-tools/Kbuild	2006-10-03 23:33:39.000000000 +0200
+++ busybox.2/console-tools/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,15 +4,15 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:=
-obj-$(CONFIG_CHVT)		+= chvt.o
-obj-$(CONFIG_CLEAR)		+= clear.o
-obj-$(CONFIG_DEALLOCVT)		+= deallocvt.o
-obj-$(CONFIG_DUMPKMAP)		+= dumpkmap.o
-obj-$(CONFIG_SETCONSOLE)	+= setconsole.o
-obj-$(CONFIG_LOADFONT)		+= loadfont.o
-obj-$(CONFIG_LOADKMAP)		+= loadkmap.o
-obj-$(CONFIG_OPENVT)		+= openvt.o
-obj-$(CONFIG_RESET)		+= reset.o
-obj-$(CONFIG_SETKEYCODES)	+= setkeycodes.o
-obj-$(CONFIG_SETLOGCONS)	+= setlogcons.o
+lib-y:=
+lib-$(CONFIG_CHVT)		+= chvt.o
+lib-$(CONFIG_CLEAR)		+= clear.o
+lib-$(CONFIG_DEALLOCVT)		+= deallocvt.o
+lib-$(CONFIG_DUMPKMAP)		+= dumpkmap.o
+lib-$(CONFIG_SETCONSOLE)	+= setconsole.o
+lib-$(CONFIG_LOADFONT)		+= loadfont.o
+lib-$(CONFIG_LOADKMAP)		+= loadkmap.o
+lib-$(CONFIG_OPENVT)		+= openvt.o
+lib-$(CONFIG_RESET)		+= reset.o
+lib-$(CONFIG_SETKEYCODES)	+= setkeycodes.o
+lib-$(CONFIG_SETLOGCONS)	+= setlogcons.o
diff -urpN busybox.1/coreutils/Kbuild busybox.2/coreutils/Kbuild
--- busybox.1/coreutils/Kbuild	2006-10-03 23:33:39.000000000 +0200
+++ busybox.2/coreutils/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,77 +4,78 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:=
-obj-y			+= libcoreutils/
-obj-$(CONFIG_BASENAME)  += basename.o
-obj-$(CONFIG_CAL)       += cal.o
-obj-$(CONFIG_CAT)       += cat.o
-obj-$(CONFIG_CATV)      += catv.o
-obj-$(CONFIG_CHGRP)     += chgrp.o
-obj-$(CONFIG_CHMOD)     += chmod.o
-obj-$(CONFIG_CHOWN)     += chown.o
-obj-$(CONFIG_CHROOT)    += chroot.o
-obj-$(CONFIG_CKSUM)     += cksum.o
-obj-$(CONFIG_CMP)       += cmp.o
-obj-$(CONFIG_COMM)      += comm.o
-obj-$(CONFIG_CP)        += cp.o
-obj-$(CONFIG_CUT)       += cut.o
-obj-$(CONFIG_DATE)      += date.o
-obj-$(CONFIG_DD)        += dd.o
-obj-$(CONFIG_DF)        += df.o
-obj-$(CONFIG_DIFF)      += diff.o
-obj-$(CONFIG_DIRNAME)   += dirname.o
-obj-$(CONFIG_DOS2UNIX)  += dos2unix.o
-obj-$(CONFIG_DU)        += du.o
-obj-$(CONFIG_ECHO)      += echo.o
-obj-$(CONFIG_ENV)       += env.o
-obj-$(CONFIG_EXPR)      += expr.o
-obj-$(CONFIG_FALSE)     += false.o
-obj-$(CONFIG_FOLD)      += fold.o
-obj-$(CONFIG_HEAD)      += head.o
-obj-$(CONFIG_HOSTID)    += hostid.o
-obj-$(CONFIG_ID)        += id.o
-obj-$(CONFIG_INSTALL)   += install.o
-obj-$(CONFIG_LENGTH)    += length.o
-obj-$(CONFIG_LN)        += ln.o
-obj-$(CONFIG_LOGNAME)   += logname.o
-obj-$(CONFIG_LS)        += ls.o
-obj-$(CONFIG_MD5SUM)    += md5_sha1_sum.o
-obj-$(CONFIG_MKDIR)     += mkdir.o
-obj-$(CONFIG_MKFIFO)    += mkfifo.o
-obj-$(CONFIG_MKNOD)     += mknod.o
-obj-$(CONFIG_MV)        += mv.o
-obj-$(CONFIG_NICE)      += nice.o
-obj-$(CONFIG_NOHUP)     += nohup.o
-obj-$(CONFIG_OD)        += od.o
-obj-$(CONFIG_PRINTENV)  += printenv.o
-obj-$(CONFIG_PRINTF)    += printf.o
-obj-$(CONFIG_PWD)       += pwd.o
-obj-$(CONFIG_REALPATH)  += realpath.o
-obj-$(CONFIG_RM)        += rm.o
-obj-$(CONFIG_RMDIR)     += rmdir.o
-obj-$(CONFIG_SEQ)       += seq.o
-obj-$(CONFIG_SHA1SUM)   += md5_sha1_sum.o
-obj-$(CONFIG_SLEEP)     += sleep.o
-obj-$(CONFIG_SORT)      += sort.o
-obj-$(CONFIG_STAT)      += stat.o
-obj-$(CONFIG_STTY)      += stty.o
-obj-$(CONFIG_SUM)       += sum.o
-obj-$(CONFIG_SYNC)      += sync.o
-obj-$(CONFIG_TAIL)      += tail.o
-obj-$(CONFIG_TEE)       += tee.o
-obj-$(CONFIG_TEST)      += test.o
-obj-$(CONFIG_TOUCH)     += touch.o
-obj-$(CONFIG_TR)        += tr.o
-obj-$(CONFIG_TRUE)      += true.o
-obj-$(CONFIG_TTY)       += tty.o
-obj-$(CONFIG_UNAME)     += uname.o
-obj-$(CONFIG_UNIQ)      += uniq.o
-obj-$(CONFIG_USLEEP)    += usleep.o
-obj-$(CONFIG_UUDECODE)  += uudecode.o
-obj-$(CONFIG_UUENCODE)  += uuencode.o
-obj-$(CONFIG_WATCH)     += watch.o
-obj-$(CONFIG_WC)        += wc.o
-obj-$(CONFIG_WHO)       += who.o
-obj-$(CONFIG_WHOAMI)    += whoami.o
-obj-$(CONFIG_YES)       += yes.o
+libs-y			+= libcoreutils/
+
+lib-y:=
+lib-$(CONFIG_BASENAME)  += basename.o
+lib-$(CONFIG_CAL)       += cal.o
+lib-$(CONFIG_CAT)       += cat.o
+lib-$(CONFIG_CATV)      += catv.o
+lib-$(CONFIG_CHGRP)     += chgrp.o
+lib-$(CONFIG_CHMOD)     += chmod.o
+lib-$(CONFIG_CHOWN)     += chown.o
+lib-$(CONFIG_CHROOT)    += chroot.o
+lib-$(CONFIG_CKSUM)     += cksum.o
+lib-$(CONFIG_CMP)       += cmp.o
+lib-$(CONFIG_COMM)      += comm.o
+lib-$(CONFIG_CP)        += cp.o
+lib-$(CONFIG_CUT)       += cut.o
+lib-$(CONFIG_DATE)      += date.o
+lib-$(CONFIG_DD)        += dd.o
+lib-$(CONFIG_DF)        += df.o
+lib-$(CONFIG_DIFF)      += diff.o
+lib-$(CONFIG_DIRNAME)   += dirname.o
+lib-$(CONFIG_DOS2UNIX)  += dos2unix.o
+lib-$(CONFIG_DU)        += du.o
+lib-$(CONFIG_ECHO)      += echo.o
+lib-$(CONFIG_ENV)       += env.o
+lib-$(CONFIG_EXPR)      += expr.o
+lib-$(CONFIG_FALSE)     += false.o
+lib-$(CONFIG_FOLD)      += fold.o
+lib-$(CONFIG_HEAD)      += head.o
+lib-$(CONFIG_HOSTID)    += hostid.o
+lib-$(CONFIG_ID)        += id.o
+lib-$(CONFIG_INSTALL)   += install.o
+lib-$(CONFIG_LENGTH)    += length.o
+lib-$(CONFIG_LN)        += ln.o
+lib-$(CONFIG_LOGNAME)   += logname.o
+lib-$(CONFIG_LS)        += ls.o
+lib-$(CONFIG_MD5SUM)    += md5_sha1_sum.o
+lib-$(CONFIG_MKDIR)     += mkdir.o
+lib-$(CONFIG_MKFIFO)    += mkfifo.o
+lib-$(CONFIG_MKNOD)     += mknod.o
+lib-$(CONFIG_MV)        += mv.o
+lib-$(CONFIG_NICE)      += nice.o
+lib-$(CONFIG_NOHUP)     += nohup.o
+lib-$(CONFIG_OD)        += od.o
+lib-$(CONFIG_PRINTENV)  += printenv.o
+lib-$(CONFIG_PRINTF)    += printf.o
+lib-$(CONFIG_PWD)       += pwd.o
+lib-$(CONFIG_REALPATH)  += realpath.o
+lib-$(CONFIG_RM)        += rm.o
+lib-$(CONFIG_RMDIR)     += rmdir.o
+lib-$(CONFIG_SEQ)       += seq.o
+lib-$(CONFIG_SHA1SUM)   += md5_sha1_sum.o
+lib-$(CONFIG_SLEEP)     += sleep.o
+lib-$(CONFIG_SORT)      += sort.o
+lib-$(CONFIG_STAT)      += stat.o
+lib-$(CONFIG_STTY)      += stty.o
+lib-$(CONFIG_SUM)       += sum.o
+lib-$(CONFIG_SYNC)      += sync.o
+lib-$(CONFIG_TAIL)      += tail.o
+lib-$(CONFIG_TEE)       += tee.o
+lib-$(CONFIG_TEST)      += test.o
+lib-$(CONFIG_TOUCH)     += touch.o
+lib-$(CONFIG_TR)        += tr.o
+lib-$(CONFIG_TRUE)      += true.o
+lib-$(CONFIG_TTY)       += tty.o
+lib-$(CONFIG_UNAME)     += uname.o
+lib-$(CONFIG_UNIQ)      += uniq.o
+lib-$(CONFIG_USLEEP)    += usleep.o
+lib-$(CONFIG_UUDECODE)  += uudecode.o
+lib-$(CONFIG_UUENCODE)  += uuencode.o
+lib-$(CONFIG_WATCH)     += watch.o
+lib-$(CONFIG_WC)        += wc.o
+lib-$(CONFIG_WHO)       += who.o
+lib-$(CONFIG_WHOAMI)    += whoami.o
+lib-$(CONFIG_YES)       += yes.o
diff -urpN busybox.1/coreutils/libcoreutils/Kbuild busybox.2/coreutils/libcoreutils/Kbuild
--- busybox.1/coreutils/libcoreutils/Kbuild	2006-10-03 23:33:39.000000000 +0200
+++ busybox.2/coreutils/libcoreutils/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,9 +4,9 @@
 #
 # Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
 
-obj-y:=
-obj-$(CONFIG_MKFIFO)	+= getopt_mk_fifo_nod.o
-obj-$(CONFIG_MKNOD)	+= getopt_mk_fifo_nod.o
-obj-$(CONFIG_INSTALL)	+= cp_mv_stat.o
-obj-$(CONFIG_CP)	+= cp_mv_stat.o
-obj-$(CONFIG_MV)	+= cp_mv_stat.o
+lib-y:=
+lib-$(CONFIG_MKFIFO)	+= getopt_mk_fifo_nod.o
+lib-$(CONFIG_MKNOD)	+= getopt_mk_fifo_nod.o
+lib-$(CONFIG_INSTALL)	+= cp_mv_stat.o
+lib-$(CONFIG_CP)	+= cp_mv_stat.o
+lib-$(CONFIG_MV)	+= cp_mv_stat.o
diff -urpN busybox.1/debianutils/Kbuild busybox.2/debianutils/Kbuild
--- busybox.1/debianutils/Kbuild	2006-10-03 23:33:39.000000000 +0200
+++ busybox.2/debianutils/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,10 +4,10 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:=
-obj-$(CONFIG_MKTEMP)		+= mktemp.o
-obj-$(CONFIG_PIPE_PROGRESS)	+= pipe_progress.o
-obj-$(CONFIG_READLINK)		+= readlink.o
-obj-$(CONFIG_RUN_PARTS)		+= run_parts.o
-obj-$(CONFIG_START_STOP_DAEMON)	+= start_stop_daemon.o
-obj-$(CONFIG_WHICH)		+= which.o
+lib-y:=
+lib-$(CONFIG_MKTEMP)		+= mktemp.o
+lib-$(CONFIG_PIPE_PROGRESS)	+= pipe_progress.o
+lib-$(CONFIG_READLINK)		+= readlink.o
+lib-$(CONFIG_RUN_PARTS)		+= run_parts.o
+lib-$(CONFIG_START_STOP_DAEMON)	+= start_stop_daemon.o
+lib-$(CONFIG_WHICH)		+= which.o
diff -urpN busybox.1/e2fsprogs/blkid/Kbuild busybox.2/e2fsprogs/blkid/Kbuild
--- busybox.1/e2fsprogs/blkid/Kbuild	2006-10-04 00:37:09.000000000 +0200
+++ busybox.2/e2fsprogs/blkid/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,9 +4,14 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:=
-obj-y	+= cache.o dev.o devname.o devno.o blkid_getsize.o \
-	   probe.o read.o resolve.o save.o tag.o list.o
+NEEDED-$(CONFIG_E2FSCK) = y
+NEEDED-$(CONFIG_FSCK) = y
+NEEDED-$(CONFIG_MKE2FS) = y
+NEEDED-$(CONFIG_TUNE2FS) = y
+
+lib-y:=
+lib-$(NEEDED-y) += cache.o dev.o devname.o devno.o blkid_getsize.o \
+                   probe.o read.o resolve.o save.o tag.o list.o
 
 CFLAGS_dev.o := -include include/busybox.h
 CFLAGS_devname.o := -include include/busybox.h
diff -urpN busybox.1/e2fsprogs/e2p/Kbuild busybox.2/e2fsprogs/e2p/Kbuild
--- busybox.1/e2fsprogs/e2p/Kbuild	2006-10-03 23:33:39.000000000 +0200
+++ busybox.2/e2fsprogs/e2p/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,7 +4,12 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:=
-obj-y	+= fgetsetflags.o fgetsetversion.o pf.o iod.o mntopts.o \
+NEEDED-$(CONFIG_CHATTR) = y
+NEEDED-$(LSATTR) = y
+NEEDED-$(MKE2FS) = y
+NEEDED-$(TUNE2FS) = y
+
+lib-y:=
+lib-$(NEEDED-y) += fgetsetflags.o fgetsetversion.o pf.o iod.o mntopts.o \
            feature.o ls.o uuid.o pe.o ostype.o ps.o hashstr.o \
            parse_num.o
diff -urpN busybox.1/e2fsprogs/ext2fs/Kbuild busybox.2/e2fsprogs/ext2fs/Kbuild
--- busybox.1/e2fsprogs/ext2fs/Kbuild	2006-10-03 23:33:39.000000000 +0200
+++ busybox.2/e2fsprogs/ext2fs/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,15 +4,20 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:=
-obj-y	+= gen_bitmap.o bitops.o ismounted.o mkjournal.o unix_io.o \
-	   rw_bitmaps.o initialize.o bitmaps.o block.o \
-	   ind_block.o inode.o freefs.o alloc_stats.o closefs.o \
-	   openfs.o io_manager.o finddev.o read_bb.o alloc.o badblocks.o \
-	   getsize.o getsectsize.o alloc_tables.o read_bb_file.o mkdir.o \
-	   bb_inode.o newdir.o alloc_sb.o lookup.o dirblock.o expanddir.o \
-	   dir_iterate.o link.o res_gdt.o icount.o get_pathname.o dblist.o \
-	   dirhash.o version.o flushb.o unlink.o check_desc.o valid_blk.o \
-	   ext_attr.o bmap.o dblist_dir.o ext2fs_inline.o swapfs.o
+NEEDED-$(CONFIG_E2FSCK) = y
+NEEDED-$(CONFIG_FSCK) = y
+NEEDED-$(CONFIG_MKE2FS) = y
+NEEDED-$(CONFIG_TUNE2FS) = y
+
+lib-y:=
+lib-$(NEEDED-y) += gen_bitmap.o bitops.o ismounted.o mkjournal.o unix_io.o \
+                   rw_bitmaps.o initialize.o bitmaps.o block.o \
+                   ind_block.o inode.o freefs.o alloc_stats.o closefs.o \
+                   openfs.o io_manager.o finddev.o read_bb.o alloc.o badblocks.o \
+                   getsize.o getsectsize.o alloc_tables.o read_bb_file.o mkdir.o \
+                   bb_inode.o newdir.o alloc_sb.o lookup.o dirblock.o expanddir.o \
+                   dir_iterate.o link.o res_gdt.o icount.o get_pathname.o dblist.o \
+                   dirhash.o version.o flushb.o unlink.o check_desc.o valid_blk.o \
+                   ext_attr.o bmap.o dblist_dir.o ext2fs_inline.o swapfs.o
 
 CFLAGS += -include e2fsprogs/e2fsbb.h
diff -urpN busybox.1/e2fsprogs/Kbuild busybox.2/e2fsprogs/Kbuild
--- busybox.1/e2fsprogs/Kbuild	2006-10-03 23:33:39.000000000 +0200
+++ busybox.2/e2fsprogs/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,12 +4,13 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:=
-obj-$(CONFIG_CHATTR)     += chattr.o e2p/
-obj-$(CONFIG_E2FSCK)     += e2fsck.o util.o blkid/ ext2fs/ uuid/
-obj-$(CONFIG_FSCK)       += fsck.o util.o blkid/ ext2fs/ uuid/
-obj-$(CONFIG_LSATTR)     += lsattr.o e2p/
-obj-$(CONFIG_MKE2FS)     += mke2fs.o util.o e2p/ blkid/ ext2fs/ uuid/
-obj-$(CONFIG_TUNE2FS)    += tune2fs.o util.o e2p/ blkid/ ext2fs/ uuid/
+lib-y:=
+
+lib-$(CONFIG_CHATTR)     += chattr.o
+lib-$(CONFIG_E2FSCK)     += e2fsck.o util.o
+lib-$(CONFIG_FSCK)       += fsck.o util.o
+lib-$(CONFIG_LSATTR)     += lsattr.o
+lib-$(CONFIG_MKE2FS)     += mke2fs.o util.o
+lib-$(CONFIG_TUNE2FS)    += tune2fs.o util.o
 
 CFLAGS += -include e2fsprogs/e2fsbb.h
diff -urpN busybox.1/e2fsprogs/uuid/Kbuild busybox.2/e2fsprogs/uuid/Kbuild
--- busybox.1/e2fsprogs/uuid/Kbuild	2006-10-03 23:33:40.000000000 +0200
+++ busybox.2/e2fsprogs/uuid/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,6 +4,11 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:=
-obj-y	+= compare.o gen_uuid.o pack.o parse.o unpack.o unparse.o \
-	   uuid_time.o
+NEEDED-$(CONFIG_E2FSCK) = y
+NEEDED-$(CONFIG_FSCK) = y
+NEEDED-$(CONFIG_MKE2FS) = y
+NEEDED-$(CONFIG_TUNE2FS) = y
+
+lib-y:=
+lib-$(NEEDED-y) += compare.o gen_uuid.o pack.o parse.o unpack.o unparse.o \
+                   uuid_time.o
diff -urpN busybox.1/editors/Kbuild busybox.2/editors/Kbuild
--- busybox.1/editors/Kbuild	2006-10-03 23:33:40.000000000 +0200
+++ busybox.2/editors/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,9 +4,9 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:=
-obj-$(CONFIG_AWK)       += awk.o
-obj-$(CONFIG_ED)        += ed.o
-obj-$(CONFIG_PATCH)     += patch.o
-obj-$(CONFIG_SED)       += sed.o
-obj-$(CONFIG_VI)        += vi.o
+lib-y:=
+lib-$(CONFIG_AWK)       += awk.o
+lib-$(CONFIG_ED)        += ed.o
+lib-$(CONFIG_PATCH)     += patch.o
+lib-$(CONFIG_SED)       += sed.o
+lib-$(CONFIG_VI)        += vi.o
diff -urpN busybox.1/findutils/Kbuild busybox.2/findutils/Kbuild
--- busybox.1/findutils/Kbuild	2006-10-03 23:33:40.000000000 +0200
+++ busybox.2/findutils/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,7 +4,7 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:=
-obj-$(CONFIG_FIND)	+= find.o
-obj-$(CONFIG_GREP)	+= grep.o
-obj-$(CONFIG_XARGS)	+= xargs.o
+lib-y:=
+lib-$(CONFIG_FIND)	+= find.o
+lib-$(CONFIG_GREP)	+= grep.o
+lib-$(CONFIG_XARGS)	+= xargs.o
diff -urpN busybox.1/init/Kbuild busybox.2/init/Kbuild
--- busybox.1/init/Kbuild	2006-10-03 23:33:40.000000000 +0200
+++ busybox.2/init/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,9 +4,9 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:=
-obj-$(CONFIG_HALT)	+= halt.o
-obj-$(CONFIG_INIT)	+= init.o
-obj-$(CONFIG_MESG)	+= mesg.o
-obj-$(CONFIG_INIT)	+= init_shared.o
-obj-$(CONFIG_HALT)	+= init_shared.o
+lib-y:=
+lib-$(CONFIG_HALT)	+= halt.o
+lib-$(CONFIG_INIT)	+= init.o
+lib-$(CONFIG_MESG)	+= mesg.o
+lib-$(CONFIG_INIT)	+= init_shared.o
+lib-$(CONFIG_HALT)	+= init_shared.o
diff -urpN busybox.1/libbb/Kbuild busybox.2/libbb/Kbuild
--- busybox.1/libbb/Kbuild	2006-10-04 00:39:56.000000000 +0200
+++ busybox.2/libbb/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,7 +4,7 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:= \
+lib-y:= \
 	ask_confirmation.o change_identity.o chomp.o \
 	compare_string_array.o concat_path_file.o copy_file.o copyfd.o \
 	crc32.o create_icmp_socket.o create_icmp6_socket.o \
@@ -31,142 +31,31 @@ obj-y:= \
 	bb_do_delay.o uuencode.o info_msg.o vinfo_msg.o
 
 # conditionally compiled objects:
-obj-$(CONFIG_FEATURE_MOUNT_LOOP) += loop.o
-obj-$(CONFIG_LOSETUP) += loop.o
-obj-$(CONFIG_FEATURE_MTAB_SUPPORT) += mtab.o
-obj-$(CONFIG_PASSWD) += pw_encrypt.o
-obj-$(CONFIG_SULOGIN) += pw_encrypt.o
-obj-$(CONFIG_FEATURE_HTTPD_AUTH_MD5) += pw_encrypt.o
-obj-$(CONFIG_VLOCK) += correct_password.o
-obj-$(CONFIG_SU) += correct_password.o
-obj-$(CONFIG_LOGIN) += correct_password.o
-obj-$(CONFIG_DF) += find_mount_point.o
-obj-$(CONFIG_EJECT) += find_mount_point.o
+lib-$(CONFIG_FEATURE_MOUNT_LOOP) += loop.o
+lib-$(CONFIG_LOSETUP) += loop.o
+lib-$(CONFIG_FEATURE_MTAB_SUPPORT) += mtab.o
+lib-$(CONFIG_PASSWD) += pw_encrypt.o
+lib-$(CONFIG_SULOGIN) += pw_encrypt.o
+lib-$(CONFIG_FEATURE_HTTPD_AUTH_MD5) += pw_encrypt.o
+lib-$(CONFIG_VLOCK) += correct_password.o
+lib-$(CONFIG_SU) += correct_password.o
+lib-$(CONFIG_LOGIN) += correct_password.o
+lib-$(CONFIG_DF) += find_mount_point.o
+lib-$(CONFIG_EJECT) += find_mount_point.o
 
 # We shouldn't build xregcomp.c if we don't need it - this ensures we don't
 # require regex.h to be in the include dir even if we don't need it thereby
 # allowing us to build busybox even if uclibc regex support is disabled.
 
-obj-$(CONFIG_AWK) += xregcomp.o
-obj-$(CONFIG_SED) += xregcomp.o
-obj-$(CONFIG_LESS) += xregcomp.o
-obj-$(CONFIG_DEVFSD) += xregcomp.o
-
-obj-y += messages.o
-obj-y += xfuncs.o
-obj-y += printf.o
-obj-y += xgetularg.o
-obj-y += safe_strtol.o
-obj-y += bb_pwd.o
-obj-y += llist.o
-
-###needcrypt-y:=
-###ifneq ($(filter $(srcdir)/pw_encrypt.o,$(obj-y)),)
-###needcrypt-y:=y
-###else
-###ifneq ($(filter $(srcdir)/correct_password.o,$(obj-y)),)
-###needcrypt-y:=y
-###endif
-###endif
-###
-###ifeq ($(needcrypt-y),y)
-###  LIBRARIES := -lcrypt $(filter-out -lcrypt,$(LIBRARIES))
-###endif
-
-CFLAGS_bb_pwd.o = \
--DL_bb_getgrgid \
--DL_bb_getpwuid \
--DL_bb_getug \
--DL_bb_xgetgrnam \
--DL_bb_xgetpwnam \
--DL_get_ug_id \
-
-CFLAGS_llist.o = \
--DL_llist_add_to \
--DL_llist_add_to_end \
--DL_llist_free \
--DL_llist_pop \
-
-CFLAGS_messages.o = \
--DL_bb_common_bufsiz1 \
--DL_bb_dev_null \
--DL_bb_path_wtmp_file \
--DL_can_not_create_raw_socket \
--DL_full_version \
--DL_group_file \
--DL_gshadow_file \
--DL_invalid_date \
--DL_io_error \
--DL_memory_exhausted \
--DL_motd_file \
--DL_msg_invalid_arg \
--DL_msg_requires_arg \
--DL_msg_standard_input \
--DL_msg_standard_output \
--DL_name_longer_than_foo \
--DL_nologin_file \
--DL_passwd_file \
--DL_perm_denied_are_you_root \
--DL_read_error \
--DL_securetty_file \
--DL_shadow_file \
--DL_shell_file \
--DL_unknown \
--DL_write_error \
-
-CFLAGS_printf.o = \
--DL_bb_fprintf \
--DL_bb_printf \
--DL_bb_vfprintf \
--DL_bb_vprintf \
-
-CFLAGS_safe_strtol.o = \
--DL_safe_strtod \
--DL_safe_strtoi \
--DL_safe_strtol \
--DL_safe_strtoll \
--DL_safe_strtoul \
--DL_safe_strtoull \
-
-CFLAGS_xfuncs.o = \
--DL_fdlength \
--DL_itoa \
--DL_setuid \
--DL_spawn \
--DL_wait4 \
--DL_warn_opendir \
--DL_xasprintf \
--DL_xbind \
--DL_xchdir \
--DL_xdaemon \
--DL_xferror \
--DL_xferror_stdout \
--DL_xfflush_stdout \
--DL_xfopen \
--DL_xlisten \
--DL_xlseek \
--DL_xmalloc \
--DL_xopen \
--DL_xopen3 \
--DL_xopendir \
--DL_xprint_and_close_file \
--DL_xread \
--DL_xread_char \
--DL_xrealloc \
--DL_xsocket \
--DL_xspawn \
--DL_xstrdup \
--DL_xstrndup \
--DL_xwrite \
--DL_xzalloc \
--DL_xstat \
--DL_get_terminal_width_height \
--DL_xsetenv \
-
-CFLAGS_xgetularg.o = \
--DL_getlarg10_sfx \
--DL_xgetlarg_bnd_sfx \
--DL_xgetularg10 \
--DL_xgetularg10_bnd \
--DL_xgetularg_bnd \
--DL_xgetularg_bnd_sfx \
+lib-$(CONFIG_AWK) += xregcomp.o
+lib-$(CONFIG_SED) += xregcomp.o
+lib-$(CONFIG_LESS) += xregcomp.o
+lib-$(CONFIG_DEVFSD) += xregcomp.o
+
+lib-y += messages.o
+lib-y += xfuncs.o
+lib-y += printf.o
+lib-y += xgetularg.o
+lib-y += safe_strtol.o
+lib-y += bb_pwd.o
+lib-y += llist.o
diff -urpN busybox.1/libpwdgrp/Kbuild busybox.2/libpwdgrp/Kbuild
--- busybox.1/libpwdgrp/Kbuild	2006-10-04 11:15:49.000000000 +0200
+++ busybox.2/libpwdgrp/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,4 +4,4 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:=pwd_grp.o
+lib-y:=pwd_grp.o
diff -urpN busybox.1/loginutils/Kbuild busybox.2/loginutils/Kbuild
--- busybox.1/loginutils/Kbuild	2006-10-03 23:33:41.000000000 +0200
+++ busybox.2/loginutils/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,25 +4,14 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:=
-obj-$(CONFIG_ADDGROUP)	+= addgroup.o
-obj-$(CONFIG_ADDUSER)	+= adduser.o
-obj-$(CONFIG_GETTY)	+= getty.o
-obj-$(CONFIG_LOGIN)	+= login.o
-obj-$(CONFIG_PASSWD)	+= passwd.o
-obj-$(CONFIG_SU)	+= su.o
-obj-$(CONFIG_SULOGIN)	+= sulogin.o
-obj-$(CONFIG_VLOCK)	+= vlock.o
-obj-$(CONFIG_DELUSER)	+= deluser.o
-obj-$(CONFIG_DELGROUP)	+= deluser.o
-
-###needcrypt-y:=
-###needcrypt-$(CONFIG_LOGIN)	:= y
-###needcrypt-$(CONFIG_PASSWD)	:= y
-###needcrypt-$(CONFIG_SU)		:= y
-###needcrypt-$(CONFIG_SULOGIN)	:= y
-###needcrypt-$(CONFIG_VLOCK)	:= y
-###
-###ifeq ($(needcrypt-y),y)
-###  LIBRARIES := -lcrypt $(filter-out -lcrypt,$(LIBRARIES))
-###endif
+lib-y:=
+lib-$(CONFIG_ADDGROUP)	+= addgroup.o
+lib-$(CONFIG_ADDUSER)	+= adduser.o
+lib-$(CONFIG_GETTY)	+= getty.o
+lib-$(CONFIG_LOGIN)	+= login.o
+lib-$(CONFIG_PASSWD)	+= passwd.o
+lib-$(CONFIG_SU)	+= su.o
+lib-$(CONFIG_SULOGIN)	+= sulogin.o
+lib-$(CONFIG_VLOCK)	+= vlock.o
+lib-$(CONFIG_DELUSER)	+= deluser.o
+lib-$(CONFIG_DELGROUP)	+= deluser.o
diff -urpN busybox.1/Makefile busybox.2/Makefile
--- busybox.1/Makefile	2006-10-06 16:34:32.000000000 +0200
+++ busybox.2/Makefile	2006-10-06 16:56:11.000000000 +0200
@@ -421,11 +421,19 @@ scripts_basic: include/autoconf.h
 # Objects we will link into busybox / subdirs we need to visit
 core-y		:= \
 		applets/ \
+
+libs-y		:= \
 		archival/ \
+		archival/libunarchive/ \
 		console-tools/ \
 		coreutils/ \
+		coreutils/libcoreutils/ \
 		debianutils/ \
 		e2fsprogs/ \
+		e2fsprogs/blkid/ \
+		e2fsprogs/e2p/ \
+		e2fsprogs/ext2fs/ \
+		e2fsprogs/uuid/ \
 		editors/ \
 		findutils/ \
 		init/ \
@@ -435,6 +443,8 @@ core-y		:= \
 		miscutils/ \
 		modutils/ \
 		networking/ \
+		networking/libiproute/ \
+		networking/udhcp/ \
 		procps/ \
 		runit/ \
 		shell/ \
@@ -511,13 +521,17 @@ export MODLIB
 
 
 ifeq ($(KBUILD_EXTMOD),)
-busybox-dirs	:= $(patsubst %/,%,$(filter %/, $(core-y) $(core-m)))
+busybox-dirs	:= $(patsubst %/,%,$(filter %/, $(core-y) $(core-m) $(libs-y) $(libs-m)))
 
 busybox-alldirs	:= $(sort $(busybox-dirs) $(patsubst %/,%,$(filter %/, \
-		     $(core-n) $(core-) \
+		     $(core-n) $(core-) $(libs-n) $(libs-) \
 		)))
 
 core-y		:= $(patsubst %/, %/built-in.o, $(core-y))
+libs-y1		:= $(patsubst %/, %/lib.a, $(libs-y))
+libs-y2		:= $(patsubst %/, %/built-in.o, $(libs-y))
+libs-y		:= $(libs-y1) $(libs-y2)
+
 
 # Build busybox
 # ---------------------------------------------------------------------------
@@ -546,14 +560,14 @@ core-y		:= $(patsubst %/, %/built-in.o, 
 #
 # System.map is generated to document addresses of all kernel symbols
 
-busybox-all  := $(core-y)
+busybox-all  := $(core-y) $(libs-y)
 
 # Rule to link busybox - also used during CONFIG_KALLSYMS
 # May be overridden by arch/$(ARCH)/Makefile
 quiet_cmd_busybox__ ?= LINK    $@
       cmd_busybox__ ?= scripts/trylink $(CC) -o $@ \
       -Wl,--warn-common -Wl,--sort-common -Wl,--gc-sections \
-      $(busybox-all) \
+      -Wl,--start-group $(busybox-all) -Wl,--end-group \
 
 # Generate System.map
 quiet_cmd_sysmap = SYSMAP 
diff -urpN busybox.1/miscutils/Kbuild busybox.2/miscutils/Kbuild
--- busybox.1/miscutils/Kbuild	2006-10-03 23:33:41.000000000 +0200
+++ busybox.2/miscutils/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,31 +4,24 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:=
-obj-$(CONFIG_ADJTIMEX)    += adjtimex.o
-obj-$(CONFIG_CROND)       += crond.o
-obj-$(CONFIG_CRONTAB)     += crontab.o
-obj-$(CONFIG_BBCONFIG)    += bbconfig.o
-obj-$(CONFIG_DC)          += dc.o
-obj-$(CONFIG_DEVFSD)      += devfsd.o
-obj-$(CONFIG_EJECT)       += eject.o
-obj-$(CONFIG_HDPARM)      += hdparm.o
-obj-$(CONFIG_LAST)        += last.o
-obj-$(CONFIG_LESS)        += less.o
-obj-$(CONFIG_MAKEDEVS)    += makedevs.o
-obj-$(CONFIG_MOUNTPOINT)  += mountpoint.o
-obj-$(CONFIG_MT)          += mt.o
-obj-$(CONFIG_READAHEAD)   += readahead.o
-obj-$(CONFIG_RUNLEVEL)    += runlevel.o
-obj-$(CONFIG_RX)          += rx.o
-obj-$(CONFIG_SETSID)      += setsid.o
-obj-$(CONFIG_STRINGS)     += strings.o
-obj-$(CONFIG_TIME)        += time.o
-obj-$(CONFIG_WATCHDOG)    += watchdog.o
-
-###needlibm-y:=
-###needlibm-$(CONFIG_DC) := y
-###
-###ifeq ($(needlibm-y),y)
-###  LIBRARIES := -lm $(filter-out -lm,$(LIBRARIES))
-###endif
+lib-y:=
+lib-$(CONFIG_ADJTIMEX)    += adjtimex.o
+lib-$(CONFIG_CROND)       += crond.o
+lib-$(CONFIG_CRONTAB)     += crontab.o
+lib-$(CONFIG_BBCONFIG)    += bbconfig.o
+lib-$(CONFIG_DC)          += dc.o
+lib-$(CONFIG_DEVFSD)      += devfsd.o
+lib-$(CONFIG_EJECT)       += eject.o
+lib-$(CONFIG_HDPARM)      += hdparm.o
+lib-$(CONFIG_LAST)        += last.o
+lib-$(CONFIG_LESS)        += less.o
+lib-$(CONFIG_MAKEDEVS)    += makedevs.o
+lib-$(CONFIG_MOUNTPOINT)  += mountpoint.o
+lib-$(CONFIG_MT)          += mt.o
+lib-$(CONFIG_READAHEAD)   += readahead.o
+lib-$(CONFIG_RUNLEVEL)    += runlevel.o
+lib-$(CONFIG_RX)          += rx.o
+lib-$(CONFIG_SETSID)      += setsid.o
+lib-$(CONFIG_STRINGS)     += strings.o
+lib-$(CONFIG_TIME)        += time.o
+lib-$(CONFIG_WATCHDOG)    += watchdog.o
diff -urpN busybox.1/modutils/Kbuild busybox.2/modutils/Kbuild
--- busybox.1/modutils/Kbuild	2006-10-03 23:33:41.000000000 +0200
+++ busybox.2/modutils/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,8 +4,8 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:=
-obj-$(CONFIG_INSMOD)		+= insmod.o
-obj-$(CONFIG_LSMOD)		+= lsmod.o
-obj-$(CONFIG_MODPROBE)		+= modprobe.o
-obj-$(CONFIG_RMMOD)		+= rmmod.o
+lib-y:=
+lib-$(CONFIG_INSMOD)		+= insmod.o
+lib-$(CONFIG_LSMOD)		+= lsmod.o
+lib-$(CONFIG_MODPROBE)		+= modprobe.o
+lib-$(CONFIG_RMMOD)		+= rmmod.o
diff -urpN busybox.1/networking/Kbuild busybox.2/networking/Kbuild
--- busybox.1/networking/Kbuild	2006-10-03 23:33:41.000000000 +0200
+++ busybox.2/networking/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,43 +4,35 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:=
-obj-y			   += udhcp/ libiproute/
-obj-$(CONFIG_ARPING)       += arping.o
-obj-$(CONFIG_DNSD)         += dnsd.o
-obj-$(CONFIG_ETHER_WAKE)   += ether-wake.o
-obj-$(CONFIG_FAKEIDENTD)   += fakeidentd.o
-obj-$(CONFIG_FTPGET)       += ftpgetput.o
-obj-$(CONFIG_FTPPUT)       += ftpgetput.o
-obj-$(CONFIG_HOSTNAME)     += hostname.o
-obj-$(CONFIG_HTTPD)        += httpd.o
-obj-$(CONFIG_IFCONFIG)     += ifconfig.o interface.o
-obj-$(CONFIG_IFUPDOWN)     += ifupdown.o
-obj-$(CONFIG_INETD)        += inetd.o
-obj-$(CONFIG_IP)           += ip.o
-obj-$(CONFIG_IPCALC)       += ipcalc.o
-obj-$(CONFIG_IPADDR)       += ipaddr.o
-obj-$(CONFIG_IPLINK)       += iplink.o
-obj-$(CONFIG_IPROUTE)      += iproute.o
-obj-$(CONFIG_IPTUNNEL)     += iptunnel.o
-obj-$(CONFIG_NAMEIF)       += nameif.o
-obj-$(CONFIG_NC)           += nc.o
-obj-$(CONFIG_NETSTAT)      += netstat.o
-obj-$(CONFIG_NSLOOKUP)     += nslookup.o
-obj-$(CONFIG_PING)         += ping.o
-obj-$(CONFIG_PING6)        += ping6.o
-obj-$(CONFIG_ROUTE)        += route.o
-obj-$(CONFIG_TELNET)       += telnet.o
-obj-$(CONFIG_TELNETD)      += telnetd.o
-obj-$(CONFIG_TFTP)         += tftp.o
-obj-$(CONFIG_TRACEROUTE)   += traceroute.o
-obj-$(CONFIG_VCONFIG)      += vconfig.o
-obj-$(CONFIG_WGET)         += wget.o
-obj-$(CONFIG_ZCIP)         += zcip.o
-
-###needcrypt-y:=
-###needcrypt-$(CONFIG_FEATURE_HTTPD_AUTH_MD5) := y
-###
-###ifeq ($(needcrypt-y),y)
-###	LIBRARIES := -lcrypt $(filter-out -lcrypt,$(LIBRARIES))
-###endif
+lib-y:=
+lib-$(CONFIG_ARPING)       += arping.o
+lib-$(CONFIG_DNSD)         += dnsd.o
+lib-$(CONFIG_ETHER_WAKE)   += ether-wake.o
+lib-$(CONFIG_FAKEIDENTD)   += fakeidentd.o
+lib-$(CONFIG_FTPGET)       += ftpgetput.o
+lib-$(CONFIG_FTPPUT)       += ftpgetput.o
+lib-$(CONFIG_HOSTNAME)     += hostname.o
+lib-$(CONFIG_HTTPD)        += httpd.o
+lib-$(CONFIG_IFCONFIG)     += ifconfig.o interface.o
+lib-$(CONFIG_IFUPDOWN)     += ifupdown.o
+lib-$(CONFIG_INETD)        += inetd.o
+lib-$(CONFIG_IP)           += ip.o
+lib-$(CONFIG_IPCALC)       += ipcalc.o
+lib-$(CONFIG_IPADDR)       += ipaddr.o
+lib-$(CONFIG_IPLINK)       += iplink.o
+lib-$(CONFIG_IPROUTE)      += iproute.o
+lib-$(CONFIG_IPTUNNEL)     += iptunnel.o
+lib-$(CONFIG_NAMEIF)       += nameif.o
+lib-$(CONFIG_NC)           += nc.o
+lib-$(CONFIG_NETSTAT)      += netstat.o
+lib-$(CONFIG_NSLOOKUP)     += nslookup.o
+lib-$(CONFIG_PING)         += ping.o
+lib-$(CONFIG_PING6)        += ping6.o
+lib-$(CONFIG_ROUTE)        += route.o
+lib-$(CONFIG_TELNET)       += telnet.o
+lib-$(CONFIG_TELNETD)      += telnetd.o
+lib-$(CONFIG_TFTP)         += tftp.o
+lib-$(CONFIG_TRACEROUTE)   += traceroute.o
+lib-$(CONFIG_VCONFIG)      += vconfig.o
+lib-$(CONFIG_WGET)         += wget.o
+lib-$(CONFIG_ZCIP)         += zcip.o
diff -urpN busybox.1/networking/libiproute/Kbuild busybox.2/networking/libiproute/Kbuild
--- busybox.1/networking/libiproute/Kbuild	2006-10-03 23:33:41.000000000 +0200
+++ busybox.2/networking/libiproute/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -5,8 +5,8 @@
 # Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
 #
 
-obj-y:=
-obj-$(CONFIG_IP) += \
+lib-y:=
+lib-$(CONFIG_IP) += \
 	ip_parse_common_args.o \
 	ipaddress.o \
 	iplink.o \
@@ -21,7 +21,7 @@ obj-$(CONFIG_IP) += \
 	rtm_map.o \
 	utils.o
 
-obj-$(CONFIG_IPADDR) += \
+lib-$(CONFIG_IPADDR) += \
 	ip_parse_common_args.o \
 	ipaddress.o \
 	libnetlink.o \
@@ -31,7 +31,7 @@ obj-$(CONFIG_IPADDR) += \
 	rt_names.o \
 	utils.o
 
-obj-$(CONFIG_IPLINK) += \
+lib-$(CONFIG_IPLINK) += \
 	ip_parse_common_args.o \
 	ipaddress.o \
 	iplink.o \
@@ -42,7 +42,7 @@ obj-$(CONFIG_IPLINK) += \
 	rt_names.o \
 	utils.o
 
-obj-$(CONFIG_IPROUTE) += \
+lib-$(CONFIG_IPROUTE) += \
 	ip_parse_common_args.o \
 	iproute.o \
 	libnetlink.o \
@@ -51,7 +51,7 @@ obj-$(CONFIG_IPROUTE) += \
 	rtm_map.o \
 	utils.o
 
-obj-$(CONFIG_IPTUNNEL) += \
+lib-$(CONFIG_IPTUNNEL) += \
 	ip_parse_common_args.o \
 	iptunnel.o \
 	rt_names.o \
diff -urpN busybox.1/networking/udhcp/Kbuild busybox.2/networking/udhcp/Kbuild
--- busybox.1/networking/udhcp/Kbuild	2006-10-03 23:33:41.000000000 +0200
+++ busybox.2/networking/udhcp/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -5,13 +5,13 @@
 # Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
 #
 
-obj-y:=
-obj-$(CONFIG_APP_UDHCPC)	+= common.o options.o packet.o pidfile.o \
+lib-y:=
+lib-$(CONFIG_APP_UDHCPC)	+= common.o options.o packet.o pidfile.o \
 				   signalpipe.o socket.o
-obj-$(CONFIG_APP_UDHCPD)	+= common.o options.o packet.o pidfile.o \
+lib-$(CONFIG_APP_UDHCPD)	+= common.o options.o packet.o pidfile.o \
 				   signalpipe.o socket.o
-obj-$(CONFIG_APP_UDHCPC)	+= dhcpc.o clientpacket.o clientsocket.o \
+lib-$(CONFIG_APP_UDHCPC)	+= dhcpc.o clientpacket.o clientsocket.o \
 				   script.o
-obj-$(CONFIG_APP_UDHCPD)	+= dhcpd.o arpping.o files.o leases.o \
+lib-$(CONFIG_APP_UDHCPD)	+= dhcpd.o arpping.o files.o leases.o \
 				   serverpacket.o static_leases.o
-obj-$(CONFIG_APP_DUMPLEASES)	+= dumpleases.o
+lib-$(CONFIG_APP_DUMPLEASES)	+= dumpleases.o
diff -urpN busybox.1/procps/Kbuild busybox.2/procps/Kbuild
--- busybox.1/procps/Kbuild	2006-10-03 23:33:41.000000000 +0200
+++ busybox.2/procps/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,13 +4,13 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:=
-obj-$(CONFIG_FREE)	+= free.o
-obj-$(CONFIG_KILL)	+= kill.o
-obj-$(CONFIG_PIDOF)	+= pidof.o
-obj-$(CONFIG_PS)	+= ps.o
-obj-$(CONFIG_RENICE)	+= renice.o
-obj-$(CONFIG_BB_SYSCTL)	+= sysctl.o
-obj-$(CONFIG_TOP)	+= top.o
-obj-$(CONFIG_UPTIME)	+= uptime.o
-obj-$(CONFIG_FUSER)	+= fuser.o
+lib-y:=
+lib-$(CONFIG_FREE)	+= free.o
+lib-$(CONFIG_KILL)	+= kill.o
+lib-$(CONFIG_PIDOF)	+= pidof.o
+lib-$(CONFIG_PS)	+= ps.o
+lib-$(CONFIG_RENICE)	+= renice.o
+lib-$(CONFIG_BB_SYSCTL)	+= sysctl.o
+lib-$(CONFIG_TOP)	+= top.o
+lib-$(CONFIG_UPTIME)	+= uptime.o
+lib-$(CONFIG_FUSER)	+= fuser.o
diff -urpN busybox.1/runit/Kbuild busybox.2/runit/Kbuild
--- busybox.1/runit/Kbuild	2006-10-03 23:43:05.000000000 +0200
+++ busybox.2/runit/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,5 +4,5 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:=
-obj-$(CONFIG_CHPST) += chpst.o uidgid.o
+lib-y:=
+lib-$(CONFIG_CHPST) += chpst.o uidgid.o
diff -urpN busybox.1/shell/Kbuild busybox.2/shell/Kbuild
--- busybox.1/shell/Kbuild	2006-10-03 23:33:41.000000000 +0200
+++ busybox.2/shell/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,9 +4,9 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:=
-obj-$(CONFIG_ASH)			+= ash.o
-obj-$(CONFIG_HUSH)			+= hush.o
-obj-$(CONFIG_LASH)			+= lash.o
-obj-$(CONFIG_MSH)			+= msh.o
-obj-$(CONFIG_FEATURE_COMMAND_EDITING)	+= cmdedit.o
+lib-y:=
+lib-$(CONFIG_ASH)			+= ash.o
+lib-$(CONFIG_HUSH)			+= hush.o
+lib-$(CONFIG_LASH)			+= lash.o
+lib-$(CONFIG_MSH)			+= msh.o
+lib-$(CONFIG_FEATURE_COMMAND_EDITING)	+= cmdedit.o
diff -urpN busybox.1/sysklogd/Kbuild busybox.2/sysklogd/Kbuild
--- busybox.1/sysklogd/Kbuild	2006-10-03 23:33:41.000000000 +0200
+++ busybox.2/sysklogd/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,8 +4,8 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:=
-obj-$(CONFIG_KLOGD)		+= klogd.o
-obj-$(CONFIG_LOGGER)		+= logger.o
-obj-$(CONFIG_LOGREAD)		+= logread.o
-obj-$(CONFIG_SYSLOGD)		+= syslogd.o
+lib-y:=
+lib-$(CONFIG_KLOGD)		+= klogd.o
+lib-$(CONFIG_LOGGER)		+= logger.o
+lib-$(CONFIG_LOGREAD)		+= logread.o
+lib-$(CONFIG_SYSLOGD)		+= syslogd.o
diff -urpN busybox.1/util-linux/Kbuild busybox.2/util-linux/Kbuild
--- busybox.1/util-linux/Kbuild	2006-10-03 23:53:35.000000000 +0200
+++ busybox.2/util-linux/Kbuild	2006-10-06 16:56:11.000000000 +0200
@@ -4,36 +4,29 @@
 #
 # Licensed under the GPL v2, see the file LICENSE in this tarball.
 
-obj-y:=
-obj-$(CONFIG_DMESG)		+=dmesg.o
-obj-$(CONFIG_FBSET)		+=fbset.o
-obj-$(CONFIG_FDFLUSH)		+=freeramdisk.o
-obj-$(CONFIG_FDFORMAT)		+=fdformat.o
-obj-$(CONFIG_FDISK)		+=fdisk.o
-obj-$(CONFIG_FREERAMDISK)	+=freeramdisk.o
-obj-$(CONFIG_FSCK_MINIX)	+=fsck_minix.o
-obj-$(CONFIG_GETOPT)		+=getopt.o
-obj-$(CONFIG_HEXDUMP)		+=hexdump.o
-obj-$(CONFIG_HWCLOCK)		+=hwclock.o
-obj-$(CONFIG_IPCRM)		+=ipcrm.o
-obj-$(CONFIG_IPCS)		+=ipcs.o
-obj-$(CONFIG_LOSETUP)		+=losetup.o
-obj-$(CONFIG_MDEV)		+=mdev.o
-obj-$(CONFIG_MKFS_MINIX)	+=mkfs_minix.o
-obj-$(CONFIG_MKSWAP)		+=mkswap.o
-obj-$(CONFIG_MORE)		+=more.o
-obj-$(CONFIG_MOUNT)		+=mount.o
-obj-$(CONFIG_PIVOT_ROOT)	+=pivot_root.o
-obj-$(CONFIG_RDATE)		+=rdate.o
-obj-$(CONFIG_READPROFILE)	+=readprofile.o
-obj-$(CONFIG_SETARCH)		+=setarch.o
-obj-$(CONFIG_SWAPONOFF)		+=swaponoff.o
-obj-$(CONFIG_SWITCH_ROOT)	+=switch_root.o
-obj-$(CONFIG_UMOUNT)		+=umount.o
-
-###ifneq ($(strip $(CONFIG_LFS)),y)
-###ifeq ($(strip $(FDISK_SUPPORT_LARGE_DISKS)),y)
-###$(obj_DIR)fdisk.o: $(srcdir)/fdisk.c
-###	$(compile.c) -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-###endif
-###endif
+lib-y:=
+lib-$(CONFIG_DMESG)		+=dmesg.o
+lib-$(CONFIG_FBSET)		+=fbset.o
+lib-$(CONFIG_FDFLUSH)		+=freeramdisk.o
+lib-$(CONFIG_FDFORMAT)		+=fdformat.o
+lib-$(CONFIG_FDISK)		+=fdisk.o
+lib-$(CONFIG_FREERAMDISK)	+=freeramdisk.o
+lib-$(CONFIG_FSCK_MINIX)	+=fsck_minix.o
+lib-$(CONFIG_GETOPT)		+=getopt.o
+lib-$(CONFIG_HEXDUMP)		+=hexdump.o
+lib-$(CONFIG_HWCLOCK)		+=hwclock.o
+lib-$(CONFIG_IPCRM)		+=ipcrm.o
+lib-$(CONFIG_IPCS)		+=ipcs.o
+lib-$(CONFIG_LOSETUP)		+=losetup.o
+lib-$(CONFIG_MDEV)		+=mdev.o
+lib-$(CONFIG_MKFS_MINIX)	+=mkfs_minix.o
+lib-$(CONFIG_MKSWAP)		+=mkswap.o
+lib-$(CONFIG_MORE)		+=more.o
+lib-$(CONFIG_MOUNT)		+=mount.o
+lib-$(CONFIG_PIVOT_ROOT)	+=pivot_root.o
+lib-$(CONFIG_RDATE)		+=rdate.o
+lib-$(CONFIG_READPROFILE)	+=readprofile.o
+lib-$(CONFIG_SETARCH)		+=setarch.o
+lib-$(CONFIG_SWAPONOFF)		+=swaponoff.o
+lib-$(CONFIG_SWITCH_ROOT)	+=switch_root.o
+lib-$(CONFIG_UMOUNT)		+=umount.o
