Browse Source

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>
pull/255/head
Juan Manuel Cruz 10 years ago committed by Anas Nashif
parent
commit
988236f2b9
  1. 40
      Makefile.inc
  2. 2
      samples/microkernel/benchmark/app_kernel/src/Makefile
  3. 2
      samples/microkernel/benchmark/sys_kernel/Makefile
  4. 4
      scripts/Makefile.preparch
  5. 6
      scripts/sanity_chk/common.defs
  6. 2
      scripts/sanity_chk/footprint_chk

40
Makefile.inc

@ -1,7 +1,7 @@ @@ -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/ @@ -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 @@ -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 @@ -87,3 +90,4 @@ PHONY += FORCE clean mrproper
FORCE:
.PHONY: $(PHONY)
.PRECIOUS: %/.dir

2
samples/microkernel/benchmark/app_kernel/src/Makefile

@ -1,5 +1,5 @@ @@ -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 \

2
samples/microkernel/benchmark/sys_kernel/Makefile

@ -1,7 +1,7 @@ @@ -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/

4
scripts/Makefile.preparch

@ -28,13 +28,13 @@ define filechk_prj.vpf @@ -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)

6
scripts/sanity_chk/common.defs

@ -352,7 +352,7 @@ build_project() { @@ -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() { @@ -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

2
scripts/sanity_chk/footprint_chk

@ -243,7 +243,7 @@ main() { @@ -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…
Cancel
Save