mirror of
https://git.postgresql.org/git/postgresql.git
synced 2026-02-22 06:17:00 +08:00
(usually bison output files), not as standalone files. This hack works around flex's insistence on including <stdio.h> before we are able to include postgres.h; postgres.h will already be read before the compiler starts to read the flex output file. Needed for largefile support on some platforms.
70 lines
1.8 KiB
Makefile
70 lines
1.8 KiB
Makefile
#-------------------------------------------------------------------------
|
|
#
|
|
# Makefile for parser
|
|
#
|
|
# $Header: /cvsroot/pgsql/src/backend/parser/Makefile,v 1.38 2002/11/01 22:52:33 tgl Exp $
|
|
#
|
|
#-------------------------------------------------------------------------
|
|
|
|
subdir = src/backend/parser
|
|
top_builddir = ../../..
|
|
include $(top_builddir)/src/Makefile.global
|
|
|
|
override CPPFLAGS := -I$(srcdir) $(CPPFLAGS)
|
|
|
|
OBJS= analyze.o gram.o keywords.o parser.o parse_agg.o parse_clause.o \
|
|
parse_expr.o parse_func.o parse_node.o parse_oper.o parse_relation.o \
|
|
parse_type.o parse_coerce.o parse_target.o scansup.o
|
|
|
|
FLEXFLAGS = -CF
|
|
|
|
|
|
all: SUBSYS.o
|
|
|
|
SUBSYS.o: $(OBJS)
|
|
$(LD) $(LDREL) $(LDOUT) $@ $^
|
|
|
|
|
|
# scan is compiled as part of gram
|
|
gram.o: $(srcdir)/scan.c
|
|
|
|
|
|
# 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. To be safe for parallel
|
|
# make, we must chain the dependencies like this. The semicolon is
|
|
# important, otherwise make will choose the built-in rule for
|
|
# gram.y=>gram.c.
|
|
|
|
$(srcdir)/gram.c: $(srcdir)/parse.h ;
|
|
|
|
$(srcdir)/parse.h: gram.y
|
|
ifdef YACC
|
|
$(YACC) -d $(YFLAGS) $<
|
|
mv -f y.tab.c $(srcdir)/gram.c
|
|
mv -f y.tab.h $(srcdir)/parse.h
|
|
else
|
|
@$(missing) bison $< $@
|
|
endif
|
|
|
|
|
|
$(srcdir)/scan.c: scan.l
|
|
ifdef FLEX
|
|
$(FLEX) $(FLEXFLAGS) -o'$@' $<
|
|
else
|
|
@$(missing) flex $< $@
|
|
endif
|
|
|
|
|
|
# Force these dependencies to be known even without dependency info built:
|
|
|
|
keywords.o parse_clause.o parse_expr.o parser.o gram.o: $(srcdir)/parse.h
|
|
|
|
|
|
# gram.c, parse.h, and scan.c are in the distribution tarball, so they
|
|
# are not cleaned here.
|
|
clean:
|
|
rm -f SUBSYS.o $(OBJS)
|
|
# And the garbage that might have been left behind by partial build:
|
|
@rm -f y.tab.c y.tab.h lex.yy.c
|