egor duda writes:
authorEric Andersen <andersen@codepoet.org>
Fri, 8 Oct 2004 07:46:08 +0000 (07:46 -0000)
committerEric Andersen <andersen@codepoet.org>
Fri, 8 Oct 2004 07:46:08 +0000 (07:46 -0000)
Hi!

I've created a patch to busybox' build system to allow building it in
separate tree in a manner similar to kbuild from kernel version 2.6.

That is, one runs command like
'make O=/build/some/where/for/specific/target/and/options'
and everything is built in this exact directory, provided that it exists.

I understand that applyingc such invasive changes during 'release
candidates' stage of development is at best unwise. So, i'm currently
asking for comments about this patch, starting from whether such thing
is needed at all to whether it coded properly.

'make check' should work now, and one make creates Makefile in build
directory, so one can run 'make' in build directory after that.

One possible caveat is that if we build in some directory other than
source one, the source directory should be 'distclean'ed first.

egor

66 files changed:
Makefile
Rules.mak
applets/Makefile
applets/Makefile.in
archival/Makefile
archival/Makefile.in
archival/libunarchive/Makefile
archival/libunarchive/Makefile.in
console-tools/Makefile
console-tools/Makefile.in
coreutils/Makefile
coreutils/Makefile.in
coreutils/libcoreutils/Makefile
coreutils/libcoreutils/Makefile.in
debianutils/Makefile
debianutils/Makefile.in
editors/Makefile
editors/Makefile.in
findutils/Makefile
findutils/Makefile.in
init/Makefile
init/Makefile.in
libbb/Makefile
libbb/Makefile.in
libpwdgrp/Makefile
libpwdgrp/Makefile.in
loginutils/Makefile
loginutils/Makefile.in
miscutils/Makefile
miscutils/Makefile.in
modutils/Makefile
modutils/Makefile.in
networking/Makefile
networking/Makefile.in
networking/libiproute/Makefile
networking/libiproute/Makefile.in
networking/udhcp/Makefile
networking/udhcp/Makefile.in
procps/Makefile
procps/Makefile.in
scripts/config/Makefile
shell/Makefile
shell/Makefile.in
sysklogd/Makefile
sysklogd/Makefile.in
testsuite/du/du-h-works
testsuite/du/du-k-works
testsuite/du/du-l-works
testsuite/du/du-m-works
testsuite/du/du-s-works
testsuite/du/du-works
testsuite/head/head-n-works
testsuite/head/head-works
testsuite/ls/ls-1-works
testsuite/ls/ls-h-works
testsuite/ls/ls-l-works
testsuite/ls/ls-s-works
testsuite/runtest
testsuite/sort/sort-n-works
testsuite/sort/sort-r-works
testsuite/sort/sort-works
testsuite/tail/tail-n-works
testsuite/tail/tail-works
testsuite/xargs/xargs-works
util-linux/Makefile
util-linux/Makefile.in

index 29897ef4e11cb793c441de18fd37ed56286232c9..3e2b3ef185f71c96eb4bfd7591599be2741a0f8b 100644 (file)
--- a/Makefile
+++ b/Makefile
 #--------------------------------------------------------------
 noconfig_targets := menuconfig config oldconfig randconfig \
        defconfig allyesconfig allnoconfig clean distclean \
-       release tags
-TOPDIR=./
-include Rules.mak
+       release tags  
+
+ifndef TOPDIR
+TOPDIR=$(CURDIR)/
+endif
+ifndef top_srcdir
+top_srcdir=$(CURDIR)
+endif
+ifndef top_builddir
+top_builddir=$(CURDIR)
+endif
+
+srctree=$(top_srcdir)
+vpath %/Config.in $(srctree)
+
+include $(top_builddir)/Rules.mak
 
 DIRS:=applets archival archival/libunarchive coreutils console-tools \
        debianutils editors findutils init miscutils modutils networking \
        networking/libiproute networking/udhcp procps loginutils shell \
        sysklogd util-linux libpwdgrp coreutils/libcoreutils libbb
 
+SRC_DIRS:=$(patsubst %,$(top_srcdir)/%,$(DIRS))
+
 ifeq ($(strip $(CONFIG_SELINUX)),y)
 CFLAGS += -I/usr/include/selinux
 LIBRARIES += -lsecure
 endif
 
-CONFIG_CONFIG_IN = sysdeps/$(TARGET_OS)/Config.in
-CONFIG_DEFCONFIG = sysdeps/$(TARGET_OS)/defconfig
+CONFIG_CONFIG_IN = $(top_srcdir)/sysdeps/$(TARGET_OS)/Config.in
+CONFIG_DEFCONFIG = $(top_srcdir)/sysdeps/$(TARGET_OS)/defconfig
+
+ALL_DIRS:= $(DIRS) scripts/config
+ALL_MAKEFILES:=$(patsubst %,%/Makefile,$(ALL_DIRS))
+
+ifeq ($(KBUILD_SRC),)
+
+ifdef O
+  ifeq ("$(origin O)", "command line")
+    KBUILD_OUTPUT := $(O)
+  endif
+endif
+
+# That's our default target when none is given on the command line
+.PHONY: _all
+_all:
+
+ifneq ($(KBUILD_OUTPUT),)
+# Invoke a second make in the output directory, passing relevant variables
+# check that the output directory actually exists
+saved-output := $(KBUILD_OUTPUT)
+KBUILD_OUTPUT := $(shell cd $(KBUILD_OUTPUT) && /bin/pwd)
+$(if $(wildcard $(KBUILD_OUTPUT)),, \
+     $(error output directory "$(saved-output)" does not exist))
+
+.PHONY: $(MAKECMDGOALS)
+
+$(filter-out _all,$(MAKECMDGOALS)) _all: $(KBUILD_OUTPUT)/Rules.mak $(KBUILD_OUTPUT)/Makefile
+       $(MAKE) -C $(KBUILD_OUTPUT) \
+       top_srcdir=$(CURDIR) \
+       top_builddir=$(KBUILD_OUTPUT) \
+       TOPDIR=$(KBUILD_OUTPUT) \
+       KBUILD_SRC=$(CURDIR) \
+       -f $(CURDIR)/Makefile $@
+
+$(KBUILD_OUTPUT)/Rules.mak:
+       @echo > $@
+       @echo top_srcdir=$(CURDIR) >> $@
+       @echo top_builddir=$(KBUILD_OUTPUT) >> $@
+       @echo include $(top_srcdir)/Rules.mak >> $@
+
+$(KBUILD_OUTPUT)/Makefile:
+       @echo > $@
+       @echo top_srcdir=$(CURDIR) >> $@
+       @echo top_builddir=$(KBUILD_OUTPUT) >> $@
+       @echo KBUILD_SRC='$$(top_srcdir)' >> $@
+       @echo include '$$(KBUILD_SRC)'/Makefile >> $@
+
+# Leave processing to above invocation of make
+skip-makefile := 1
+endif # ifneq ($(KBUILD_OUTPUT),)
+endif # ifeq ($(KBUILD_SRC),)
+
+ifeq ($(skip-makefile),)
+
+_all: all
 
 ifeq ($(strip $(HAVE_DOT_CONFIG)),y)
 
 all: busybox busybox.links doc
 
+all_tree:      $(ALL_MAKEFILES)
+
+$(ALL_MAKEFILES): %/Makefile: $(top_srcdir)/%/Makefile
+       d=`dirname $@`; [ -d "$$d" ] || mkdir -p "$$d"; cp $< $@
+
 # In this section, we need .config
--include .config.cmd
-include $(patsubst %,%/Makefile.in, $(DIRS))
--include $(TOPDIR).depend
+-include $(top_builddir)/.config.cmd
+include $(patsubst %,%/Makefile.in, $(SRC_DIRS))
+-include $(top_builddir)/.depend
 
-busybox: .depend include/config.h $(libraries-y)
+busybox: $(ALL_MAKEFILES) .depend include/config.h $(libraries-y)
        $(CC) $(LDFLAGS) -o $@ -Wl,--start-group $(libraries-y) $(LIBRARIES) -Wl,--end-group
        $(STRIPCMD) $@
 
-busybox.links: applets/busybox.mkll include/config.h
+busybox.links: $(top_srcdir)/applets/busybox.mkll include/config.h $(top_srcdir)/include/applets.h
        - $(SHELL) $^ >$@
 
 install: applets/install.sh busybox busybox.links
@@ -75,14 +150,18 @@ uninstall: busybox.links
 install-hardlinks: applets/install.sh busybox busybox.links
        $(SHELL) $< $(PREFIX) --hardlinks
 
+check: busybox
+       bindir=$(top_builddir) srcdir=$(top_srcdir)/testsuite \
+       $(top_srcdir)/testsuite/runtest
 
 # Documentation Targets
 doc: docs/busybox.pod docs/BusyBox.txt docs/BusyBox.1 docs/BusyBox.html
 
-docs/busybox.pod : docs/busybox_header.pod include/usage.h docs/busybox_footer.pod
-       - ( cat docs/busybox_header.pod; \
-           docs/autodocifier.pl include/usage.h; \
-           cat docs/busybox_footer.pod ) > docs/busybox.pod
+docs/busybox.pod : $(top_srcdir)/docs/busybox_header.pod $(top_srcdir)/include/usage.h $(top_srcdir)/docs/busybox_footer.pod
+       -mkdir -p docs
+       - ( cat $(top_srcdir)/docs/busybox_header.pod; \
+           $(top_srcdir)/docs/autodocifier.pl $(top_srcdir)/include/usage.h; \
+           cat $(top_srcdir)/docs/busybox_footer.pod ) > docs/busybox.pod
 
 docs/BusyBox.txt: docs/busybox.pod
        @echo
