这个makefile的起点在哪里

时间:2014-12-03 16:07:11

标签: c postgresql makefile

以下是我在Postgres中遇到的makefile,我不明白它是如何工作的。我看到了一些简单的Makefile示例,他们有编译命令,但这个看起来有所不同。谁能解释一下这个makefile是如何工作的?基本上我需要先了解这个,然后才能为我的目的修改它。

subdir = src/backend/access/transam
top_builddir = ../../../..
include $(top_builddir)/src/Makefile.global

OBJS = clog.o multixact.o \
    xlogreader.o xlogutils.o

include $(top_srcdir)/src/backend/common.mk

xlog.o: xlog.c $(top_srcdir)/src/include/catalog/catversion.h

如果您需要更多信息,请与我们联系。 感谢。

1 个答案:

答案 0 :(得分:2)

subdir = src/backend/access/transam
top_builddir = ../../../..

设置一些变量

include $(top_builddir)/src/Makefile.global

包含一个全局makefile(可能以某种方式使用两个先前设置的变量)。

OBJS = clog.o multixact.o \
    xlogreader.o xlogutils.o

为此目录中要构建的内容创建一个OBJS变量(我假设)。

include $(top_srcdir)/src/backend/common.mk

包含另一个makefile(可能使用OBJS并定义规则/标志/等来构建文件)。

xlog.o: xlog.c $(top_srcdir)/src/include/catalog/catversion.h

明确处理xlog.o目标文件的先决条件(可能是因为将其置于OBJS会做出不合需要的事情。)

有关subdirOBJS的确切用法(或您可以在此文件中设置的其他内容)的更多信息,您需要阅读并理解src/Makefile.global和{{1} }。