# asterisk
 #
 ##############################################################
-ASTERISK_VERSION := 1.2.0-beta1
-ASTERISK_SOURCE := asterisk-$(ASTERISK_VERSION).tar.gz
-ASTERISK_SITE := ftp://ftp.digium.com/pub/asterisk/old-releases
-ASTERISK_DIR := $(BUILD_DIR)/asterisk-$(ASTERISK_VERSION)
-ASTERISK_BINARY := asterisk
-ASTERISK_TARGET_BINARY := usr/sbin/asterisk
+ASTERISK_VERSION:=1.2.0-beta1
+ASTERISK_SOURCE:=asterisk-$(ASTERISK_VERSION).tar.gz
+ASTERISK_SITE:=ftp://ftp.digium.com/pub/asterisk/old-releases
+ASTERISK_DIR:=$(BUILD_DIR)/asterisk-$(ASTERISK_VERSION)
+ASTERISK_BINARY:=asterisk
+ASTERISK_TARGET_BINARY:=usr/sbin/asterisk
 
 $(DL_DIR)/$(ASTERISK_SOURCE):
        $(WGET) -P $(DL_DIR) $(ASTERISK_SITE)/$(ASTERISK_SOURCE)
 $(ASTERISK_DIR)/.source: $(DL_DIR)/$(ASTERISK_SOURCE)
        $(ZCAT) $(DL_DIR)/$(ASTERISK_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
        toolchain/patch-kernel.sh $(ASTERISK_DIR) package/asterisk/ asterisk\*.patch
-       touch $(ASTERISK_DIR)/.source
+       touch $@
 
 $(ASTERISK_DIR)/.configured: $(ASTERISK_DIR)/.source
-       touch $(ASTERISK_DIR)/.configured
+       touch $@
 
 $(ASTERISK_DIR)/$(ASTERISK_BINARY): $(ASTERISK_DIR)/.configured
-       $(MAKE1) -C $(ASTERISK_DIR) CROSS_ARCH=Linux CROSS_COMPILE=$(TARGET_CROSS) CROSS_COMPILE_BIN=$(STAGING_DIR)/bin/ CROSS_COMPILE_TARGET=$(STAGING_DIR) CROSS_PROC=$(OPTIMIZE_FOR_CPU) OPTIMIZE="$(TARGET_OPTIMIZATION)" OPTIONS=-DLOW_MEMORY DEBUG= $(TARGET_CONFIGURE_OPTS)
+       $(MAKE1) -C $(ASTERISK_DIR) \
+               CROSS_ARCH=Linux \
+               CROSS_COMPILE=$(TARGET_CROSS) \
+               CROSS_COMPILE_BIN=$(STAGING_DIR)/bin/ \
+               CROSS_COMPILE_TARGET=$(STAGING_DIR) \
+               CROSS_PROC=$(OPTIMIZE_FOR_CPU) \
+               OPTIMIZE="$(TARGET_OPTIMIZATION)" \
+               OPTIONS=-DLOW_MEMORY \
+               DEBUG= \
+               $(TARGET_CONFIGURE_OPTS)
 
 $(TARGET_DIR)/$(ASTERISK_TARGET_BINARY): $(ASTERISK_DIR)/$(ASTERISK_BINARY)
-       $(MAKE) -C $(ASTERISK_DIR) CROSS_ARCH=Linux CROSS_COMPILE=$(TARGET_CROSS) CROSS_COMPILE_BIN=$(TARGET_CC) CROSS_COMPILE_TARGET=$(STAGING_DIR) CROSS_PROC=$(OPTIMIZE_FOR_CPU) OPTIMIZE="$(TARGET_OPTIMIZATION)" OPTIONS=-DLOW_MEMORY DEBUG= $(TARGET_CONFIGURE_OPTS) DESTDIR=$(TARGET_DIR) install
+       $(MAKE) -C $(ASTERISK_DIR) \
+               CROSS_ARCH=Linux \
+               CROSS_COMPILE=$(TARGET_CROSS) \
+               CROSS_COMPILE_BIN=$(TARGET_CC) \
+               CROSS_COMPILE_TARGET=$(STAGING_DIR) \
+               CROSS_PROC=$(OPTIMIZE_FOR_CPU) \
+               OPTIMIZE="$(TARGET_OPTIMIZATION)" \
+               OPTIONS=-DLOW_MEMORY \
+               DEBUG= \
+               $(TARGET_CONFIGURE_OPTS) \
+               DESTDIR=$(TARGET_DIR) install
        $(STRIP) $(TARGET_DIR)/usr/sbin/asterisk
        $(STRIP) $(TARGET_DIR)/usr/sbin/stereorize
        $(STRIP) $(TARGET_DIR)/usr/sbin/streamplayer
-       $(STRIP) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/asterisk/modules/*.so
-       $(INSTALL) -m 755 $(ASTERISK_DIR)/contrib/init.d/rc.debian.asterisk $(TARGET_DIR)/etc/init.d/S60asterisk
+       $(STRIP) $(STRIP_STRIP_UNNEEDED) \
+               $(TARGET_DIR)/usr/lib/asterisk/modules/*.so
+       $(INSTALL) -m 755 $(ASTERISK_DIR)/contrib/init.d/rc.debian.asterisk \
+               $(TARGET_DIR)/etc/init.d/S60asterisk
        mv $(TARGET_DIR)/usr/include/asterisk $(STAGING_DIR)/usr/include/
+ifneq ($(BR2_HAVE_MANPAGES),y)
        rm -Rf $(TARGET_DIR)/usr/share/man
+endif
        rm -f $(TARGET_DIR)/usr/sbin/safe_asterisk
        rm -f $(TARGET_DIR)/usr/sbin/autosupport
        rm -f $(TARGET_DIR)/usr/sbin/astgenkey
-       touch -c $(TARGET_DIR)/$(ASTERISK_TARGET_BINARY)
+       touch -c $@
 
 asterisk: uclibc ncurses zlib openssl mpg123 $(TARGET_DIR)/$(ASTERISK_TARGET_BINARY)
 
 
 AUTOCONF:=$(STAGING_DIR)/usr/bin/autoconf
 
 # variables used by other packages
-AUTORECONF = $(HOST_CONFIGURE_OPTS) ACLOCAL="$(ACLOCAL)" autoreconf -v -f -i -I "$(ACLOCAL_DIR)"
+AUTORECONF=$(HOST_CONFIGURE_OPTS) ACLOCAL="$(ACLOCAL)" autoreconf -v -f -i -I "$(ACLOCAL_DIR)"
 
 $(DL_DIR)/$(AUTOCONF_SOURCE):
         $(WGET) -P $(DL_DIR) $(AUTOCONF_SITE)/$(AUTOCONF_SOURCE)
                --sysconfdir=/etc \
                --datadir=/usr/share \
                --localstatedir=/var \
-               --mandir=/usr/man \
-               --infodir=/usr/info \
+               --mandir=/usr/share/man \
+               --infodir=/usr/share/info \
        )
        touch $@
 
            sysconfdir=$(TARGET_DIR)/etc \
            localstatedir=$(TARGET_DIR)/var \
            libdir=$(TARGET_DIR)/usr/lib \
-           infodir=$(TARGET_DIR)/usr/info \
-           mandir=$(TARGET_DIR)/usr/man \
+           infodir=$(TARGET_DIR)/usr/share/info \
+           mandir=$(TARGET_DIR)/usr/share/man \
            includedir=$(TARGET_DIR)/usr/include \
            -C $(AUTOCONF_DIR) install
-       rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
-               $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/man
+endif
+       rm -rf $(TARGET_DIR)/share/locale
+       rm -rf $(TARGET_DIR)/usr/share/doc
        touch -c $@
 
 autoconf: uclibc $(TARGET_DIR)/$(AUTOCONF_TARGET_BINARY)
 
                --sysconfdir=/etc \
                --datadir=/usr/share \
                --localstatedir=/var \
-               --mandir=/usr/man \
-               --infodir=/usr/info \
+               --mandir=/usr/share/man \
+               --infodir=/usr/share/info \
+               --includedir=/usr/include \
        )
        touch $@
 
            sysconfdir=$(TARGET_DIR)/etc \
            localstatedir=$(TARGET_DIR)/var \
            libdir=$(TARGET_DIR)/usr/lib \
-           infodir=$(TARGET_DIR)/usr/info \
-           mandir=$(TARGET_DIR)/usr/man \
+           infodir=$(TARGET_DIR)/usr/share/info \
+           mandir=$(TARGET_DIR)/usr/share/man \
            includedir=$(TARGET_DIR)/usr/include \
            -C $(AUTOMAKE_DIR) install
-       rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
-               $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/man
+endif
+       rm -rf $(TARGET_DIR)/share/locale
+       rm -rf $(TARGET_DIR)/usr/share/doc
        touch -c $@
 
 automake: uclibc autoconf $(TARGET_DIR)/$(AUTOMAKE_TARGET_BINARY)
 
 bash-source: $(DL_DIR)/$(BASH_SOURCE)
 
 bash-unpacked: $(BASH_DIR)/.unpacked
+
 $(BASH_DIR)/.unpacked: $(DL_DIR)/$(BASH_SOURCE)
        $(BASH_CAT) $(DL_DIR)/$(BASH_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
        toolchain/patch-kernel.sh $(BASH_DIR) package/bash/ bash??-\*
                --sysconfdir=/etc \
                --datadir=/usr/share \
                --localstatedir=/var \
-               --mandir=/usr/man \
-               --infodir=/usr/info \
+               --mandir=/usr/share/man \
+               --infodir=/usr/share/info \
+               --includedir=/usr/include \
                $(DISABLE_NLS) \
                $(DISABLE_LARGEFILE) \
                --with-curses \
        rm -f $(TARGET_DIR)/bin/bash*
        mv $(TARGET_DIR)/usr/bin/bash* $(TARGET_DIR)/bin/
        (cd $(TARGET_DIR)/bin; /bin/ln -fs bash sh)
-       rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
-               $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/man
+endif
+       rm -rf $(TARGET_DIR)/share/locale
+       rm -rf $(TARGET_DIR)/usr/share/doc
 
-#If both bash and busybox are selected, make certain bash wins
-#the fight over who gets to own the /bin/sh symlink
+# If both bash and busybox are selected, make certain bash wins
+# the fight over who gets to own the /bin/sh symlink.
 ifeq ($(BR2_PACKAGE_BUSYBOX),y)
 bash: ncurses uclibc busybox $(TARGET_DIR)/$(BASH_TARGET_BINARY)
 else
 bash: ncurses uclibc $(TARGET_DIR)/$(BASH_TARGET_BINARY)
 endif
 
+# If both bash and busybox are selected, the /bin/sh symlink
+# may need to be reinstated by the clean targets.
 bash-clean:
        -$(MAKE1) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(BASH_DIR) uninstall
        rm -f $(TARGET_DIR)/$(BASH_TARGET_BINARY)
 
 
 $(DB_DIR)/.dist: $(DL_DIR)/$(DB_SOURCE)
        $(ZCAT) $(DL_DIR)/$(DB_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-       touch $(DB_DIR)/.dist
+       touch $@
 
 $(DB_DIR)/.configured: $(DB_DIR)/.dist
        (cd $(DB_DIR)/build_unix; rm -rf config.cache; \
                --datadir=/usr/share \
                --localstatedir=/var \
                --includedir=/usr/include \
-               --mandir=/usr/man \
-               --infodir=/usr/info \
+               --mandir=/usr/share/man \
+               --infodir=/usr/share/info \
                --with-gnu-ld \
                --enable-shared \
                --disable-cxx \
                $(DISABLE_LARGEFILE) \
        )
        $(SED) 's/\.lo/.o/g' $(DB_DIR)/build_unix/Makefile
-       touch $(DB_DIR)/.configured
+       touch $@
 
 $(DB_DIR)/build_unix/.libs/$(DB_SHARLIB): $(DB_DIR)/.configured
        $(MAKE) CC=$(TARGET_CC) -C $(DB_DIR)/build_unix
        $(MAKE) DESTDIR=$(STAGING_DIR) -C $(DB_DIR)/build_unix install
        chmod a-x $(STAGING_DIR)/lib/libdb*so*
        rm -f $(STAGING_DIR)/bin/db_*
-       rm -rf $(STAGING_DIR)/share/locale $(STAGING_DIR)/info \
-               $(STAGING_DIR)/man $(STAGING_DIR)/share/doc
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+       rm -rf $(STAGING_DIR)/usr/share/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -rf $(STAGING_DIR)/usr/share/man
+endif
+       rm -rf $(STAGING_DIR)/share/locale
+       rm -rf $(STAGING_DIR)/usr/share/doc
 
 $(TARGET_DIR)/lib/$(DB_SHARLIB): $(STAGING_DIR)/lib/$(DB_SHARLIB)
        rm -rf $(TARGET_DIR)/lib/libdb*
        cp -a $(STAGING_DIR)/lib/libdb*so* $(TARGET_DIR)/lib/
-       rm -f $(TARGET_DIR)/lib/libdb.so $(TARGET_DIR)/lib/libdb.la $(TARGET_DIR)/lib/libdb.a
+       rm -f $(addprefix $(TARGET_DIR)/lib/,libdb.so libdb.la libdb.a)
        (cd $(TARGET_DIR)/usr/lib; ln -fs /lib/$(DB_SHARLIB) libdb.so)
        -$(STRIP) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/lib/libdb*so*
 
        cp -dpf $(STAGING_DIR)/usr/include/db.h $(TARGET_DIR)/usr/include/
        cp -dpf $(STAGING_DIR)/lib/libdb*.a $(TARGET_DIR)/usr/lib/
        cp -dpf $(STAGING_DIR)/lib/libdb*.la $(TARGET_DIR)/usr/lib/
-       touch -c $(TARGET_DIR)/usr/lib/libdb.a
+       touch -c $@
 
 berkeleydb-headers: $(TARGET_DIR)/usr/lib/libdb.a
 
 
 $(BISON_DIR)/.unpacked: $(DL_DIR)/$(BISON_SOURCE)
        $(BISON_CAT) $(DL_DIR)/$(BISON_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
        $(CONFIG_UPDATE) $(BISON_DIR)/build-aux
-       touch $(BISON_DIR)/.unpacked
+       touch $@
 
 $(BISON_DIR)/.configured: $(BISON_DIR)/.unpacked
        (cd $(BISON_DIR); rm -rf config.cache; \
                --sysconfdir=/etc \
                --datadir=/usr/share \
                --localstatedir=/var \
-               --mandir=/usr/man \
-               --infodir=/usr/info \
+               --mandir=/usr/share/man \
+               --infodir=/usr/share/info \
+               --includedir=/usr/include \
                $(DISABLE_NLS) \
        )
        echo 'all install:' > $(BISON_DIR)/examples/Makefile
-       touch $(BISON_DIR)/.configured
+       touch $@
 
 $(BISON_DIR)/$(BISON_BINARY): $(BISON_DIR)/.configured
        $(MAKE) CC=$(TARGET_CC) -C $(BISON_DIR)
 
 $(TARGET_DIR)/$(BISON_TARGET_BINARY): $(BISON_DIR)/$(BISON_BINARY)
        $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(BISON_DIR) install
-       rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
-               $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/man
+endif
+       rm -rf $(TARGET_DIR)/share/locale
+       rm -rf $(TARGET_DIR)/usr/share/doc
        cp -a package/bison/yacc $(TARGET_DIR)/usr/bin/yacc
 
 bison: uclibc $(TARGET_DIR)/$(BISON_TARGET_BINARY)
 
 
 $(BUSYBOX_INITRAMFS_DIR)/.unpacked: $(DL_DIR)/$(BUSYBOX_SOURCE)
        rm -rf $(BUILD_DIR)/tmp $(BUSYBOX_INITRAMFS_DIR)
-       -mkdir $(BUILD_DIR)/tmp
+       mkdir -p $(BUILD_DIR)/tmp
        $(BUSYBOX_UNZIP) $(DL_DIR)/$(BUSYBOX_SOURCE) | tar -C $(BUILD_DIR)/tmp $(TAR_OPTIONS) -
 ifeq ($(strip $(BR2_PACKAGE_BUSYBOX_SNAPSHOT)),y)
        mv $(BUILD_DIR)/tmp/busybox $(BUSYBOX_INITRAMFS_DIR)
 
 $(BUSYBOX_INITRAMFS_DIR)/.config $(BUSYBOX_INITRAMFS_DIR)/.configured: $(BUSYBOX_INITRAMFS_DIR)/.unpacked
        $(MAKE) CC=$(TARGET_CC) CROSS_COMPILE="$(TARGET_CROSS)" \
-                CROSS="$(TARGET_CROSS)" -C $(BUSYBOX_INITRAMFS_DIR) \
+               CROSS="$(TARGET_CROSS)" -C $(BUSYBOX_INITRAMFS_DIR) \
                allnoconfig
        mv $(BUSYBOX_INITRAMFS_DIR)/.config $(BUSYBOX_INITRAMFS_DIR)/.config.no
        (echo CONFIG_PREFIX=\"$(BR2_INITRAMFS_DIR)\"; \
 
 
 $(STAGING_DIR)/lib/libbz2.so.$(BZIP2_VERSION): $(BZIP2_DIR)/.unpacked
        $(TARGET_CONFIGURE_OPTS) \
-       $(MAKE) CC=$(TARGET_CC) RANLIB=$(TARGET_RANLIB) -C $(BZIP2_DIR) -f Makefile-libbz2_so
+       $(MAKE) CC=$(TARGET_CC) RANLIB=$(TARGET_RANLIB) AR=$(TARGET_AR) \
+               -C $(BZIP2_DIR) -f Makefile-libbz2_so
        $(TARGET_CONFIGURE_OPTS) \
-       $(MAKE) CC=$(TARGET_CC) RANLIB=$(TARGET_RANLIB) -C $(BZIP2_DIR) libbz2.a
+       $(MAKE) CC=$(TARGET_CC) RANLIB=$(TARGET_RANLIB) AR=$(TARGET_AR) \
+               -C $(BZIP2_DIR) libbz2.a
        cp $(BZIP2_DIR)/bzlib.h $(STAGING_DIR)/usr/include/
        cp $(BZIP2_DIR)/libbz2.so.$(BZIP2_VERSION) $(STAGING_DIR)/lib/
        cp $(BZIP2_DIR)/libbz2.a $(STAGING_DIR)/usr/lib/
-       (cd $(STAGING_DIR)/usr/lib/; ln -snf ../../lib/libbz2.so.$(BZIP2_VERSION) libbz2.so)
-       (cd $(STAGING_DIR)/lib; ln -snf libbz2.so.$(BZIP2_VERSION) libbz2.so.1.0; \
-        ln -snf libbz2.so.$(BZIP2_VERSION) libbz2.so.1)
+       (cd $(STAGING_DIR)/usr/lib/; \
+               ln -snf ../../lib/libbz2.so.$(BZIP2_VERSION) libbz2.so; \
+       )
+       (cd $(STAGING_DIR)/lib; \
+               ln -snf libbz2.so.$(BZIP2_VERSION) libbz2.so.1.0; \
+               ln -snf libbz2.so.$(BZIP2_VERSION) libbz2.so.1; \
+       )
 
 $(BZIP2_BINARY): $(STAGING_DIR)/lib/libbz2.so.$(BZIP2_VERSION)
        $(TARGET_CONFIGURE_OPTS) \
 
 $(BZIP2_TARGET_BINARY): $(BZIP2_BINARY)
        (cd $(TARGET_DIR)/usr/bin; \
-       rm -f bzip2 bunzip2 bzcat bzip2recover bzgrep bzegrep bzfgrep bzmore bzless bzdiff bzcmp)
+               rm -f bzip2 bunzip2 bzcat bzip2recover \
+                       bzgrep bzegrep bzfgrep bzmore bzless bzdiff bzcmp; \
+       )
        $(TARGET_CONFIGURE_OPTS) \
        $(MAKE) PREFIX=$(TARGET_DIR)/usr -C $(BZIP2_DIR) install
        rm -f $(TARGET_DIR)/usr/lib/libbz2.a
        rm -f $(TARGET_DIR)/usr/include/bzlib.h
        cp $(BZIP2_DIR)/libbz2.so.$(BZIP2_VERSION) $(TARGET_DIR)/usr/lib/
        (cd $(TARGET_DIR)/usr/lib; \
-       ln -snf libbz2.so.$(BZIP2_VERSION) libbz2.so.1.0; \
-       ln -snf libbz2.so.$(BZIP2_VERSION) libbz2.so)
+               ln -snf libbz2.so.$(BZIP2_VERSION) libbz2.so.1.0; \
+               ln -snf libbz2.so.$(BZIP2_VERSION) libbz2.so; \
+       )
        (cd $(TARGET_DIR)/usr/bin; \
-       ln -snf bzip2 bunzip2; \
-       ln -snf bzip2 bzcat; \
-       ln -snf bzdiff bzcmp; \
-       ln -snf bzmore bzless; \
-       ln -snf bzgrep bzegrep; \
-       ln -snf bzgrep bzfgrep;)
-       rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
-               $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
+               ln -snf bzip2 bunzip2; \
+               ln -snf bzip2 bzcat; \
+               ln -snf bzdiff bzcmp; \
+               ln -snf bzmore bzless; \
+               ln -snf bzgrep bzegrep; \
+               ln -snf bzgrep bzfgrep; \
+       )
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/man
+endif
+       rm -rf $(TARGET_DIR)/share/locale
+       rm -rf $(TARGET_DIR)/usr/share/doc
 
 $(TARGET_DIR)/usr/lib/libbz2.a: $(STAGING_DIR)/lib/libbz2.a
        mkdir -p $(TARGET_DIR)/usr/include
 bzip2: uclibc $(BZIP2_TARGET_BINARY)
 
 bzip2-clean:
-       -$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(BZIP2_DIR) uninstall
-       rm -f $(TARGET_DIR)/usr/lib/libbz2.* $(TARGET_DIR)/lib/libbz2.* \
-               $(TARGET_DIR)/usr/include/bzlib.h \
-               $(STAGING_DIR)/usr/include/bzlib.h \
-               $(STAGING_DIR)/usr/lib/libbz2.* $(STAGING_DIR)/lib/libbz2.*
+       rm -f $(addprefix $(TARGET_DIR),/lib/libbz2.* \
+                                       /usr/lib/libbz2.* \
+                                       /usr/include/bzlib.h)
+       rm -f $(addprefix $(STAGING_DIR),/lib/libbz2.* \
+                                       /usr/lib/libbz2.* \
+                                       /usr/include/bzlib.h)
        -$(MAKE) -C $(BZIP2_DIR) clean
 
 bzip2-dirclean:
 
                --sysconfdir=/etc \
                --datadir=/usr/share \
                --localstatedir=/var \
-               --mandir=/usr/man \
-               --infodir=/usr/info \
+               --mandir=/usr/share/man \
+               --infodir=/usr/share/info \
                $(DISABLE_NLS) \
                $(DISABLE_LARGEFILE) \
                --disable-rpath \
        # gnu thinks chroot is in bin, debian thinks it's in sbin
        mv $(TARGET_DIR)/usr/bin/chroot $(TARGET_DIR)/usr/sbin/chroot
        $(STRIP) $(TARGET_DIR)/usr/sbin/chroot > /dev/null 2>&1
-       rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
-               $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/man
+endif
+       rm -rf $(TARGET_DIR)/share/locale
+       rm -rf $(TARGET_DIR)/usr/share/doc
 
-#If both coreutils and busybox are selected, make certain coreutils
-#wins the fight over who gets to have their utils actually installed
+# If both coreutils and busybox are selected, make certain coreutils
+# wins the fight over who gets to have their utils actually installed.
 ifeq ($(BR2_PACKAGE_BUSYBOX),y)
 coreutils: uclibc busybox $(TARGET_DIR)/$(COREUTILS_TARGET_BINARY)
 else
 coreutils: uclibc $(TARGET_DIR)/$(COREUTILS_TARGET_BINARY)
 endif
 
+# If both coreutils and busybox are selected, the corresponding applets
+# may need to be reinstated by the clean targets.
 coreutils-clean:
        $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(COREUTILS_DIR) uninstall
        -$(MAKE) -C $(COREUTILS_DIR) clean
 
        $(MAKE) DESTDIR=$(TARGET_DIR) initddir=/etc/init.d -C $(DBUS_DIR)/bus install
        $(INSTALL) -m 0755 package/dbus/S97messagebus $(TARGET_DIR)/etc/init.d
        rm -f $(TARGET_DIR)/etc/init.d/messagebus
-       rm -rf $(TARGET_DIR)/usr/man
-       -rmdir --ignore-fail-on-non-empty $(TARGET_DIR)/usr/share
+       rm -rf $(TARGET_DIR)/usr/share/man
+       rmdir --ignore-fail-on-non-empty $(TARGET_DIR)/usr/share
        rm -rf $(TARGET_DIR)/etc/rc.d
 
 dbus: uclibc expat libxml2-headers $(TARGET_DIR)/$(DBUS_TARGET_BINARY)
 
 #############################################################
 DHCP_VERSION:=3.0.5
 DHCP_SOURCE:=dhcp-$(DHCP_VERSION).tar.gz
-DHCP_SITE:=ftp://ftp.isc.org/isc/dhcp
+DHCP_SITE:=ftp://ftp.isc.org/isc/dhcp/dhcp-3.0-history
 DHCP_CAT:=$(ZCAT)
 DHCP_DIR:=$(BUILD_DIR)/dhcp-$(DHCP_VERSION)
 DHCP_SERVER_BINARY:=work.linux-2.2/server/dhcpd
 $(DHCP_DIR)/.unpacked: $(DL_DIR)/$(DHCP_SOURCE)
        $(DHCP_CAT) $(DL_DIR)/$(DHCP_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
        toolchain/patch-kernel.sh $(DHCP_DIR) package/dhcp/ dhcp\*.patch
-       touch $(DHCP_DIR)/.unpacked
+       touch $@
 
 $(DHCP_DIR)/.configured: $(DHCP_DIR)/.unpacked
        (cd $(DHCP_DIR); \
                $(TARGET_CONFIGURE_OPTS) \
                $(TARGET_CONFIGURE_ARGS) \
-               ./configure )
-       touch $(DHCP_DIR)/.configured
+               ./configure; \
+       )
+       touch $@
 
 $(DHCP_DIR)/$(DHCP_RELAY_BINARY): $(DHCP_DIR)/.configured
        $(MAKE) $(TARGET_CONFIGURE_OPTS) $(BVARS) -C $(DHCP_DIR)
 
 $(TARGET_DIR)/$(DHCP_SERVER_TARGET_BINARY): $(DHCP_DIR)/$(DHCP_RELAY_BINARY)
        mkdir -p $(TARGET_DIR)/var/lib
-       (cd $(TARGET_DIR)/var/lib; ln -snf /tmp dhcp)
-       $(INSTALL) -m 0755 -D $(DHCP_DIR)/$(DHCP_SERVER_BINARY) $(TARGET_DIR)/$(DHCP_SERVER_TARGET_BINARY)
+       (cd $(TARGET_DIR)/var/lib; \
+               ln -snf /tmp dhcp; \
+       )
+       $(INSTALL) -m 0755 -D $(DHCP_DIR)/$(DHCP_SERVER_BINARY) \
+               $(TARGET_DIR)/$(DHCP_SERVER_TARGET_BINARY)
        mkdir -p $(TARGET_DIR)/etc/init.d
-       $(INSTALL) -m 0755 -D package/dhcp/S80dhcp-server $(TARGET_DIR)/etc/init.d
+       $(INSTALL) -m 0755 -D package/dhcp/S80dhcp-server \
+               $(TARGET_DIR)/etc/init.d
        mkdir -p $(TARGET_DIR)/etc/dhcp
-       $(INSTALL) -m 0644 -D package/dhcp/dhcpd.conf $(TARGET_DIR)/etc/dhcp/dhcpd.conf
-       rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
-               $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
+       $(INSTALL) -m 0644 -D package/dhcp/dhcpd.conf \
+               $(TARGET_DIR)/etc/dhcp/dhcpd.conf
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/man
+endif
+       rm -rf $(TARGET_DIR)/share/locale
+       rm -rf $(TARGET_DIR)/usr/share/doc
 
 $(TARGET_DIR)/$(DHCP_RELAY_TARGET_BINARY): $(DHCP_DIR)/$(DHCP_RELAY_BINARY)
        mkdir -p $(TARGET_DIR)/var/lib
        (cd $(TARGET_DIR)/var/lib; ln -snf /tmp dhcp)
-       $(INSTALL) -m 0755 -D $(DHCP_DIR)/$(DHCP_RELAY_BINARY) $(TARGET_DIR)/$(DHCP_RELAY_TARGET_BINARY)
+       $(INSTALL) -m 0755 -D $(DHCP_DIR)/$(DHCP_RELAY_BINARY) \
+               $(TARGET_DIR)/$(DHCP_RELAY_TARGET_BINARY)
        mkdir -p $(TARGET_DIR)/etc/init.d
-       $(INSTALL) -m 0755 -D package/dhcp/S80dhcp-relay $(TARGET_DIR)/etc/init.d
-       rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
-               $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
+       $(INSTALL) -m 0755 -D package/dhcp/S80dhcp-relay \
+               $(TARGET_DIR)/etc/init.d
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/man
+endif
+       # Why on earth do we wipe out whole directories here?
+       #rm -rf $(TARGET_DIR)/usr/share/locale
+       #rm -rf $(TARGET_DIR)/usr/share/doc
 
 $(TARGET_DIR)/$(DHCP_CLIENT_TARGET_BINARY): $(DHCP_DIR)/$(DHCP_RELAY_BINARY)
        mkdir -p $(TARGET_DIR)/var/lib
        (cd $(TARGET_DIR)/var/lib; ln -snf /tmp dhcp)
-       $(INSTALL) -m 0755 -D $(DHCP_DIR)/$(DHCP_CLIENT_BINARY) $(TARGET_DIR)/$(DHCP_CLIENT_TARGET_BINARY)
+       $(INSTALL) -m 0755 -D $(DHCP_DIR)/$(DHCP_CLIENT_BINARY) \
+               $(TARGET_DIR)/$(DHCP_CLIENT_TARGET_BINARY)
        mkdir -p $(TARGET_DIR)/etc/dhcp
-       $(INSTALL) -m 0644 -D package/dhcp/dhclient.conf $(TARGET_DIR)/etc/dhcp/dhclient.conf
-       $(INSTALL) -m 0755 -D package/dhcp/dhclient-script $(TARGET_DIR)/sbin/dhclient-script
-       rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
-               $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
+       $(INSTALL) -m 0644 -D package/dhcp/dhclient.conf \
+               $(TARGET_DIR)/etc/dhcp/dhclient.conf
+       $(INSTALL) -m 0755 -D package/dhcp/dhclient-script \
+               $(TARGET_DIR)/sbin/dhclient-script
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/man
+endif
+       # Why on earth do we wipe out whole directories here?
+       #rm -rf $(TARGET_DIR)/usr/share/locale
+       #rm -rf $(TARGET_DIR)/usr/share/doc
 
 dhcp_server: uclibc $(TARGET_DIR)/$(DHCP_SERVER_TARGET_BINARY)
 
 dhcp_client: uclibc $(TARGET_DIR)/$(DHCP_CLIENT_TARGET_BINARY)
 
 dhcp-clean:
-       $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(DHCP_DIR) uninstall
        -$(MAKE) -C $(DHCP_DIR) clean
 
 dhcp-dirclean:
 
                --host=$(GNU_TARGET_NAME) \
                --build=$(GNU_HOST_NAME) \
                --prefix=/usr \
-               --sysconfdir=/etc \
+               --sysconfdir=/etc; \
        )
        touch $@
 
        $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(DIALOG_DIR)
 
 $(TARGET_DIR)/$(DIALOG_TARGET_BINARY): $(DIALOG_DIR)/$(DIALOG_BINARY)
-       $(MAKE) prefix=$(TARGET_DIR)/usr -C $(DIALOG_DIR) install
-       rm -Rf $(TARGET_DIR)/usr/man
+       $(MAKE) prefix=$(TARGET_DIR)/usr \
+               mandir=$(TARGET_DIR)/usr/share/man \
+               -C $(DIALOG_DIR) install
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -Rf $(TARGET_DIR)/usr/share/man
+endif
 
 dialog: uclibc ncurses $(TARGET_DIR)/$(DIALOG_TARGET_BINARY)
 
 
 $(DIFFUTILS_DIR)/.unpacked: $(DL_DIR)/$(DIFFUTILS_SOURCE)
        $(DIFFUTILS_CAT) $(DL_DIR)/$(DIFFUTILS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
        $(CONFIG_UPDATE) $(DIFFUTILS_DIR)/config
-       touch $(DIFFUTILS_DIR)/.unpacked
+       touch $@
 
 $(DIFFUTILS_DIR)/.configured: $(DIFFUTILS_DIR)/.unpacked
        (cd $(DIFFUTILS_DIR); rm -rf config.cache; \
                --sysconfdir=/etc \
                --datadir=/usr/share \
                --localstatedir=/var \
-               --mandir=/usr/man \
-               --infodir=/usr/info \
+               --mandir=/usr/share/man \
+               --infodir=/usr/share/info \
                $(DISABLE_NLS) \
                $(DISABLE_LARGEFILE) \
        )
-       touch $(DIFFUTILS_DIR)/.configured
+       touch $@
 
 $(DIFFUTILS_DIR)/$(DIFFUTILS_BINARY): $(DIFFUTILS_DIR)/.configured
        $(MAKE) CC=$(TARGET_CC) -C $(DIFFUTILS_DIR)
 
 $(TARGET_DIR)/$(DIFFUTILS_TARGET_BINARY): $(DIFFUTILS_DIR)/$(DIFFUTILS_BINARY)
        $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(DIFFUTILS_DIR) install
-       rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
-               $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/man
+endif
+       rm -rfw $(TARGET_DIR)/share/locale
+       rm -rf $(TARGET_DIR)/usr/share/doc
 
 diffutils: uclibc $(TARGET_DIR)/$(DIFFUTILS_TARGET_BINARY)
 
 
 $(DIRECTFB_DIR)/.unpacked: $(DL_DIR)/$(DIRECTFB_SOURCE)
        $(DIRECTFB_CAT) $(DL_DIR)/$(DIRECTFB_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
        toolchain/patch-kernel.sh $(DIRECTFB_DIR) package/directfb/ directfb\*.patch
-       touch $(DIRECTFB_DIR)/.unpacked
+       touch $@
 
 $(DIRECTFB_DIR)/.configured: $(DIRECTFB_DIR)/.unpacked
        (cd $(DIRECTFB_DIR); \
                --disable-video4linux \
                --disable-video4linux2 \
                --enable-fusion )
-       touch $(DIRECTFB_DIR)/.configured
+       touch $@
 
 $(DIRECTFB_DIR)/.compiled: $(DIRECTFB_DIR)/.configured
        $(MAKE) PATH=$(STAGING_DIR)/usr/lib:$(PATH) \
 
 $(DM_DIR)/.unpacked: $(DL_DIR)/$(DM_SOURCE)
        $(DM_CAT) $(DL_DIR)/$(DM_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
        toolchain/patch-kernel.sh $(DM_DIR) package/dm/ \*.patch
-       touch $(DM_DIR)/.unpacked
+       touch $@
 
 $(DM_DIR)/.configured: $(DM_DIR)/.unpacked
        (cd $(DM_DIR); rm -rf config.cache; \
                --sysconfdir=/etc \
                --datadir=/usr/share \
                --localstatedir=/var \
-               --includedir=/include \
-               --mandir=/usr/man \
-               --infodir=/usr/info \
+               --includedir=/usr/include \
+               --mandir=/usr/share/man \
+               --infodir=/usr/share/info \
                $(DISABLE_NLS) \
                $(DISABLE_LARGEFILE) \
                --with-user=$(shell id -un) --with-group=$(shell id -gn) \
        )
-       touch $(DM_DIR)/.configured
+       touch $@
 
 $(DM_DIR)/$(DM_BINARY): dm-build
 $(DM_DIR)/$(DM_LIBRARY): dm-build
 $(DM_TARGET_BINARY): $(DM_STAGING_BINARY)
        $(INSTALL) -m 0755 $? $@
        -$(STRIP) $(DM_TARGET_BINARY)
-       touch -c $(DM_TARGET_BINARY)
+       touch -c $@
 
 # Install libdevmapper.so.1.00 from staging to target
 $(DM_TARGET_LIBRARY).$(DM_BASEVER): $(DM_STAGING_LIBRARY)
        $(INSTALL) -m 0644 $? $@
-       -$(STRIP) $(DM_TARGET_LIBRARY)
-       touch -c $(DM_TARGET_LIBRARY).$(DM_BASEVER)
+       -$(STRIP) $@
+       touch -c $@
 
 # Makes libdevmapper.so a symlink to libdevmapper.so.1.00
 $(DM_TARGET_LIBRARY): $(DM_TARGET_LIBRARY).$(DM_BASEVER)
        rm -f $@
        ln -s $(<F) $@
-       touch -c $(DM_TARGET_LIBRARY)
+       touch -c $@
 
 # Install header file
 $(DM_TARGET_HEADER): $(DM_TARGET_LIBRARY)
 dm: uclibc $(DM_TARGET_BINARY) $(DM_TARGET_LIBRARY) #$(DM_TARGET_HEADER)
 
 dm-clean:
-       rm $(DM_TARGET_BINARY) $(DM_TARGET_LIBRARY) $(DM_TARGET_LIBRARY).$(DM_BASEVER) $(DM_TARGET_HEADER)
+       rm $(DM_TARGET_BINARY) $(DM_TARGET_LIBRARY) \
+               $(DM_TARGET_LIBRARY).$(DM_BASEVER) $(DM_TARGET_HEADER)
        $(MAKE) -C $(DM_DIR) clean
 
 dm-dirclean:
 
                --sysconfdir=/etc \
                --datadir=/usr/share \
                --localstatedir=/var \
-               --mandir=/usr/man \
-               --infodir=/usr/info \
+               --mandir=/usr/share/man \
+               --infodir=/usr/share/info \
                --enable-elf-shlibs --enable-dynamic-e2fsck --disable-swapfs \
                --disable-debugfs --disable-imager \
                --disable-resizer --enable-fsck \
 
 $(E2FSPROGS_DIR)/$(E2FSPROGS_BINARY): $(E2FSPROGS_DIR)/.configured
        $(MAKE1) -C $(E2FSPROGS_DIR)
-       ( \
-               cd $(E2FSPROGS_DIR)/misc; \
+       (cd $(E2FSPROGS_DIR)/misc; \
                $(STRIP) $(E2FSPROGS_MISC_STRIP); \
        )
        #$(STRIP) $(E2FSPROGS_DIR)/lib/lib*.so.*.*
        touch -c $@
 
 $(TARGET_DIR)/$(E2FSPROGS_TARGET_BINARY): $(E2FSPROGS_DIR)/$(E2FSPROGS_BINARY)
-       $(MAKE1) PATH=$(TARGET_PATH) DESTDIR=$(TARGET_DIR) -C $(E2FSPROGS_DIR) install
-       rm -rf ${TARGET_DIR}/sbin/mkfs.ext[23] ${TARGET_DIR}/sbin/fsck.ext[23] \
-               ${TARGET_DIR}/sbin/findfs ${TARGET_DIR}/sbin/tune2fs
+       $(MAKE1) PATH=$(TARGET_PATH) DESTDIR=$(TARGET_DIR) LDCONFIG=true \
+               -C $(E2FSPROGS_DIR) install
+       rm -rf ${TARGET_DIR}/sbin/mkfs.ext[23] \
+               ${TARGET_DIR}/sbin/fsck.ext[23] \
+               ${TARGET_DIR}/sbin/findfs \
+               ${TARGET_DIR}/sbin/tune2fs
        ln -sf mke2fs ${TARGET_DIR}/sbin/mkfs.ext2
        ln -sf mke2fs ${TARGET_DIR}/sbin/mkfs.ext3
        ln -sf e2fsck ${TARGET_DIR}/sbin/fsck.ext2
        ln -sf e2fsck ${TARGET_DIR}/sbin/fsck.ext3
        ln -sf e2label ${TARGET_DIR}/sbin/tune2fs
        ln -sf e2label ${TARGET_DIR}/sbin/findfs
-       rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
-               $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/man
+endif
+       rm -rf $(TARGET_DIR)/share/locale
+       rm -rf $(TARGET_DIR)/usr/share/doc
        touch -c $@
 
 e2fsprogs: uclibc $(TARGET_DIR)/$(E2FSPROGS_TARGET_BINARY)
 ifeq ($(strip $(BR2_PACKAGE_E2FSPROGS)),y)
 TARGETS+=e2fsprogs
 endif
-
 
                --sysconfdir=/etc \
                --datadir=/usr/share \
                --localstatedir=/var \
-               --mandir=/usr/man \
-               --infodir=/usr/info \
+               --mandir=/usr/share/man \
+               --infodir=/usr/share/info \
                $(DISABLE_NLS) \
        )
        touch $@
 
 $(TARGET_DIR)/usr/bin/fakeroot: $(FAKEROOT_DIR2)/faked
        $(MAKE) DESTDIR=$(TARGET_DIR) -C $(FAKEROOT_DIR2) install
-       -mv $(TARGET_DIR)/usr/bin/$(ARCH)-linux-faked $(TARGET_DIR)/usr/bin/faked
-       -mv $(TARGET_DIR)/usr/bin/$(ARCH)-linux-fakeroot $(TARGET_DIR)/usr/bin/fakeroot
-       rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
-               $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
+       -mv $(TARGET_DIR)/usr/bin/$(ARCH)-linux-faked \
+               $(TARGET_DIR)/usr/bin/faked
+       -mv $(TARGET_DIR)/usr/bin/$(ARCH)-linux-fakeroot \
+               $(TARGET_DIR)/usr/bin/fakeroot
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/man
+endif
+       rm -rf $(TARGET_DIR)/share/locale
+       rm -rf $(TARGET_DIR)/usr/share/doc
        touch -c $@
 
 fakeroot: uclibc $(TARGET_DIR)/usr/bin/fakeroot
 
                $(FILE_SOURCE_DIR)/configure \
                --prefix=$(FILE_DIR1)/install \
        )
-       touch $(FILE_DIR1)/.configured
+       touch $@
 
 $(TOOL_BUILD_DIR)/bin/file: $(FILE_DIR1)/.configured
        $(MAKE) -C $(FILE_DIR1) install
        $(FILE_CAT) $(DL_DIR)/$(FILE_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
        toolchain/patch-kernel.sh $(FILE_SOURCE_DIR) package/file/ file\*.patch
        $(CONFIG_UPDATE) $(FILE_SOURCE_DIR)
-       touch $(FILE_SOURCE_DIR)/.unpacked
+       touch $@
 
 $(FILE_DIR2)/.configured: $(FILE_SOURCE_DIR)/.unpacked
        mkdir -p $(FILE_DIR2)
                --sysconfdir=/etc \
                --datadir=/usr/share/misc \
                --localstatedir=/var \
-               --mandir=/usr/man \
-               --infodir=/usr/info \
+               --mandir=/usr/share/man \
+               --infodir=/usr/share/info \
                $(DISABLE_NLS) \
                $(DISABLE_LARGEFILE) \
                --enable-static \
                --disable-fsect-man5 \
        )
-       touch $(FILE_DIR2)/.configured
+       touch $@
 
 $(FILE_DIR2)/$(FILE_BINARY): $(FILE_DIR2)/.configured $(TOOL_BUILD_DIR)/bin/file
        $(MAKE) $(TARGET_CONFIGURE_OPTS) LDFLAGS="-static" -C $(FILE_DIR2)
 $(TARGET_DIR)/$(FILE_TARGET_BINARY): $(FILE_DIR2)/$(FILE_BINARY)
        $(MAKE) $(TARGET_CONFIGURE_OPTS) DESTDIR=$(TARGET_DIR) -C $(FILE_DIR2) install
        -($(STRIP) $(TARGET_DIR)/usr/lib/libmagic.so.*.* > /dev/null 2>&1)
-       rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
-               $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/man
+endif
+       rm -rf $(TARGET_DIR)/share/locale
+       rm -rf $(TARGET_DIR)/usr/share/doc
        mv $(TARGET_DIR)/lib/libmagic.a $(STAGING_DIR)/lib
        rm -f $(TARGET_DIR)/lib/libmagic.la
        mv $(TARGET_DIR)/usr/include/magic.h $(STAGING_DIR)/usr/include
 
 $(FINDUTILS_DIR)/.unpacked: $(DL_DIR)/$(FINDUTILS_SOURCE)
        $(FINDUTILS_CAT) $(DL_DIR)/$(FINDUTILS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
        $(CONFIG_UPDATE) $(FINDUTILS_DIR)
-       touch $(FINDUTILS_DIR)/.unpacked
+       touch $@
 
 $(FINDUTILS_DIR)/.configured: $(FINDUTILS_DIR)/.unpacked
        (cd $(FINDUTILS_DIR); rm -rf config.cache; \
                --sysconfdir=/etc \
                --datadir=/usr/share \
                --localstatedir=/var/lib \
-               --mandir=/usr/man \
-               --infodir=/usr/info \
+               --mandir=/usr/share/man \
+               --infodir=/usr/share/info \
                $(DISABLE_NLS) \
                $(DISABLE_LARGEFILE) \
        )
-       touch $(FINDUTILS_DIR)/.configured
+       touch $@
 
 $(FINDUTILS_DIR)/$(FINDUTILS_BINARY): $(FINDUTILS_DIR)/.configured
        $(MAKE) CC=$(TARGET_CC) -C $(FINDUTILS_DIR)
 # This stuff is needed to work around GNU make deficiencies
 findutils-target_binary: $(FINDUTILS_DIR)/$(FINDUTILS_BINARY)
        @if [ -L $(TARGET_DIR)/$(FINDUTILS_TARGET_BINARY) ]; then \
-               rm -f $(TARGET_DIR)/$(FINDUTILS_TARGET_BINARY); fi
-       @if [ ! -f $(FINDUTILS_DIR)/$(FINDUTILS_BINARY) -o $(TARGET_DIR)/$(FINDUTILS_TARGET_BINARY) \
-       -ot $(FINDUTILS_DIR)/$(FINDUTILS_BINARY) ]; then \
-           set -x; \
-           $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(FINDUTILS_DIR) install; \
-           $(STRIP) $(TARGET_DIR)/usr/lib/locate/* > /dev/null 2>&1; \
-           rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
-               $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc; fi
+               rm -f $(TARGET_DIR)/$(FINDUTILS_TARGET_BINARY); \
+       fi
+       @if [ ! -f $(FINDUTILS_DIR)/$(FINDUTILS_BINARY) \
+               -o $(TARGET_DIR)/$(FINDUTILS_TARGET_BINARY) \
+               -ot $(FINDUTILS_DIR)/$(FINDUTILS_BINARY) ]; then \
+               set -x; \
+               $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(FINDUTILS_DIR) install; \
+               $(STRIP) $(TARGET_DIR)/usr/lib/locate/* > /dev/null 2>&1; \
+       fi
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/man
+endif
+       rm -rf $(TARGET_DIR)/share/locale
+       rm -rf $(TARGET_DIR)/usr/share/doc
 
 findutils: uclibc findutils-target_binary
 
 
                --sysconfdir=/etc \
                --datadir=/usr/share \
                --localstatedir=/var \
-               --mandir=/usr/man \
-               --infodir=/usr/info \
+               --mandir=/usr/share/man \
+               --infodir=/usr/share/info \
                --includedir=$(TARGET_DIR)/usr/include \
                $(DISABLE_NLS) \
                $(DISABLE_LARGEFILE) \
 ifeq ($(strip $(BR2_PACKAGE_FLEX_LIBFL)),y)
        install -D $(FLEX_DIR)/libfl.a $(STAGING_DIR)/lib/libfl.a
 endif
-       rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
-               $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/man
+endif
+       rm -rf $(TARGET_DIR)/share/locale
+       rm -rf $(TARGET_DIR)/usr/share/doc
        (cd $(TARGET_DIR)/usr/bin; ln -snf flex lex)
 
 flex: uclibc $(TARGET_DIR)/$(FLEX_TARGET_BINARY)
            sharedstatedir=$(TARGET_DIR)/usr/com \
            localstatedir=$(TARGET_DIR)/var \
            libdir=$(TARGET_DIR)/usr/lib \
-           infodir=$(TARGET_DIR)/usr/info \
-           mandir=$(TARGET_DIR)/usr/man \
+           infodir=$(TARGET_DIR)/usr/share/info \
+           mandir=$(TARGET_DIR)/usr/share/man \
            includedir=$(TARGET_DIR)/usr/include \
                -C $(FLEX_DIR) uninstall
        rm -f $(TARGET_DIR)/usr/bin/lex
 
        $(GAWK_CAT) $(DL_DIR)/$(GAWK_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
        toolchain/patch-kernel.sh $(GAWK_DIR) package/gawk gawk\*.patch
        $(CONFIG_UPDATE) $(GAWK_DIR)
-       touch $(GAWK_DIR)/.unpacked
+       touch $@
 
 $(GAWK_DIR)/.configured: $(GAWK_DIR)/.unpacked
        (cd $(GAWK_DIR); rm -rf config.cache; autoconf; \
                --sysconfdir=/etc \
                --datadir=/usr/share \
                --localstatedir=/var \
-               --mandir=/usr/man \
-               --infodir=/usr/info \
+               --mandir=/usr/share/man \
+               --infodir=/usr/share/info \
                $(DISABLE_NLS) \
                $(DISABLE_LARGEFILE) \
        )
-       touch $(GAWK_DIR)/.configured
+       touch $@
 
 $(GAWK_DIR)/$(GAWK_BINARY): $(GAWK_DIR)/.configured
        $(MAKE) CC=$(TARGET_CC) -C $(GAWK_DIR)
        rm -f $(TARGET_DIR)/usr/bin/gawk-*
        (cd $(TARGET_DIR)/usr/bin; ln -snf gawk awk)
        $(STRIP) $(TARGET_DIR)/usr/lib/awk/* > /dev/null 2>&1
-       rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
-               $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/man
+endif
+       rm -rf $(TARGET_DIR)/share/locale
+       rm -rf $(TARGET_DIR)/usr/share/doc
 
 gawk: uclibc $(TARGET_DIR)/$(GAWK_TARGET_BINARY)
 
 
        $(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" $(STAGING_DIR)/usr/lib/libgettextpo.la
        $(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" $(STAGING_DIR)/usr/lib/libgettextsrc.la
        $(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" $(STAGING_DIR)/usr/lib/libintl.la
-       rm -f $(STAGING_DIR)/usr/bin/autopoint $(STAGING_DIR)/usr/bin/envsubst \
-        $(STAGING_DIR)/usr/bin/gettext.sh $(STAGING_DIR)/usr/bin/gettextize \
-        $(STAGING_DIR)/usr/bin/msg* $(STAGING_DIR)/usr/bin/?gettext
+       rm -f $(addprefix $(STAGING_DIR)/usr/bin/, \
+               autopoint envsubst gettext.sh gettextize msg* ?gettext)
        touch -c $@
 
 gettext: uclibc pkgconfig $(STAGING_DIR)/$(GETTEXT_TARGET_BINARY)
 gettext-target: $(GETTEXT_DIR)/$(GETTEXT_BINARY)
        $(MAKE) DESTDIR=$(TARGET_DIR) -C $(GETTEXT_DIR) install
        chmod +x $(TARGET_DIR)/usr/lib/libintl.so* # identify as needing to be stripped
-       rm -rf $(TARGET_DIR)/usr/info \
-               $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc \
-               $(TARGET_DIR)/usr/doc $(TARGET_DIR)/usr/share/aclocal \
-               $(TARGET_DIR)/usr/include/libintl.h
-       -rmdir $(TARGET_DIR)/usr/include
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/man
+endif
+       rm -rf $(addprefix $(TARGET_DIR),/usr/share/doc \
+               /usr/doc /usr/share/aclocal /usr/include/libintl.h)
+       rmdir --ignore-fail-on-non-empty $(TARGET_DIR)/usr/include
 
 $(TARGET_DIR)/usr/lib/libintl.so: $(STAGING_DIR)/$(GETTEXT_TARGET_BINARY)
        cp -dpf $(STAGING_DIR)/usr/lib/libgettext*.so* \
                $(STAGING_DIR)/usr/lib/libintl*.so* $(TARGET_DIR)/usr/lib/
-       rm -f $(TARGET_DIR)/usr/lib/libgettext*.so*.la $(TARGET_DIR)/usr/lib/libintl*.so*.la
+       rm -f $(addprefix $(TARGET_DIR)/usr/lib/, \
+               libgettext*.so*.la libintl*.so*.la)
        touch -c $@
 
 $(TARGET_DIR)/usr/lib/libintl.a: $(STAGING_DIR)/$(GETTEXT_TARGET_BINARY)
 
                --sysconfdir=/etc \
                --datadir=/usr/share/misc \
                --localstatedir=/var \
-               --mandir=/usr/man \
-               --infodir=/usr/info \
+               --mandir=/usr/share/man \
+               --infodir=/usr/share/info \
                $(DISABLE_NLS) \
                $(DISABLE_LARGEFILE) \
        )
 
 $(GZIP_TARGET_BINARY): $(GZIP_BINARY)
        $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(GZIP_DIR) install
-       rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
-               $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/man
+endif
+       rm -rf $(TARGET_DIR)/share/locale
+       rm -rf $(TARGET_DIR)/usr/share/doc
        (cd $(TARGET_DIR)/bin; \
-       $(HOSTLN) -snf gzip gunzip; \
-       $(HOSTLN) -snf gzip zcat; \
-       $(HOSTLN) -snf zdiff zcmp; \
-       $(HOSTLN) -snf zgrep zegrep; \
-       $(HOSTLN) -snf zgrep zfgrep;)
+               $(HOSTLN) -snf gzip gunzip; \
+               $(HOSTLN) -snf gzip zcat; \
+               $(HOSTLN) -snf zdiff zcmp; \
+               $(HOSTLN) -snf zgrep zegrep; \
+               $(HOSTLN) -snf zgrep zfgrep; \
+       )
 
 gzip: uclibc $(GZIP_TARGET_BINARY)
 
 
 #############################################################
 #
 # hostap
-# 
-# Note! Host AP driver was added into the main kernel tree in Linux v2.6.14. 
-# The version in the kernel tree should be used instead of this external hostap-driver package. 
+#
+# Note! Host AP driver was added into the main kernel tree in Linux v2.6.14.
+# The version in the kernel tree should be used instead of this external
+# hostap-driver package.
 # The external releases are only for older kernel versions and all
 # the future development will be in the main kernel tree.
 #
 $(HOSTAP_DIR)/.unpacked: $(DL_DIR)/$(HOSTAP_SOURCE)
        $(ZCAT) $(DL_DIR)/$(HOSTAP_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
        mv -f $(BUILD_DIR)/hostap $(HOSTAP_DIR)
-       touch $(HOSTAP_DIR)/.unpacked
+       touch $@
 
 $(HOSTAP_DIR)/.configured: $(HOSTAP_DIR)/.unpacked
        #$(SED) "s,/.*#define PRISM2_DOWNLOAD_SUPPORT.*/,#define PRISM2_DOWNLOAD_SUPPORT,g" \
        # $(HOSTAP_DIR)/driver/modules/hostap_config.h
-       touch $(HOSTAP_DIR)/.configured
+       touch $@
 
 $(HOSTAP_DIR)/utils/hostap_crypt_conf: $(HOSTAP_DIR)/.configured
-       $(MAKE) -C $(HOSTAP_DIR)/utils CC=$(TARGET_CC) CFLAGS="-Os -Wall $(TARGET_CFLAGS) -I../driver/modules"
-       $(MAKE) -C $(HOSTAP_DIR)/hostapd CC=$(TARGET_CC) CFLAGS="-Os -Wall $(TARGET_CFLAGS) -I../driver/modules -I../utils"
+       $(MAKE) -C $(HOSTAP_DIR)/utils \
+               CC=$(TARGET_CC) \
+               CFLAGS="-Os -Wall $(TARGET_CFLAGS) -I../driver/modules"
+       $(MAKE) -C $(HOSTAP_DIR)/hostapd \
+               CC=$(TARGET_CC) \
+               CFLAGS="-Os -Wall $(TARGET_CFLAGS) -I../driver/modules -I../utils"
        touch -c $(HOSTAP_DIR)/driver/modules/hostap.o
 
 $(TARGET_DIR)//usr/bin/hostap_crypt_conf: $(HOSTAP_DIR)/utils/hostap_crypt_conf
        # Make the dir
-       -rm -rf $(HOSTAP_TARGET_MODULE_DIR)
+       rm -rf $(HOSTAP_TARGET_MODULE_DIR)
        mkdir -p $(HOSTAP_TARGET_MODULE_DIR)
        # Copy the pcmcia-cs conf file
        mkdir -p $(TARGET_DIR)/etc/pcmcia
 
          $(TARGET_DIR)/$(IPSEC_TOOLS_TARGET_BINARY_SETKEY) \
          $(TARGET_DIR)/$(IPSEC_TOOLS_TARGET_BINARY_RACOON) \
          $(TARGET_DIR)/$(IPSEC_TOOLS_TARGET_BINARY_RACOONCTL)
-       -rm -f $(TARGET_DIR)/usr/man/man3/ipsec_strerror.3 \
-         $(TARGET_DIR)/usr/man/man3/ipsec_set_policy.3 \
-         $(TARGET_DIR)/usr/man/man5/racoon.conf.5 \
-         $(TARGET_DIR)/usr/man/man8/racoonctl.8 \
-         $(TARGET_DIR)/usr/man/man8/racoon.8 \
-         $(TARGET_DIR)/usr/man/man8/plainrsa-gen.8 \
-         $(TARGET_DIR)/usr/man/man8/setkey.8
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -f $(addprefix $(TARGET_DIR)/usr/man/,
+               man3/ipsec_strerror.3 man3/ipsec_set_policy.3 \
+               man5/racoon.conf.5 \
+               man8/racoonctl.8 man8/racoon.8 \
+               man8/plainrsa-gen.8 man8/setkey.8)
+endif
 ifeq ($(strip $(BR2_PACKAGE_IPSEC_TOOLS_LIBS)), y)
-       install -D $(IPSEC_TOOLS_DIR)/src/libipsec/.libs/libipsec.a \
-         $(IPSEC_TOOLS_DIR)/src/libipsec/.libs/libipsec.la \
-         $(IPSEC_TOOLS_DIR)/src/racoon/.libs/libracoon.a \
-         $(IPSEC_TOOLS_DIR)/src/racoon/.libs/libracoon.la \
-         $(STAGING_DIR)/lib
+       install -D $(addprefix $(IPSEC_TOOLS_DIR)/src/,
+               libipsec/.libs/libipsec.a libipsec/.libs/libipsec.la \
+               racoon/.libs/libracoon.a racoon/.libs/libracoon.la) \
+               $(STAGING_DIR)/lib
 endif
 ifneq ($(strip $(BR2_PACKAGE_IPSEC_TOOLS_ADMINPORT)), y)
-       -rm -f $(TARGET_DIR)/$(IPSEC_TOOLS_TARGET_BINARY_RACOONCTL)
+       rm -f $(TARGET_DIR)/$(IPSEC_TOOLS_TARGET_BINARY_RACOONCTL)
 endif
 
 IPSEC_TOOLS_PROGS= $(TARGET_DIR)/$(IPSEC_TOOLS_TARGET_BINARY_SETKEY) \
 ipsec-tools-clean:
        $(MAKE) -C $(IPSEC_TOOLS_DIR) DESTDIR=$(TARGET_DIR) uninstall
        $(MAKE) -C $(IPSEC_TOOLS_DIR) clean
-ifeq ($(strip $(BR2_PACKAGE_IPSEC_TOOLS_LIBS)), y)
-       -rm -f $(STAGING_DIR)/lib/libipsec.a
-       -rm -f $(STAGING_DIR)/lib/libipsec.la
-       -rm -f $(STAGING_DIR)/lib/libracoon.a
-       -rm -f $(STAGING_DIR)/lib/libracoon.la
+ifeq ($(strip $(BR2_PACKAGE_IPSEC_TOOLS_LIBS)),y)
+       rm -f $(addprefix $(STAGING_DIR)/lib/, \
+               libipsec.a libipsec.la libracoon.a libracoon.la)
 endif
-       -rm $(IPSEC_TOOLS_DIR)/.configured
+       rm -f $(IPSEC_TOOLS_DIR)/.configured
 
 ipsec-tools-dirclean:
        @echo $(LINUX_DIR)
-       -rm -rf $(IPSEC_TOOLS_DIR)
+       rm -rf $(IPSEC_TOOLS_DIR)
 
 ifeq ($(strip $(BR2_PACKAGE_IPSEC_TOOLS)), y)
 TARGETS+=ipsec-tools
 
 
 $(IPTABLES_BUILD_DIR)/iptables: $(IPTABLES_BUILD_DIR)/.configured
        $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(IPTABLES_BUILD_DIR) \
-               KERNEL_DIR=$(LINUX_HEADERS_DIR) PREFIX=/usr \
-               COPT_FLAGS="$(TARGET_CFLAGS)"
+               KERNEL_DIR=$(LINUX_HEADERS_DIR) \
+               COPT_FLAGS="$(TARGET_CFLAGS)" \
+               PREFIX=/usr \
+               INCDIR="\$$(PREFIX)/include" \
+               MANDIR="\$$(PREFIX)/share/man"
 
 $(TARGET_DIR)/usr/sbin/iptables: $(IPTABLES_BUILD_DIR)/iptables
        $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(IPTABLES_BUILD_DIR) \
-               KERNEL_DIR=$(LINUX_HEADERS_DIR) PREFIX=/usr \
+               KERNEL_DIR=$(LINUX_HEADERS_DIR) \
                COPT_FLAGS="$(TARGET_CFLAGS)" \
+               PREFIX=/usr \
+               INCDIR="\$$(PREFIX)/include" \
+               MANDIR="\$$(PREFIX)/share/man" \
                DESTDIR=$(TARGET_DIR) install
        $(STRIP) $(TARGET_DIR)/usr/sbin/iptables*
        $(STRIP) $(TARGET_DIR)/usr/lib/iptables/*.so
-       rm -rf $(TARGET_DIR)/usr/man
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/man
+endif
 
 iptables: $(TARGET_DIR)/usr/sbin/iptables
 
 
 
 $(LESS_DIR)/.source: $(DL_DIR)/$(LESS_SOURCE)
        $(ZCAT) $(DL_DIR)/$(LESS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-       touch $(LESS_DIR)/.source
+       touch $@
 
 $(LESS_DIR)/.configured: $(LESS_DIR)/.source
        (cd $(LESS_DIR); \
                --prefix=/usr \
                --sysconfdir=/etc \
        )
-       touch $(LESS_DIR)/.configured
+       touch $@
 
 $(LESS_DIR)/$(LESS_BINARY): $(LESS_DIR)/.configured
        $(MAKE) CC=$(TARGET_CC) -C $(LESS_DIR)
 
 $(TARGET_DIR)/$(LESS_TARGET_BINARY): $(LESS_DIR)/$(LESS_BINARY)
        $(MAKE) prefix=$(TARGET_DIR)/usr -C $(LESS_DIR) install
+ifneq ($(BR2_HAVE_MANPAGES),y)
        rm -Rf $(TARGET_DIR)/usr/man
+endif
 
 less: uclibc ncurses $(TARGET_DIR)/$(LESS_TARGET_BINARY)
 
 
 #              > $(PROJECT_BUILD_DIR)/patches/$(LIBDAEMON_NAME).patch
 #      toolchain/patch-kernel.sh $(LIBDAEMON_DIR) $(PROJECT_BUILD_DIR)/patches/ $(LIBDAEMON_NAME)\*.patch
 #      $(CONFIG_UPDATE) $(LIBDAEMON_DIR)
-       touch $(LIBDAEMON_DIR)/.unpacked
+       touch $@
 
 $(LIBDAEMON_DIR)/.configured: $(LIBDAEMON_DIR)/.unpacked
        (cd $(LIBDAEMON_DIR) && rm -rf config.cache && autoconf)
-       ( cd $(LIBDAEMON_DIR) && \
+       (cd $(LIBDAEMON_DIR) && \
                $(TARGET_CONFIGURE_OPTS) \
                $(TARGET_CONFIGURE_ARGS) \
                ./configure \
                --sysconfdir=/etc \
                --datadir=/usr/share \
                --localstatedir=/var \
-               --includedir=/include \
-               --mandir=/usr/man \
-               --infodir=/usr/info \
+               --includedir=/usr/include \
+               --mandir=/usr/share/man \
+               --infodir=/usr/share/info \
                $(DISABLE_NLS) \
                $(DISABLE_LARGEFILE) \
                --disable-lynx \
                --disable-shared \
        )
-       touch $(LIBDAEMON_DIR)/.configured
+       touch $@
 
 $(LIBDAEMON_DIR)/.compiled: $(LIBDAEMON_DIR)/.configured
        $(MAKE) LIBTOOL=$(LIBDAEMON_DIR)/libtool -C $(LIBDAEMON_DIR)
-       touch $(LIBDAEMON_DIR)/.compiled
+       touch $@
 
 $(STAGING_DIR)/lib/libdaemon.a: $(LIBDAEMON_DIR)/.compiled
        $(MAKE) DESTDIR=$(STAGING_DIR) -C $(LIBDAEMON_DIR) install
-       touch -c $(STAGING_DIR)/lib/libdaemon.a
+       touch -c $@
 
 #$(TARGET_DIR)/usr/lib/libdaemon.a: $(STAGING_DIR)/lib/libdaemon.a
 # -$(STRIP) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libdaemon.a
 
        default n
        help
          Library for the Vorbis open source audio decoder
-         Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, 
+         Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free,
          general-purpose compressed audio format for mid to high quality
-         (8kHz-48.0kHz, 16+ bit, polyphonic) audio and music at fixed and 
+         (8kHz-48.0kHz, 16+ bit, polyphonic) audio and music at fixed and
          variable bitrates from 16 to 128 kbps/channel.
 
          This places Vorbis in the same competitive class as audio representations
 
 
 
 $(DL_DIR)/$(TREMOR_SOURCE):
-       (cd $(BUILD_DIR) ; \
-       svn co $(TREMOR_TRUNK) ; \
-       mv -af Tremor $(TREMOR_NAME) ; \ 
-       tar -cvf $(TREMOR_NAME).tar $(TREMOR_DIR); \
-       bzip2 $(TREMOR_NAME).tar ; \
-       rm -fr $(TREMOR_DIR) ; \
-       mv $(TREMOR_NAME).tar.bz2 $(DL_DIR)/$(TREMOR_SOURCE) ; \
+       (cd $(BUILD_DIR); \
+               svn co $(TREMOR_TRUNK); \
+               mv -af Tremor $(TREMOR_NAME); \
+               tar -cvf $(TREMOR_NAME).tar $(TREMOR_DIR); \
+               bzip2 $(TREMOR_NAME).tar; \
+               rm -fr $(TREMOR_DIR); \
+               mv $(TREMOR_NAME).tar.bz2 $(DL_DIR)/$(TREMOR_SOURCE); \
        )
 
 $(TREMOR_DIR)/.source: $(DL_DIR)/$(TREMOR_SOURCE)
        touch $@
 
 $(TREMOR_DIR)/.configured: $(TREMOR_DIR)/.source
-       (cd $(TREMOR_DIR); rm -rf config.cache ; \
+       (cd $(TREMOR_DIR); rm -rf config.cache; \
                $(TARGET_CONFIGURE_ARGS) \
                $(TARGET_CONFIGURE_OPTS) \
                CFLAGS="$(TARGET_CFLAGS)" \
-               PKG_CONFIG_PATH="$(STAGING_DIR)/lib/pkconfig:$(STAGING_DIR)/usr/lib/pkgconfig" PKG_CONFIG="$(STAGING_DIR)/usr/bin/pkg-config" PKG_CONFIG_SYSROOT=$(STAGING_DIR) \
+               PKG_CONFIG_PATH="$(STAGING_DIR)/lib/pkconfig:$(STAGING_DIR)/usr/lib/pkgconfig" \
+               PKG_CONFIG="$(STAGING_DIR)/usr/bin/pkg-config" \
+               PKG_CONFIG_SYSROOT=$(STAGING_DIR) \
                ./configure \
                --target=$(GNU_TARGET_NAME) \
                --host=$(GNU_TARGET_NAME) \
                --enable-static \
                --disable-oggtest \
                $(DISABLE_NLS) \
-       );
+       )
        touch $@
 
 $(TREMOR_DIR)/.libs: $(TREMOR_DIR)/.configured
 
 tremor-header: $(TARGET_DIR)/usr/lib/tremor.a
        mkdir -p $(TARGET_DIR)/usr/include/vorbis
-       cp -dpf $(TREMOR_DIR)/include/vorbis/*.h $(TARGET_DIR)/usr/include/vorbis
+       cp -dpf $(TREMOR_DIR)/include/vorbis/*.h \
+               $(TARGET_DIR)/usr/include/vorbis
 
 tremor: uclibc pkgconfig $(TARGET_DIR)/usr/lib/tremor.so
 
 ifeq ($(strip $(BR2_PACKAGE_LIBVORBIS_HEADERS)),y)
  TARGETS+=libvorbis-header
 endif
-
 
            sysconfdir=$(TARGET_DIR)/etc \
            localstatedir=$(TARGET_DIR)/var \
            libdir=$(TARGET_DIR)/usr/lib \
-           infodir=$(TARGET_DIR)/usr/info \
-           mandir=$(TARGET_DIR)/usr/man \
+           infodir=$(TARGET_DIR)/usr/share/info \
+           mandir=$(TARGET_DIR)/usr/share/man \
            includedir=$(TARGET_DIR)/usr/include \
            -C $(M4_DIR) install
        $(STRIP) $(TARGET_DIR)/$(M4_TARGET_BINARY) > /dev/null 2>&1
-       rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
-               $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/info
+endif
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/share/man
+endif
+       rm -rf $(TARGET_DIR)/share/locale
+       rm -rf $(TARGET_DIR)/usr/share/doc
        touch -c $@
 
 m4: uclibc $(TARGET_DIR)/$(M4_TARGET_BINARY)
 
        $(MAKE) DESTDIR=$(TARGET_DIR) STRIP_OPT="" -C $(OPENNTPD_DIR) install
        -$(STRIP) $(TARGET_DIR)/$(OPENNTPD_TARGET_BINARY)
        cp -af $(OPENNTPD_DIR)/ntpd.conf $(TARGET_DIR)/etc/ntpd.conf
-       # Why on earth do we wipe the whole man directory here?
-       #rm -Rf $(TARGET_DIR)/usr/man
+ifneq ($(BR2_HAVE_MANPAGES),y)
+       rm -Rf $(TARGET_DIR)/usr/share/man
+endif
 
 ntpd: uclibc $(TARGET_DIR)/$(OPENNTPD_TARGET_BINARY)
 
 
        rm -rf $(TARGET_DIR)/usr/include/quagga
 endif
 ifneq ($(BR2_HAVE_MANPAGES),y)
-       rm -rf $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/info
+       rm -rf $(TARGET_DIR)/usr/man
+endif
+ifneq ($(BR2_HAVE_INFOPAGES),y)
+       rm -rf $(TARGET_DIR)/usr/info
 endif
 
 quagga: uclibc $(TARGET_DIR)/usr/sbin/$(QUAGGA_TARGET_BINARY)
 
        PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR1) all-gcc
        touch $@
 
-gcc_initial = $(GCC_BUILD_DIR1)/.installed
+gcc_initial=$(GCC_BUILD_DIR1)/.installed
 $(gcc_initial) $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc: $(GCC_BUILD_DIR1)/.compiled
        PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR1) install-gcc
        #rm -f $(STAGING_DIR)/bin/gccbug $(STAGING_DIR)/bin/gcov
 
        $(MAKE) -C $(GCC_BUILD_DIR1) all-gcc
        touch $@
 
-gcc_initial = $(GCC_BUILD_DIR1)/.installed
+gcc_initial=$(GCC_BUILD_DIR1)/.installed
 $(gcc_initial) $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gcc: $(GCC_BUILD_DIR1)/.compiled
        PATH=$(TARGET_PATH) $(MAKE) -C $(GCC_BUILD_DIR1) install-gcc
        #rm -f $(STAGING_DIR)/usr/bin/gccbug $(STAGING_DIR)/usr/bin/gcov