首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使文件夹中的每个文件都可执行的makefile

使文件夹中的每个文件都可执行的makefile
EN

Stack Overflow用户
提问于 2015-07-20 20:22:45
回答 1查看 48关注 0票数 1

下面是一个makefile。请参考小节,其中%.c是目标,其中一个依赖项是.psvn文件。我希望这个make文件通过每个psvn文件,并为它生成一个.c文件。我该如何更改makefile才能做到这一点?

代码语言:javascript
复制
CC = gcc
CXX = g++
OPT = -g -Wall -O3 -Wno-unused-function -Wno-unused-variable -std=c++11
PSVNOPT = --no_state_map --no_abstraction --backwards_moves --history_len=0

psvn2c_core.c:
    cp ../psvn2c_core.c ./psvn2c_core.c

psvn2c_state_map.c:
    cp ../psvn2c_state_map.c ./psvn2c_state_map.c

psvn2c_abstraction.c:
    cp ../psvn2c_abstraction.c ./psvn2c_abstraction.c

%.c: %.psvn  psvn2c_core.c psvn2c_state_map.c psvn2c_abstraction.c
    ../psvn2c  $(PSVNOPT) --name=$(*F)  < $< > $@
    rm -f ./psvn2c_core.c ./psvn2c_state_map.c ./psvn2c_abstraction.c

.PRECIOUS: %.c

%.succ: %.c succ.c
    $(CC) $(OPT) succ.c -include $< -o $@

%.run: %.c run.cpp Node.cpp distribution.cpp
    $(CXX) $(OPT) run.cpp Node.cpp distribution.cpp -include $< -o $@

.PHONY : clean
clean:
    rm -f *.run *.o psvn2c_core.c psvn2c_state_map.c psvn2c_abstraction.c
EN

回答 1

Stack Overflow用户

发布于 2015-07-20 20:47:08

在第一个目标(psvn2c_core.c:)之前添加如下内容:

代码语言:javascript
复制
PSVN_FILES := $(wildcard *.psvn)
C_FILES := $(patsubst %.psvn,%.c,$(PSVN_FILES))

all: $(C_FILES)

好了。当调用make all (或make,因为all将是默认目标,因为它首先出现在makefile中)时,它将尝试构建所有.c文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31516417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档