@@ -99,7 +178,7 @@ docs/BusyBox.1: docs/busybox.pod
 docs/BusyBox.html: docs/busybox.net/BusyBox.html
        - mkdir -p docs
        -@ rm -f docs/BusyBox.html
-       -@ ln -s busybox.net/BusyBox.html docs/BusyBox.html
+       -@ cp docs/busybox.net/BusyBox.html docs/BusyBox.html
 
 docs/busybox.net/BusyBox.html: docs/busybox.pod
        -@ mkdir -p docs/busybox.net
@@ -108,20 +187,19 @@ docs/busybox.net/BusyBox.html: docs/busybox.pod
        -@ rm -f pod2htm*
 
 # The nifty new buildsystem stuff
-scripts/mkdep: scripts/mkdep.c
-       $(HOSTCC) $(HOSTCFLAGS) -o scripts/mkdep scripts/mkdep.c
+scripts/mkdep: $(top_srcdir)/scripts/mkdep.c
+       $(HOSTCC) $(HOSTCFLAGS) -o $@ $<
 
-scripts/split-include: scripts/split-include.c
-       $(HOSTCC) $(HOSTCFLAGS) -o scripts/split-include scripts/split-include.c
+scripts/split-include: $(top_srcdir)/scripts/split-include.c
+       $(HOSTCC) $(HOSTCFLAGS) -o $@ $<
 
 .depend: scripts/mkdep
        rm -f .depend .hdepend;
        mkdir -p include/config;
-       $(HOSTCC) $(HOSTCFLAGS) -o scripts/mkdep scripts/mkdep.c
        scripts/mkdep -I include -- \
-               `find -name \*.c -print | sed -e "s,^./,,"` >> .depend;
+         `find $(top_srcdir) -name \*.c -print | sed -e "s,^./,,"` >> .depend;
        scripts/mkdep -I include -- \
-               `find -name \*.h -print | sed -e "s,^./,,"` >> .hdepend;
+         `find $(top_srcdir) -name \*.h -print | sed -e "s,^./,,"` >> .hdepend;
 
 depend dep: include/config.h .depend
 
@@ -130,13 +208,10 @@ include/config/MARKER: depend scripts/split-include
        @ touch include/config/MARKER
 
 include/config.h: .config
-       @if [ ! -x ./scripts/config/conf ] ; then \
+       @if [ ! -x $(top_builddir)/scripts/config/conf ] ; then \
            $(MAKE) -C scripts/config conf; \
        fi;
-       @./scripts/config/conf -o $(CONFIG_CONFIG_IN)
-
-%.o: %.c
-       $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+       @$(top_builddir)/scripts/config/conf -o $(CONFIG_CONFIG_IN)
 
 finished2:
        @echo
@@ -150,12 +225,16 @@ all: menuconfig
 # configuration
 # ---------------------------------------------------------------------------
 
-scripts/config/conf:
+$(ALL_MAKEFILES): %/Makefile: $(top_srcdir)/%/Makefile
+       d=`dirname $@`; [ -d "$$d" ] || mkdir -p "$$d"; cp $< $@
+
+scripts/config/conf: scripts/config/Makefile Rules.mak
        $(MAKE) -C scripts/config conf
        -@if [ ! -f .config ] ; then \
                cp $(CONFIG_DEFCONFIG) .config; \
        fi
-scripts/config/mconf:
+
+scripts/config/mconf: scripts/config/Makefile Rules.mak
        $(MAKE) -C scripts/config ncurses conf mconf
        -@if [ ! -f .config ] ; then \
                cp $(CONFIG_DEFCONFIG) .config; \
@@ -187,9 +266,6 @@ allnoconfig: scripts/config/conf
 defconfig: scripts/config/conf
        @./scripts/config/conf -d $(CONFIG_CONFIG_IN)
 
-check: busybox
-       cd testsuite && ./runtest
-
 clean:
        - rm -f docs/busybox.dvi docs/busybox.ps \
            docs/busybox.pod docs/busybox.net/busybox.html \
@@ -232,7 +308,8 @@ tags:
 
 endif # ifeq ($(strip $(HAVE_DOT_CONFIG)),y)
 
-.PHONY: dummy subdirs release distclean clean config oldconfig \
-       menuconfig tags check test depend
+endif # ifeq ($(skip-makefile),)
 
+.PHONY: dummy subdirs release distclean clean config oldconfig \
+       menuconfig tags check test depend buildtree
 
index 43cf242262b949419d05398b5382ab3f3448cc15..63b80f3a5d0243ec20976c6afcb9d1941b42e238 100644 (file)
--- a/Rules.mak
+++ b/Rules.mak
@@ -42,7 +42,7 @@ LD             = $(CROSS)ld
 NM             = $(CROSS)nm
 STRIP          = $(CROSS)strip
 CPP            = $(CC) -E
-MAKEFILES      = $(TOPDIR).config
+# MAKEFILES      = $(top_builddir)/.config
 
 # What OS are you compiling busybox for?  This allows you to include
 # OS specific things, syscall overrides, etc.
@@ -80,7 +80,7 @@ BB_SRC_DIR=
 #GCCINCDIR:=$(shell gcc -print-search-dirs | sed -ne "s/install: \(.*\)/\1include/gp")
 
 WARNINGS=-Wall -Wstrict-prototypes -Wshadow
-CFLAGS=-I$(TOPDIR)include
+CFLAGS=-I$(top_builddir)/include -I$(top_srcdir)/include -I$(srcdir)
 ARFLAGS=-r
 
 #--------------------------------------------------------
@@ -102,7 +102,7 @@ endif
 
 # Pull in the user's busybox configuration
 ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
--include $(TOPDIR).config
+-include $(top_builddir)/.config
 endif
 
 # A nifty macro to make testing gcc features easier
@@ -189,12 +189,8 @@ endif
 # have a chance of winning.
 CFLAGS += $(CFLAGS_EXTRA)
 
-%.o: %.c
-       $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
-
 .PHONY: dummy
 
 
-
 .EXPORT_ALL_VARIABLES:
 
index 5f9167442c2d1bb4cbf3106d08b4374542892380..b566e4d126b4c072bb391198a6e33fbc939697f0 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
 
-TOPDIR:= ../
+top_srcdir=..
+top_builddir=..
+srcdir=$(top_srcdir)/applets
 APPLETS_DIR:=./
-include $(TOPDIR).config
-include $(TOPDIR)Rules.mak
-include Makefile.in
+include $(top_builddir)/Rules.mak
+include $(top_builddir)/.config
+include $(srcdir)/Makefile.in
 all: $(libraries-y)
--include $(TOPDIR).depend
+-include $(top_builddir).depend
 
 clean:
        rm -f *.o *.a $(AR_TARGET)
index afd5cbeb9dc9901be5495035bbb14e2e68ed7e83..e31bb6fd915db2659a6c4997691c7542a83b57b6 100644 (file)
 
 APPLETS_AR:=applets.a
 ifndef $(APPLETS_DIR)
-APPLETS_DIR:=$(TOPDIR)applets/
+APPLETS_DIR:=$(top_builddir)/applets/
 endif
+srcdir=$(top_srcdir)/applets
 
 APPLET_SRC:=applets.c busybox.c
 APPLET_OBJ:= $(patsubst %.c,$(APPLETS_DIR)%.o, $(APPLET_SRC))
 
-
-
 libraries-y+=$(APPLETS_DIR)$(APPLETS_AR)
 
-$(APPLET_OBJ): $(TOPDIR).config
-
 $(APPLETS_DIR)$(APPLETS_AR): $(APPLET_OBJ)
        $(AR) -ro $@ $(APPLET_OBJ)
 
+$(APPLET_OBJ): $(top_builddir)/.config
+$(APPLET_OBJ): $(APPLETS_DIR)%.o: $(srcdir)/%.c
+       $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+
index 1cbe7ee00af6209497577c51f0aabe6bc86ceb03..a96daa4df979f1d9fa67a2f5689a6d53c815f4f5 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
 
-TOPDIR:= ../
+top_srcdir=..
+top_builddir=..
 ARCHIVAL_DIR:=./
-include $(TOPDIR).config
-include $(TOPDIR)Rules.mak
-include Makefile.in
+srcdir=$(top_srcdir)/archival
+include $(top_builddir)/Rules.mak
+include $(top_builddir)/.config
+include $(srcdir)/Makefile.in
 all: $(libraries-y)
--include $(TOPDIR).depend
+-include $(top_builddir)/.depend
 
 clean:
        rm -f *.o *.a $(AR_TARGET)
index 1673662f9e56cd44c95ba96f9cb3432da08f1abb..76ab6cd082364bbb07b22c6d4fc81ba87945bce6 100644 (file)
@@ -19,8 +19,9 @@
 
 ARCHIVAL_AR:=archival.a
 ifndef $(ARCHIVAL_DIR)
-ARCHIVAL_DIR:=$(TOPDIR)archival/
+ARCHIVAL_DIR:=$(top_builddir)/archival/
 endif
