NetBSD多文件结构Makefile编写

       作为一个初学者,在BSD的道路上真是磕磕碰碰呀,而且又是学习NetBSD,道路更是艰辛,先把这几天学习的一点关于bsd下Makefile编程使用总结一下,希望以后可以复习使用,也可以给其他朋友一个引导吧。
       以具体例子来讲,我的文件结构如下:
NetBSD多文件结构Makefile编写_第1张图片
从结构图中可以看出,我的当前工程中有两个文件夹CUnit和Test,其中CUnit文件夹里面放的是我的库的源文件,上面的代码都是从sourceforge上面下下来的,在这里只是学习一下如何编译和使用。我们知道CUnit是一个C测试框架,这里我们顺便学习编译下库。Test是我的主函数放的地方,是对测试库的一个测试。我的Makefile文件总共有三个,在CUnit和Test目录里面分别各有一个,在CUnit和Test当前目录下有一个。
CUnit和Test当前目录下的Makefile为:
SUBDIR += CUnit
SUBDIR += Test

.include <bsd.subdir.mk>

在CUnit目录里面的Makefile为:
LIB = cunit
MAN=
.PATH: ./Sources/Automated
SRCS= Automated.c

.PATH: ./Sources/Basic
SRCS+= Basic.c

.PATH: ./Sources/Console
SRCS+= Console.c

.PATH: ./Sources/Framework
SRCS+= CUError.c MyMem.c TestDB.c TestRun.c Util.c

CFLAGS = -g -I ./Headers -I ./Sources -Werror
LINTFLAGS += -g -I. -I ./Headers -I ./Sources

.include <bsd.lib.mk>

在Test目录里面的Makefile目录为:
PROG= consoletest
SRCS= ConsoleTest.c ExampleTests.c
MAN =

CFLAGS = -g -O0 -I ./ -I ../CUnit/Headers -I/usr/pkg/include/ -I. -Werror

LINTFLAGS += -I.
LDFLAGS += -L ../CUnit -L/usr/pkg/lib
LDADD += -Wl -lz -lm -lcunit

.include <bsd.prog.mk>
就这样,一个简单的Makefile文件工程就编写好了,由于本人对Makefile认识还不够,使用更是菜鸟,所以只能写到这里。等过段时间水平提升了,就在每个包含.c的目录里面放一个Makefile,这样就很爽了,呵呵。

 

你可能感兴趣的:(NetBSD多文件结构Makefile编写)