postgresql/src/backend/nodes/Makefile

99 lines
2.9 KiB
Makefile

#-------------------------------------------------------------------------
#
# Makefile--
# Makefile for backend/nodes
#
# IDENTIFICATION
# src/backend/nodes/Makefile
#
#-------------------------------------------------------------------------
subdir = src/backend/nodes
top_builddir = ../../..
include $(top_builddir)/src/Makefile.global
override CPPFLAGS := -I. -I$(srcdir) $(CPPFLAGS)
OBJS = \
bitmapset.o \
copyfuncs.o \
equalfuncs.o \
extensible.o \
list.o \
makefuncs.o \
multibitmapset.o \
nodeFuncs.o \
nodes.o \
outfuncs.o \
params.o \
print.o \
queryjumblefuncs.o \
read.o \
readfuncs.o \
tidbitmap.o \
value.o
include $(top_srcdir)/src/backend/common.mk
# The principal node-defining headers are listed in their inclusion order,
# to ensure cross-file subtyping works correctly. The rest can just be
# listed alphabetically.
# Caution: re-ordering this list risks ABI breakage!
node_headers = \
nodes/nodes.h \
nodes/primnodes.h \
nodes/parsenodes.h \
nodes/pathnodes.h \
nodes/plannodes.h \
nodes/execnodes.h \
access/amapi.h \
access/sdir.h \
access/tableam.h \
access/tsmapi.h \
commands/event_trigger.h \
commands/trigger.h \
executor/tuptable.h \
foreign/fdwapi.h \
nodes/bitmapset.h \
nodes/extensible.h \
nodes/lockoptions.h \
nodes/miscnodes.h \
nodes/replnodes.h \
nodes/supportnodes.h \
nodes/value.h \
utils/rel.h
# see also catalog/Makefile for an explanation of these make rules
all: generated-header-symlinks
.PHONY: generated-header-symlinks
generated-header-symlinks: $(top_builddir)/src/include/nodes/header-stamp
# node-support-stamp records the last time we ran gen_node_support.pl.
# We don't rely on the timestamps of the individual output files,
# because the Perl script won't update them if they didn't change (to
# avoid unnecessary recompiles).
node-support-stamp: gen_node_support.pl $(addprefix $(top_srcdir)/src/include/,$(node_headers))
$(PERL) $^
touch $@
# These generated headers must be symlinked into src/include/.
# We use header-stamp to record that we've done this because the symlinks
# themselves may appear older than node-support-stamp.
$(top_builddir)/src/include/nodes/header-stamp: node-support-stamp
cd '$(dir $@)' && for file in nodetags.h; do \
rm -f $$file && $(LN_S) "../../../$(subdir)/$$file" . ; \
done
touch $@
copyfuncs.o: copyfuncs.c copyfuncs.funcs.c copyfuncs.switch.c | node-support-stamp
equalfuncs.o: equalfuncs.c equalfuncs.funcs.c equalfuncs.switch.c | node-support-stamp
outfuncs.o: outfuncs.c outfuncs.funcs.c outfuncs.switch.c | node-support-stamp
queryjumblefuncs.o: queryjumblefuncs.c queryjumblefuncs.funcs.c queryjumblefuncs.switch.c | node-support-stamp
readfuncs.o: readfuncs.c readfuncs.funcs.c readfuncs.switch.c | node-support-stamp
clean:
rm -f node-support-stamp $(addsuffix funcs.funcs.c,copy equal out queryjumble read) $(addsuffix funcs.switch.c,copy equal out queryjumble read) nodetags.h