+srcdir=$(top_srcdir)/archival
 
 ARCHIVAL-y:=
 ARCHIVAL-$(CONFIG_APT_GET)     +=
@@ -42,3 +43,6 @@ libraries-y+=$(ARCHIVAL_DIR)$(ARCHIVAL_AR)
 $(ARCHIVAL_DIR)$(ARCHIVAL_AR): $(patsubst %,$(ARCHIVAL_DIR)%, $(ARCHIVAL-y))
        $(AR) -ro $@ $(patsubst %,$(ARCHIVAL_DIR)%, $(ARCHIVAL-y))
 
+$(ARCHIVAL_DIR)%.o: $(srcdir)/%.c
+       $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+
index 9a20ea28b348cc5ad2a7144f2ccd3d822ac312e3..e985fa49f73c4a05c6faf74c82fc84953873c7c0 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
 
-TOPDIR:= ../../
+top_srcdir=../..
+top_builddir=../..
+srcdir=$(top_srcdir)/archival/libunarchive
 LIBUNARCHIVE_DIR:=./
-include $(TOPDIR).config
-include $(TOPDIR)Rules.mak
-include Makefile.in
+include $(top_builddir)/Rules.mak
+include $(top_builddir)/.config
+include $(srcdir)/Makefile.in
 all: $(libraries-y)
--include $(TOPDIR).depend
+-include $(top_builddir)/.depend
 
 clean:
        rm -f *.o *.a $(AR_TARGET)
index 5cf5efa33923407524b95b9c8e6b22fce2529bc3..809b0e10e58f7a2e290f31f92f11760c11f12183 100644 (file)
@@ -19,8 +19,9 @@
 
 LIBUNARCHIVE_AR:=libunarchive.a
 ifndef $(LIBUNARCHIVE_DIR)
-LIBUNARCHIVE_DIR:=$(TOPDIR)archival/libunarchive/
+LIBUNARCHIVE_DIR:=$(top_builddir)/archival/libunarchive/
 endif
+srcdir=$(top_srcdir)/archvial/libunarchive
 
 LIBUNARCHIVE-y:= \
 \
@@ -78,3 +79,6 @@ libraries-y+=$(LIBUNARCHIVE_DIR)$(LIBUNARCHIVE_AR)
 $(LIBUNARCHIVE_DIR)$(LIBUNARCHIVE_AR): $(patsubst %,$(LIBUNARCHIVE_DIR)%, $(LIBUNARCHIVE-y))
        $(AR) -ro $@ $(patsubst %,$(LIBUNARCHIVE_DIR)%, $(LIBUNARCHIVE-y))
 
+$(LIBUNARCHIVA_DIR)%.o: $(srcdir)/%.c
+       $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+
index 2ee51a5e616a63271988ef0bbb12214f7d2a8f64..42cf2c8c3393f49a03c12df062f51cce2ae95bbb 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
 
-TOPDIR:= ../
+top_srcdir=..
+top_builddir=..
+srcdir=$(top_srcdir)/console/tools
 CONSOLETOOLS_DIR:=./
-include $(TOPDIR).config
-include $(TOPDIR)Rules.mak
-include Makefile.in
+include $(top_builddir)/Rules.mak
+include $(top_builddir)/.config
+include $(srcdir)/Makefile.in
 all: $(libraries-y)
--include $(TOPDIR).depend
+-include $(top_builddir)/.depend
 
 clean:
        rm -f *.o *.a $(AR_TARGET)
index 1d756c721531efbb1f4f98b953b67cb96cd5a55a..b19ce5cb251d174a0f35837ed488ef4fd03a6fdc 100644 (file)
@@ -19,8 +19,9 @@
 
 CONSOLETOOLS_AR:=console-tools.a
 ifndef $(CONSOLETOOLS_DIR)
-CONSOLETOOLS_DIR:=$(TOPDIR)console-tools/
+CONSOLETOOLS_DIR:=$(top_builddir)/console-tools/
 endif
+srcdir=$(top_srcdir)/console-tools
 
 CONSOLETOOLS_DIR-y:=
 CONSOLETOOLS_DIR-$(CONFIG_CHVT)                += chvt.o
@@ -38,3 +39,6 @@ libraries-y+=$(CONSOLETOOLS_DIR)$(CONSOLETOOLS_AR)
 $(CONSOLETOOLS_DIR)$(CONSOLETOOLS_AR): $(patsubst %,$(CONSOLETOOLS_DIR)%, $(CONSOLETOOLS_DIR-y))
        $(AR) -ro $@ $(patsubst %,$(CONSOLETOOLS_DIR)%, $(CONSOLETOOLS_DIR-y))
 
+$(CONSOLETOOLS_DIR)%.o: $(srcdir)/%.c
+       $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+
index b42689a264580086dff42b784347ea776854bee3..50fdac236345ffe1a0cae3f394d3d159c83cd69f 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
 
-TOPDIR:= ../
+top_srcdir=..
+top_builddir=..
+srcdir=$(top_srcdir)/coreutils
 SHELLUTILS_DIR:=./
-include $(TOPDIR).config
-include $(TOPDIR)Rules.mak
-include Makefile.in
+include $(top_builddir)/Rules.mak
+include $(top_builddir)/.config
+include $(srcdir)/Makefile.in
 all: $(libraries-y)
--include $(TOPDIR).depend
+-include $(top_builddir)/.depend
 
 clean:
        rm -f *.o *.a $(AR_TARGET)
index a5343c9c7441e155e40f8306c776fe63597f8965..aacb813b3a6ae5e49a64b9415fff25a19ca4174f 100644 (file)
@@ -19,8 +19,9 @@
 
 COREUTILS_AR:=coreutils.a
 ifndef $(COREUTILS_DIR)
-COREUTILS_DIR:=$(TOPDIR)coreutils/
+COREUTILS_DIR:=$(top_builddir)/coreutils/
 endif
+srcdir=$(top_srcdir)/coreutils
 
 COREUTILS-y:=
 COREUTILS-$(CONFIG_BASENAME)   += basename.o
@@ -91,3 +92,7 @@ libraries-y+=$(COREUTILS_DIR)$(COREUTILS_AR)
 
 $(COREUTILS_DIR)$(COREUTILS_AR): $(patsubst %,$(COREUTILS_DIR)%, $(COREUTILS-y))
        $(AR) -ro $@ $(patsubst %,$(COREUTILS_DIR)%, $(COREUTILS-y))
+
+$(COREUTILS_DIR)%.o: $(srcdir)/%.c
+       $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+
index 11867c6029f7952079fedd2b35dd42ed3173fb43..0a1c80a4135fc0372b0474caf6996050f5aa4ebe 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
 
-TOPDIR:= ../../
+top_srcdir=../..
+top_builddir=../..
+srcdir=$(top_srcdir)/coreutils/libcoreutils
 LIBCOREUTILS_DIR:=./
-include $(TOPDIR).config
-include $(TOPDIR)Rules.mak
-include Makefile.in
+include $(top_builddir)/Rules.mak
+include $(top_builddir)/.config
+include $(srcdir)/Makefile.in
+
 all: $(libraries-y)
--include $(TOPDIR).depend
+-include $(top_builddir)/.depend
 
 clean:
        rm -f *.o *.a $(AR_TARGET)
index d0e8b3a05c4943efa18e58fe4378b46ffdd64e4b..cf83d7107b44562e01630ce114ec353f163071a0 100644 (file)
@@ -19,8 +19,9 @@
 
 LIBCOREUTILS_AR:=libcoreutils.a
 ifndef $(LIBCOREUTILS_DIR)
-LIBCOREUTILS_DIR:=$(TOPDIR)coreutils/libcoreutils/
+LIBCOREUTILS_DIR:=$(top_builddir)/coreutils/libcoreutils/
 endif
+srcdir=$(top_srcdir)/coreutils/libcoreutils
 
 LIBCOREUTILS_SRC:= cp_mv_stat.c getopt_mk_fifo_nod.c xgetoptfile_sort_uniq.c
 
@@ -30,3 +31,7 @@ libraries-y+=$(LIBCOREUTILS_DIR)$(LIBCOREUTILS_AR)
 
 $(LIBCOREUTILS_DIR)$(LIBCOREUTILS_AR): $(LIBCOREUTILS_OBJS)
        $(AR) -ro $@ $(LIBCOREUTILS_OBJS)
+
+$(LIBCOREUTILS_DIR)%.o: $(srcdir)/%.c
+       $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+
index 0282b83c4bac5fd625c0db99006893d331038103..10ec1cc5865264e78f5619c8ae992c97e62562e7 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
 
-TOPDIR:= ../
+top_srcdir=..
+top_builddir=..
+srcdir=$(top_srcdir)/debianutils
 DEBIANUTILS_DIR:=./
-include $(TOPDIR).config
-include $(TOPDIR)Rules.mak
-include Makefile.in
+include $(top_builddir)/Rules.mak
+include $(top_builddir)/.config
+include $(srcdir)/Makefile.in
 all: $(libraries-y)
--include $(TOPDIR).depend
+-include $(top_builddir)/.depend
 
 clean:
        rm -f *.o *.a $(AR_TARGET)
