| #------------------------------------------------------------------------- |
| # |
| # 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_merge.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 |
| |
| OBJS+= parse_partition_gp.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 |