mirror of
https://github.com/postgres/postgres.git
synced 2025-10-16 17:07:43 +03:00
Simplify make files, add full dependencies.
This commit is contained in:
71
src/backend/bootstrap/Makefile
Normal file
71
src/backend/bootstrap/Makefile
Normal file
@@ -0,0 +1,71 @@
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Makefile--
|
||||
# Makefile for the bootstrap module
|
||||
#
|
||||
# IDENTIFICATION
|
||||
# $Header: /cvsroot/pgsql/src/backend/bootstrap/Makefile,v 1.1 1996/10/27 09:46:59 bryanh 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...
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
SRCDIR = ../..
|
||||
include ../../Makefile.global
|
||||
|
||||
INCLUDE_OPT = -I.. \
|
||||
-I../port/$(PORTNAME) \
|
||||
-I../include \
|
||||
-I../../include
|
||||
|
||||
CFLAGS += $(INCLUDE_OPT)
|
||||
|
||||
BOOTYACCS = bootstrap_tokens.h bootparse.c
|
||||
|
||||
OBJS = bootparse.o bootscanner.o bootstrap.o
|
||||
|
||||
all: SUBSYS.o
|
||||
|
||||
SUBSYS.o: $(OBJS)
|
||||
ld -r -o SUBSYS.o $(OBJS)
|
||||
|
||||
# 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: bootstrap_tokens.h
|
||||
|
||||
bootstrap_tokens.h bootparse.c: bootparse.y
|
||||
$(YACC) $(YFLAGS) $<
|
||||
sed -f boot.sed < y.tab.c > bootparse.c
|
||||
mv y.tab.h bootstrap_tokens.h
|
||||
rm -f y.tab.c
|
||||
|
||||
bootscanner.c: bootscanner.l
|
||||
$(LEX) $<
|
||||
sed -f boot.sed < lex.yy.c > bootscanner.c
|
||||
rm -f lex.yy.c
|
||||
|
||||
clean:
|
||||
rm -f SUBSYS.o $(OBJS) bootparse.c bootstrap_tokens.h bootscanner.c
|
||||
# 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
|
||||
|
||||
# This is unusual: We actually have to build some of the parts before
|
||||
# we know what the header file dependencies are.
|
||||
dep: bootparse.c bootscanner.c bootstrap_tokens.h
|
||||
$(CC) -MM $(INCLUDE_OPT) *.c >depend
|
||||
|
||||
ifeq (depend,$(wildcard depend))
|
||||
include depend
|
||||
endif
|
||||
|
@@ -1,63 +0,0 @@
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Makefile.inc--
|
||||
# Makefile for the bootstrap module
|
||||
#
|
||||
# Copyright (c) 1994, Regents of the University of California
|
||||
#
|
||||
#
|
||||
# IDENTIFICATION
|
||||
# $Header: /cvsroot/pgsql/src/backend/bootstrap/Attic/Makefile.inc,v 1.2 1996/09/26 15:40:37 momjian Exp $
|
||||
#
|
||||
#
|
||||
# Another kinda weird Makefile.inc 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...
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
bootdir= $(CURDIR)/bootstrap
|
||||
VPATH:= $(VPATH):$(bootdir)
|
||||
|
||||
BOOTYACCS= bootstrap_tokens.h bootparse.c
|
||||
#BOOTYACCS= bootparse.c
|
||||
|
||||
SRCS_BOOTSTRAP= bootparse.c bootscanner.c bootstrap.c
|
||||
|
||||
$(BOOTYACCS): bootparse.y
|
||||
cd $(objdir); \
|
||||
$(YACC) $(YFLAGS) $<; \
|
||||
sed -f $(bootdir)/boot.sed < y.tab.c > bootparse.c; \
|
||||
mv y.tab.h bootstrap_tokens.h; \
|
||||
rm -f y.tab.c
|
||||
|
||||
$(objdir)/bootparse.o: bootparse.c
|
||||
$(cc_inobjdir)
|
||||
|
||||
|
||||
bootscanner.c: bootscanner.l
|
||||
cd $(objdir); \
|
||||
$(LEX) $<; \
|
||||
sed -f $(bootdir)/boot.sed < lex.yy.c > bootscanner.c; \
|
||||
rm -f lex.yy.c
|
||||
|
||||
$(objdir)/bootscanner.o: bootscanner.c
|
||||
$(cc_inobjdir)
|
||||
|
||||
|
||||
|
||||
#
|
||||
# The following insures that y.tab.h gets made as bootstrap.c
|
||||
# includes it
|
||||
#
|
||||
bootstrap.o: $(BOOTYACCS)
|
||||
|
||||
POSTGRES_DEPEND+= $(BOOTYACCS) bootscanner.c
|
||||
|
||||
|
||||
CLEANFILES+= bootscanner.c $(BOOTYACCS) y.tab.h y.output
|
||||
|
||||
HEADERS+= bootstrap.h
|
||||
|
Reference in New Issue
Block a user