index dabef27ef8b9c7215bd40df99f61776906f748d7..3a204033e6a6931e5084a80dfecf1752d2b8e7c9 100644 (file)
@@ -19,9 +19,9 @@
 
 DEBIANUTILS_AR:=debianutils.a
 ifndef $(DEBIANUTILS_DIR)
-DEBIANUTILS_DIR:=$(TOPDIR)debianutils/
+DEBIANUTILS_DIR:=$(top_builddir)/debianutils/
 endif
-
+srcdir=$(top_srcdir)/debianutils
 
 DEBIANUTILS-y:=
 DEBIANUTILS-$(CONFIG_MKTEMP)           += mktemp.o
@@ -36,3 +36,6 @@ libraries-y+=$(DEBIANUTILS_DIR)$(DEBIANUTILS_AR)
 $(DEBIANUTILS_DIR)$(DEBIANUTILS_AR): $(patsubst %,$(DEBIANUTILS_DIR)%, $(DEBIANUTILS-y))
        $(AR) -ro $@ $(patsubst %,$(DEBIANUTILS_DIR)%, $(DEBIANUTILS-y))
 
+$(DEBIANUTILS_DIR)%.o: $(srcdir)/%.c
+       $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+
index 1c822312480f667ab61ed1d82d15592eb3e01953..e6c114781de33ea0cfee76ad9f7b469352909fb9 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
 
-TOPDIR:= ../
+top_srcdir=..
+top_builddir=..
+srcdir=$(top_srcdir)/editors
 EDITOR_DIR:=./
-include $(TOPDIR).config
-include $(TOPDIR)Rules.mak
-include Makefile.in
+include $(top_builddir)/Rules.mak
+include $(top_builddir)/.config
+include $(srcdir)/Makefile.in
 all: $(libraries-y)
--include $(TOPDIR).depend
+-include $(top_builddir)/.depend
 
 clean:
        rm -f *.o *.a $(AR_TARGET)
index 017f30934acc014574dacca7c58ba2f5bf81697d..571e05568147ddcf545a8eecf597a77c78646a48 100644 (file)
@@ -19,8 +19,9 @@
 
 EDITOR_AR:=editors.a
 ifndef $(EDITOR_DIR)
-EDITOR_DIR:=$(TOPDIR)editors/
+EDITOR_DIR:=$(top_builddir)/editors/
 endif
+srcdir=$(top_srcdir)/editors
 
 EDITOR-y:=
 EDITOR-$(CONFIG_AWK)      += awk.o
@@ -42,3 +43,6 @@ endif
 $(EDITOR_DIR)$(EDITOR_AR): $(patsubst %,$(EDITOR_DIR)%, $(EDITOR-y))
        $(AR) -ro $@ $(patsubst %,$(EDITOR_DIR)%, $(EDITOR-y))
 
+$(EDITOR_DIR)%.o: $(srcdir)/%.c
+       $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+
index ba65a0e1dd8e8a9597ea493e5c6cb46b4984a84d..f3f8bb872b4ecf1c8b740acf1d6bc9c689e8ee12 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
 
-TOPDIR:= ../
+top_srcdir=..
+top_builddir=..
+srcdir=$(top_srcdir)/findutils
 FINDUTILS_DIR:=./
-include $(TOPDIR).config
-include $(TOPDIR)Rules.mak
-include Makefile.in
+include $(top_builddir)/Rules.mak
+include $(top_builddir)/.config
+include $(srcdir)/Makefile.in
 all: $(libraries-y)
--include $(TOPDIR).depend
+-include $(top_builddir)/.depend
 
 clean:
        rm -f *.o *.a $(AR_TARGET)
index 2d2f242a0b5515834ddcce327a1f995cf99df50c..ae71070d9200a6efc0bd156267d84fab12e778ee 100644 (file)
@@ -19,8 +19,9 @@
 
 FINDUTILS_AR:=findutils.a
 ifndef $(FINDUTILS_DIR)
-FINDUTILS_DIR:=$(TOPDIR)findutils/
+FINDUTILS_DIR:=$(top_builddir)/findutils/
 endif
+srcdir=$(top_srcdir)/findutils
 
 FINDUTILS-y:=
 FINDUTILS-$(CONFIG_FIND)       += find.o
@@ -32,3 +33,6 @@ libraries-y+=$(FINDUTILS_DIR)$(FINDUTILS_AR)
 $(FINDUTILS_DIR)$(FINDUTILS_AR): $(patsubst %,$(FINDUTILS_DIR)%, $(FINDUTILS-y))
        $(AR) -ro $@ $(patsubst %,$(FINDUTILS_DIR)%, $(FINDUTILS-y))
 
+$(FINDUTILS_DIR)%.o: $(srcdir)/%.c
+       $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+
index d23532735f6c5df74fc7db0e48a5be079b446a5a..9b0a1d139b206681c976487fef454cd93291c21b 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
 
-TOPDIR:= ../
+top_srcdir=..
+top_builddir=..
+srcdir=$(top_srcdir)/init
 INIT_DIR:=./
-include $(TOPDIR).config
-include $(TOPDIR)Rules.mak
-include Makefile.in
+include $(top_builddir)/Rules.mak
+include $(top_builddir)/.config
+include $(srcdir)/Makefile.in
 all: $(libraries-y)
--include $(TOPDIR).depend
+-include $(top_builddir)/.depend
 
 clean:
        rm -f *.o *.a $(AR_TARGET)
index 6264710db244c59b2215396d9a69a27831f7228f..807259dee1a4883a10be7323e019390de0bb3f9a 100644 (file)
@@ -19,8 +19,9 @@
 
 INIT_AR:=init.a
 ifndef $(INIT_DIR)
-INIT_DIR:=$(TOPDIR)init/
+INIT_DIR:=$(top_builddir)/init/
 endif
+srcdir=$(top_srcdir)/init
 
 INIT-y:=
 INIT-$(CONFIG_HALT)                    += halt.o
@@ -56,3 +57,6 @@ libraries-y+=$(INIT_DIR)$(INIT_AR)
 $(INIT_DIR)$(INIT_AR): $(patsubst %,$(INIT_DIR)%, $(INIT-y))
        $(AR) -ro $@ $(patsubst %,$(INIT_DIR)%, $(INIT-y))
 
+$(INIT_DIR)%.o: $(srcdir)/%.c
+       $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+
index fbcb123301bdd77d3768b5c02ea3a233cd1d6868..e94c0526048f892eb20fcf52470dd86f4f45a1ab 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
 
-TOPDIR:= ../
+top_srcdir=..
+top_builddir=..
+srcdir=$(top_srcdir)/libbb
 LIBBB_DIR:=./
-include $(TOPDIR).config
-include $(TOPDIR)Rules.mak
+include $(top_builddir)/Rules.mak
+include $(top_builddir)/.config
 include Makefile.in
 all: $(libraries-y)
--include $(TOPDIR).depend
+-include $(top_builddir)/.depend
 
 clean:
        rm -f *.o *.a $(AR_TARGET)
index f86664f159f4d49932f640e88147f0365e93dada..85d4a967ba35da1db81d5806f8eb3a94b8c7de2b 100644 (file)
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 
-
-
 LIBBB_AR:=libbb.a
 ifndef $(LIBBB_DIR)
-LIBBB_DIR:=$(TOPDIR)libbb/
+LIBBB_DIR:=$(top_builddir)/libbb/
 endif
+srcdir=$(top_srcdir)/libbb
 
 LIBBB_SRC:= \
        bb_asprintf.c ask_confirmation.c change_identity.c chomp.c \
@@ -51,7 +50,7 @@ LIBBB_SRC:= \
 
 LIBBB_OBJS=$(patsubst %.c,$(LIBBB_DIR)%.o, $(LIBBB_SRC))
 
-LIBBB_MSRC0:=$(LIBBB_DIR)messages.c
+LIBBB_MSRC0:=$(srcdir)/messages.c
 LIBBB_MOBJ0:=full_version.o \
        memory_exhausted.o invalid_date.o io_error.o \
        write_error.o name_longer_than_foo.o unknown.o \
@@ -60,19 +59,19 @@ LIBBB_MOBJ0:=full_version.o \
        securetty_file.o motd_file.o \
        msg_standard_input.o msg_standard_output.o shell_file.o
 
-LIBBB_MSRC1:=$(LIBBB_DIR)xfuncs.c
+LIBBB_MSRC1:=$(srcdir)/xfuncs.c
 LIBBB_MOBJ1:=xmalloc.o xrealloc.o xcalloc.o xstrdup.o xstrndup.o \
        xfopen.o xopen.o xread.o xread_all.o xread_char.o \
        xferror.o xferror_stdout.o xfflush_stdout.o strlen.o
 
-LIBBB_MSRC2:=$(LIBBB_DIR)printf.c
+LIBBB_MSRC2:=$(srcdir)/printf.c
 LIBBB_MOBJ2:=bb_vfprintf.o bb_vprintf.o bb_fprintf.o bb_printf.o
 
-LIBBB_MSRC3:=$(LIBBB_DIR)xgetularg.c
+LIBBB_MSRC3:=$(srcdir)/xgetularg.c
 LIBBB_MOBJ3:=xgetularg_bnd_sfx.o xgetlarg_bnd_sfx.o getlarg10_sfx.o \
        xgetularg_bnd.o xgetularg10_bnd.o xgetularg10.o
 
