From 7daa076d3e24e84ce1f4e9b6133783816575c4c8 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Fri, 8 Oct 2004 07:46:08 +0000 Subject: egor duda writes: 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 --- coreutils/Makefile | 12 +++++++----- coreutils/Makefile.in | 7 ++++++- coreutils/libcoreutils/Makefile | 13 ++++++++----- coreutils/libcoreutils/Makefile.in | 7 ++++++- 4 files changed, 27 insertions(+), 12 deletions(-) (limited to 'coreutils') diff --git a/coreutils/Makefile b/coreutils/Makefile index b42689a26..50fdac236 100644 --- a/coreutils/Makefile +++ b/coreutils/Makefile @@ -17,13 +17,15 @@ # 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) diff --git a/coreutils/Makefile.in b/coreutils/Makefile.in index a5343c9c7..aacb813b3 100644 --- a/coreutils/Makefile.in +++ b/coreutils/Makefile.in @@ -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 $@ $< + diff --git a/coreutils/libcoreutils/Makefile b/coreutils/libcoreutils/Makefile index 11867c602..0a1c80a41 100644 --- a/coreutils/libcoreutils/Makefile +++ b/coreutils/libcoreutils/Makefile @@ -17,13 +17,16 @@ # 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) diff --git a/coreutils/libcoreutils/Makefile.in b/coreutils/libcoreutils/Makefile.in index d0e8b3a05..cf83d7107 100644 --- a/coreutils/libcoreutils/Makefile.in +++ b/coreutils/libcoreutils/Makefile.in @@ -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 $@ $< + -- cgit v1.2.3