现在的位置: 首页 > 综合 > 正文

The Contiki build system

2019年07月18日 ⁄ 综合 ⁄ 共 2269字 ⁄ 字号 评论关闭

The Contiki build system
========================

Makefiles used in the Contiki build system The Contiki build system is composed
of a number of Makefiles. These are:

* Makefile: the project's makefile, located in the project directory.

* Makefile.include: the system-wide Contiki makefile, located in the root of
  the Contiki source tree.

* Makefile.$(TARGET) (where $(TARGET) is the name of the platform that is
  currently being built): rules for the specific platform, located in the
  platform's subdirectory in the platform/ directory.

* Makefile.$(CPU) (where $(CPU) is the name of the CPU or microcontroller
  architecture used on the platform for which Contiki is built): rules for the
  CPU architecture, located in the CPU architecture's subdirectory in the cpu/
  directory.

* Makefile.$(APP) (where $(APP) is the name of an application in the apps/
  directory): rules for applications in the apps/ directories. Each application
  has its own makefile.

The Makefile in the project's directory is intentionally simple. It specifies
where the Contiki source code resides in the system and includes the
system-wide Makefile, Makefile.include. The project's makefile can also define
in the APPS variable a list of applications from the apps/ directory that
should be included in the Contiki system. The Makefile used in the hello-world
example project looks like this:

    CONTIKI_PROJECT = hello-world
    all: $(CONTIKI_PROJECT)

    CONTIKI = ../..
    include $(CONTIKI)/Makefile.include

First, the location of the Contiki source code tree is given by defining the
CONTIKI variable. Next, the name of the application is defined. Finally, the
system-wide Makefile.include is included.

The Makefile.include contains definitions of the C files of the core Contiki
system. Makefile.include always reside in the root of the Contiki source tree.
When make is run, Makefile.include includes the Makefile.$(TARGET) as well as
all makefiles for the applications in the APPS list (which is specified by the
project's Makefile).

Makefile.$(TARGET), which is located in the platform/$(TARGET)/ directory,
contains the list of C files that the platform adds to the Contiki system. This
list is defined by the CONTIKI_TARGET_SOURCEFILES variable. The
Makefile.$(TARGET) also includes the Makefile.$(CPU) from the cpu/$(CPU)/
directory.

The Makefile.$(CPU) typically contains definitions for the C compiler used for
the particular CPU. If multiple C compilers are used, the Makefile.$(CPU) can
either contain a conditional expression that allows different C compilers to be
defined, or it can be completely overridden by the platform specific makefile
Makefile.$(TARGET).

抱歉!评论已关闭.