-LIBBB_MSRC4:=$(LIBBB_DIR)/safe_strtol.c
+LIBBB_MSRC4:=$(srcdir)/safe_strtol.c
 LIBBB_MOBJ4:=safe_strtoi.o safe_strtod.o safe_strtol.o safe_strtoul.o
 
 LIBBB_MOBJS0=$(patsubst %,$(LIBBB_DIR)%, $(LIBBB_MOBJ0))
@@ -88,6 +87,9 @@ $(LIBBB_DIR)$(LIBBB_AR): $(LIBBB_OBJS) $(LIBBB_MOBJS0) $(LIBBB_MOBJS1) \
        $(AR) -ro $@ $(LIBBB_OBJS) $(LIBBB_MOBJS0) $(LIBBB_MOBJS1) \
                $(LIBBB_MOBJS2) $(LIBBB_MOBJS3) $(LIBBB_MOBJS4)
 
+$(LIBBB_DIR)%.o: $(srcdir)/%.c
+       $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+
 $(LIBBB_MOBJS0): $(LIBBB_MSRC0)
        $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DL_$(notdir $*) -c $< -o $@
 
index 79dbb462f6bbc64b920ff74f8530baf95b22a012..c833550bfcb4590233f87717b39751d768ce5aff 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
 
-TOPDIR:= ../
+top_srcdir=..
+top_builddir=..
+srcdir=$(top_srcdir)/libpwgrp
 LIBPWDGRP_DIR:=./
-include $(TOPDIR).config
-include $(TOPDIR)Rules.mak
+include $(top_builddir)/Rules.mak
+include $(top_builddir)/.config
 include Makefile.in
 all: $(libraries-y)
--include $(TOPDIR).depend
+-include $(top_builddir)/.depend
 
 clean:
        rm -f *.o *.a $(AR_TARGET)
index a79820252eae2ccc7f9a1c11dbff38f46a2a3537..9bdfc10d811398743854ea2d58c1af0c4f95cb72 100644 (file)
 
 LIBPWDGRP_AR:=libpwdgrp.a
 ifndef $(LIBPWDGRP_DIR)
-LIBPWDGRP_DIR:=$(TOPDIR)libpwdgrp/
+LIBPWDGRP_DIR:=$(top_builddir)/libpwdgrp/
 endif
+srcdir=$(top_srcdir)/libpwdgrp
 
 
-LIBPWDGRP_MSRC0:=$(LIBPWDGRP_DIR)pwd_grp.c
+LIBPWDGRP_MSRC0:=$(srcdir)/pwd_grp.c
 LIBPWDGRP_MOBJ0-$(CONFIG_USE_BB_PWD_GRP):= fgetpwent_r.o fgetgrent_r.o \
        fgetpwent.o fgetgrent.o getpwnam_r.o getgrnam_r.o getpwuid_r.o \
        getgrgid_r.o getpwuid.o getgrgid.o getpwnam.o getgrnam.o getpw.o \
@@ -31,7 +32,7 @@ LIBPWDGRP_MOBJ0-$(CONFIG_USE_BB_PWD_GRP):= fgetpwent_r.o fgetgrent_r.o \
        initgroups.o putpwent.o putgrent.o
 LIBPWDGRP_MOBJS0=$(patsubst %,$(LIBPWDGRP_DIR)%, $(LIBPWDGRP_MOBJ0-y))
 
-LIBPWDGRP_MSRC1:=$(LIBPWDGRP_DIR)pwd_grp.c
+LIBPWDGRP_MSRC1:=$(srcdir)/pwd_grp.c
 LIBPWDGRP_MOBJ1-$(CONFIG_USE_BB_PWD_GRP):= __parsepwent.o __parsegrent.o \
        __pgsreader.o fgetspent_r.o fgetspent.o sgetspent_r.o getspnam_r.o \
        getspnam.o getspent_r.o getspent.o sgetspent.o \
index a013d141f66f953c30771636b7dfbf20db71e2d3..98226ae81e131d1ccd04ada82e91710813ac9345 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
 
-TOPDIR:= ../
+top_srcdir=..
+top_builddir=..
+srcdir=$(top_srcdir)/loginutils
 LOGINUTILS_DIR:=./
-include $(TOPDIR).config
-include $(TOPDIR)Rules.mak
+include $(top_builddir)/Rules.mak
+include $(top_builddir)/.config
 include Makefile.in
 all: $(libraries-y)
--include $(TOPDIR).depend
+-include $(top_builddir)/.depend
 
 clean:
        rm -f *.o *.a $(AR_TARGET)
index d6ffd3b6c111fb8bd3a613c95f26a44c408370a1..96a61e60ffa09112751b98b622547926d0059d64 100644 (file)
@@ -19,8 +19,9 @@
 
 LOGINUTILS_AR:=loginutils.a
 ifndef LOGINUTILS_DIR
-LOGINUTILS_DIR:=$(TOPDIR)loginutils/
+LOGINUTILS_DIR:=$(top_builddir)/loginutils/
 endif
+srcdir=$(top_srcdir)/loginutils
 
 LOGINUTILS-y:=
 LOGINUTILS-$(CONFIG_ADDGROUP)  += addgroup.o
@@ -51,3 +52,6 @@ endif
 $(LOGINUTILS_DIR)$(LOGINUTILS_AR): $(patsubst %,$(LOGINUTILS_DIR)%, $(LOGINUTILS-y))
        $(AR) -ro $@ $(patsubst %,$(LOGINUTILS_DIR)%, $(LOGINUTILS-y))
 
+$(LOGINUTILS_DIR)%.o: $(srcdir)/%.c
+       $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+
index 4bae724769af5b2e0fa0cb2abef7fb7be12f877d..ac427dc09c970bc3edb644e2a11e738415bd4db1 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
 
-TOPDIR:= ../
+top_srcdir=..
+top_builddir=..
+srcdir=$(top_srcdir)/miscutils
 MISCUTILS_DIR:=./
-include $(TOPDIR).config
-include $(TOPDIR)Rules.mak
+include $(top_builddir)/Rules.mak
+include $(top_builddir)/.config
 include Makefile.in
 all: $(libraries-y)
--include $(TOPDIR).depend
+-include $(top_builddir)/.depend
 
 clean:
        rm -f *.o *.a $(AR_TARGET)
index 89e3208a612fd0a7433baa64ebf2e6a05b73ddee..ddddf72b305f99b8a67b8f2743ec7896e3f2d27d 100644 (file)
@@ -19,9 +19,9 @@
 
 MISCUTILS_AR:=miscutils.a
 ifndef $(MISCUTILS_DIR)
-MISCUTILS_DIR:=$(TOPDIR)miscutils/
+MISCUTILS_DIR:=$(top_builddir)/miscutils/
 endif
-
+srcdir=$(top_srcdir)/miscutils
 
 MISCUTILS-y:=
 MISCUTILS-$(CONFIG_ADJTIMEX)           += adjtimex.o
@@ -50,3 +50,6 @@ endif
 $(MISCUTILS_DIR)$(MISCUTILS_AR): $(patsubst %,$(MISCUTILS_DIR)%, $(MISCUTILS-y))
        $(AR) -ro $@ $(patsubst %,$(MISCUTILS_DIR)%, $(MISCUTILS-y))
 
+$(MISCUTILS_DIR)%.o: $(srcdir)/%.c
+       $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+
index 5e1c886c0cfb2274a65e8dc030ac79b3537513b0..d2b50b4d802c0401d6219bb3cdb2d6ac0fae9097 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
 
-TOPDIR:= ../
+top_srcdir=..
+top_builddir=..
+srcdir=$(top_srcdir)/modutils
 MODUTILS_DIR:=./
-include $(TOPDIR).config
-include $(TOPDIR)Rules.mak
+include $(top_builddir)/Rules.mak
+include $(top_builddir)/.config
 include Makefile.in
 all: $(libraries-y)
--include $(TOPDIR).depend
+-include $(top_builddir)/.depend
 
 clean:
        rm -f *.o *.a $(AR_TARGET)
index a92befafb1400ff7e4b7d9a69ee875e8e7013b0f..9bd11d4d84bab4d3ba645262b791f6354fe7c416 100644 (file)
@@ -19,8 +19,9 @@
 
 MODUTILS_AR:=modutils.a
 ifndef $(MODUTILS_DIR)
-MODUTILS_DIR:=$(TOPDIR)modutils/
+MODUTILS_DIR:=$(top_builddir)/modutils/
 endif
+srcdir=$(top_srcdir)/modutils
 
 MODUTILS-y:=
 MODUTILS-$(CONFIG_INSMOD)              += insmod.o
@@ -33,3 +34,6 @@ libraries-y+=$(MODUTILS_DIR)$(MODUTILS_AR)
 $(MODUTILS_DIR)$(MODUTILS_AR): $(patsubst %,$(MODUTILS_DIR)%, $(MODUTILS-y))
        $(AR) -ro $@ $(patsubst %,$(MODUTILS_DIR)%, $(MODUTILS-y))
 
+$(MODUTILS_DIR)%.o: $(srcdir)/%.c
+       $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+
index 456c433fd74b49cab91335fde4ec286597f786ea..91726b1b2b6b668b5e49cf3f35fc11c4124af650 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
 
-TOPDIR:= ../
+top_srcdir=..
+top_builddir=..
+srcdir=$(top_srcdir)/networking
 NETWORKING_DIR:=./
