以下是我在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
如果您需要更多信息,请与我们联系。 感谢。
答案 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
会做出不合需要的事情。)
有关subdir
或OBJS
的确切用法(或您可以在此文件中设置的其他内容)的更多信息,您需要阅读并理解src/Makefile.global
和{{1} }。