Makefile 脚本(附Makefile+VCS+Verdi)

本文介绍了Makefile的基本要素,包括规则定义目标文件的生成方式,伪目标如clean用于清理,变量提升Makefile的通用性,以及隐含规则和通配符简化文件匹配。此外,还展示了结合VCS和Verdi进行编译、仿真及日志管理的Makefile脚本。
摘要由CSDN通过智能技术生成

1. Makefile 规则

规则:用于说明如何生成一个或者多个目标文件

目标项:要生成的文件名。

依赖项:要生成目标文件所需要的文件。

编译命令:如果依赖项生成目标项,必须以TAB开头。

规则格式:

target:dependency_files    //目标项:依赖项 
<TAB>command                //必须以tab开头,command编译命令

    注意点:在写command命令行的时候,必须要在前面按TAB键。

    例如:目标项是test,依赖项是test.c。

test:test.c
    gcc -o test test.c

2. Makefile的伪目标

.PHONY 是Makefile文件的关键字,表示它后面列表中的目标均为伪目标。伪目标通常用在清理文件、强制重新编译等情况下。一般伪目标没有时间检查,一旦指明了就会执行。

.PHONY:clean        //将clean声明为伪目标,可以同时声明多个伪目标
clean:              //没有依赖项  
    rm -rf test

3. Makefile的变量

 通过make 支持的变量定义、规则和内置函数,可以写出通用性较强的Makefile文件,使得同一个Makefile文件能够适应不同的项目。变量类似于c语言中的宏定义。

 变量:用来代替一个文本字符串

定义变量的2种方法:

        变量名=变量值 递归变量展开(几个变量共享一个值)        //替换        

        变量名:=变量值 简单变量展开                                               //恒等于 

 使用变量的一般方法:

        $(变量名)=???                                                                   //赋值

        ???=$(变量名)                                                                   //引用

如下Makefile展示了用定义变量来编写。

#circle.c circle.h cube.c cube.h main.c main.h
#得到可执行文件test

test:circle.o cube.o main.o
    gcc circle.o cube.o main.o -o test
    
circle.o:circle.c
    gcc -c circle.c -o circle.o
    
cube.o:cube.c
    gcc -c cube.c -o cube.o    
 
main.o:main.c
    gcc -c main.c -o main.o     

.PHONY:
cleanall:
    rm -rf test circle.o cube.o main.o
clean:
    rm -rf circle.o cube.o main.o
    
#-------------定义变量如下-----------------#        
TAR = test                      #(目标文件)
OBJ = circle.o cube.o main.o    #(依赖文件)
CC := gcc                       #(gcc恒定不变)
RMRF:=rm -rf

$(TAR):$(OBJ)
    $(CC) $(OBJ) -o $(TAR)

circle.o:circle.c
    $(CC) -c circle.c -o circle.o
    
cube.o:cube.c
    $(CC) -c cube.c -o cube.o    
 
main.o:main.c
    $(CC) -c main.c -o main.o 

.PHONY:
cleanall:
    $(RMRF) $(OBJ) $(TAR)
clean:
    $(RMRF) $(OBJ)

4. Makfile隐含规则 &通配符

 %.c;%.o     //(任意的.c;.o文件)
 *.c;*.o     //(所有的.c;.o文件)
 $@          //所有的目标文件
 $^          //所有的依赖文件
 $<          //所有的依赖文件的第一个文件
TAR = text                      (目标文件)
OBJ = circle.o cub.o main.o     (依赖文件)
CC := gcc                       (gcc恒定不变)
RMRF:=rm -rf

$(TAR):$(OBJ)
    $(CC) $^ -o $@ 

%.o:%.c
    $(CC) -c $^ -o $@

.PHONY:
clean:
    $(RMRF) $(OBJ) $(TAR)

5. Makefile+VCS+Verdi脚本

 以下附上我自己用VCS+Verdi联合编译仿真用到的Makefile脚本。

all: compile simulate verdi

compile: 
	vcs -full64				\ #以linux64位系统运行
		-fsdb				\ #生成.fsdb波形文件
		-sverilog			\ #支持systemverilog语法
		-debug_acc+all		\ #编译命令
		-timescale=1ns/1ps	\ #仿真时间单位/精度
		-f flist.f			\ #链接工程文件
		-l com.log            #生成编译过程的日志

