71 lines
1.9 KiB
Makefile
71 lines
1.9 KiB
Makefile
#-------------------------------------------------------------------------
|
|
#
|
|
# Makefile for parser
|
|
#
|
|
# src/backend/parser/Makefile
|
|
#
|
|
#-------------------------------------------------------------------------
|
|
|
|
subdir = src/backend/parser
|
|
top_builddir = ../../..
|
|
include $(top_builddir)/src/Makefile.global
|
|
|
|
override CPPFLAGS := -I. -I$(srcdir) $(CPPFLAGS)
|
|
|
|
OBJS = \
|
|
analyze.o \
|
|
gram.o \
|
|
parse_agg.o \
|
|
parse_clause.o \
|
|
parse_coerce.o \
|
|
parse_collate.o \
|
|
parse_cte.o \
|
|
parse_enr.o \
|
|
parse_expr.o \
|
|
parse_func.o \
|
|
parse_node.o \
|
|
parse_oper.o \
|
|
parse_param.o \
|
|
parse_relation.o \
|
|
parse_target.o \
|
|
parse_type.o \
|
|
parse_utilcmd.o \
|
|
parser.o \
|
|
scan.o \
|
|
scansup.o
|
|
|
|
include $(top_srcdir)/src/backend/common.mk
|
|
|
|
|
|
# There is no correct way to write a rule that generates two files.
|
|
# Rules with two targets don't have that meaning, they are merely
|
|
# shorthand for two otherwise separate rules. If we have an action
|
|
# that in fact generates two or more files, we must choose one of them
|
|
# as primary and show it as the action's output, then make all of the
|
|
# other output files dependent on the primary, like this. Furthermore,
|
|
# the "touch" action is essential, because it ensures that gram.h is
|
|
# marked as newer than (or at least no older than) gram.c. Without that,
|
|
# make is likely to try to rebuild gram.h in subsequent runs, which causes
|
|
# failures in VPATH builds from tarballs.
|
|
|
|
gram.h: gram.c
|
|
touch $@
|
|
|
|
gram.c: BISONFLAGS += -d
|
|
gram.c: BISON_CHECK_CMD = $(PERL) $(srcdir)/check_keywords.pl $< $(top_srcdir)/src/include/parser/kwlist.h
|
|
|
|
|
|
scan.c: FLEXFLAGS = -CF -p -p
|
|
scan.c: FLEX_NO_BACKUP=yes
|
|
scan.c: FLEX_FIX_WARNING=yes
|
|
|
|
|
|
# Force these dependencies to be known even without dependency info built:
|
|
gram.o scan.o parser.o: gram.h
|
|
|
|
|
|
# gram.c, gram.h, and scan.c are in the distribution tarball, so they
|
|
# are not cleaned here.
|
|
clean distclean maintainer-clean:
|
|
rm -f lex.backup
|