Makefile规则未执行 [英] Makefile rule not executing

查看:153
本文介绍了Makefile规则未执行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





我有一个makefile,由于某种原因不能执行最后一条规则。这是文件



 SRCS = $(通配符* .endian)
SRCSE = $(通配符* .json)
OBJS = $(SRCS:.endian = .o)
ENDIAN = $(SRCSE:.json = .endian)
OBJDIR = $(OS_TARGET)/ $(BUILD_TYPE)

all:start os_target $(ENDIAN)$(OBJS)
.PHONY:all

start:
ifeq($(OS_TARGET),)
@echo 没有提供操作系统目标...中止。
@exit 1
endif
@echo * **目标:$(OS_TARGET)[$(BUILD_TYPE)] ***


os_target:
ifeq(,$(findstring $(OBJDIR) ,$(通配符$(OBJDIR))))
@mkdir -p $(OBJDIR)
endif

%.endian:%。json
@echo < span class =code-string> 转换为Big-Endian:
endian_convert.bin $<

%。o:%。endian
@echo 构建对象:
$(OCC)$(OFLAGS)$< $(OS_TARGET)/ $(BUILD_TYPE)/ $ @

clean:
ifeq($(OS_TARGET),)
@echo 没有提供操作系统目标...正在中止。
@exit 1
endif
@ $ {RM} -frv $(CURDIR)/ $(OS_TARGET)/ $(BUILD_TYPE) / *
@ $ {RM} -frv $(CURDIR)/ * .endian





由于某种原因,规则$(OBJS)没有执行。



有没有人知道为什么会这样?



提前致谢

解决方案

(通配符* .endian)
SRCSE =


< blockquote>(wildcard * .json)
OBJS =


(SRCS:.endian = .o)
ENDIAN =


Hi,

I have a makefile which for some reason does not execute the last rule. Here is the file

SRCS=$(wildcard *.endian)
SRCSE=$(wildcard *.json)
OBJS=$(SRCS:.endian=.o)
ENDIAN=$(SRCSE:.json=.endian)
OBJDIR=$(OS_TARGET)/$(BUILD_TYPE)

all: start os_target $(ENDIAN) $(OBJS)
.PHONY: all

start:
ifeq ($(OS_TARGET),)
	@echo "No OS target supplied... aborting."
	@exit 1
endif
	@echo "*** Target: $(OS_TARGET) [$(BUILD_TYPE)] ***"


os_target:
ifeq (,$(findstring $(OBJDIR),$(wildcard $(OBJDIR) )))
	@mkdir -p $(OBJDIR)
endif

%.endian:%.json
	@echo "Convert into Big-Endian:"
	endian_convert.bin $<

%.o:%.endian
	@echo "Build object:"
	$(OCC) $(OFLAGS) $< $(OS_TARGET)/$(BUILD_TYPE)/$@

clean:
ifeq ($(OS_TARGET),)
	@echo "No OS target supplied... aborting."
	@exit 1
endif
	@${RM} -frv $(CURDIR)/$(OS_TARGET)/$(BUILD_TYPE)/*.o
	@${RM} -frv $(CURDIR)/*.endian



For some reason the rule $(OBJS) is not executing.

Does anyone have an idea why this is happening?

Thanks in advance

解决方案

(wildcard *.endian) SRCSE=


(wildcard *.json) OBJS=


(SRCS:.endian=.o) ENDIAN=


这篇关于Makefile规则未执行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