From 142c400d72f77e7249306b80e0149f4fd35c6304 Mon Sep 17 00:00:00 2001 From: Alexander Korotkov Date: Sun, 17 Mar 2019 10:51:28 +0300 Subject: [PATCH] Fix make rules for jsonpath grammar making them similar to SQL grammar Reported-by: Jeff Janes, Tom Lane Discussion: https://postgr.es/m/CAMkU%3D1w1qBvoW82ZTFpAKae027R-2OHw-m6ALe0VQRNAFueBVA%40mail.gmail.com --- src/backend/Makefile | 4 +++- src/backend/utils/adt/Makefile | 10 +++++++++- src/include/Makefile | 4 ++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/backend/Makefile b/src/backend/Makefile index 31d9d6605d..ecbfa875af 100644 --- a/src/backend/Makefile +++ b/src/backend/Makefile @@ -315,8 +315,10 @@ maintainer-clean: distclean replication/syncrep_scanner.c \ storage/lmgr/lwlocknames.c \ storage/lmgr/lwlocknames.h \ - utils/misc/guc-file.c \ + utils/adt/jsonpath_gram.c \ utils/adt/jsonpath_gram.h \ + utils/adt/jsonpath_scan.c \ + utils/misc/guc-file.c \ utils/sort/qsort_tuple.c diff --git a/src/backend/utils/adt/Makefile b/src/backend/utils/adt/Makefile index 6b24a9caa1..60925f4e28 100644 --- a/src/backend/utils/adt/Makefile +++ b/src/backend/utils/adt/Makefile @@ -33,11 +33,19 @@ OBJS = acl.o amutils.o arrayfuncs.o array_expanded.o array_selfuncs.o \ txid.o uuid.o varbit.o varchar.o varlena.o version.o \ windowfuncs.o xid.o xml.o +# There is no correct way to write a rule that generates two files. +# See comment in src/backend/parser/Makefile for the explanation of +# the trick used here. + +jsonpath_gram.h: jsonpath_gram.c + touch $@ + jsonpath_gram.c: BISONFLAGS += -d jsonpath_scan.c: FLEXFLAGS = -CF -p -p +jsonpath_scan.c: FLEX_NO_BACKUP=yes +jsonpath_scan.c: FLEX_FIX_WARNING=yes -jsonpath_gram.h: jsonpath_gram.c ; # Force these dependencies to be known even without dependency info built: jsonpath_gram.o jsonpath_scan.o jsonpath_parser.o: jsonpath_gram.h diff --git a/src/include/Makefile b/src/include/Makefile index c557375ae3..652f6dc6cc 100644 --- a/src/include/Makefile +++ b/src/include/Makefile @@ -54,7 +54,7 @@ install: all installdirs cp $(srcdir)/$$dir/*.h '$(DESTDIR)$(includedir_server)'/$$dir/ || exit; \ done ifeq ($(vpath_build),yes) - for file in catalog/schemapg.h catalog/pg_*_d.h parser/gram.h storage/lwlocknames.h utils/probes.h; do \ + for file in catalog/schemapg.h catalog/pg_*_d.h parser/gram.h storage/lwlocknames.h utils/probes.h utils/jsonpath_gram.h; do \ cp $$file '$(DESTDIR)$(includedir_server)'/$$file || exit; \ done endif @@ -78,7 +78,7 @@ uninstall: clean: rm -f utils/fmgroids.h utils/fmgrprotos.h utils/errcodes.h utils/header-stamp - rm -f parser/gram.h storage/lwlocknames.h utils/probes.h + rm -f parser/gram.h storage/lwlocknames.h utils/probes.h utils/jsonpath_gram.h rm -f catalog/schemapg.h catalog/pg_*_d.h catalog/header-stamp distclean maintainer-clean: clean -- 2.40.0