-include $(TOPDIR).config
-include $(TOPDIR)Rules.mak
+include $(top_builddir)/Rules.mak
+include $(top_builddir)/.config
 include Makefile.in
 all: $(libraries-y)
--include $(TOPDIR).depend
+-include $(top_builddir)/.depend
 
 clean:
        rm -f *.o *.a $(AR_TARGET)
index e15e61a3ecd4b5c58de9525485a842300b709816..9bfe9017671269347671fb30145e3a564a89c66f 100644 (file)
@@ -19,9 +19,9 @@
 
 NETWORKING_AR:=networking.a
 ifndef $(NETWORKING_DIR)
-NETWORKING_DIR:=$(TOPDIR)networking/
+NETWORKING_DIR:=$(top_builddir)/networking/
 endif
-
+srcdir=$(top_srcdir)/networking
 NETWORKING-y:=
 NETWORKING-$(CONFIG_ARPING)    += arping.o
 NETWORKING-$(CONFIG_FTPGET)    += ftpgetput.o
@@ -63,3 +63,6 @@ endif
 $(NETWORKING_DIR)$(NETWORKING_AR): $(patsubst %,$(NETWORKING_DIR)%, $(NETWORKING-y))
        $(AR) -ro $@ $(patsubst %,$(NETWORKING_DIR)%, $(NETWORKING-y))
 
+$(NETWORKING_DIR)%.o: $(srcdir)/%.c
+       $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+
index 0dc7191d38e5b57f670fafdb174cfd0baa33eb7e..d3aefaaf4fc71625be4a4ce45c4216c4af159fc9 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
 
-TOPDIR:= ../../
+top_srcdir=../..
+top_builddir=../..
+srcdir=$(top_srcdir)/networking/libiproute
 LIBIPROUTE_DIR:=./
-include $(TOPDIR).config
-include $(TOPDIR)Rules.mak
+include $(top_builddir)/Rules.mak
+include $(top_builddir)/.config
 include Makefile.in
 all: $(libraries-y)
--include $(TOPDIR).depend
+-include $(top_builddir)/.depend
 
 clean:
        rm -f *.o *.a $(AR_TARGET)
index 25c51999f1c02fb029ea1c07e43d4fba02751b2b..fcc7f48cedf78a01e4711eadf935200115cd866f 100644 (file)
@@ -19,8 +19,9 @@
 
 LIBIPROUTE_AR:=libiproute.a
 ifndef $(LIBIPROUTE_DIR)
-LIBIPROUTE_DIR:=$(TOPDIR)networking/libiproute/
+LIBIPROUTE_DIR:=$(top_builddir)/networking/libiproute/
 endif
+srcdir=$(top_srcdir)/networking/libiproute
 
 LIBIPROUTE-$(CONFIG_IP) += \
        ip_parse_common_args.o \
@@ -78,3 +79,6 @@ libraries-y+=$(LIBIPROUTE_DIR)$(LIBIPROUTE_AR)
 $(LIBIPROUTE_DIR)$(LIBIPROUTE_AR): $(patsubst %,$(LIBIPROUTE_DIR)%, $(LIBIPROUTE-y))
        $(AR) -ro $@ $(patsubst %,$(LIBIPROUTE_DIR)%, $(LIBIPROUTE-y))
 
+$(LIBIPROUTE_DIR)%.o: $(srcdir)/%.c
+       $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+
index 2b79d22932f5d9ba49f24f6d8b73f5b46f4a4f4e..3d32db50a680c641b9cd29d389d4e9a85633e6c2 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
 
-TOPDIR:= ../../
+top_srcdir=../..
+top_builddir=../..
+srcdir=$(top_srcdir)/networking/udhcp
 UDHCP_DIR:=./
-include $(TOPDIR).config
-include $(TOPDIR)Rules.mak
+include $(top_builddir)/Rules.mak
+include $(top_builddir)/.config
 include Makefile.in
 all: $(libraries-y)
--include $(TOPDIR).depend
+-include $(top_builddir)/.depend
 
 clean:
        rm -f *.o *.a $(AR_TARGET)
index b4807942954acbd75065e0bb24ba0e090907117a..2d7a0881617839f753d760832d8e34ae735306e4 100644 (file)
@@ -19,8 +19,9 @@
 
 UDHCP_AR:=udhcp.a
 ifndef $(UDHCP_DIR)
-UDHCP_DIR:=$(TOPDIR)networking/udhcp/
+UDHCP_DIR:=$(top_builddir)/networking/udhcp/
 endif
+srcdir=$(top_srcdir)/networking/udhcp
 
 #ok, so I forgot how to do an or, but this is a quick and dirty hack
 ifeq ($(CONFIG_UDHCPC), y)
@@ -48,6 +49,6 @@ libraries-y+=$(UDHCP_DIR)$(UDHCP_AR)
 $(UDHCP_DIR)$(UDHCP_AR): $(UDHCP_OBJS)
        $(AR) -ro $@ $(UDHCP_OBJS)
 
-$(UDHCP_OBJS): %.o : %.c
+$(UDHCP_OBJS): $(UDHCP_DIR)%.o : $(srcdir)/%.c
        $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DIN_BUSYBOX -c $< -o $@
 
index 0238f7ebb9c396833ea678d6476d7b9fdc2719f8..1cc8804622f2aa322f9fb73a79c250b223cd71e4 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
 
-TOPDIR:= ../
+top_srcdir=..
+top_builddir=..
+srcdir=$(top_srcdir)/procps
 PROCPS_DIR:=./
-include $(TOPDIR).config
-include $(TOPDIR)Rules.mak
+include $(top_builddir)/Rules.mak
+include $(top_builddir)/.config
 include Makefile.in
 all: $(libraries-y)
--include $(TOPDIR).depend
+-include $(top_builddir)/.depend
 
 clean:
        rm -f *.o *.a $(AR_TARGET)
index 1c2e00f7bce4b44cda36062acf0256c5a0ddaa32..ced29a198efeef83850a05eafc92bdd6a818a78b 100644 (file)
@@ -19,8 +19,9 @@
 
 PROCPS_AR:=procps.a
 ifndef $(PROCPS_DIR)
-PROCPS_DIR:=$(TOPDIR)procps/
+PROCPS_DIR:=$(top_builddir)/procps/
 endif
+srcdir=$(top_srcdir)/procps
 
 PROCPS-y:=
 PROCPS-$(CONFIG_FREE)          += free.o
@@ -37,3 +38,6 @@ libraries-y+=$(PROCPS_DIR)$(PROCPS_AR)
 $(PROCPS_DIR)$(PROCPS_AR): $(patsubst %,$(PROCPS_DIR)%, $(PROCPS-y))
        $(AR) -ro $@ $(patsubst %,$(PROCPS_DIR)%, $(PROCPS-y))
 
+$(PROCPS_DIR)%.o: $(srcdir)/%.c
+       $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+
index e15ec399c99323a8a7bfc6b0e4f73516df6df06c..c0b5b9d35e0af41ef149a134879352519d0ddfd0 100644 (file)
@@ -2,8 +2,10 @@
 #
 # Copyright (C) 2002 Erik Andersen <andersen@codepoet.org>
 
-TOPDIR=../../
-include $(TOPDIR)Rules.mak
+top_srcdir=../..
+top_builddir=../..
+srcdir=$(top_srcdir)/scripts/config
+include $(top_builddir)/Rules.mak
 
 all: ncurses conf mconf
 
@@ -33,7 +35,8 @@ endif
 CONF_SRC  =conf.c
 MCONF_SRC =mconf.c checklist.c menubox.c textbox.c yesno.c inputbox.c util.c msgbox.c
 SHARED_SRC=zconf.tab.c
-SHARED_DEPS:=lkc.h lkc_proto.h lkc_defs.h expr.h zconf.tab.h
+SHARED_DEPS:=$(srcdir)/lkc.h $(srcdir)/lkc_proto.h \
+  lkc_defs.h $(srcdir)/expr.h zconf.tab.h
 CONF_OBJS =$(patsubst %.c,%.o, $(CONF_SRC))
 MCONF_OBJS=$(patsubst %.c,%.o, $(MCONF_SRC))
 SHARED_OBJS=$(patsubst %.c,%.o, $(SHARED_SRC))
@@ -44,13 +47,13 @@ conf: $(CONF_OBJS) $(SHARED_OBJS)
 mconf: $(MCONF_OBJS) $(SHARED_OBJS)
        $(HOSTCC) $(NATIVE_LDFLAGS) $^ -o $@ $(LIBS)
 
-$(CONF_OBJS): %.o : %.c $(SHARED_DEPS)
+$(CONF_OBJS): %.o : $(srcdir)/%.c $(SHARED_DEPS)
        $(HOSTCC) $(HOSTCFLAGS) -I. -c $< -o $@
 
-$(MCONF_OBJS): %.o : %.c $(SHARED_DEPS)
+$(MCONF_OBJS): %.o : $(srcdir)/%.c $(SHARED_DEPS)
        $(HOSTCC) $(HOSTCFLAGS) $(HOSTNCURSES) -I. -c $< -o $@
 
-lkc_defs.h: lkc_proto.h
+lkc_defs.h: $(srcdir)/lkc_proto.h
        @sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/'
 
 ###
@@ -61,29 +64,30 @@ lkc_defs.h: lkc_proto.h
 
 ifdef LKC_GENPARSER
 
