zephyr/scripts/Makefile.preparch

112 lines
3.4 KiB
Makefile

ifneq ($(strip $(CONFIG_MAX_NUM_TASK_IRQS)),)
ifneq (${CONFIG_MAX_NUM_TASK_IRQS},0)
TASK_IRQS=y
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; \
cat $(PROJECT_BASE)/$(MDEF_FILE); \
cat $(srctree)/config/$(CONFIG_PLATFORM)/ukernel/config1p.mdef;)
endef
misc/generated/sysgen/prj.mdef: $(srctree)/config/$(CONFIG_PLATFORM)/ukernel/config1p.mdef \
$(PROJECT_BASE)/$(MDEF_FILE) \
include/config/auto.conf FORCE
$(call filechk,prj.mdef)
misc/generated/sysgen/kernel_main.c: misc/generated/sysgen/prj.mdef FORCE
$(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)
define filechk_offsets.h
(echo "/* THIS FILE IS AUTO-GENERATED. PLEASE DO NOT EDIT */"; \
echo; \
echo "/*"; \
echo " * This header file provides macros for the offsets of various structure"; \
echo " * members. These offset macros are primarily intended to be used in"; \
echo " * assembly code."; \
echo " */"; \
echo; \
echo "/*"; \
echo " * Auto-generated header guard."; \
echo " */"; \
echo "#ifndef _OFFSETS_H_"; \
echo "#define _OFFSETS_H_"; \
echo; \
echo "#ifdef __cplusplus"; \
echo "extern "C" {"; \
echo "#endif"; \
echo; \
echo "/* defines */"; \
echo; \
nm -g $(CURDIR)/include/generated/offsets.o | sed -n 's/^\([0-9a-z]*\)\s\w\s\(\S*\)$$/#define \2 0x\1/p'; \
echo; \
echo "#ifdef __cplusplus"; \
echo "}"; \
echo "#endif"; \
echo; \
echo "#endif /* _OFFSETS_H_ */";)
endef
include/generated/offsets.h: include/generated/offsets.o include/config/auto.conf FORCE
$(call filechk,offsets.h)
define rule_cc_o_c
$(call echo-cmd,cc_o_c) $(cmd_cc_o_c);
endef
OFFSETS_INCLUDE = $(strip \
-I $(srctree)/include \
-I $(CURDIR)/include/generated \
-I $(srctree)/kernel/microkernel/include \
-I $(srctree)/kernel/nanokernel/include \
-I $(srctree)/target/src/kernel/arch/common/include \
-I $(srctree)/lib/libc/minimal/include \
-I $(srctree)/arch/${SRCARCH}/include )
cmd_cc_o_c = $(CC) $(KBUILD_CFLAGS) $(OFFSETS_INCLUDE) $(USERINCLUDE) -c -o $@ $<
include/generated/offsets.o: $(srctree)/arch/$(SRCARCH)/core/offsets/offsets.c FORCE
$(call if_changed_rule,cc_o_c)
.PHONY: $(srctree)/config/$(CONFIG_PLATFORM)/ukernel/config1p.mdef