Make:我如何更改与特定模式匹配的文件的路径
Make: How could i change the path of a files which matches certain pattern
我是 GNUmake 新手。
我需要根据特定条件替换文件路径。
TARGET_EXCEPTION := /home/ip/lib_build
TGT_TOOLS := /demo/build/new_project
ifdef SET_BUILD
ifneq (0,$(RELEASE))
FILES += $(addprefix $(TARGET_EXCEPTION)/tools/test/,$(subst $(TGTTOOLS)/tools/test/,,$(RELEASE_FILES)))
endif
endif
RELEASE_FILES 变量分配了多个文件路径。在这些文件中,我只对带有 $(TGT_TOOLS)/tools/test/ 的文件夹感兴趣,并将其替换为 $(TARGET_EXCEPTION)/tools/test/.. 有什么问题吗我上面的代码?请帮忙!
I have a requirement to replace the file paths based on certain condition.
我敢说实际要求可能更像是“测试应该安装在发布版本中由 $(TARGET_EXCEPTION)
命名的目录中,但在其他情况下应安装在由 $(TGT_TOOLS)
命名的目录中。区别很重要,因为首先适当地分配路径更清晰、更便携。
可能看起来像这样:
# Possible test install locations
TARGET_EXCEPTION := /home/ip/lib_build
TGT_TOOLS := /demo/build/new_project
####
#
# Determine which location to use
#
ifdef SET_BUILD
TEST_INSTALL_RELEASE := $(RELEASE)
else
TEST_INSTALL_RELEASE := 0
endif
ifneq (0,$(TEST_INSTALL_RELEASE))
TEST_DIR := $(TARGET_EXCEPTION)
else
TEST_DIR := $(TGT_TOOLS)
endif
#
####
# Define the release files in the desired location from the start
RELEASE_FILES := \
# ...
$(TEST_DIR)/tools/test/test1 \
$(TEST_DIR)/tools/test/test2 \
# ...
# No substitution needed; the targets are already named correctly
FILES += $(RELEASE_FILES)
Is there anything wrong in my above code?
它试图实施一种糟糕的方法。此外,它很可能无法按照您的要求与与受影响文件相关的 makefile 规则进行互操作。上述也可能存在后一种问题,但在那种情况下也有一个明确的解决方案:通过示例中给出的名称格式在各处引用受影响的文件。
我是 GNUmake 新手。
我需要根据特定条件替换文件路径。
TARGET_EXCEPTION := /home/ip/lib_build
TGT_TOOLS := /demo/build/new_project
ifdef SET_BUILD
ifneq (0,$(RELEASE))
FILES += $(addprefix $(TARGET_EXCEPTION)/tools/test/,$(subst $(TGTTOOLS)/tools/test/,,$(RELEASE_FILES)))
endif
endif
RELEASE_FILES 变量分配了多个文件路径。在这些文件中,我只对带有 $(TGT_TOOLS)/tools/test/ 的文件夹感兴趣,并将其替换为 $(TARGET_EXCEPTION)/tools/test/.. 有什么问题吗我上面的代码?请帮忙!
I have a requirement to replace the file paths based on certain condition.
我敢说实际要求可能更像是“测试应该安装在发布版本中由 $(TARGET_EXCEPTION)
命名的目录中,但在其他情况下应安装在由 $(TGT_TOOLS)
命名的目录中。区别很重要,因为首先适当地分配路径更清晰、更便携。
可能看起来像这样:
# Possible test install locations
TARGET_EXCEPTION := /home/ip/lib_build
TGT_TOOLS := /demo/build/new_project
####
#
# Determine which location to use
#
ifdef SET_BUILD
TEST_INSTALL_RELEASE := $(RELEASE)
else
TEST_INSTALL_RELEASE := 0
endif
ifneq (0,$(TEST_INSTALL_RELEASE))
TEST_DIR := $(TARGET_EXCEPTION)
else
TEST_DIR := $(TGT_TOOLS)
endif
#
####
# Define the release files in the desired location from the start
RELEASE_FILES := \
# ...
$(TEST_DIR)/tools/test/test1 \
$(TEST_DIR)/tools/test/test2 \
# ...
# No substitution needed; the targets are already named correctly
FILES += $(RELEASE_FILES)
Is there anything wrong in my above code?
它试图实施一种糟糕的方法。此外,它很可能无法按照您的要求与与受影响文件相关的 makefile 规则进行互操作。上述也可能存在后一种问题,但在那种情况下也有一个明确的解决方案:通过示例中给出的名称格式在各处引用受影响的文件。