simulate:
	./simv -l sim.log         #启动仿真

verdi:
	verdi -2001	        \     #支持2001标准
          -ssf *.fsdb   \     #启动verdi自动加载.fsdb波形文件
		  -top tb       \     #指定tb模块位仿真顶层文件          
		  -f flist.f    \     #链接工程文件
          -nologo &           #软件打开界面不加载欢迎界面

clean:
	-rm -rf simv.daidir	\   #删除过程文件
			verdiLog	\
			csrc		\
			ucli.key	\
			simv		\
			*.log		\
			*.fsdb		\
			*.conf		\
			*.rc

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Ubuntu 20.04上安装Verdi和VCS,可以按照以下步骤进行操作: 1. 打开终端并更新软件包列表: sudo apt update 2. 安装必要的依赖项: sudo apt install build-essential libx11-dev libxt-dev libxaw7-dev libreadline-dev libncurses5-dev libcairo2-dev libjpeg-dev libpng-dev libtiff-dev libssl-dev zlib1g-dev libbz2-dev libexpat1-dev libxml2-dev libxslt1-dev libffi-dev tk-dev 3. 下载Verdi和VCS的安装包: wget https://www.synopsys.com/content/dam/synopsys/simply-smarter/verification/verification-tools/vcs/vcs-mx-202.03-1.tar.gz wget https://www.synopsys.com/content/dam/synopsys/simply-smarter/verification/verification-tools/verdi/verdi-mx-202.03-1.tar.gz 4. 解压缩安装包: tar -xvf vcs-mx-202.03-1.tar.gz tar -xvf verdi-mx-202.03-1.tar.gz 5. 安装VCS: cd vcs-mx-202.03-1 ./vcs_setup 6. 安装Verdi: cd ../verdi-mx-202.03-1 ./verdi_setup 7. 配置环境变量: 在~/.bashrc文件中添加以下内容: export VCS_HOME=/path/to/vcs-mx-202.03-1 export VERDI_HOME=/path/to/verdi-mx-202.03-1 export PATH=$PATH:$VCS_HOME/bin:$VERDI_HOME/bin 8. 重新加载~/.bashrc文件: source ~/.bashrc 现在,您已经成功地在Ubuntu 20.04上安装了Verdi和VCS。 ### 回答2: 安装verdi可以通过pip进行安装,在终端中输入以下命令: ``` pip install -U aiida-core verdi ``` 安装过程可能需要一定的时间,具体的时间取决于网络状况和计算机性能。 安装vcs需要先添加vcs的源地址,可以通过在终端中输入以下命令来添加: ``` sudo add-apt-repository ppa:rioux/ppa ``` 添加成功后,通过以下命令进行更新: ``` sudo apt update ``` 接着就可以通过以下命令进行vcs的安装了: ``` sudo apt install vcs ``` 安装完成后,可以通过以下命令进行vcs的版本检查: ``` vcs --version ``` 以上就是在ubuntu20.04系统中安装verdi和vcs的具体步骤。需要注意的是,安装前需要保证系统网络正常,安装过程需要一定的耐心等待,同时还需要注意安装过程中的任何提示信息。 ### 回答3: 在Ubuntu 20.04上安装Verdi和VCS非常简单,需要遵循以下步骤: 1. 打开终端并运行以下命令来更新Ubuntu: sudo apt update 2. 安装Anaconda,Anaconda是一个用于科学计算的Python发行版,可以在Ubuntu 20.04上安装Verdi和VCS: wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh 安装Anaconda: bash Anaconda3-2021.05-Linux-x86_64.sh 安装过程中需要进行一些设置,如选定安装目录、设置环境变量等。 3. 创建Python虚拟环境: conda create --name venv 4. 激活虚拟环境: conda activate venv 5. 安装Quantum Espresso: conda install -c conda-forge espresso 6. 安装Verdi: pip install aiida-core 7. 安装VCS: pip install vcs 8. 安装其他必需的库(可选): pip install ase pymatgen matplotlib 9. 验证Verdi和VCS是否已安装: verdi --version vcs --version 如上述步骤所示,在Ubuntu 20.04上安装Verdi和VCS非常简单。您可以先安装Anaconda,然后创建Python虚拟环境并在其中安装Quantum Espresso、Verdi和VCS。在完成这些安装后,您就可以在Ubuntu 20.04上开始使用Verdi和VCS了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值