Improve dirlinks dependencies for Makefile.win
This PR improved dirlinks dependencies for Makefile.unix: https://github.com/apache/incubator-nuttx/pull/5069 This PR copies the changes into Makefile.win
This commit is contained in:
parent
0951f70df6
commit
57a19de451
@ -131,7 +131,7 @@ endif
|
||||
BIN = nuttx$(EXEEXT)
|
||||
|
||||
all: $(BIN)
|
||||
.PHONY: dirlinks context clean_context config oldconfig menuconfig nconfig export subdir_clean clean subdir_distclean distclean apps_clean apps_distclean
|
||||
.PHONY: context clean_context config oldconfig menuconfig nconfig export subdir_clean clean subdir_distclean distclean apps_clean apps_distclean
|
||||
.PHONY: pass1 pass1dep
|
||||
.PHONY: pass2 pass2dep
|
||||
|
||||
@ -233,7 +233,7 @@ include\nuttx\config.h: $(TOPDIR)\.config tools\mkconfig$(HOSTEXEEXT)
|
||||
tools\mkdeps$(HOSTEXEEXT):
|
||||
$(Q) $(MAKE) -C tools -f Makefile.host mkdeps$(HOSTEXEEXT)
|
||||
|
||||
# dirlinks, and helpers
|
||||
# .dirlinks, and helpers
|
||||
#
|
||||
# Directories links. Most of establishing the NuttX configuration involves
|
||||
# setting up symbolic links with 'generic' directory names to specific,
|
||||
@ -242,71 +242,147 @@ tools\mkdeps$(HOSTEXEEXT):
|
||||
# Link the arch\<arch-name>\include directory to include\arch
|
||||
|
||||
include\arch:
|
||||
@echo LN: include\arch to $(ARCH_DIR)\include
|
||||
$(Q) $(DIRLINK) $(TOPDIR)\$(ARCH_DIR)\include include\arch
|
||||
$(Q) touch $@
|
||||
@echo "LN: $@ to $(ARCH_DIR)\include"
|
||||
$(Q) $(DIRLINK) $(TOPDIR)\$(ARCH_DIR)\include $@
|
||||
|
||||
# Link the boards\<arch>\<chip>\<board>\include directory to include\arch\board
|
||||
|
||||
include\arch\board: include\arch
|
||||
@echo LN: include\arch\board to $(BOARD_DIR)\include
|
||||
$(Q) $(DIRLINK) $(BOARD_DIR)\include include\arch\board
|
||||
$(Q) touch $@
|
||||
include\arch\board: | include\arch
|
||||
@echo "LN: $@ to $(BOARD_DIR)\include"
|
||||
$(Q) $(DIRLINK) $(BOARD_DIR)\include $@
|
||||
|
||||
ifneq ($(BOARD_COMMON_DIR),)
|
||||
# Link the boards\<arch>\<chip>\common dir to arch\<arch-name>\src\board
|
||||
# Link the boards\<arch>\<chip>\<board>\src dir to arch\<arch-name>\src\board\board
|
||||
|
||||
$(ARCH_SRC)\board:
|
||||
@echo "LN: $(ARCH_SRC)\board to $(BOARD_COMMON_DIR)"
|
||||
$(Q) $(DIRLINK) $(BOARD_COMMON_DIR) $(ARCH_SRC)\board
|
||||
@echo "LN: $(ARCH_SRC)\board\board to $(BOARD_DIR)\src"
|
||||
$(Q) $(DIRLINK) $(BOARD_DIR)\src $(ARCH_SRC)\board\board
|
||||
$(Q) touch $@
|
||||
ifneq ($(BOARD_COMMON_DIR),)
|
||||
ARCH_SRC_BOARD_SYMLINK=$(BOARD_COMMON_DIR)
|
||||
ARCH_SRC_BOARD_BOARD_SYMLINK=$(BOARD_DIR)\src
|
||||
else
|
||||
# Link the boards\<arch>\<chip>\<board>\src dir to arch\<arch-name>\src\board
|
||||
ARCH_SRC_BOARD_SYMLINK=$(BOARD_DIR)\src
|
||||
endif
|
||||
|
||||
ifneq ($(ARCH_SRC_BOARD_SYMLINK),)
|
||||
$(ARCH_SRC)\board:
|
||||
@echo LN: $(ARCH_SRC)\board to $(BOARD_DIR)\src
|
||||
$(Q) $(DIRLINK) $(BOARD_DIR)\src $(ARCH_SRC)\board
|
||||
$(Q) touch $@
|
||||
@echo "LN: $@ to $(ARCH_SRC_BOARD_SYMLINK)"
|
||||
$(Q) $(DIRLINK) $(ARCH_SRC_BOARD_SYMLINK) $@
|
||||
endif
|
||||
|
||||
ifneq ($(ARCH_SRC_BOARD_BOARD_SYMLINK),)
|
||||
$(ARCH_SRC)\board\board: | $(ARCH_SRC)\board
|
||||
@echo "LN: $@ to $(ARCH_SRC_BOARD_BOARD_SYMLINK)"
|
||||
$(Q) $(DIRLINK) $(ARCH_SRC_BOARD_BOARD_SYMLINK) $@
|
||||
endif
|
||||
|
||||
# Link the boards\<arch>\<chip>\drivers dir to drivers\platform
|
||||
|
||||
drivers\platform:
|
||||
@echo LN: $(TOPDIR)\drivers\platform to $(BOARD_DRIVERS_DIR)
|
||||
$(Q) $(DIRLINK) $(BOARD_DRIVERS_DIR) $(TOPDIR)\drivers\platform
|
||||
$(Q) touch $@
|
||||
@echo "LN: $@ to $(BOARD_DRIVERS_DIR)"
|
||||
$(Q) $(DIRLINK) $(BOARD_DRIVERS_DIR) $@
|
||||
|
||||
# Link arch\<arch-name>\src\<chip-name> to arch\<arch-name>\src\chip
|
||||
|
||||
ifeq ($(CONFIG_ARCH_CHIP_CUSTOM),y)
|
||||
ARCH_SRC_CHIP_SYMLINK_DIR=$(CHIP_DIR)
|
||||
else ifneq ($(CONFIG_ARCH_CHIP),)
|
||||
ARCH_SRC_CHIP_SYMLINK_DIR=$(TOPDIR)\$(ARCH_SRC)\$(CONFIG_ARCH_CHIP)
|
||||
endif
|
||||
|
||||
ifneq ($(ARCH_SRC_CHIP_SYMLINK_DIR),)
|
||||
$(ARCH_SRC)\chip:
|
||||
ifeq ($(CONFIG_ARCH_CHIP_CUSTOM),y)
|
||||
@echo LN: $(ARCH_SRC)\chip to $(CHIP_DIR)
|
||||
$(Q) $(DIRLINK) $(CHIP_DIR) $(ARCH_SRC)\chip
|
||||
else ifneq ($(CONFIG_ARCH_CHIP),)
|
||||
@echo LN: $(ARCH_SRC)\chip to $(ARCH_SRC)\$(CONFIG_ARCH_CHIP)
|
||||
$(Q) $(DIRLINK) $(TOPDIR)\$(ARCH_SRC)\$(CONFIG_ARCH_CHIP) $(ARCH_SRC)\chip
|
||||
@echo "LN: $@ to $(ARCH_SRC_CHIP_SYMLINK_DIR)"
|
||||
$(Q) $(DIRLINK) $(ARCH_SRC_CHIP_SYMLINK_DIR) $@
|
||||
endif
|
||||
$(Q) cp -f $(CHIP_KCONFIG) $(TOPDIR)\arch\dummy\Kconfig
|
||||
|
||||
# Link arch\<arch-name>\include\<chip-name> to include\arch\chip
|
||||
|
||||
ifeq ($(CONFIG_ARCH_CHIP_CUSTOM),y)
|
||||
INCLUDE_ARCH_CHIP_SYMLINK_DIR=$(CHIP_DIR)\include
|
||||
else ifneq ($(CONFIG_ARCH_CHIP),)
|
||||
INCLUDE_ARCH_CHIP_SYMLINK_DIR=$(TOPDIR)\$(ARCH_INC)\$(CONFIG_ARCH_CHIP)
|
||||
endif
|
||||
|
||||
ifneq ($(INCLUDE_ARCH_CHIP_SYMLINK_DIR),)
|
||||
include\arch\chip:
|
||||
@echo "LN: $@ to $(INCLUDE_ARCH_CHIP_SYMLINK_DIR)"
|
||||
$(DIRLINK) $(INCLUDE_ARCH_CHIP_SYMLINK_DIR) $@
|
||||
endif
|
||||
|
||||
# Copy $(CHIP_KCONFIG) to arch\dummy\Kconfig
|
||||
|
||||
arch\dummy\Kconfig:
|
||||
@echo "CP: $@ to $(CHIP_KCONFIG)"
|
||||
$(Q) cp -f $(CHIP_KCONFIG) $@
|
||||
|
||||
DIRLINKS_SYMLINK = \
|
||||
include\arch \
|
||||
include\arch\board \
|
||||
drivers\platform \
|
||||
|
||||
DIRLINKS_FILE = \
|
||||
arch\dummy\Kconfig \
|
||||
|
||||
ifneq ($(INCLUDE_ARCH_CHIP_SYMLINK_DIR),)
|
||||
DIRLINKS_SYMLINK += include\arch\chip
|
||||
endif
|
||||
|
||||
ifneq ($(ARCH_SRC_CHIP_SYMLINK_DIR),)
|
||||
DIRLINKS_SYMLINK += $(ARCH_SRC)\chip
|
||||
endif
|
||||
|
||||
ifneq ($(ARCH_SRC_BOARD_SYMLINK),)
|
||||
DIRLINKS_SYMLINK += $(ARCH_SRC)\board
|
||||
endif
|
||||
|
||||
ifneq ($(ARCH_SRC_BOARD_BOARD_SYMLINK),)
|
||||
DIRLINKS_SYMLINK += $(ARCH_SRC)\board\board
|
||||
endif
|
||||
|
||||
DIRLINKS_EXTERNAL_DIRS = boards
|
||||
|
||||
ifneq ($(APPDIR),)
|
||||
DIRLINKS_EXTERNAL_DIRS += $(APPDIR)
|
||||
endif
|
||||
|
||||
# Generate a pattern to build $(DIRLINKS_EXTERNAL_DIRS)
|
||||
DIRLINKS_EXTERNAL_DEP = $(patsubst %,%\.dirlinks,$(DIRLINKS_EXTERNAL_DIRS))
|
||||
DIRLINKS_FILE += $(DIRLINKS_EXTERNAL_DEP)
|
||||
|
||||
.dirlinks: $(DIRLINKS_FILE) | $(DIRLINKS_SYMLINK)
|
||||
touch $@
|
||||
|
||||
# Pattern rule for $(DIRLINKS_EXTERNAL_DEP)
|
||||
|
||||
%\.dirlinks:
|
||||
$(Q) $(MAKE) -C $(patsubst %\.dirlinks,%,$@) dirlinks
|
||||
$(Q) touch $@
|
||||
|
||||
# Link arch\<arch-name>\include\<chip-name> to arch\<arch-name>\include\chip
|
||||
|
||||
include\arch\chip: include\arch
|
||||
ifeq ($(CONFIG_ARCH_CHIP_CUSTOM),y)
|
||||
@echo LN: include\arch\chip to $(CHIP_DIR)\include
|
||||
$(Q) $(DIRLINK) $(CHIP_DIR)\include include\arch\chip
|
||||
else ifneq ($(CONFIG_ARCH_CHIP),)
|
||||
@echo LN: include\arch\chip to $(ARCH_INC)\$(CONFIG_ARCH_CHIP)
|
||||
$(Q) $(DIRLINK) $(TOPDIR)\$(ARCH_INC)\$(CONFIG_ARCH_CHIP) include\arch\chip
|
||||
# clean_dirlinks
|
||||
#
|
||||
# This is part of the distclean target. It removes all symbolic links created by the dirlink target.
|
||||
|
||||
# The symlink subfolders need to be removed before the parent symlinks
|
||||
|
||||
.PHONY: clean_dirlinks
|
||||
clean_dirlinks:
|
||||
$(Q) $(call DELFILE, $(DIRLINKS_FILE))
|
||||
$(Q) $(call DELFILE, .dirlinks)
|
||||
$(Q) $(DIRUNLINK) drivers\platform
|
||||
ifneq ($(INCLUDE_ARCH_CHIP_SYMLINK_DIR),)
|
||||
$(Q) $(DIRUNLINK) include\arch\chip
|
||||
endif
|
||||
$(Q) $(DIRUNLINK) include\arch\board
|
||||
$(Q) $(DIRUNLINK) include\arch
|
||||
ifneq ($(ARCH_SRC_BOARD_BOARD_SYMLINK),)
|
||||
$(Q) $(DIRUNLINK) $(ARCH_SRC)\board\board
|
||||
endif
|
||||
ifneq ($(ARCH_SRC_BOARD_SYMLINK),)
|
||||
$(Q) $(DIRUNLINK) $(ARCH_SRC)\board
|
||||
endif
|
||||
ifneq ($(ARCH_SRC_CHIP_SYMLINK_DIR),)
|
||||
$(Q) $(DIRUNLINK) $(ARCH_SRC)\chip
|
||||
endif
|
||||
$(Q) touch $@
|
||||
|
||||
dirlinks: include\arch include\arch\board include\arch\chip $(ARCH_SRC)\board $(ARCH_SRC)\chip drivers\platform
|
||||
$(Q) $(MAKE) -C boards dirlinks
|
||||
$(Q) $(MAKE) -C $(CONFIG_APPS_DIR) dirlinks
|
||||
|
||||
# context
|
||||
#
|
||||
@ -319,7 +395,7 @@ dirlinks: include\arch include\arch\board include\arch\chip $(ARCH_SRC)\board $(
|
||||
|
||||
CONTEXTDIRS_DEPS = $(patsubst %,%\.context,$(CONTEXTDIRS))
|
||||
|
||||
context: include\nuttx\config.h include\nuttx\version.h $(CONTEXTDIRS_DEPS) dirlinks | staging
|
||||
context: include\nuttx\config.h include\nuttx\version.h $(CONTEXTDIRS_DEPS) .dirlinks | staging
|
||||
|
||||
ifeq ($(NEED_MATH_H),y)
|
||||
context: include\math.h
|
||||
@ -342,7 +418,7 @@ staging:
|
||||
|
||||
# Pattern rule for $(CONTEXTDIRS_DEPS)
|
||||
|
||||
%.context: include\nuttx\config.h dirlinks
|
||||
%.context: include\nuttx\config.h .dirlinks
|
||||
$(Q) $(MAKE) -C $(patsubst %.context,%,$@) TOPDIR="$(TOPDIR)" context
|
||||
$(Q) touch $@
|
||||
|
||||
@ -602,7 +678,7 @@ endif
|
||||
# apps_distclean: Perform the distclean operation only in the user application
|
||||
# directory.
|
||||
|
||||
apps_preconfig: dirlinks
|
||||
apps_preconfig: .dirlinks
|
||||
ifneq ($(APPDIR),)
|
||||
$(Q) $(MAKE) -C "$(APPDIR)" preconfig
|
||||
endif
|
||||
|
Loading…
Reference in New Issue
Block a user