\r
\r
-EXAMPLENAME=blinker\r
+PROJECTNAME=blinker\r
ROOTDIR?=../../../..\r
-include $(ROOTDIR)/examples/build_example.mk\r
+include $(ROOTDIR)/scripts/project_defaults.mk\r
\r
ifneq (${MAKELEVEL},0) \r
\r
-# object files\r
-obj-y += Tasks.o\r
+ # object files\r
+ obj-y += Tasks.o\r
+\r
+ VPATH += $(ROOTDIR)/examples\r
+ VPATH += $(ROOTDIR)/examples/$(PROJECTNAME)\r
\r
endif\r
\r
\r
\r
-EXAMPLENAME=os_simple\r
+PROJECTNAME=os_simple\r
ROOTDIR?=../../../..\r
-include $(ROOTDIR)/examples/build_example.mk\r
+include $(ROOTDIR)/scripts/project_defaults.mk\r
\r
ifneq (${MAKELEVEL},0) \r
\r
-# object files\r
-obj-y += os_simple.o\r
-obj-y += system_hooks.o\r
+ # object files\r
+ obj-y += os_simple.o\r
+ obj-y += system_hooks.o\r
+ \r
+ VPATH += $(ROOTDIR)/examples\r
+ VPATH += $(ROOTDIR)/examples/$(PROJECTNAME)\r
\r
endif\r
\r
\r
\r
-EXAMPLENAME=ledmaster\r
+PROJECTNAME=ledmaster\r
ROOTDIR?=../../../..\r
-include $(ROOTDIR)/examples/build_example.mk\r
+include $(ROOTDIR)/scripts/project_defaults.mk\r
\r
ifneq (${MAKELEVEL},0) \r
\r
-# object files\r
-obj-y += Tasks.o\r
+ # object files\r
+ obj-y += Tasks.o\r
+ \r
+ VPATH += $(ROOTDIR)/examples\r
+ VPATH += $(ROOTDIR)/examples/$(PROJECTNAME)\r
\r
endif\r
\r
\r
\r
-EXAMPLENAME=os_simple\r
+PROJECTNAME=os_simple\r
ROOTDIR?=../../../..\r
-include $(ROOTDIR)/examples/build_example.mk\r
+include $(ROOTDIR)/scripts/project_defaults.mk\r
\r
ifneq (${MAKELEVEL},0) \r
\r
-# object files\r
-obj-y += os_simple.o\r
-obj-y += system_hooks.o\r
+ # object files\r
+ obj-y += os_simple.o\r
+ obj-y += system_hooks.o\r
+ \r
+ VPATH += $(ROOTDIR)/examples\r
+ VPATH += $(ROOTDIR)/examples/$(PROJECTNAME)\r
\r
endif\r
\r
\r
\r
-EXAMPLENAME=os_simple\r
+PROJECTNAME=os_simple\r
ROOTDIR?=../../../..\r
-include $(ROOTDIR)/examples/build_example.mk\r
+include $(ROOTDIR)/scripts/project_defaults.mk\r
\r
ifneq (${MAKELEVEL},0) \r
\r
-# object files\r
-obj-y += os_simple.o\r
-obj-y += system_hooks.o\r
+ # object files\r
+ obj-y += os_simple.o\r
+ obj-y += system_hooks.o\r
+ \r
+ VPATH += $(ROOTDIR)/examples\r
+ VPATH += $(ROOTDIR)/examples/$(PROJECTNAME)\r
\r
endif\r
\r
\r
-EXAMPLENAME=kernel_extra\r
+PROJECTNAME=kernel_extra\r
ROOTDIR?=../../../..\r
-include $(ROOTDIR)/examples/build_example.mk\r
+include $(ROOTDIR)/scripts/project_defaults.mk\r
\r
ifneq (${MAKELEVEL},0) \r
\r
-# object files\r
-obj-y += system_hooks.o\r
-obj-y += os_kernel_extra.o\r
+ # object files\r
+ obj-y += system_hooks.o\r
+ obj-y += os_kernel_extra.o\r
+ \r
+ VPATH += $(ROOTDIR)/examples\r
+ VPATH += $(ROOTDIR)/examples/$(PROJECTNAME)\r
\r
endif \r
\r
\r
\r
-EXAMPLENAME=schedule_table\r
+PROJECTNAME=schedule_table\r
ROOTDIR?=../../../..\r
-include $(ROOTDIR)/examples/build_example.mk\r
+include $(ROOTDIR)/scripts/project_defaults.mk\r
\r
ifneq (${MAKELEVEL},0) \r
\r
-# object files\r
-obj-y += os_schtbl.o\r
-obj-y += system_hooks.o\r
+ # object files\r
+ obj-y += os_schtbl.o\r
+ obj-y += system_hooks.o\r
+ \r
+ VPATH += $(ROOTDIR)/examples\r
+ VPATH += $(ROOTDIR)/examples/$(PROJECTNAME)\r
\r
endif\r
\r
\r
\r
-EXAMPLENAME=os_simple\r
+PROJECTNAME=os_simple\r
ROOTDIR?=../../../..\r
-include $(ROOTDIR)/examples/build_example.mk\r
+include $(ROOTDIR)/scripts/project_defaults.mk\r
\r
ifneq (${MAKELEVEL},0) \r
\r
-# object files\r
-obj-y += os_simple.o\r
-obj-y += system_hooks.o\r
+ # object files\r
+ obj-y += os_simple.o\r
+ obj-y += system_hooks.o\r
+ \r
+ VPATH += $(ROOTDIR)/examples\r
+ VPATH += $(ROOTDIR)/examples/$(PROJECTNAME)\r
\r
endif\r
\r
\r
\r
-EXAMPLENAME=os_simple\r
+PROJECTNAME=os_simple\r
ROOTDIR?=../../../..\r
-include $(ROOTDIR)/examples/build_example.mk\r
+include $(ROOTDIR)/scripts/project_defaults.mk\r
\r
ifneq (${MAKELEVEL},0) \r
\r
-# object files\r
-obj-y += os_simple.o\r
-obj-y += system_hooks.o\r
+ # object files\r
+ obj-y += os_simple.o\r
+ obj-y += system_hooks.o\r
+ \r
+ VPATH += $(ROOTDIR)/examples\r
+ VPATH += $(ROOTDIR)/examples/$(PROJECTNAME)\r
\r
endif\r
\r
\r
\r
-EXAMPLENAME=os_simple\r
+PROJECTNAME=os_simple\r
ROOTDIR?=../../../..\r
-include $(ROOTDIR)/examples/build_example.mk\r
+include $(ROOTDIR)/scripts/project_defaults.mk\r
\r
ifneq (${MAKELEVEL},0) \r
\r
-# object files\r
-obj-y += os_simple.o\r
-obj-y += system_hooks.o\r
+ # object files\r
+ obj-y += os_simple.o\r
+ obj-y += system_hooks.o\r
+ \r
+ VPATH += $(ROOTDIR)/examples\r
+ VPATH += $(ROOTDIR)/examples/$(PROJECTNAME)\r
\r
endif\r
\r
\r
\r
-EXAMPLENAME=os_simple\r
+PROJECTNAME=os_simple\r
ROOTDIR?=../../../..\r
-include $(ROOTDIR)/examples/build_example.mk\r
+include $(ROOTDIR)/scripts/project_defaults.mk\r
\r
ifneq (${MAKELEVEL},0) \r
\r
-# object files\r
-obj-y += os_simple.o\r
-obj-y += system_hooks.o\r
+ # object files\r
+ obj-y += os_simple.o\r
+ obj-y += system_hooks.o\r
+ \r
+ VPATH += $(ROOTDIR)/examples\r
+ VPATH += $(ROOTDIR)/examples/$(PROJECTNAME)\r
\r
endif\r
\r
\r
\r
-EXAMPLENAME=os_simple\r
+PROJECTNAME=os_simple\r
ROOTDIR?=../../../..\r
-include $(ROOTDIR)/examples/build_example.mk\r
+include $(ROOTDIR)/scripts/project_defaults.mk\r
\r
ifneq (${MAKELEVEL},0) \r
\r
-# object files\r
-obj-y += os_simple.o\r
-obj-y += system_hooks.o\r
+ # object files\r
+ obj-y += os_simple.o\r
+ obj-y += system_hooks.o\r
+ \r
+ VPATH += $(ROOTDIR)/examples\r
+ VPATH += $(ROOTDIR)/examples/$(PROJECTNAME)\r
\r
endif\r
\r
\r
\r
-EXAMPLENAME=rte_simple\r
+PROJECTNAME=rte_simple\r
ROOTDIR?=../../../..\r
-include $(ROOTDIR)/examples/build_example.mk\r
+include $(ROOTDIR)/scripts/project_defaults.mk\r
include $(ROOTDIR)/examples/rte_simple/rte_simple.mk\r
\r
ifneq (${MAKELEVEL},0) \r
\r
-# object files\r
-PROJECT_C_FILES=$(notdir $(wildcard ../*.c))\r
-obj-y += $(PROJECT_C_FILES:%.c=%.o)\r
+ # object files\r
+ PROJECT_C_FILES=$(notdir $(wildcard ../*.c))\r
+ obj-y += $(PROJECT_C_FILES:%.c=%.o)\r
+ \r
+ VPATH += $(ROOTDIR)/examples\r
+ VPATH += $(ROOTDIR)/examples/$(PROJECTNAME)\r
\r
endif\r
\r
#\r
-# This makefile helps to build the examples. It tries to figure out if \r
+# Default build settings. Included in project makefile\r
+#\r
+# This makefile also helps to build the examples. It tries to figure out if \r
# it is an in-tree-build or if it is a seperate project (it's then invoked \r
# from the top makefile) \r
#\r
\r
-ifndef EXAMPLENAME\r
-$(error EXAMPLENAME is not set. . This makefile is invoked the wrong way))\r
+ifndef PROJECTNAME\r
+$(error PROJECTNAME is not set. . This makefile is invoked the wrong way))\r
endif\r
\r
ifndef ROOTDIR\r
$(error ROOTDIR is not set. This makefile is invoked the wrong way)\r
endif\r
\r
-ifeq (${MAKELEVEL},0)\r
-BUILD_IN_TREE=y\r
+ifneq (${MAKELEVEL},0)\r
+\r
+#####################################################################\r
+# Default settings\r
+#####################################################################\r
+\r
+ VPATH += ..\r
+ inc-y += $(ROOTDIR)/system/kernel/$(objdir)\r
+ inc-y += $(ROOTDIR)/system/kernel/include\r
+ \r
+ # The more precise configuration, the higher preceedance.\r
+ VPATH := ../config/$(BOARDDIR) ../config $(VPATH)\r
+ inc-y := ../config/$(BOARDDIR) ../config $(inc-y)\r
+\r
+ ldcmdfile-y = linkscript_$(COMPILER).lcf\r
+ vpath %.ldf $(ROOTDIR)/$(ARCH_PATH-y)/scripts\r
+\r
+ # What I want to build\r
+ build-exe-y = $(PROJECTNAME).elf\r
+\r
+\r
+else\r
+\r
+#####################################################################\r
+# In-tree-build (for examples)\r
+#####################################################################\r
\r
+ BUILD_IN_TREE=y\r
ifneq ($(BOARDDIR),)\r
$(warning BOARDDIR defined in an in-tree-build)\r
endif\r
\r
+ # Try to get name of board\r
boardpath=$(realpath $(CURDIR)/../..)\r
boarddir=$(subst $(realpath $(ROOTDIR)/boards)/,,$(boardpath))\r
-endif\r
-\r
-ifeq (${BUILD_IN_TREE},y) \r
-\r
-export example:=$(subst $(abspath $(CURDIR)/..)/,,$(CURDIR))\r
\r
+ # Redirect to normal build\r
.PHONY: all clean\r
all:\r
@echo "==========[ Building \"$(example)\" ]=========="\r
$(Q)rm -rf obj_$(boarddir)\r
@echo done!\r
\r
-else \r
-export example:=$(EXAMPLENAME)\r
-endif\r
-\r
-ifneq (${MAKELEVEL},0)\r
-\r
-VPATH += ..\r
-VPATH += ../config\r
-VPATH += $(ROOTDIR)/examples\r
-VPATH += $(ROOTDIR)/examples/$(example)\r
-inc-y += ..\r
-inc-y += ../config\r
-\r
-ldcmdfile-y = linkscript_$(COMPILER).lcf\r
-vpath %.ldf $(ROOTDIR)/$(ARCH_PATH-y)/scripts\r
- \r
-# What I want to build\r
-build-exe-y = $(EXAMPLENAME).elf\r
-\r
endif\r
\r