forked from SPRESENSE/nuttx
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDirectories.mk
167 lines (142 loc) · 4.29 KB
/
Directories.mk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
############################################################################
# tools/Directories.mk
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership. The
# ASF licenses this file to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance with the
# License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
############################################################################
# Lists of build directories.
#
# CONTEXTDIRS include directories that have special, one-time pre-build
# requirements. Normally this includes things like auto-generation of
# configuration specific files or creation of configurable symbolic links
# CLEANDIRS are the directories that the clean target will executed in.
# These are all directories that we know about.
# CCLEANDIRS are directories that the clean_context target will execute in.
# The clean_context target "undoes" the actions of the context target.
# Only directories known to require cleaning are included.
# KERNDEPDIRS are the directories in which we will build target dependencies.
# If NuttX and applications are built separately (CONFIG_BUILD_PROTECTED or
# CONFIG_BUILD_KERNEL), then this holds only the directories containing
# kernel files.
# USERDEPDIRS. If NuttX and applications are built separately (CONFIG_BUILD_PROTECTED),
# then this holds only the directories containing user files. If
# CONFIG_BUILD_KERNEL is selected, then applications are not build at all.
CLEANDIRS :=
CCLEANDIRS := boards $(APPDIR) graphics
KERNDEPDIRS :=
USERDEPDIRS :=
# In the protected build, the applications in the apps/ directory will be
# into the userspace; in the flat build, the applications will be built into
# the kernel space. But in the kernel build, the applications will not be
# built at all by this Makefile.
ifeq ($(CONFIG_BUILD_PROTECTED),y)
USERDEPDIRS += $(APPDIR)
else ifneq ($(CONFIG_BUILD_KERNEL),y)
KERNDEPDIRS += $(APPDIR)
else
CLEANDIRS += $(APPDIR)
endif
KERNDEPDIRS += sched drivers boards $(ARCH_SRC)
KERNDEPDIRS += fs binfmt
ifeq ($(EXTERNALDIR),external)
KERNDEPDIRS += external
endif
CONTEXTDIRS = boards drivers fs $(APPDIR) $(ARCH_SRC)
CLEANDIRS += pass1
ifeq ($(CONFIG_BUILD_FLAT),y)
KERNDEPDIRS += libs$(DELIM)libc mm
ifeq ($(CONFIG_HAVE_CXX),y)
KERNDEPDIRS += libs$(DELIM)libxx
else
CLEANDIRS += libs$(DELIM)libxx
endif
else
USERDEPDIRS += libs$(DELIM)libc mm
ifeq ($(CONFIG_HAVE_CXX),y)
USERDEPDIRS += libs$(DELIM)libxx
else
CLEANDIRS += libs$(DELIM)libxx
endif
endif
ifeq ($(CONFIG_LIB_SYSCALL),y)
CONTEXTDIRS += syscall
USERDEPDIRS += syscall
else
ifeq ($(CONFIG_SCHED_INSTRUMENTATION_SYSCALL),y)
CONTEXTDIRS += syscall
USERDEPDIRS += syscall
else
CLEANDIRS += syscall
endif
endif
CONTEXTDIRS += libs$(DELIM)libc
ifeq ($(CONFIG_HAVE_CXX),y)
CONTEXTDIRS += libs$(DELIM)libxx
endif
ifeq ($(CONFIG_NX),y)
KERNDEPDIRS += graphics
CONTEXTDIRS += graphics
else
CLEANDIRS += graphics
endif
ifeq ($(CONFIG_NXFONTS),y)
ifeq ($(CONFIG_BUILD_FLAT),y)
KERNDEPDIRS += libs$(DELIM)libnx
else
USERDEPDIRS += libs$(DELIM)libnx
endif
CONTEXTDIRS += libs$(DELIM)libnx
else
CLEANDIRS += libs$(DELIM)libnx
endif
ifeq ($(CONFIG_AUDIO),y)
KERNDEPDIRS += audio
else
CLEANDIRS += audio
endif
ifeq ($(CONFIG_VIDEO),y)
KERNDEPDIRS += video
else
CLEANDIRS += video
endif
ifeq ($(CONFIG_WIRELESS),y)
KERNDEPDIRS += wireless
else
CLEANDIRS += wireless
endif
ifeq ($(CONFIG_LIBDSP),y)
KERNDEPDIRS += libs$(DELIM)libdsp
else
CLEANDIRS += libs$(DELIM)libdsp
endif
# Add networking directories to KERNDEPDIRS and CLEANDIRS
ifeq ($(CONFIG_NET),y)
KERNDEPDIRS += net
else
CLEANDIRS += net
endif
ifeq ($(CONFIG_CRYPTO),y)
KERNDEPDIRS += crypto
else
CLEANDIRS += crypto
endif
ifeq ($(CONFIG_OPENAMP),y)
KERNDEPDIRS += openamp
CONTEXTDIRS += openamp
else
CLEANDIRS += openamp
endif
CLEANDIRS += $(KERNDEPDIRS) $(USERDEPDIRS)