diff options
author | Peter Eisentraut | 2000-07-19 16:30:27 +0000 |
---|---|---|
committer | Peter Eisentraut | 2000-07-19 16:30:27 +0000 |
commit | 32163099d7c43a0244f463eb4e525c711e6e97a3 (patch) | |
tree | e7a940778fa8adb459b0c35912a0990a214d0759 /src/backend/bootstrap | |
parent | 79e6648649ad4bf6ef7112e9d97e35270397fb01 (diff) |
Add distprep target to take some of the job of the release_prep script.
The latter updated accordingly. Also add `dist' and `distcheck' targets
to play with, but caveat packager.
Updated backend/bootstrap and backend/parser makefile to make them
marginally builddir aware and fix the usual set of things.
Add rule to automatically remake config.h dependent on config.h.in and
config.status. (Adopted from Autoconf manual and about every other
package.) On a good day we should now have a complete and accurate set
of dependencies throughout everything.
Diffstat (limited to 'src/backend/bootstrap')
-rw-r--r-- | src/backend/bootstrap/Makefile | 65 |
1 files changed, 29 insertions, 36 deletions
diff --git a/src/backend/bootstrap/Makefile b/src/backend/bootstrap/Makefile index deda81105d7..d1b40e99830 100644 --- a/src/backend/bootstrap/Makefile +++ b/src/backend/bootstrap/Makefile @@ -1,69 +1,62 @@ #------------------------------------------------------------------------- # -# Makefile-- -# Makefile for the bootstrap module +# Makefile for the bootstrap module # -# IDENTIFICATION -# $Header: /cvsroot/pgsql/src/backend/bootstrap/Makefile,v 1.23 2000/06/07 16:26:37 petere Exp $ -# -# -# We must build bootparse.c and bootscanner.c with yacc and lex and sed, -# but bootstrap.c is part of the distribution. -# -# Another kinda weird Makefile cause we need two -# scanner/parsers in the backend and most yaccs and lexs -# don't have the prefix option. -# -# sed files are HACK CITY! - redo... +# $Header: /cvsroot/pgsql/src/backend/bootstrap/Makefile,v 1.24 2000/07/19 16:29:47 petere Exp $ # #------------------------------------------------------------------------- -SRCDIR= ../.. -include $(SRCDIR)/Makefile.global +subdir = src/backend/bootstrap +top_builddir = ../../.. +include $(top_builddir)/src/Makefile.global -ifeq ($(CC), gcc) +ifeq ($(GCC), yes) CFLAGS+= -Wno-error endif -BOOTYACCS= bootstrap_tokens.h bootparse.c - +# qnx4's wlink currently crashes with bootstrap.o ifneq ($(PORTNAME), qnx4) OBJS= bootparse.o bootscanner.o bootstrap.o else -# qnx4's wlink currently crashes with bootstrap.o OBJS= bootparse.o bootscanner.o endif + # make sure bootstrap.o is built even on qnx4 all: SUBSYS.o bootstrap.o SUBSYS.o: $(OBJS) - $(LD) $(LDREL) $(LDOUT) SUBSYS.o $(OBJS) + $(LD) $(LDREL) $(LDOUT) $@ $^ + -# bootstrap.o's dependency on bootstrap_tokens.h is computed by the -# make depend, but we state it here explicitly anyway because -# bootstrap_tokens.h doesn't even exist at first and if user fails to -# do make depend, we still want the build to succeed. +bootstrap.o bootscanner.c: $(srcdir)/bootstrap_tokens.h -bootstrap.o: bootstrap_tokens.h -bootstrap_tokens.h bootparse.c: bootparse.y +# `sed' rules to remove conflicts between bootstrap scanner and parser +# and the SQL scanner and parser. For correctness' sake the rules that +# use this must depend on this Makefile. +define sed-magic +sed -e 's/^yy/Int_yy/g' \ + -e 's/\([^a-zA-Z0-9_]\)yy/\1Int_yy/g' +endef + + +$(srcdir)/bootparse.c $(srcdir)/bootstrap_tokens.h: bootparse.y Makefile $(YACC) -d $(YFLAGS) $< - grep -v "^#" boot.sed > sedfile - sed -f sedfile < y.tab.c > bootparse.c - mv y.tab.h bootstrap_tokens.h - rm -f y.tab.c sedfile + $(sed-magic) < y.tab.c > $(srcdir)/bootparse.c + $(sed-magic) < y.tab.h > $(srcdir)/bootstrap_tokens.h + rm -f y.tab.c y.tab.h -bootscanner.c: bootscanner.l +$(srcdir)/bootscanner.c: bootscanner.l Makefile $(LEX) $(LFLAGS) $< - grep -v "^#" boot.sed > sedfile - sed -f sedfile < lex.yy.c > bootscanner.c - rm -f lex.yy.c sedfile + $(sed-magic) < lex.yy.c > $@ + rm -f lex.yy.c clean: rm -f SUBSYS.o $(OBJS) bootstrap.o # And the garbage that might have been left behind by partial build: - rm -f y.tab.h y.tab.c y.output lex.yy.c + @rm -f y.tab.h y.tab.c y.output lex.yy.c + # This is unusual: We actually have to build some of the parts before # we know what the header file dependencies are. |