diff options
author | Anas Nashif <anas.nashif@intel.com> | 2015-08-28 14:23:30 -0400 |
---|---|---|
committer | Anas Nashif <anas.nashif@intel.com> | 2016-02-05 20:15:33 -0500 |
commit | cec625afc46c6444af39293b4a5bd41effca1448 (patch) | |
tree | e6e286a9ea8a766f86dadea5688271474c7253a4 /Kbuild | |
parent | 59302df0f6e6474fd3d3c03049b11b367bc6723f (diff) |
Move sysgen hooks and file generation to top-level Kbuild
Change-Id: Icb06c0e041e08863947c7b31d843771c3f2c6a0c
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Diffstat (limited to 'Kbuild')
-rw-r--r-- | Kbuild | 98 |
1 files changed, 97 insertions, 1 deletions
@@ -1,2 +1,98 @@ -# The build system expects this file +# vim: filetype=make + +ifneq ($(strip $(CONFIG_MAX_NUM_TASK_IRQS)),) +ifneq (${CONFIG_MAX_NUM_TASK_IRQS},0) +TASK_IRQS=y +endif +endif + +ifneq ("$(wildcard $(MDEF_FILE))","") +MDEF_FILE_PATH=$(MDEF_FILE) +else +MDEF_FILE_PATH=$(PROJECT_BASE)/$(MDEF_FILE) +endif + +define filechk_prj.mdef + (echo "% WARNING. THIS FILE IS AUTO-GENERATED. DO NOT MODIFY!"; \ + echo; \ + echo "% CONFIG NUM_COMMAND_PACKETS NUM_TIMER_PACKETS NUM_TASK_PRIORITIES"; \ + echo "% ============================================================="; \ + echo " CONFIG ${CONFIG_NUM_COMMAND_PACKETS} ${CONFIG_NUM_TIMER_PACKETS} ${CONFIG_NUM_TASK_PRIORITIES}"; \ + echo; \ + echo "% TASKGROUP NAME";\ + echo "% ==============";\ + echo " TASKGROUP EXE";\ + echo " TASKGROUP SYS";\ + echo " TASKGROUP FPU";\ + echo " TASKGROUP SSE";\ + echo; \ + if test "$(TASK_IRQS)" = "y"; then \ + echo "% Task IRQ objects";\ + echo "% EVENT NAME HANDLER"; \ + echo "% ======================================="; \ + i=0; \ + while [ $$i -lt $(CONFIG_MAX_NUM_TASK_IRQS) ]; do \ + echo " EVENT _TaskIrqEvt$$i NULL"; \ + i=$$(($$i+1));\ + done; \ + fi; \ + cat $(MDEF_FILE_PATH);) +endef + +misc/generated/sysgen/prj.mdef: $(MDEF_FILE_PATH) \ + include/config/auto.conf FORCE + $(call filechk,prj.mdef) + +misc/generated/sysgen/kernel_main.c: misc/generated/sysgen/prj.mdef + $(Q)$(srctree)/scripts/sysgen $(CURDIR)/misc/generated/sysgen/prj.mdef $(CURDIR)/misc/generated/sysgen/ + +define filechk_configs.c + (echo "/* file is auto-generated, do not modify ! */"; \ + echo; \ + echo "#include <toolchain.h>"; \ + echo; \ + echo "GEN_ABS_SYM_BEGIN (_ConfigAbsSyms)"; \ + echo; \ + cat $(CURDIR)/include/generated/autoconf.h | sed \ + 's/".*"/1/' | awk \ + '/#define/{printf "GEN_ABSOLUTE_SYM(%s, %s);\n", $$2, $$3}'; \ + echo; \ + echo "GEN_ABS_SYM_END";) +endef + +misc/generated/configs.c: include/config/auto.conf FORCE + $(call filechk,configs.c) + +targets := misc/generated/configs.c +targets += include/generated/offsets.h + + +always := misc/generated/configs.c +always += include/generated/offsets.h + +ifeq ($(CONFIG_MICROKERNEL),y) +targets += misc/generated/sysgen/kernel_main.c +always += misc/generated/sysgen/kernel_main.c +endif + +define rule_cc_o_c_1 + $(call echo-cmd,cc_o_c_1) $(cmd_cc_o_c_1); +endef + +OFFSETS_INCLUDE = $(strip \ + -I $(srctree)/include \ + -I $(CURDIR)/include/generated \ + -I $(srctree)/kernel/microkernel/include \ + -I $(srctree)/kernel/nanokernel/include \ + -I $(srctree)/lib/libc/minimal/include \ + -I $(srctree)/arch/${SRCARCH}/include ) + +cmd_cc_o_c_1 = $(CC) $(KBUILD_CFLAGS) $(OFFSETS_INCLUDE) -include $(CURDIR)/include/generated/autoconf.h $(USERINCLUDE) -c -o $@ $< + +arch/$(SRCARCH)/core/offsets/offsets.o: arch/$(SRCARCH)/core/offsets/offsets.c + $(Q)mkdir -p $(dir $@) + $(call if_changed_rule,cc_o_c_1) + +$(obj)/include/generated/offsets.h: $(GENOFFSET_H) arch/$(SRCARCH)/core/offsets/offsets.o include/config/auto.conf FORCE + $(Q)$(GENOFFSET_H) -i arch/$(SRCARCH)/core/offsets/offsets.o -o $@ |