-%.tab.c %.tab.h: %.y
+%.tab.c %.tab.h: $(srcdir)/%.y
        bison -t -d -v -b $* -p $(notdir $*) $<
 
-lex.%.c: %.l
+lex.%.c: $(srcdir)/%.l
        flex -P$(notdir $*) -o$@ $<
 else
 
 lex.zconf.o: lex.zconf.c $(SHARED_DEPS)
-       $(HOSTCC) $(HOSTCFLAGS) -I. -c $< -o $@
-
-lex.zconf.c: lex.zconf.c_shipped
-       cp lex.zconf.c_shipped lex.zconf.c
+       $(HOSTCC) $(HOSTCFLAGS) -I$(srcdir) -c $< -o $@
 
-zconf.tab.o: zconf.tab.c lex.zconf.c confdata.c expr.c symbol.c menu.c $(SHARED_DEPS)
-       $(HOSTCC) $(HOSTCFLAGS) -I. -c $< -o $@
+lex.zconf.c: $(srcdir)/lex.zconf.c_shipped
+       cp $< $@
 
-zconf.tab.c: zconf.tab.c_shipped
-       cp zconf.tab.c_shipped zconf.tab.c
+zconf.tab.c: $(srcdir)/zconf.tab.c_shipped
+       cp $< $@
 
-zconf.tab.h: zconf.tab.h_shipped
-       cp zconf.tab.h_shipped zconf.tab.h
+zconf.tab.h: $(srcdir)/zconf.tab.h_shipped
+       cp $< $@
 endif
 
+zconf.tab.o: zconf.tab.c lex.zconf.c $(srcdir)/confdata.c $(srcdir)/expr.c \
+             $(srcdir)/symbol.c $(srcdir)/menu.c $(SHARED_DEPS)
+       $(HOSTCC) $(HOSTCFLAGS) -I$(srcdir) -I. -c $< -o $@
+
 .PHONY: ncurses
 
 ncurses:
index 8f476c19e2b5c10a379cca3728ab39f53fa45db0..bd1dad6f33ae2d47470c2cffc3ef5d9ac63ee917 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
 
-TOPDIR:= ../
+top_srcdir=..
+top_builddir=..
+srcdir=$(top_srcdir)/shell
 SHELL_DIR:=./
-include $(TOPDIR).config
-include $(TOPDIR)Rules.mak
+include $(top_builddir)/Rules.mak
+include $(top_builddir)/.config
 include Makefile.in
 all: $(libraries-y)
--include $(TOPDIR).depend
+-include $(top_builddir)/.depend
 
 clean:
        rm -f *.o *.a $(AR_TARGET)
index 7b9f41ed4a2ad8b109fefd4eeda37d7dc732c2f2..61b2846ac5e1055c9fa0112c0520a1ae191d8d96 100644 (file)
@@ -19,8 +19,9 @@
 
 SHELL_AR:=shell.a
 ifndef $(SHELL_DIR)
-SHELL_DIR:=$(TOPDIR)shell/
+SHELL_DIR:=$(top_builddir)/shell/
 endif
+srcdir=$(top_srcdir)/shell
 
 SHELLT-y:=
 SHELLT-$(CONFIG_ASH)                           += ash.o
@@ -34,3 +35,6 @@ libraries-y+=$(SHELL_DIR)$(SHELL_AR)
 $(SHELL_DIR)$(SHELL_AR): $(patsubst %,$(SHELL_DIR)%, $(SHELLT-y))
        $(AR) -ro $@ $(patsubst %,$(SHELL_DIR)%, $(SHELLT-y))
 
+$(SHELL_DIR)%.o: $(srcdir)/%.c
+       $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+
index f6ce14530e034a7d31312b010be69021c713f61d..78b0c00909ae131164448be77abc0836236eba13 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
 
-TOPDIR:= ../
+top_srcdir=..
+top_buildddir=..
+srcdir=$(top_srcdir)/sysklogd
 SYSKLOGD_DIR:=./
-include $(TOPDIR).config
-include $(TOPDIR)Rules.mak
+include $(top_builddir)/Rules.mak
+include $(top_builddir)/.config
 include Makefile.in
 all: $(libraries-y)
--include $(TOPDIR).depend
+-include $(top_builddir)/.depend
 
 clean:
        rm -f *.o *.a $(AR_TARGET)
index 1c6e907746905d450b3e30f6e8eb1f16e7838671..99a5f823cb4301048e3068c3c7a761d13597edfd 100644 (file)
@@ -19,8 +19,9 @@
 
 SYSKLOGD_AR:=sysklogd.a
 ifndef $(SYSKLOGD_DIR)
-SYSKLOGD_DIR:=$(TOPDIR)sysklogd/
+SYSKLOGD_DIR:=$(top_builddir)/sysklogd/
 endif
+srcdir=$(top_srcdir)/sysklogd
 
 SYSKLOGD-:=
 SYSKLOGD-$(CONFIG_KLOGD)               += klogd.o
@@ -33,3 +34,6 @@ libraries-y+=$(SYSKLOGD_DIR)$(SYSKLOGD_AR)
 $(SYSKLOGD_DIR)$(SYSKLOGD_AR): $(patsubst %,$(SYSKLOGD_DIR)%, $(SYSKLOGD-y))
        $(AR) -ro $@ $(patsubst %,$(SYSKLOGD_DIR)%, $(SYSKLOGD-y))
 
+$(SYSKLOGD_DIR)%.o: $(srcdir)/%.c
+       $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+
index 8ec5d4c24c10034db9ca2cbecc7ef972450bdf5b..82041ab339316181f397f9ac8d5359f3b34ced8f 100644 (file)
@@ -1,3 +1,4 @@
-du -h .. > logfile.gnu
-busybox du -h .. > logfile.bb
+[ -n "$d" ] || d=..
+du -h "$d" > logfile.gnu
+busybox du -h "$d" > logfile.bb
 cmp logfile.gnu logfile.bb
index 43b119c7cd3ae86b545dc64a1e157d9eea14d3ae..177a1a2cd728ffc87bcdaa446922973af56c0850 100644 (file)
@@ -1,3 +1,4 @@
-du -k .. > logfile.gnu
-busybox du -k .. > logfile.bb
+[ -n "$d" ] || d=..
+du -k "$d" > logfile.gnu
+busybox du -k "$d" > logfile.bb
 cmp logfile.gnu logfile.bb
index c5d4398536cd4bbd93f16a20360401beb576ebb3..61e91400c92ed4485b155f3dda8bdebeaea025a2 100644 (file)
@@ -1,3 +1,4 @@
-du -l .. > logfile.gnu
-busybox du -l .. > logfile.bb
+[ -n "$d" ] || d=..
+du -l "$d" > logfile.gnu
+busybox du -l "$d" > logfile.bb
 cmp logfile.gnu logfile.bb
index e3e2d3a56340084924acee7e5cf63d5bfb512e3e..bc9707350b56fc4cc3f9465cd3a55a9b8d7ccb02 100644 (file)
@@ -1,3 +1,4 @@
-du -m .. > logfile.gnu
-busybox du -m .. > logfile.bb
+[ -n "$d" ] || d=..
+du -m "$d" > logfile.gnu
+busybox du -m "$d" > logfile.bb
 cmp logfile.gnu logfile.bb
index 16b0a3e5ab3f5918bf3dc4c5c9291959fa7b76a0..f0b3bf0ae08ed13d4b21cf29db5c01e7e6afd358 100644 (file)
@@ -1,3 +1,4 @@
-du -s .. > logfile.gnu
-busybox du -s .. > logfile.bb
+[ -n "$d" ] || d=..
+du -s "$d" > logfile.gnu
+busybox du -s "$d" > logfile.bb
 cmp logfile.gnu logfile.bb
index 87ba63032922c4c0a19717a7cd64df86a538fa6b..47949c694bd0e5f9ebecd0d8d17ae50b6a808fac 100644 (file)
@@ -1,3 +1,4 @@
-du .. > logfile.gnu
-busybox du .. > logfile.bb
+[ -n "$d" ] || d=..
+du "$d" > logfile.gnu
+busybox du "$d" > logfile.bb
 cmp logfile.gnu logfile.bb
index 121a1fa1de42903f06afc50c04d0f5a7be82db3a..db4325556c7bd8d387c22002159e5ca013149217 100644 (file)
@@ -1,3 +1,4 @@
-head -n 2 ../README > logfile.gnu
-busybox head -n 2 ../README > logfile.bb
+[ -n "$d" ] || d=..
+head -n 2 "$d/README" > logfile.gnu
+busybox head -n 2 "$d/README" > logfile.bb
 cmp logfile.gnu logfile.bb
index ea10adeb446f50d85b712bd21477103133ce1929..56ad3e36b952d63fd2aa2b46041e9103440f4062 100644 (file)
@@ -1,3 +1,4 @@
-head ../README > logfile.gnu
-busybox head ../README > logfile.bb
+[ -n "$d" ] || d=..
+head "$d/README" > logfile.gnu
+busybox head "$d/README" > logfile.bb
 cmp logfile.gnu logfile.bb
