summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-08-30 09:57:44 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-08-30 09:57:44 -0600
commit1d19f1a16f4dac43bf0f9b00eca9fa5cb2d60953 (patch)
tree23ea0518973f1f8be02df8bed13187e2db15426a
parent489f661ddac1b60e10e94c2d212b958b23dc26a7 (diff)
downloadnuttx-1d19f1a16f4dac43bf0f9b00eca9fa5cb2d60953.tar.gz
nuttx-1d19f1a16f4dac43bf0f9b00eca9fa5cb2d60953.tar.bz2
nuttx-1d19f1a16f4dac43bf0f9b00eca9fa5cb2d60953.zip
Move Makefile directory selections to a separate makefile fragment
-rw-r--r--nuttx/Directories.mk164
-rw-r--r--nuttx/Makefile.unix105
-rw-r--r--nuttx/Makefile.win97
3 files changed, 181 insertions, 185 deletions
diff --git a/nuttx/Directories.mk b/nuttx/Directories.mk
new file mode 100644
index 000000000..9f175a675
--- /dev/null
+++ b/nuttx/Directories.mk
@@ -0,0 +1,164 @@
+############################################################################
+# Directories.mk
+#
+# Copyright (C) 2007-2012, 2014 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <gnutt@nuttx.org>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# 3. Neither the name NuttX nor the names of its contributors may be
+# used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+############################################################################
+
+# All add-on directories.
+#
+# NUTTX_ADDONS is the list of directories built into the NuttX kernel.
+# USER_ADDONS is the list of directories that will be built into the user
+# application
+
+NUTTX_ADDONS :=
+USER_ADDONS :=
+
+# In the protected build, the applications in the apps/ directory will be
+# into the userspace; in the flat build, the applications will b 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)
+USER_ADDONS += $(APPDIR)
+else
+ifneq ($(CONFIG_BUILD_KERNEL),y)
+NUTTX_ADDONS += $(APPDIR)
+endif
+endif
+
+# Lists of build directories.
+#
+# FSDIRS depend on file descriptor support; NONFSDIRS do not (except for parts
+# of FSDIRS). We will exclude FSDIRS from the build if file descriptor
+# support is disabled
+# 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
+# USERDIRS - When NuttX is build is a monolithic kernel, this provides the
+# list of directories that must be built
+# OTHERDIRS - These are directories that are not built but probably should
+# be cleaned to prevent garbage from collecting in them when changing
+# configurations.
+
+NONFSDIRS = sched $(ARCH_SRC) $(NUTTX_ADDONS)
+FSDIRS = fs drivers binfmt
+CONTEXTDIRS = $(APPDIR)
+USERDIRS =
+OTHERDIRS = lib
+
+ifeq ($(CONFIG_BUILD_PROTECTED),y)
+
+USERDIRS += libc mm $(USER_ADDONS)
+ifeq ($(CONFIG_HAVE_CXX),y)
+USERDIRS += libxx
+endif
+
+else
+ifeq ($(CONFIG_BUILD_KERNEL),y)
+
+USERDIRS += libc mm
+ifeq ($(CONFIG_HAVE_CXX),y)
+USERDIRS += libxx
+endif
+
+else
+
+NONFSDIRS += libc mm
+OTHERDIRS += $(USER_ADDONS)
+ifeq ($(CONFIG_HAVE_CXX),y)
+NONFSDIRS += libxx
+else
+OTHERDIRS += libxx
+endif
+
+endif
+endif
+
+ifeq ($(CONFIG_LIB_SYSCALL),y)
+NONFSDIRS += syscall
+CONTEXTDIRS += syscall
+USERDIRS += syscall
+else
+OTHERDIRS += syscall
+endif
+
+ifeq ($(CONFIG_NX),y)
+NONFSDIRS += graphics libnx
+CONTEXTDIRS += graphics libnx
+else
+OTHERDIRS += graphics libnx
+endif
+
+ifeq ($(CONFIG_AUDIO),y)
+NONFSDIRS += audio
+else
+OTHERDIRS += audio
+endif
+
+# CLEANDIRS are the directories that will clean in. These are
+# all directories that we know about.
+# 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 = $(NONFSDIRS) $(FSDIRS) $(USERDIRS) $(OTHERDIRS)
+KERNDEPDIRS = $(NONFSDIRS)
+USERDEPDIRS = $(USERDIRS)
+
+# Add file system directories to KERNDEPDIRS (they are already in CLEANDIRS)
+
+ifeq ($(CONFIG_NFILE_DESCRIPTORS),0)
+ifeq ($(CONFIG_NET),y)
+ifneq ($(CONFIG_NSOCKET_DESCRIPTORS),0)
+KERNDEPDIRS += fs
+endif
+KERNDEPDIRS += drivers
+endif
+else
+KERNDEPDIRS += $(FSDIRS)
+endif
+
+# Add networking directories to KERNDEPDIRS and CLEANDIRS
+
+ifeq ($(CONFIG_NET),y)
+KERNDEPDIRS += net
+endif
+CLEANDIRS += net
+
+ifeq ($(CONFIG_CRYPTO),y)
+KERNDEPDIRS += crypto
+endif
+CLEANDIRS += crypto
diff --git a/nuttx/Makefile.unix b/nuttx/Makefile.unix
index a5b3aa47e..ac8d1ad01 100644
--- a/nuttx/Makefile.unix
+++ b/nuttx/Makefile.unix
@@ -70,9 +70,6 @@ else
BOARD_DIR = configs/$(CONFIG_ARCH_BOARD)
endif
-# Add-on directories. These may or may not be in place in the
-# NuttX source tree (they must be specifically installed)
-#
# CONFIG_APPS_DIR can be over-ridden from the command line or in the .config file.
# The default value of CONFIG_APPS_DIR is ../apps. Ultimately, the application
# will be built if APPDIR is defined. APPDIR will be defined if a directory containing
@@ -83,21 +80,12 @@ CONFIG_APPS_DIR = ../apps
endif
APPDIR := ${shell if [ -r $(CONFIG_APPS_DIR)/Makefile ]; then echo "$(CONFIG_APPS_DIR)"; fi}
-# All add-on directories.
+# Add-on directories. These may or may not be in place in the
+# NuttX source tree (they must be specifically installed)
#
# NUTTX_ADDONS is the list of directories built into the NuttX kernel.
-# USER_ADDONS is the list of directories that will be built into the user application
-
-NUTTX_ADDONS :=
-USER_ADDONS :=
-
-ifeq ($(CONFIG_BUILD_PROTECTED),y)
-USER_ADDONS += $(APPDIR)
-else
-NUTTX_ADDONS += $(APPDIR)
-endif
-
-# Lists of build directories.
+# USER_ADDONS is the list of directories that will be built into the user
+# application
#
# FSDIRS depend on file descriptor support; NONFSDIRS do not (except for parts
# of FSDIRS). We will exclude FSDIRS from the build if file descriptor
@@ -110,89 +98,18 @@ endif
# OTHERDIRS - These are directories that are not built but probably should
# be cleaned to prevent garbage from collecting in them when changing
# configurations.
-
-NONFSDIRS = sched $(ARCH_SRC) $(NUTTX_ADDONS)
-FSDIRS = fs drivers binfmt
-CONTEXTDIRS = $(APPDIR)
-USERDIRS =
-OTHERDIRS = lib
-
-ifeq ($(CONFIG_BUILD_PROTECTED),y)
-
-USERDIRS += libc mm $(USER_ADDONS)
-ifeq ($(CONFIG_HAVE_CXX),y)
-USERDIRS += libxx
-endif
-
-else
-
-NONFSDIRS += libc mm
-OTHERDIRS += $(USER_ADDONS)
-ifeq ($(CONFIG_HAVE_CXX),y)
-NONFSDIRS += libxx
-else
-OTHERDIRS += libxx
-endif
-
-endif
-
-ifeq ($(CONFIG_LIB_SYSCALL),y)
-NONFSDIRS += syscall
-CONTEXTDIRS += syscall
-USERDIRS += syscall
-else
-OTHERDIRS += syscall
-endif
-
-ifeq ($(CONFIG_NX),y)
-NONFSDIRS += graphics libnx
-CONTEXTDIRS += graphics libnx
-else
-OTHERDIRS += graphics libnx
-endif
-
-ifeq ($(CONFIG_AUDIO),y)
-NONFSDIRS += audio
-else
-OTHERDIRS += audio
-endif
-
+#
# CLEANDIRS are the directories that will clean in. These are
# all directories that we know about.
# KERNDEPDIRS are the directories in which we will build target dependencies.
-# If NuttX and applications are built separately (CONFIG_BUILD_PROTECTED),
-# then this holds only the directories containing kernel files.
+# 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.
-
-CLEANDIRS = $(NONFSDIRS) $(FSDIRS) $(USERDIRS) $(OTHERDIRS)
-KERNDEPDIRS = $(NONFSDIRS)
-USERDEPDIRS = $(USERDIRS)
-
-# Add file system directories to KERNDEPDIRS (they are already in CLEANDIRS)
+# then this holds only the directories containing user files. If
+# CONFIG_BUILD_KERNEL is selected, then applications are not build at all.
-ifeq ($(CONFIG_NFILE_DESCRIPTORS),0)
-ifeq ($(CONFIG_NET),y)
-ifneq ($(CONFIG_NSOCKET_DESCRIPTORS),0)
-KERNDEPDIRS += fs
-endif
-KERNDEPDIRS += drivers
-endif
-else
-KERNDEPDIRS += $(FSDIRS)
-endif
-
-# Add networking directories to KERNDEPDIRS and CLEANDIRS
-
-ifeq ($(CONFIG_NET),y)
-KERNDEPDIRS += net
-endif
-CLEANDIRS += net
-
-ifeq ($(CONFIG_CRYPTO),y)
-KERNDEPDIRS += crypto
-endif
-CLEANDIRS += crypto
+include Directories.mk
#
# Extra objects used in the final link.
diff --git a/nuttx/Makefile.win b/nuttx/Makefile.win
index c77ce9c4b..4980e3597 100644
--- a/nuttx/Makefile.win
+++ b/nuttx/Makefile.win
@@ -63,9 +63,6 @@ else
BOARD_DIR = configs$(DELIM)$(CONFIG_ARCH_BOARD)
endif
-# Add-on directories. These may or may not be in place in the
-# NuttX source tree (they must be specifically installed)
-#
# CONFIG_APPS_DIR can be over-ridden from the command line or in the .config file.
# The default value of CONFIG_APPS_DIR is ..\apps. Ultimately, the application
# will be built if APPDIR is defined. APPDIR will be defined if a directory containing
@@ -76,21 +73,12 @@ CONFIG_APPS_DIR = ..\apps
endif
APPDIR := ${shell if exist "$(CONFIG_APPS_DIR)\Makefile" echo $(CONFIG_APPS_DIR)}
-# All add-on directories.
+# Add-on directories. These may or may not be in place in the
+# NuttX source tree (they must be specifically installed)
#
# NUTTX_ADDONS is the list of directories built into the NuttX kernel.
-# USER_ADDONS is the list of directories that will be built into the user application
-
-NUTTX_ADDONS :=
-USER_ADDONS :=
-
-ifeq ($(CONFIG_BUILD_PROTECTED),y)
-USER_ADDONS += $(APPDIR)
-else
-NUTTX_ADDONS += $(APPDIR)
-endif
-
-# Lists of build directories.
+# USER_ADDONS is the list of directories that will be built into the user
+# application
#
# FSDIRS depend on file descriptor support; NONFSDIRS do not (except for parts
# of FSDIRS). We will exclude FSDIRS from the build if file descriptor
@@ -103,53 +91,7 @@ endif
# OTHERDIRS - These are directories that are not built but probably should
# be cleaned to prevent garbage from collecting in them when changing
# configurations.
-
-NONFSDIRS = sched $(ARCH_SRC) $(NUTTX_ADDONS)
-FSDIRS = fs drivers binfmt
-CONTEXTDIRS = $(APPDIR)
-USERDIRS =
-OTHERDIRS = lib
-
-ifeq ($(CONFIG_BUILD_PROTECTED),y)
-
-USERDIRS += libc mm $(USER_ADDONS)
-ifeq ($(CONFIG_HAVE_CXX),y)
-USERDIRS += libxx
-endif
-
-else
-
-NONFSDIRS += libc mm
-OTHERDIRS += $(USER_ADDONS)
-ifeq ($(CONFIG_HAVE_CXX),y)
-NONFSDIRS += libxx
-else
-OTHERDIRS += libxx
-endif
-
-endif
-
-ifeq ($(CONFIG_LIB_SYSCALL),y)
-NONFSDIRS += syscall
-CONTEXTDIRS += syscall
-USERDIRS += syscall
-else
-OTHERDIRS += syscall
-endif
-
-ifeq ($(CONFIG_NX),y)
-NONFSDIRS += graphics libnx
-CONTEXTDIRS += graphics libnx
-else
-OTHERDIRS += graphics libnx
-endif
-
-ifeq ($(CONFIG_AUDIO),y)
-NONFSDIRS += audio
-else
-OTHERDIRS += audio
-endif
-
+#
# CLEANDIRS are the directories that will clean in. These are
# all directories that we know about.
# KERNDEPDIRS are the directories in which we will build target dependencies.
@@ -158,34 +100,7 @@ endif
# USERDEPDIRS. If NuttX and applications are built separately (CONFIG_BUILD_PROTECTED),
# then this holds only the directories containing user files.
-CLEANDIRS = $(NONFSDIRS) $(FSDIRS) $(USERDIRS) $(OTHERDIRS)
-KERNDEPDIRS = $(NONFSDIRS)
-USERDEPDIRS = $(USERDIRS)
-
-# Add file system directories to KERNDEPDIRS (they are already in CLEANDIRS)
-
-ifeq ($(CONFIG_NFILE_DESCRIPTORS),0)
-ifeq ($(CONFIG_NET),y)
-ifneq ($(CONFIG_NSOCKET_DESCRIPTORS),0)
-KERNDEPDIRS += fs
-endif
-KERNDEPDIRS += drivers
-endif
-else
-KERNDEPDIRS += $(FSDIRS)
-endif
-
-# Add networking directories to KERNDEPDIRS and CLEANDIRS
-
-ifeq ($(CONFIG_NET),y)
-KERNDEPDIRS += net
-endif
-CLEANDIRS += net
-
-ifeq ($(CONFIG_CRYPTO),y)
-KERNDEPDIRS += crypto
-endif
-CLEANDIRS += crypto
+include Directories.mk
#
# Extra objects used in the final link.