2014-12-03 5 views
0

Ниже приведен файл 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 

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. Спасибо.

ответ

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 и src/backend/common.mk.

Смежные вопросы