index 8651ecd723e31f1f14873b7e159e058423103655..8ad484fc38ac389207c6d907fbfa6b5f02d832ec 100644 (file)
@@ -1,3 +1,4 @@
-ls -1 .. > logfile.gnu
-busybox ls -1 .. > logfile.bb
+[ -n "$d" ] || d=..
+ls -1 "$d" > logfile.gnu
+busybox ls -1 "$d" > logfile.bb
 cmp logfile.gnu logfile.bb
index f54a7be0b2963cc7d72b3754199f7debf283ce61..7331262c957b49943759d0977b5e29871a3d34e7 100644 (file)
@@ -1,3 +1,4 @@
-ls -h .. > logfile.gnu
-busybox ls -h .. > logfile.bb
+[ -n "$d" ] || d=..
+ls -h "$d" > logfile.gnu
+busybox ls -h "$d" > logfile.bb
 cmp logfile.gnu logfile.bb
index 50e44597e3055711399041cdc2bec182f6777e02..ae5141d8067f06c21a5ba9b128ffdb63e32ae91e 100644 (file)
@@ -1,3 +1,4 @@
-ls -l .. > logfile.gnu
-busybox ls -l .. > logfile.bb
+[ -n "$d" ] || d=..
+ls -l "$d" > logfile.gnu
+busybox ls -l "$d" > logfile.bb
 cmp logfile.gnu logfile.bb
index 98a612d064efceb0439b234e17c2acd0d516b604..d82f328b75273e17b25fdd6c917b14d058640447 100644 (file)
@@ -1,3 +1,4 @@
-ls -1s .. > logfile.gnu
-busybox ls -1s .. > logfile.bb
+[ -n "$d" ] || d=..
+ls -1s "$d" > logfile.gnu
+busybox ls -1s "$d" > logfile.bb
 cmp logfile.gnu logfile.bb
index 89aba3985015c0cacdcc8f86130f32f4b787bd1a..6ba334bcee0b863e99e4cc01c7bc49f46f374b4c 100755 (executable)
@@ -1,6 +1,8 @@
 #!/bin/sh
 
-PATH=$(dirname $(pwd)):$PATH
+[ -n "$srcdir" ] || srcdir=$(pwd)
+[ -n "$bindir" ] || bindir=$(dirname $(pwd))
+PATH=$bindir:$PATH
 
 run_applet_testcase ()
 {
@@ -13,7 +15,7 @@ run_applet_testcase ()
        local uc_applet=$(echo $applet | tr a-z A-Z)
        local testname=$(basename $testcase)
 
-       if grep -q "^# CONFIG_${uc_applet} is not set$" ../.config; then
+       if grep -q "^# CONFIG_${uc_applet} is not set$" $bindir/.config; then
                echo UNTESTED: $testname
                return 0
        fi
@@ -21,7 +23,7 @@ run_applet_testcase ()
        if grep -q "^# FEATURE: " $testcase; then
                local feature=`sed -ne 's/^# FEATURE: //p' $testcase`
 
-               if grep -q "^# ${feature} is not set$" ../.config; then
+               if grep -q "^# ${feature} is not set$" $bindir/.config; then
                        echo UNTESTED: $testname
                        return 0
                fi
@@ -31,7 +33,7 @@ run_applet_testcase ()
        mkdir -p tmp
        pushd tmp >/dev/null
 
-       sh -x -e ../$testcase >.logfile.txt 2>&1
+       d=$srcdir sh -x -e $testcase >.logfile.txt 2>&1
 
        if [ $? != 0 ] ; then
                echo FAIL: $testname
@@ -58,8 +60,8 @@ run_applet_tests ()
 
        local status=0
 
-       for testcase in $applet/*; do
-               if [ "$testcase" = "$applet/CVS" ]; then
+       for testcase in $srcdir/$applet/*; do
+               if [ "$testcase" = "$srcdir/$applet/CVS" ]; then
                        continue
                fi
 
@@ -84,11 +86,11 @@ fi
 if [ $# -ne 0 ]; then
        applets="$@"
 else
-       applets="*"
+       applets=$(ls $srcdir)
 fi
 
 for applet in $applets; do
-       if [ "$applet" != CVS -a -d "$applet" ]; then
+       if [ "$applet" != CVS -a -d "$srcdir/$applet" ]; then
                if run_applet_tests $applet; then
                        :
                else
index c9b63a36a387a6f902c5f7cdcc67a5403c70186e..878108dddb81470854dcd19026e30dae64f09556 100644 (file)
@@ -1,3 +1,4 @@
-sort -n ../README > logfile.gnu
-busybox sort -n ../README > logfile.bb
+[ -n "$d" ] || d=..
+sort -n "$d/README" > logfile.gnu
+busybox sort -n "$d/README" > logfile.bb
 cmp logfile.gnu logfile.bb
index 6422ba940e9fdc5cb86bfc553a6a355936522dea..6ee0ceb1a85a1010811be3cc54aa003912142dd4 100644 (file)
@@ -1,3 +1,4 @@
-sort -r ../README > logfile.gnu
-busybox sort -r ../README > logfile.bb
+[ -n "$d" ] || d=..
+sort -r "$d/README" > logfile.gnu
+busybox sort -r "$d/README" > logfile.bb
 cmp logfile.gnu logfile.bb
index 0110aa01085541448e77009878c84bc5c4e51499..14a115abf30bf36d1c195f8072db6249397e1527 100644 (file)
@@ -1,3 +1,4 @@
-sort ../README > logfile.gnu
-busybox sort ../README > logfile.bb
+[ -n "$d" ] || d=..
+sort "$d/README" > logfile.gnu
+busybox sort "$d/README" > logfile.bb
 cmp logfile.gnu logfile.bb
index 321db7f8ade44b0608e635dfa4e6b8ee916841e0..27a905f88e63abc62f65691bb345d487622e9943 100644 (file)
@@ -1,3 +1,4 @@
-tail -n 2 ../README > logfile.gnu
-busybox tail -n 2 ../README > logfile.bb
+[ -n "$d" ] || d=..
+tail -n 2 "$d/README" > logfile.gnu
+busybox tail -n 2 "$d/README" > logfile.bb
 cmp logfile.gnu logfile.bb
index 321db7f8ade44b0608e635dfa4e6b8ee916841e0..27a905f88e63abc62f65691bb345d487622e9943 100644 (file)
@@ -1,3 +1,4 @@
-tail -n 2 ../README > logfile.gnu
-busybox tail -n 2 ../README > logfile.bb
+[ -n "$d" ] || d=..
+tail -n 2 "$d/README" > logfile.gnu
+busybox tail -n 2 "$d/README" > logfile.bb
 cmp logfile.gnu logfile.bb
index 4ad58180465b9fdcb3728abf113b4045dd333378..c95869e89d52102c21d703afbf4bc237d1000c13 100644 (file)
@@ -1,3 +1,4 @@
-find -name \*works -type f | xargs md5sum > logfile.gnu
-find -name \*works -type f | busybox xargs md5sum > logfile.bb
+[ -n "$d" ] || d=..
+find "$d" -name \*works -type f | xargs md5sum > logfile.gnu
+find "$d" -name \*works -type f | busybox xargs md5sum > logfile.bb
 diff -u logfile.gnu logfile.bb
index f2e2021f096db7075f75839e6a2f8809e3c8928f..4401fd1edf98b92f855a711f8bccb90225621e6c 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
 
-TOPDIR:= ../
+top_srcdir=..
+top_buildddir=..
+srcdir=$(top_srcdir)/util-linux
 UTILLINUX_DIR:=./
-include $(TOPDIR).config
-include $(TOPDIR)Rules.mak
+include $(top_builddir)/Rules.mak
+include $(top_builddir)/.config
 include Makefile.in
 all: $(libraries-y)
--include $(TOPDIR).depend
+-include $(top_builddir)/.depend
 
 clean:
        rm -f *.o *.a $(AR_TARGET)
index 72136f1ce38d77c9e397d7af9a007ab8ec7d2a26..0172b3562d6760a83a56655c5824d519387f8792 100644 (file)
@@ -19,8 +19,9 @@
 
 UTILLINUX_AR:=util-linux.a
 ifndef $(UTILLINUX_DIR)
-UTILLINUX_DIR:=$(TOPDIR)util-linux/
+UTILLINUX_DIR:=$(top_builddir)/util-linux/
 endif
+srcdir=$(top_srcdir)/util-linux
 
 UTILLINUX-:=
 UTILLINUX-$(CONFIG_DMESG)              +=dmesg.o
@@ -49,10 +50,13 @@ libraries-y+=$(UTILLINUX_DIR)$(UTILLINUX_AR)
 $(UTILLINUX_DIR)$(UTILLINUX_AR): $(patsubst %,$(UTILLINUX_DIR)%, $(UTILLINUX-y))
        $(AR) -ro $@ $(patsubst %,$(UTILLINUX_DIR)%, $(UTILLINUX-y))
 
+$(UTILLINUX_DIR)%.o: $(srcdir)/%.c
+       $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+
 ifneq ($(strip $(CONFIG_LFS)),y)
 ifeq ($(strip $(FDISK_SUPPORT_LARGE_DISKS)),y)
 
-$(UTILLINUX_DIR)fdisk.o: $(UTILLINUX_DIR)fdisk.c
+$(UTILLINUX_DIR)fdisk.o: $(srcdir)/fdisk.c
        $(CC) $(CFLAGS) \
                -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 \
                $(EXTRA_CFLAGS) -c -o $@ $<