Fortran Coder

查看: 114|回复: 2

[IDE] Makefile 项目管理(升级版)

[复制链接]

48

帖子

7

主题

0

精华

专家

超凡脱俗

F 币
340 元
贡献
181 点
发表于 2019-1-19 18:21:30 | 显示全部楼层 |阅读模式
本帖最后由 Jackdaw 于 2019-1-20 17:41 编辑

上次写了一篇《Makefile 项目管理》,感觉意犹未尽,现在重新写了一个新的

此次更新内容包括:
1. 文件分类存放
2. 自动生成依赖关系


Makefile:
[Make] 纯文本查看 复制代码
#!/bin/bash 
# 设置文件路径
SRCDIR = src
OBJDIR = obj
MODDIR = mod
BINDIR = bin
# 文件 
SRC    = floatPrecision.f90 GE_MPC.f90
SRC   := $(SRC) main.f90
OBJ    = $(SRC:.f90=.o)
# 增加前缀 
SRCS  = $(addprefix $(SRCDIR)/, $(SRC))
OBJS  = $(addprefix $(OBJDIR)/, $(OBJ))
# 编译器相关设置 
FC     = gfortran
FF     = -cpp -O0 -g -fbacktrace
DF     = -DDOUBLE_PRECISION
EXE    = myPro
# 所有目标 
all: $(OBJDIR)/depend $(OBJS) binary
# 依赖关系 
include $(OBJDIR)/depend 
# 链接 
binary: $(OBJS) 
        $(FC) $(FF) $(DF) -J$(MODDIR) $(OBJS) -o $(BINDIR)/$(EXE) 
# 编译
$(OBJS): 
        $(FC) $(FF) $(DF) -J$(MODDIR) -c $< -o $@ 
# 检查路径,并生成依赖关系 
.PONHY: $(OBJDIR)/depend
$(OBJDIR)/depend:    
        @if test -d $(SRCDIR); then echo "# directory "$(SRCDIR) "exists"; else mkdir $(SRCDIR); fi  
        @if test -d $(OBJDIR); then echo "# directory "$(OBJDIR) "exists"; else mkdir $(OBJDIR); fi
        @if test -d $(MODDIR); then echo "# directory "$(MODDIR) "exists"; else mkdir $(MODDIR); fi
        @if test -d $(BINDIR); then echo "# directory "$(BINDIR) "exists"; else mkdir $(BINDIR); fi
        makedepf90 -b $(OBJDIR) $(SRCS) > $(OBJDIR)/depend            
# 清理工程      
.PONHY: clean
clean :        
        rm -rf $(OBJDIR)/depend $(MODDIR)/*.mod $(OBJS) $(BINDIR)/$(EXE)         
       





下面看看执行结果(测试代码见附件):
Screenshot_2019-01-20_17-32-22.png


package.zip (3.26 KB, 下载次数: 2)
天下英雄出我辈,一入江湖岁月催。

鸿图霸业谈笑间,不胜人生一场醉。
回复

使用道具 举报

480

帖子

4

主题

0

精华

大宗师

F 币
3219 元
贡献
1906 点

水王勋章元老勋章热心勋章

发表于 2019-1-29 09:19:15 | 显示全部楼层
赞!
要是有个cmake的简易教程就完美了

48

帖子

7

主题

0

精华

专家

超凡脱俗

F 币
340 元
贡献
181 点
 楼主| 发表于 2019-1-29 13:59:04 | 显示全部楼层
pasuka 发表于 2019-1-29 09:19
赞!
要是有个cmake的简易教程就完美了

也有,以前写的,很简单的一个帖子
使用cmake管理Fortran项目(demo)
天下英雄出我辈,一入江湖岁月催。

鸿图霸业谈笑间,不胜人生一场醉。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2019-2-23 00:02

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表