Fortran Coder

查看: 9265|回复: 9
打印 上一主题 下一主题

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

[复制链接]

63

帖子

9

主题

0

精华

专家

超凡脱俗

F 币
474 元
贡献
237 点
跳转到指定楼层
楼主
发表于 2019-1-19 18:21:30 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Jackdaw 于 2020-9-2 20:12 编辑

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

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

依赖:
makedepf90

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)         
       





下面看看执行结果(测试代码见附件):



package.zip (3.26 KB, 下载次数: 34)



分享到:  微信微信
收藏收藏3 点赞点赞1 点踩点踩
天下英雄出我辈,一入江湖岁月催。

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

63

帖子

9

主题

0

精华

专家

超凡脱俗

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

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

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

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-5 10:30

Powered by Tencent X3.4

© 2013-2024 Tencent

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