Kbuild: Output files at outdir directory.
This commit enables the outdir directory. Kbuild output files will be generated at the outdir directory inside the project directory. Change-Id: Icec04aca1753326c9d50dea20c71850c1d8c3dd0 Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
This commit is contained in:
parent
c6ebdf4b15
commit
988236f2b9
6 changed files with 30 additions and 26 deletions
40
Makefile.inc
40
Makefile.inc
|
@ -1,7 +1,7 @@
|
|||
PROJECT_BASE ?= $(shell pwd)
|
||||
ARCH?=x86
|
||||
|
||||
export ARCH VPFILE QEMU_EXTRA_FLAGS
|
||||
export ARCH VPFILE QEMU_EXTRA_FLAGS PROJECT_BASE
|
||||
|
||||
ifdef BSP_VARIANT
|
||||
VARIANT_STR=_$(BSP_VARIANT)
|
||||
|
@ -25,21 +25,19 @@ SOURCE_DIR=$(PROJECT_BASE)/src/
|
|||
export SOURCE_DIR
|
||||
endif
|
||||
|
||||
O ?= $(PROJECT_BASE)/outdir
|
||||
|
||||
CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
|
||||
else if [ -x /bin/bash ]; then echo /bin/bash; \
|
||||
else echo sh; fi ; fi)
|
||||
|
||||
all: $(CONFIG_DEPS)
|
||||
$(Q)$(MAKE) -C $(TIMO_BASE) O=$(PROJECT_BASE) \
|
||||
all: $(CONFIG_DEPS) $(O)/.dir
|
||||
$(Q)$(MAKE) -C $(TIMO_BASE) O=$(O) \
|
||||
PROJECT=$(PROJECT_BASE) SOURCE_DIR=$(SOURCE_DIR) CFLAGS=$(CFLAGS)
|
||||
|
||||
rm-files:= final-linker.cmd linker.cmd modules.order \
|
||||
staticIdt.o System.map *kernel.lnk \
|
||||
*kernel.map *kernel.elf qemu.pid \
|
||||
.tinymountain.cmd
|
||||
rm-files:= .config
|
||||
rm-objects:= *.o
|
||||
rm-dirs := arch drivers include kernel lib misc \
|
||||
scripts source net .tmp_versions
|
||||
rm-dirs := $(O)
|
||||
|
||||
cmd_clean_inner_files = \
|
||||
$(shell cd $(PROJECT_BASE);rm $(rm-files) -f; rm $(rm-dirs) -rf)
|
||||
|
@ -61,25 +59,30 @@ mrproper: FORCE
|
|||
$(Q)$(MAKE) -C $(TIMO_BASE) \
|
||||
PROJECT=$(PROJECT_BASE) mrproper
|
||||
|
||||
%config: FORCE
|
||||
$(Q)$(MAKE) -C $(TIMO_BASE) O=$(PROJECT_BASE) \
|
||||
%config: $(O)/.dir FORCE
|
||||
$(Q)$(MAKE) -C $(TIMO_BASE) O=$(O) \
|
||||
PROJECT=$(PROJECT_BASE) $@
|
||||
|
||||
qemu: $(CONFIG_DEPS)
|
||||
$(Q)$(MAKE) -C $(TIMO_BASE) O=$(PROJECT_BASE) \
|
||||
PROJECT=$(PROJECT_BASE) SOURCE_DIR=$(SOURCE_DIR) qemu
|
||||
qemu: $(CONFIG_DEPS) $(O)/.dir
|
||||
$(Q)$(MAKE) -C $(TIMO_BASE) O=$(O) \
|
||||
PROJECT=$(PROJECT_BASE) SOURCE_DIR=$(SOURCE_DIR) CFLAGS=$(CFLAGS) qemu
|
||||
|
||||
initconfig:
|
||||
initconfig: $(O)/.dir
|
||||
set -e;
|
||||
$(Q)test -s .config || $(Q) $(MAKE) -C $(TIMO_BASE) O=$(PROJECT_BASE) \
|
||||
$(Q)test -s $(O)/.config || $(Q) $(MAKE) -C $(TIMO_BASE) O=$(O) \
|
||||
PROJECT=$(PROJECT_BASE) defconfig
|
||||
ifneq (($strip $(CONF_FILE)),)
|
||||
$(Q)$(CONFIG_SHELL) $(TIMO_BASE)/scripts/kconfig/merge_config.sh \
|
||||
-m -O $(PROJECT_BASE) $(PROJECT_BASE)/.config $(CONF_FILE)
|
||||
-m -O $(O) $(O)/.config $(CONF_FILE)
|
||||
endif
|
||||
$(Q)yes "" | $(MAKE) -C $(TIMO_BASE) O=$(PROJECT_BASE) \
|
||||
$(Q)yes "" | $(MAKE) -C $(TIMO_BASE) O=$(O) \
|
||||
PROJECT=$(PROJECT_BASE) oldconfig
|
||||
|
||||
%/.dir:
|
||||
set -e;
|
||||
$(Q)test -s $(abspath $(dir $@)) || $(Q)mkdir $(abspath $(dir $@))
|
||||
@touch $@
|
||||
|
||||
help:
|
||||
$(Q)$(MAKE) -C $(TIMO_BASE) help
|
||||
|
||||
|
@ -87,3 +90,4 @@ PHONY += FORCE clean mrproper
|
|||
FORCE:
|
||||
|
||||
.PHONY: $(PHONY)
|
||||
.PRECIOUS: %/.dir
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
EXTRA_CFLAGS += -I$(CURDIR)/misc/generated/nodes
|
||||
EXTRA_CFLAGS += -I$(CURDIR)/../latency_measure/src
|
||||
EXTRA_CFLAGS += -I$(CURDIR)/../../latency_measure/src
|
||||
|
||||
obj-y := fifo_b.o mailbox_b.o master.o mempool_b.o \
|
||||
nop_b.o pipe_r.o sema_r.o event_b.o \
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
PC8253_BSP_VARIANTS=generic_pc pentium4 minuteia
|
||||
|
||||
BSP ?= generic_pc
|
||||
VPFILE = $(TIMO_BASE)/samples/microkernel/benchmark/sys_kernel/prj.vpf
|
||||
VPFILE = prj.vpf
|
||||
KERNEL_TYPE = micro
|
||||
CONF_FILE = prj_console_$(if $(filter $(BSP),$(PC8253_BSP_VARIANTS)),pc8253,generic).conf
|
||||
SOURCE_DIR = $(TIMO_BASE)/samples/nanokernel/benchmark/sys_kernel/src/
|
||||
|
|
|
@ -28,13 +28,13 @@ define filechk_prj.vpf
|
|||
i=$$(($$i+1));\
|
||||
done; \
|
||||
fi; \
|
||||
cat $(VPFILE); \
|
||||
cat $(PROJECT_BASE)/$(VPFILE); \
|
||||
cat $(srctree)/config/$(CONFIG_BSP_DIR)/ukernel/config1p.vpf;)
|
||||
endef
|
||||
|
||||
#Specific source code generation for Viper
|
||||
misc/generated/nodes/prj.vpf: $(srctree)/config/$(CONFIG_BSP_DIR)/ukernel/config1p.vpf \
|
||||
$(VPFILE) \
|
||||
$(PROJECT_BASE)/$(VPFILE) \
|
||||
include/config/auto.conf FORCE
|
||||
$(call filechk,prj.vpf)
|
||||
|
||||
|
|
|
@ -352,7 +352,7 @@ build_project() {
|
|||
[ $? -eq 0 ] || fail_exit $? $FUNCNAME $LINENO
|
||||
|
||||
if [ x$2 == x ] ; then
|
||||
elf_name=`${LS} ${PRJ_TYPE[$1]}.elf`
|
||||
elf_name=`${LS} outdir/${PRJ_TYPE[$1]}.elf`
|
||||
[ x${elf_name} != "x" ] || \
|
||||
fail_exit $? $FUNCNAME $LINENO "couldn't build ${proj_name}"
|
||||
fi
|
||||
|
@ -408,12 +408,12 @@ qemu_project() {
|
|||
# get QEMU's pid
|
||||
# (wait for QEMU process to be spawned by examining list of tasks
|
||||
# associated with this script's terminal, then grab the pid)
|
||||
while ! [ -f qemu.pid ]
|
||||
while ! [ -f outdir/qemu.pid ]
|
||||
do
|
||||
${SLEEP} 1
|
||||
done
|
||||
|
||||
qemu_pid=$(<qemu.pid)
|
||||
qemu_pid=$(<outdir/qemu.pid)
|
||||
|
||||
# assume execution will fail
|
||||
let RESULT=1
|
||||
|
|
|
@ -243,7 +243,7 @@ main() {
|
|||
${ECHO} "target: ${BSP_INFO[${cur_proj}]}"
|
||||
${ECHO} "arguments: ${PRJ_ARGS[$cur_proj]}"
|
||||
${ECHO}
|
||||
${SIZE} *.elf
|
||||
${SIZE} outdir/*.elf
|
||||
${ECHO}
|
||||
fi
|
||||
done
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue