# 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=$(strip $(MDEF_FILE)) else ifneq ($(MDEF_FILE),) MDEF_FILE_PATH=$(strip $(PROJECT_BASE)/$(MDEF_FILE)) endif 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; \ if test -e "$(MDEF_FILE_PATH)"; then \ cat $(MDEF_FILE_PATH); \ fi;) 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 "; \ 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 \ -include $(CURDIR)/include/generated/autoconf.h \ -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/${ARCH}/include ) cmd_cc_o_c_1 = $(CC) $(KBUILD_CFLAGS) $(OFFSETS_INCLUDE) -c -o $@ $< arch/$(ARCH)/core/offsets/offsets.o: arch/$(ARCH)/core/offsets/offsets.c $(Q)mkdir -p $(dir $@) $(call if_changed,cc_o_c_1) define offsetchk $(Q)set -e; \ $(kecho) ' CHK $@'; \ mkdir -p $(dir $@); \ $(GENOFFSET_H) -i $(1) -o $@.tmp; \ if [ -r $@ ] && cmp -s $@ $@.tmp; then \ rm -f $@.tmp; \ else \ $(kecho) ' UPD $@'; \ mv -f $@.tmp $@; \ fi endef include/generated/offsets.h: arch/$(ARCH)/core/offsets/offsets.o \ include/config/auto.conf FORCE $(call offsetchk,arch/$(ARCH)/core/offsets/offsets.o)