Add support for a saving build objects in a separate directory.
Modifications are based on the linux kernel approach and support two use cases: 1) Add O= to the make command line 'make O=/tmp/build all' 2) Set environement variable BUILD_DIR to point to the desired location 'export BUILD_DIR=/tmp/build' 'make' The second approach can also be used with a MAKEALL script 'export BUILD_DIR=/tmp/build' './MAKEALL' Command line 'O=' setting overrides BUILD_DIR environent variable. When none of the above methods is used the local build is performed and the object files are placed in the source directory.
This commit is contained in:
45
config.mk
45
config.mk
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# (C) Copyright 2000
|
||||
# (C) Copyright 2000-2006
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
#
|
||||
# See file CREDITS for list of people who contributed to this
|
||||
@@ -23,6 +23,22 @@
|
||||
|
||||
#########################################################################
|
||||
|
||||
ifneq ($(OBJTREE),$(SRCTREE))
|
||||
ifeq ($(CURDIR),$(SRCTREE))
|
||||
dir :=
|
||||
else
|
||||
dir := $(subst $(SRCTREE)/,,$(CURDIR))
|
||||
endif
|
||||
|
||||
obj := $(if $(dir),$(OBJTREE)/$(dir)/,$(OBJTREE)/)
|
||||
src := $(if $(dir),$(SRCTREE)/$(dir)/,$(SRCTREE)/)
|
||||
|
||||
$(shell mkdir -p $(obj))
|
||||
else
|
||||
obj :=
|
||||
src :=
|
||||
endif
|
||||
|
||||
# clean the slate ...
|
||||
PLATFORM_RELFLAGS =
|
||||
PLATFORM_CPPFLAGS =
|
||||
@@ -124,9 +140,14 @@ gccincdir := $(shell $(CC) -print-file-name=include)
|
||||
|
||||
CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS) \
|
||||
-D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE) \
|
||||
-I$(TOPDIR)/include \
|
||||
-fno-builtin -ffreestanding -nostdinc -isystem \
|
||||
$(gccincdir) -pipe $(PLATFORM_CPPFLAGS)
|
||||
|
||||
ifneq ($(OBJTREE),$(SRCTREE))
|
||||
CPPFLAGS += -I$(OBJTREE)/include2 -I$(OBJTREE)/include
|
||||
endif
|
||||
|
||||
CPPFLAGS += -I$(TOPDIR)/include
|
||||
CPPFLAGS += -fno-builtin -ffreestanding -nostdinc \
|
||||
-isystem $(gccincdir) -pipe $(PLATFORM_CPPFLAGS)
|
||||
|
||||
ifdef BUILD_TAG
|
||||
CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes \
|
||||
@@ -192,11 +213,23 @@ export TEXT_BASE PLATFORM_CPPFLAGS PLATFORM_RELFLAGS CPPFLAGS CFLAGS AFLAGS
|
||||
|
||||
#########################################################################
|
||||
|
||||
ifndef REMOTE_BUILD
|
||||
|
||||
%.s: %.S
|
||||
$(CPP) $(AFLAGS) -o $@ $(CURDIR)/$<
|
||||
$(CPP) $(AFLAGS) -o $@ $<
|
||||
%.o: %.S
|
||||
$(CC) $(AFLAGS) -c -o $@ $(CURDIR)/$<
|
||||
$(CC) $(AFLAGS) -c -o $@ $<
|
||||
%.o: %.c
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
else
|
||||
|
||||
$(obj)%.s: %.S
|
||||
$(CPP) $(AFLAGS) -o $@ $<
|
||||
$(obj)%.o: %.S
|
||||
$(CC) $(AFLAGS) -c -o $@ $<
|
||||
$(obj)%.o: %.c
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
endif
|
||||
|
||||
#########################################################################
|
||||
|
||||
Reference in New Issue
Block a user