systemc中这么一段Makefile文件是什么意思
1 #Makefile***2009-12-15
2
3 CC=g++
4 OPT=-O3
5 DEBUG=-g
6 OTHER=-Wall
7 CFLAGS=$(OPT) $(OTHER) -Wno -deprecated
8 # CFLAGS =$(DEBUG) $(OTHER)
9
10 MODULE =sim
11 SRCS = counter_tb.cpp
12 OBJS=$(SRCS:.cpp.o)
13
14 include Makefile.defs
还有这里有个Makefile.defs脚本文件,那么它的模板是什么样子的呢?
希望熟悉这方面的给贴上一下!
多谢了!
google一下就可以找到很多makefile的相关语法定义了
1 #Makefile***2009-12-15
2
3 CC=g++ (编译链接使用g++)
4 OPT=-O3(对代码进行3级优化。SystemC生成可执行文件。可能会出错,保险的话,不要优化)
5 DEBUG=-g(加了-g参数,就可以利用GDB或DDD 调试SystemC代码)
6 OTHER=-Wall(Warning All)
7 CFLAGS=$(OPT) $(OTHER) -Wno -deprecated(这个小编自己查GDB 的手册吧,呵呵)
8 # CFLAGS =$(DEBUG) $(OTHER)
9
10 MODULE =sim
11 SRCS = counter_tb.cpp
12 OBJS=$(SRCS:.cpp.o)
13
14 include Makefile.defs(大部分信息在Makefile.defs里,建议小编好好看看,但看Makefile不行)
建议小编看两个文档:
1、《跟我一起写Makefile》,一个高手写的,作为学习Makefile的经典教材,名字可能稍有出入。
2、gdb 的用户手册,可以用man gdb等命令看
多谢楼上!
makefile的基本作用就是批处理,把命令行里面很长的内容以及反馈由机器来处理
下面是makefile.defs的类似内容(也是网上搜索的)
SYSTEMC = /home/Administrator/systemc-2.1.v1(这个目录要根据自己路径修改)
INCDIR = -I$(SYSTEMC)/include
LIBDIR = -L$(SYSTEMC)/lib-$(TARGET_ARCH)
LIBS = -lsystemc
EXE = $(MODULE).x
# Comunica al make su quali tipi di estensioni deve
eseguire le regole di suffisso.
.SUFFIXES: .cc .o .x
$(EXE): $(OBJS) $(SYSTEMC)/lib-$(TARGET_ARCH)/libsystemc.a
$(CC) $(CFLAGS) $(LIBDIR) -o $@ $(OBJS) $(LIBS)
# Comunica al make di eseguire una compilazione
# C++ per tutti i file aventi estensione .c
# e per i quali i relativi file oggetto non
# sono stati ancora aggiornati
.cc.o:
$(CC) $(CFLAGS) $(INCDIR) -c $<
clean::
rm -f $(OBJS) *~ $(EXE) core5,运行脚本make -f Makefile
最简单的话就不用makefile.defs,直接在makefile里面写类似上面的内容就可以了,运行这个make对应的就是下面类似的命令(目录由个人的systemc安装目录定)
g++main.cpp-I/home/user/systemc/include -L /home/user/systemc/lib-linux -lsystemc -o main
LZ的这个Makefile里就是一些宏定义,重要的在include Makefile.defs里面……