aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/GNUmakefile.in89
-rw-r--r--src/backend/Makefile324
-rw-r--r--src/backend/catalog/Makefile90
-rw-r--r--src/backend/catalog/genbki.sh (renamed from src/backend/catalog/genbki.sh.in)135
-rw-r--r--src/backend/port/hpux/fixade.h67
-rw-r--r--src/backend/utils/Gen_fmgrtab.sh7
-rw-r--r--src/bin/initdb/Makefile8
-rw-r--r--src/bin/initdb/initdb.sh266
-rw-r--r--src/include/Makefile55
-rw-r--r--src/include/c.h8
-rwxr-xr-xsrc/test/regress/run_check.sh4
11 files changed, 466 insertions, 587 deletions
diff --git a/src/GNUmakefile.in b/src/GNUmakefile.in
index a2516087018..83d69dd406c 100644
--- a/src/GNUmakefile.in
+++ b/src/GNUmakefile.in
@@ -1,90 +1,41 @@
#-------------------------------------------------------------------------
#
-# Makefile.inc--
-# Build and install postgres.
+# Makefile for src
#
# Copyright (c) 1994, Regents of the University of California
#
-#
-# IDENTIFICATION
-# $Header: /cvsroot/pgsql/src/Attic/GNUmakefile.in,v 1.56 2000/07/02 15:20:41 petere Exp $
+# $Header: /cvsroot/pgsql/src/Attic/GNUmakefile.in,v 1.57 2000/07/06 21:33:12 petere Exp $
#
#-------------------------------------------------------------------------
-SRCDIR= .
+subdir = src
+top_builddir = ..
include Makefile.global
-FIND = @find@
-
-# assuming gnu tar and split here
-TAR = @tar@
-SPLIT = @split@
-
-ETAGS = @etags@
-XARGS = @xargs@
-all:
- $(MAKE) -C backend all
- $(MAKE) -C interfaces all
- $(MAKE) -C bin all
- $(MAKE) -C pl all
-
-install: installdirs
- $(MAKE) -C backend install
- $(MAKE) -C interfaces install
- $(MAKE) -C bin install
- $(MAKE) -C pl install
-
-installdirs:
- ../config/mkinstalldirs $(BINDIR) $(LIBDIR) $(INCLUDEDIR)
+all install installdirs uninstall dep depend:
+ $(MAKE) -C backend $@
+ $(MAKE) -C include $@
+ $(MAKE) -C interfaces $@
+ $(MAKE) -C bin $@
+ $(MAKE) -C pl $@
clean:
- $(MAKE) -C utils clean
- $(MAKE) -C backend clean
- $(MAKE) -C interfaces clean
- $(MAKE) -C bin clean
- $(MAKE) -C pl clean
+ $(MAKE) -C backend $@
+ $(MAKE) -C include $@
+ $(MAKE) -C interfaces $@
+ $(MAKE) -C bin $@
+ $(MAKE) -C pl $@
+ $(MAKE) -C utils $@
$(MAKE) -C test clean
- $(MAKE) -C ../contrib/spi clean
-# Not all subdirectories have a make distclean target yet
distclean maintainer-clean:
- -$(MAKE) -C utils clean
- -$(MAKE) -C backend clean
- rm -f backend/port/Makefile backend/catalog/genbki.sh \
- backend/port/tas.s backend/port/dynloader.c
+ -$(MAKE) -C utils $@
+ -$(MAKE) -C backend $@
+ -$(MAKE) -C include $@
-$(MAKE) -C interfaces $@
-$(MAKE) -C bin $@
-$(MAKE) -C pl $@
-$(MAKE) -C test clean
rm -f test/regress/GNUmakefile
- -$(MAKE) -C ../contrib/spi clean
- rm -f Makefile.port \
- include/config.h include/dynloader.h \
- include/os.h include/version.h \
- Makefile.global \
- GNUmakefile
-
-.DEFAULT:
- $(MAKE) -C utils $@
- $(MAKE) -C backend $@
- $(MAKE) -C interfaces $@
- $(MAKE) -C bin $@
- $(MAKE) -C pl $@
-
-TAGS:
- rm -f TAGS; \
- for i in backend interfaces/libpq bin; do \
- $(FIND) $$i -name '*.[chyl]' -print | $(XARGS) $(ETAGS) -a ; \
- done
-
-# target to generate a backup tar file and split files that can be
-# saved to 1.44M floppy
-BACKUP:
- rm -f BACKUP.filelist BACKUP.tgz; \
- $(FIND) . -not -path '*obj/*' -not -path '*data/*' -type f -print > BACKUP.filelist; \
- $(TAR) --files-from BACKUP.filelist -c -z -v -f BACKUP.tgz
- $(SPLIT) --bytes=1400k BACKUP.tgz pgBACKUP.
-
-.PHONY: TAGS
-.PHONY: BACKUP
+ rm -f Makefile.port Makefile.global GNUmakefile
diff --git a/src/backend/Makefile b/src/backend/Makefile
index 5c3a520fbdd..5394aa0d45c 100644
--- a/src/backend/Makefile
+++ b/src/backend/Makefile
@@ -1,47 +1,18 @@
#-------------------------------------------------------------------------
#
-# Makefile--
-# Makefile for the postgres backend (and the postmaster)
+# Makefile for the postgres backend
#
# Copyright (c) 1994, Regents of the University of California
#
-# Functional notes:
-#
-# Parallel make:
-#
-# This make file is set up so that you can do a parallel make (with
-# the --jobs option of make) and make multiple subdirectories at
-# once.
-#
-# However, the subdirectory make files are not so careful.
-# Normally, the --jobs option would get passed down to those
-# subdirectory makes, like any other make option, and they would
-# fail. But there's a trick: Put a value (max number of
-# processes) on the --jobs option, e.g. --jobs=4. Now, due to a
-# special feature of make, the --jobs option will not get passed
-# to the subdirectory makes. (make does this because if you only
-# want 4 tasks running, then splitting the subdirectory makes into
-# multiple tasks would violate your wishes).
-#
-#
-#
-# Implementation notes:
-#
-# We don't use $(LD) for linking. We use $(CC) instead. This is because
-# the $(CC) program apparently can do linking too, and it has certain
-# things like default options and search paths for libraries set up for
-# it that the more primitive $(LD) doesn't have.
-#
-#
-# IDENTIFICATION
-# $Header: /cvsroot/pgsql/src/backend/Makefile,v 1.57 2000/07/02 15:20:44 petere Exp $
+# $Header: /cvsroot/pgsql/src/backend/Makefile,v 1.58 2000/07/06 21:33:14 petere Exp $
#
#-------------------------------------------------------------------------
-SRCDIR = ..
-include $(SRCDIR)/Makefile.global
+subdir = src/backend
+top_builddir = ../..
+include ../Makefile.global
-DIRS = access bootstrap catalog commands executor lib libpq \
+DIRS := access bootstrap catalog commands executor lib libpq \
main parser nodes optimizer port postmaster regex rewrite \
storage tcop utils
@@ -49,221 +20,165 @@ ifdef TIOGA
DIRS += tioga
endif
-OBJS = $(DIRS:%=%/SUBSYS.o)
+OBJS := $(DIRS:%=%/SUBSYS.o)
ifeq ($(PORTNAME), qnx4)
-# This file crashes qnx4's wlink and is therefore not in bootstrap/SUBSYS.o
-# on that platform. (Wotta hack ... is it still necessary?)
+# This file crashes qnx4's wlink and is therefore not in
+# bootstrap/SUBSYS.o on that platform. (Wotta hack ... is it still
+# necessary?)
OBJS+= bootstrap/bootstrap.o
endif
-ifeq ($(MAKE_DLL), true)
-DLLOBJS= $(OBJS)
-DLLLIBS= -L/usr/local/lib -lcygipc -lcrypt -lcygwin -lkernel32
-postgres.def: $(DLLOBJS)
- $(DLLTOOL) --export-all --output-def $@ $(DLLOBJS)
+##########################################################################
-libpostgres.a: $(DLLOBJS) $(SRCDIR)/utils/dllinit.o postgres.def
- $(DLLTOOL) --dllname postgres.exe --def postgres.def --output-lib $@
-endif
+all: postgres $(POSTGRES_IMP)
-all: prebuildheaders postgres $(POSTGRES_IMP)
+# Note that this is bogus. The desired effect is to build these
+# commonly used headers before doing much else. However, nothing says
+# that make is required to update these dependencies in any particular
+# order, it just happens to do that. Parallel make is broken though.
ifneq ($(PORTNAME), win)
-postgres: $(OBJS)
- $(CC) $(CFLAGS) -o postgres $(OBJS) $(LDFLAGS)
+postgres: $(top_srcdir)/src/include/parser/parse.h $(top_builddir)/src/include/utils/fmgroids.h $(OBJS)
+ $(CC) $(CFLAGS) -o $@ $(OBJS) $(LDFLAGS)
-else
+else # win
-postgres: $(DLLOBJS) $(SRCDIR)/utils/dllinit.o postgres.def libpostgres.a
+# No points for style here. How about encapsulating some of these
+# commands into variables?
+postgres: $(top_srcdir)/src/include/parser/parse.h $(top_builddir)/src/include/utils/fmgroids.h \
+ $(DLLOBJS) $(top_builddir)/src/utils/dllinit.o postgres.def libpostgres.a
dlltool --dllname $@$(X) --output-exp $@.exp --def postgres.def
gcc -g -o $@$(X) -Wl,--base-file,$@.base $@.exp $(DLLOBJS) $(DLLLIBS)
dlltool --dllname $@$(X) --base-file $@.base --output-exp $@.exp --def postgres.def
gcc -g -o $@$(X) $@.exp $(DLLOBJS) $(DLLLIBS)
rm $@.exp $@.base
-endif
+endif # win
+
+# Parallel make trickery
$(OBJS): $(DIRS:%=%.dir)
+.PHONY: $(DIRS:%=%.dir)
$(DIRS:%=%.dir):
- $(MAKE) -C $(subst .dir,,$@) all
+ $(MAKE) -C $(subst .dir,,$@) all
-$(SRCDIR)/utils/dllinit.o: $(SRCDIR)/utils/dllinit.c
- $(MAKE) -C $(SRCDIR)/utils dllinit.o
+
+ifeq ($(MAKE_DLL), true)
+DLLOBJS := $(OBJS)
+DLLLIBS := -L/usr/local/lib -lcygipc -lcrypt -lcygwin -lkernel32
+
+postgres.def: $(DLLOBJS)
+ $(DLLTOOL) --export-all --output-def $@ $(DLLOBJS)
+
+libpostgres.a: $(DLLOBJS) $(top_builddir)/src/utils/dllinit.o postgres.def
+ $(DLLTOOL) --dllname postgres.exe --def postgres.def --output-lib $@
+endif # MAKE_DLL
+
+
+$(top_builddir)/src/utils/dllinit.o: $(top_srcdir)/src/utils/dllinit.c
+ $(MAKE) -C $(top_builddir)/src/utils dllinit.o
# The postgres.o target is needed by the rule in Makefile.global that
# creates the exports file when MAKE_EXPORTS = true.
postgres.o: $(OBJS)
- $(CC) $(LDREL) $(LDOUT) postgres.o $(OBJS) $(LDFLAGS)
+ $(CC) $(LDREL) $(LDOUT) $@ $^ $(LDFLAGS)
-# These header files should be up-to-date before we do much else...
-.PHONY: prebuildheaders
-prebuildheaders: $(SRCDIR)/include/parser/parse.h \
- $(SRCDIR)/include/utils/fmgroids.h
+# The following targets are specified in make commands that appear in
+# the make files in our subdirectories. Note that it's important we
+# match the dependencies shown in the subdirectory makefiles!
-############################################################################
-# The following targets are specified in make commands that appear in the
-# make files in our subdirectories. Note that it's important we match the
-# dependencies shown in the subdirectory makefiles!
+$(srcdir)/parser/parse.h: parser/gram.y
+ $(MAKE) -C parser parse.h
-$(SRCDIR)/include/parser/parse.h: parser/parse.h
- cp parser/parse.h $(SRCDIR)/include/parser
+utils/fmgroids.h: utils/Gen_fmgrtab.sh $(top_srcdir)/src/include/catalog/pg_proc.h
+ $(MAKE) -C utils fmgroids.h
-parser/parse.h: parser/gram.y
- $(MAKE) -C parser parse.h
+# Make symlinks for these headers in the include directory. That way
+# we can cut down on the -I options. Also, a symlink is automatically
+# up to date when we update the base file.
-$(SRCDIR)/include/utils/fmgroids.h: utils/fmgroids.h
- cp utils/fmgroids.h $(SRCDIR)/include/utils
+$(top_builddir)/src/include/parser/parse.h: $(srcdir)/parser/parse.h
+ cd $(dir $@) && rm -f $(notdir $@) && \
+ $(LN_S) ../../../$(subdir)/parser/parse.h .
-utils/fmgroids.h: utils/Gen_fmgrtab.sh $(SRCDIR)/include/catalog/pg_proc.h
- $(MAKE) -C utils fmgroids.h
+$(top_builddir)/src/include/utils/fmgroids.h: utils/fmgroids.h
+ cd $(dir $@) && rm -f $(notdir $@) && \
+ $(LN_S) ../../../$(subdir)/utils/fmgroids.h .
-#############################################################################
-clean:
- rm -f postgres$(X) $(POSTGRES_IMP) \
- $(SRCDIR)/include/parser/parse.h \
- $(SRCDIR)/include/utils/fmgroids.h
+
+##########################################################################
+
+install: all installdirs
+ $(INSTALL_PROGRAM) postgres$(X) $(bindir)/postgres$(X)
+ @rm -f $(bindir)/postmaster
+ ln -s postgres$(X) $(bindir)/postmaster
+ifeq ($(MAKE_EXPORTS), true)
+ $(INSTALL_DATA) $(POSTGRES_IMP) $(libdir)/$(POSTGRES_IMP)
+endif
ifeq ($(PORTNAME), win)
ifeq ($(MAKE_DLL), true)
- rm -f postgres.dll postgres.def libpostgres.a
+ $(INSTALL_DATA) libpostgres.a $(libdir)/libpostgres.a
endif
endif
- for i in $(DIRS); do $(MAKE) -C $$i clean; done
+ $(MAKE) -C catalog install-bki
+ $(INSTALL_DATA) libpq/pg_hba.conf.sample $(datadir)/pg_hba.conf.sample
+ $(INSTALL_DATA) libpq/pg_ident.conf.sample $(datadir)/pg_ident.conf.sample
+ $(INSTALL_DATA) utils/misc/postgresql.conf.sample $(datadir)/postgresql.conf.sample
-depend dep: prebuildheaders
- for i in $(DIRS); do $(MAKE) -C $$i $@; done
+installdirs:
+ $(mkinstalldirs) $(bindir) $(libdir) $(datadir)
-.DEFAULT:
- for i in $(DIRS); do $(MAKE) -C $$i $@; done
-#############################################################################
-#
-# Installation.
-#
-# Install the backend program (postgres) to the binary directory and
-# make a link as "postmaster". Install the bki files, templates, and sample
-# files to the library directory. Install exported headers to the include
-# directory (these headers are the minimal ones needed to build loadable
-# backend extensions).
-#
-# (History: Before Release 2, make install generated a bki.source file
-# and then used build parameters to convert it to a bki file, then installed
-# that bki file in the /files subdirectory of the default data directory.
-# Initdb then used the bki file to generate the database catalog classes.
-# That had to change because (1) there can be more than one database system,
-# and (2) the parameters of a database system should be set at initdb time,
-# not at postgres build time.
-
-.PHONY: install install-bin install-templates install-headers
-
-install: $(LIBDIR) $(BINDIR) $(HEADERDIR) $(TEMPLATEDIR) \
- postgres $(POSTGRES_IMP) \
- install-bin install-templates install-headers
-
-install-bin: $(BINDIR) postgres$(X) $(POSTGRES_IMP)
- $(INSTALL) $(INSTL_EXE_OPTS) postgres$(X) $(BINDIR)/postgres$(X)
- @rm -f $(BINDIR)/postmaster
- ln -s postgres$(X) $(BINDIR)/postmaster
+##########################################################################
+
+uninstall:
+ rm -f $(bindir)/postgres$(X) $(bindir)/postmaster
ifeq ($(MAKE_EXPORTS), true)
- $(INSTALL) $(INSTLOPTS) $(POSTGRES_IMP) $(LIBDIR)/$(POSTGRES_IMP)
+ rm -f $(libdir)/$(POSTGRES_IMP)
endif
ifeq ($(PORTNAME), win)
ifeq ($(MAKE_DLL), true)
-# $(INSTALL) $(INSTLOPTS) postgres.dll $(BINDIR)/postgres.dll
- $(INSTALL) $(INSTLOPTS) libpostgres.a $(LIBDIR)/libpostgres.a
+ rm -f $(libdir)/libpostgres.a
endif
endif
+ $(MAKE) -C catalog uninstall-bki
+ rm -f $(datadir)/pg_hba.conf.sample \
+ $(datadir)/pg_ident.conf.sample \
+ $(datadir)/postgresql.conf.sample
-install-templates: $(TEMPLATEDIR) \
- libpq/pg_hba.conf.sample libpq/pg_ident.conf.sample \
- utils/misc/postgresql.conf.sample
- $(MAKE) -C catalog install-bki-templates
- $(INSTALL) $(INSTLOPTS) libpq/pg_hba.conf.sample \
- $(TEMPLATEDIR)/pg_hba.conf.sample
- $(INSTALL) $(INSTLOPTS) libpq/pg_ident.conf.sample \
- $(TEMPLATEDIR)/pg_ident.conf.sample
- $(INSTALL) $(INSTLOPTS) utils/misc/postgresql.conf.sample \
- $(TEMPLATEDIR)/postgresql.conf.sample
-
-install-headers: prebuildheaders $(SRCDIR)/include/config.h
- -@if [ ! -d $(HEADERDIR) ]; then mkdir $(HEADERDIR); fi
- -@if [ ! -d $(HEADERDIR)/port ]; then mkdir $(HEADERDIR)/port; fi
- -@if [ ! -d $(HEADERDIR)/port/$(PORTNAME) ]; \
- then mkdir $(HEADERDIR)/port/$(PORTNAME); fi
- -@if [ ! -d $(HEADERDIR)/lib ]; \
- then mkdir $(HEADERDIR)/lib; fi
- -@if [ ! -d $(HEADERDIR)/libpq ]; \
- then mkdir $(HEADERDIR)/libpq; fi
- -@if [ ! -d $(HEADERDIR)/utils ]; \
- then mkdir $(HEADERDIR)/utils; fi
- -@if [ ! -d $(HEADERDIR)/access ]; \
- then mkdir $(HEADERDIR)/access; fi
- -@if [ ! -d $(HEADERDIR)/executor ]; \
- then mkdir $(HEADERDIR)/executor; fi
- -@if [ ! -d $(HEADERDIR)/commands ]; \
- then mkdir $(HEADERDIR)/commands; fi
- $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/os.h \
- $(HEADERDIR)/os.h
- $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/config.h \
- $(HEADERDIR)/config.h
- $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/c.h \
- $(HEADERDIR)/c.h
- $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/postgres.h \
- $(HEADERDIR)/postgres.h
- $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/postgres_ext.h \
- $(HEADERDIR)/postgres_ext.h
- $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/fmgr.h \
- $(HEADERDIR)/fmgr.h
- $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/libpq/pqcomm.h \
- $(HEADERDIR)/libpq/pqcomm.h
- $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/libpq/libpq-fs.h \
- $(HEADERDIR)/libpq/libpq-fs.h
- $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/lib/dllist.h \
- $(HEADERDIR)/lib/dllist.h
- $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/utils/geo_decls.h \
- $(HEADERDIR)/utils/geo_decls.h
- $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/utils/elog.h \
- $(HEADERDIR)/utils/elog.h
- $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/utils/fmgroids.h \
- $(HEADERDIR)/utils/fmgroids.h
- $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/utils/palloc.h \
- $(HEADERDIR)/utils/palloc.h
- $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/access/attnum.h \
- $(HEADERDIR)/access/attnum.h
- $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/executor/spi.h \
- $(HEADERDIR)/executor/spi.h
- $(INSTALL) $(INSTLOPTS) $(SRCDIR)/include/commands/trigger.h \
- $(HEADERDIR)/commands/trigger.h
-ifeq ($(PORTNAME), hpux)
-# is this still necessary?
- $(INSTALL) $(INSTLOPTS) $(SRCDIR)/backend/port/hpux/fixade.h \
- $(HEADERDIR)/port/hpux/fixade.h
-endif
-
-$(BINDIR):
- mkdir $@
-$(LIBDIR):
- mkdir $@
+##########################################################################
-$(HEADERDIR):
- mkdir $@
-
-# TEMPLATEDIR is commonly the same as LIBDIR, but it might be different.
-# We don't want duplicate rules if they are the same.
-ifneq ($(TEMPLATEDIR),$(LIBDIR))
+clean:
+ rm -f postgres$(X) $(POSTGRES_IMP) \
+ $(top_srcdir)/src/include/parser/parse.h \
+ $(top_builddir)/src/include/utils/fmgroids.h
+ifeq ($(PORTNAME), win)
+ifeq ($(MAKE_DLL), true)
+ rm -f postgres.dll postgres.def libpostgres.a
+endif
+endif
+ for i in $(DIRS); do $(MAKE) -C $$i clean; done
-$(TEMPLATEDIR):
- mkdir $@
+distclean: clean
+ rm -f port/Makefile port/tas.s port/dynloader.c
-endif
+maintainer-clean: distclean
+ rm -f $(srcdir)/bootstrap/bootparse.c \
+ $(srcdir)/bootstrap/bootscanner.c \
+ $(srcdir)/bootstrap/bootstrap_tokens.h \
+ $(srcdir)/parser/gram.c \
+ $(srcdir)/parser/scan.c \
+ $(srcdir)/parser/parse.h \
+ $(srcdir)/utils/misc/guc-file.c
-#############################################################################
+##########################################################################
#
# Support for code development.
#
@@ -273,21 +188,8 @@ endif
quick: $(OBJS)
$(CC) -o postgres $(OBJS) $(LDFLAGS)
-#
-# Build the file, "./ID", used by the "gid" (grep-for-identifier) tool
-#
-IDFILE= ID
-.PHONY: $(IDFILE)
-$(IDFILE):
- ./makeID
+depend dep: $(top_srcdir)/src/include/parser/parse.h $(top_builddir)/src/include/utils/fmgroids.h
+ for i in $(DIRS); do $(MAKE) -C $$i $@; done
-#
-# Special rule to generate cpp'd version of a .c file. This is
-# especially useful given all the hellish macro processing going on.
-# The cpp'd version has a .C suffix. To create foo.C from foo.c, just
-# type
-# make foo.C
-#
-%.cpp: %.c
- $(CC) -E $(CPPFLAGS) $(<:.C=.c) | cat -s | cb | tr -s '\012*' '\012' \
- > $(@F)
+.DEFAULT:
+ for i in $(DIRS); do $(MAKE) -C $$i $@; done
diff --git a/src/backend/catalog/Makefile b/src/backend/catalog/Makefile
index 4cf81c91dab..2368851c974 100644
--- a/src/backend/catalog/Makefile
+++ b/src/backend/catalog/Makefile
@@ -1,74 +1,68 @@
#-------------------------------------------------------------------------
#
-# Makefile--
-# Makefile for catalog
+# Makefile for catalog
#
-# IDENTIFICATION
-# $Header: /cvsroot/pgsql/src/backend/catalog/Makefile,v 1.22 2000/06/05 07:16:13 tgl Exp $
+# $Header: /cvsroot/pgsql/src/backend/catalog/Makefile,v 1.23 2000/07/06 21:33:22 petere Exp $
#
#-------------------------------------------------------------------------
-SRCDIR = ../..
-include $(SRCDIR)/Makefile.global
+subdir = src/backend/catalog
+top_builddir = ../../..
+include ../../Makefile.global
OBJS = catalog.o heap.o index.o indexing.o aclchk.o \
pg_aggregate.o pg_operator.o pg_proc.o pg_type.o
-BKIFILES = global1.bki.source local1_template1.bki.source \
- global1.description local1_template1.description
+BKIFILES = global.bki template1.bki global.description template1.description
all: SUBSYS.o $(BKIFILES)
SUBSYS.o: $(OBJS)
$(LD) $(LDREL) $(LDOUT) SUBSYS.o $(OBJS)
-GENBKI= ./genbki.sh
-
-GLOBALBKI_SRCS= $(addprefix $(SRCDIR)/include/catalog/, \
- pg_database.h pg_variable.h pg_shadow.h \
- pg_group.h pg_log.h \
- )
-
-LOCALBKI_SRCS= $(addprefix $(SRCDIR)/include/catalog/, \
- pg_proc.h pg_type.h pg_attribute.h pg_class.h \
- pg_inherits.h pg_index.h pg_statistic.h \
- pg_operator.h pg_opclass.h pg_am.h pg_amop.h pg_amproc.h \
- pg_language.h \
- pg_aggregate.h pg_ipl.h pg_inheritproc.h \
- pg_rewrite.h pg_listener.h pg_description.h indexing.h \
- )
-
-global1.bki.source: $(GENBKI) $(GLOBALBKI_SRCS) \
- $(addprefix $(SRCDIR)/include/catalog/, indexing.h)
-ifneq ($(PORTNAME), win)
- sh $(SHOPTS) $(GENBKI) $(BKIOPTS) $(GLOBALBKI_SRCS) > $@ 2>global1.description
-else
- $(GENBKI) $(BKIOPTS) $(GLOBALBKI_SRCS) > $@ 2>global1.description
-endif
-local1_template1.bki.source: $(GENBKI) $(LOCALBKI_SRCS)
-ifneq ($(PORTNAME), win)
- sh $(SHOPTS) $(GENBKI) $(BKIOPTS) $(LOCALBKI_SRCS) > $@ 2>local1_template1.description
-else
- $(GENBKI) $(BKIOPTS) $(LOCALBKI_SRCS) > $@ 2>local1_template1.description
-endif
+GLOBAL_BKI_SRCS := $(addprefix $(top_srcdir)/src/include/catalog/,\
+ pg_database.h pg_variable.h pg_shadow.h pg_group.h pg_log.h \
+ )
-install-bki-templates: $(BKIFILES)
- $(INSTALL) $(INSTLOPTS) global1.bki.source \
- $(TEMPLATEDIR)/global1.bki.source
- $(INSTALL) $(INSTLOPTS) global1.description \
- $(TEMPLATEDIR)/global1.description
- $(INSTALL) $(INSTLOPTS) local1_template1.bki.source \
- $(TEMPLATEDIR)/local1_template1.bki.source
- $(INSTALL) $(INSTLOPTS) local1_template1.description \
- $(TEMPLATEDIR)/local1_template1.description
+TEMPLATE1_BKI_SRCS := $(addprefix $(top_srcdir)/src/include/catalog/,\
+ pg_proc.h pg_type.h pg_attribute.h pg_class.h \
+ pg_inherits.h pg_index.h pg_statistic.h \
+ pg_operator.h pg_opclass.h pg_am.h pg_amop.h pg_amproc.h \
+ pg_language.h \
+ pg_aggregate.h pg_ipl.h pg_inheritproc.h \
+ pg_rewrite.h pg_listener.h pg_description.h indexing.h \
+ )
+
+
+global.bki global.description: genbki.sh $(GLOBAL_BKI_SRCS) $(top_srcdir)/src/include/catalog/indexing.h
+ CPP='$(CPP)' AWK='$(AWK)' $(SHELL) $< $(BKIOPTS) -o global -I$(top_srcdir)/src/include $(GLOBAL_BKI_SRCS)
+
+template1.bki template1.description: genbki.sh $(TEMPLATE1_BKI_SRCS)
+ CPP='$(CPP)' AWK='$(AWK)' $(SHELL) $< $(BKIOPTS) -o template1 -I$(top_srcdir)/src/include $(TEMPLATE1_BKI_SRCS)
+
+.PHONY: install-bki
+install-bki: $(BKIFILES) installdirs
+ $(INSTALL_DATA) global.bki $(datadir)/global.bki
+ $(INSTALL_DATA) global.description $(datadir)/global.description
+ $(INSTALL_DATA) template1.bki $(datadir)/template1.bki
+ $(INSTALL_DATA) template1.description $(datadir)/template1.description
+
+installdirs:
+ $(mkinstalldirs) $(datadir)
+
+.PHONY: uninstall-bki
+uninstall-bki:
+ rm -f $(addprefix $(datadir)/, $(BKIFILES))
-depend dep:
- $(CC) -MM $(CFLAGS) *.c >depend
clean:
rm -f SUBSYS.o $(OBJS) $(BKIFILES)
+
+depend dep:
+ $(CC) -MM $(CFLAGS) *.c >depend
+
ifeq (depend,$(wildcard depend))
include depend
endif
diff --git a/src/backend/catalog/genbki.sh.in b/src/backend/catalog/genbki.sh
index 58ddcd54a00..188521524f0 100644
--- a/src/backend/catalog/genbki.sh.in
+++ b/src/backend/catalog/genbki.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#! /bin/sh
#-------------------------------------------------------------------------
#
# genbki.sh--
@@ -10,7 +10,7 @@
#
#
# IDENTIFICATION
-# $Header: /cvsroot/pgsql/src/backend/catalog/Attic/genbki.sh.in,v 1.5 2000/01/11 04:02:28 tgl Exp $
+# $Header: /cvsroot/pgsql/src/backend/catalog/Attic/genbki.sh,v 1.15 2000/07/06 21:33:22 petere Exp $
#
# NOTES
# non-essential whitespace is removed from the generated file.
@@ -18,45 +18,105 @@
# end can be changed into another awk script or something smarter..
#
#-------------------------------------------------------------------------
-trap "rm -f /tmp/genbki.tmp /tmp/genbkitmp.c" 0 1 2 3 15
-# make sure it is empty
->/tmp/genbki.tmp
+: ${AWK='awk'}
+: ${CPP='cc -E'}
-if [ $? != 0 ]
-then
- echo `basename $0`: Bad option
- exit 1
-fi
+CMDNAME=`basename $0`
-BKIOPTS=''
+BKIOPTS=
+INCLUDE_DIR=
+OUTPUT_PREFIX=
+INFILES=
-for opt in $*
+#
+# Process command line switches.
+#
+while [ $# -gt 0 ]
do
- case $opt in
- -D) BKIOPTS="$BKIOPTS -D$2"; shift; shift;;
- -D*) BKIOPTS="$BKIOPTS $1";shift;;
- --) shift; break;;
+ case $1 in
+ -D)
+ BKIOPTS="$BKIOPTS -D$2"
+ shift;;
+ -D*)
+ BKIOPTS="$BKIOPTS $1"
+ ;;
+ -I)
+ INCLUDE_DIR="$2"
+ shift;;
+ -I*)
+ INCLUDE_DIR=`echo $1 | sed s/^-I//`
+ ;;
+ -o)
+ OUTPUT_PREFIX="$2"
+ shift;;
+ -o*)
+ OUTPUT_PREFIX=`echo $1 | sed s/^-o//`
+ ;;
+ --help)
+ echo "$CMDNAME generates system catalog bootstrapping files."
+ echo
+ echo "Usage:"
+ echo " $CMDNAME [ -D define [...] ] [ -I dir ] [ -o prefix ]"
+ echo
+ echo "Options:"
+ echo " -I path to postgres_ext.h and config.h files"
+ echo " -o prefix of output files"
+ echo
+ echo "The environment variables CPP and AWK determine which C"
+ echo "preprocessor and Awk program to use. The defaults are"
+ echo "\`cc -E' and \`awk'."
+ echo
+ echo "Report bugs to <pgsql-bugs@postgresql.org>."
+ exit 0
+ ;;
+ -*)
+ echo "$CMDNAME: invalid option: $1"
+ exit 1
+ ;;
+ *)
+ INFILES="$INFILES $1"
+ ;;
esac
-done
-
-# ----------------
-# collect nodefiles
-# ----------------
-SYSFILES=''
-x=1
-numargs=$#
-while test $x -le $numargs ; do
- SYSFILES="$SYSFILES $1"
- x=`expr $x + 1`
shift
done
+if [ x"$INFILES" = x"" ] ; then
+ echo "$CMDNAME: no input files" 1>&2
+ exit 1
+fi
+
+if [ x"$OUTPUT_PREFIX" = x"" ] ; then
+ echo "$CMDNAME: no output prefix specified" 1>&2
+ exit 1
+fi
+
+if [ x"$INCLUDE_DIR" = x"" ] ; then
+ echo "$CMDNAME: path to include directory unknown" 1>&2
+ exit 1
+fi
+
+
+if [ x"$TMPDIR" = x"" ] ; then
+ TMPDIR=/tmp
+fi
+
+
+TMPFILE="$TMPDIR/genbkitmp.c"
+
+trap "rm -f $TMPFILE" 0 1 2 3 15
+
+
+# clear output files
+> ${OUTPUT_PREFIX}.bki
+> ${OUTPUT_PREFIX}.description
+
+
# Get NAMEDATALEN from postgres_ext.h
-NAMEDATALEN=`grep '#define[ ]*NAMEDATALEN' ../../include/postgres_ext.h | awk '{ print $3 }'`
+NAMEDATALEN=`grep '#define[ ]*NAMEDATALEN' $INCLUDE_DIR/postgres_ext.h | awk '{ print $3 }'`
# Get INDEX_MAX_KEYS from config.h (who needs consistency?)
-INDEXMAXKEYS=`grep '#define[ ]*INDEX_MAX_KEYS' ../../include/config.h | awk '{ print $3 }'`
+INDEXMAXKEYS=`grep '#define[ ]*INDEX_MAX_KEYS' $INCLUDE_DIR/config.h | awk '{ print $3 }'`
# NOTE: we assume here that FUNC_MAX_ARGS has the same value as INDEX_MAX_KEYS,
# and don't read it separately from config.h. This is OK because both of them
@@ -73,7 +133,7 @@ INDEXMAXKEYS4=`expr $INDEXMAXKEYS '*' 4`
# also, change NameData to name. -- jolly 8/21/95.
# put multi-line start/end comments on a separate line
#
-cat $SYSFILES | \
+cat $INFILES | \
sed -e 's;/\*.*\*/;;g' \
-e 's;/\*;\
/*\
@@ -96,7 +156,7 @@ sed -e "s/;[ ]*$//g" \
-e "s/FUNC_MAX_ARGS\*2/$INDEXMAXKEYS2/g" \
-e "s/FUNC_MAX_ARGS\*4/$INDEXMAXKEYS4/g" \
-e "s/FUNC_MAX_ARGS/$INDEXMAXKEYS/g" \
-| awk '
+| $AWK '
# ----------------
# now use awk to process remaining .h file..
#
@@ -161,7 +221,7 @@ raw == 1 { print; next; }
{
data = substr($0, 8, length($0) - 9);
if (data != "")
- printf "%d %s\n", oid, data >> "/tmp/genbki.tmp";
+ printf "%d %s\n", oid, data >>descriptionfile;
}
next;
}
@@ -289,16 +349,11 @@ END {
reln_open = 0;
}
}
-' >/tmp/genbkitmp.c
+' "descriptionfile=${OUTPUT_PREFIX}.description" > $TMPFILE || exit
-@CPP@ $BKIOPTS /tmp/genbkitmp.c | \
+$CPP $BKIOPTS $TMPFILE | \
sed -e '/^[ ]*$/d' \
- -e 's/[ ][ ]*/ /g' || exit 1
+ -e 's/[ ][ ]*/ /g' > ${OUTPUT_PREFIX}.bki || exit
-# send pg_description file contents to standard error
-cat /tmp/genbki.tmp 1>&2
-# ----------------
-# all done
-# ----------------
exit 0
diff --git a/src/backend/port/hpux/fixade.h b/src/backend/port/hpux/fixade.h
deleted file mode 100644
index 727abe908a1..00000000000
--- a/src/backend/port/hpux/fixade.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * fixade.h
- * compiler tricks to make things work while POSTGRES does non-native
- * dereferences on PA-RISC.
- *
- *
- * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- * $Id: fixade.h,v 1.8 2000/01/26 05:56:46 momjian Exp $
- *
- * NOTES
- * This must be included in EVERY source file.
- *
- *-------------------------------------------------------------------------
- */
-#ifndef FIXADE_H
-#define FIXADE_H
-
-#if !defined(NOFIXADE)
-
-#if defined(HP_S500_ALIGN)
-/* ----------------
- * This cheesy hack turns ON unaligned-access fixup on H-P PA-RISC;
- * the resulting object files contain code that explicitly handles
- * realignment on reference, so it slows memory access down by a
- * considerable factor. It must be used in conjunction with the +u
- * flag to cc. The #pragma is included in c.h to be safe since EVERY
- * source file that performs unaligned access must contain the #pragma.
- * ----------------
- */
-#pragma HP_ALIGN HPUX_NATURAL_S500
-
-#if defined(BROKEN_STRUCT_INIT)
-/* ----------------
- * This is so bogus. The HP-UX 9.01 compiler has totally broken
- * struct initialization code. It actually length-checks ALL
- * array initializations within structs against the FIRST one that
- * it sees (when #pragma HP_ALIGN HPUX_NATURAL_S500 is defined)..
- * we have to throw in this unused structure before struct varlena
- * is defined.
- *
- * XXX guess you don't need the #pragma anymore after all :-)
- * since no one looks at this except me i think i'll just leave
- * this here for now..
- * ----------------
- */
-struct HP_WAY_BOGUS
-{
- char hpwb_bogus[8191 + 1];
-};
-struct HP_TOO_BOGUS
-{
- int hptb_bogus[8191 + 1];
-};
-
-#endif /* BROKEN_STRUCT_INIT */
-#endif /* HP_S500_ALIGN */
-
-#if defined(WEAK_C_OPTIMIZER)
-#pragma OPT_LEVEL 1
-#endif /* WEAK_C_OPTIMIZER */
-
-#endif /* !NOFIXADE */
-
-#endif /* FIXADE_H */
diff --git a/src/backend/utils/Gen_fmgrtab.sh b/src/backend/utils/Gen_fmgrtab.sh
index 12b36264262..b532e0f3383 100644
--- a/src/backend/utils/Gen_fmgrtab.sh
+++ b/src/backend/utils/Gen_fmgrtab.sh
@@ -9,7 +9,7 @@
#
#
# IDENTIFICATION
-# $Header: /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh,v 1.15 2000/07/01 21:16:44 petere Exp $
+# $Header: /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh,v 1.16 2000/07/06 21:33:30 petere Exp $
#
#-------------------------------------------------------------------------
@@ -33,10 +33,10 @@ do
case $1 in
-D)
BKIOPTS="$BKIOPTS -D$2"
- ;;
+ shift;;
-D*)
BKIOPTS="$BKIOPTS $1"
- shift;;
+ ;;
--noclean)
noclean=t
;;
@@ -60,6 +60,7 @@ do
;;
*)
INFILE=$1
+ ;;
esac
shift
done
diff --git a/src/bin/initdb/Makefile b/src/bin/initdb/Makefile
index 850deb86b83..2da162e2728 100644
--- a/src/bin/initdb/Makefile
+++ b/src/bin/initdb/Makefile
@@ -4,7 +4,7 @@
#
# Copyright (c) 1994, Regents of the University of California
#
-# $Header: /cvsroot/pgsql/src/bin/initdb/Makefile,v 1.19 2000/07/02 15:21:00 petere Exp $
+# $Header: /cvsroot/pgsql/src/bin/initdb/Makefile,v 1.20 2000/07/06 21:33:38 petere Exp $
#
#-------------------------------------------------------------------------
@@ -15,7 +15,11 @@ include ../../Makefile.global
all: initdb
initdb: initdb.sh ../../Makefile.global
- sed -e 's/__MULTIBYTE__/$(MULTIBYTE)/g' -e 's/__VERSION__/$(VERSION)/g' < $< > $@
+ sed -e 's/__MULTIBYTE__/$(MULTIBYTE)/g' \
+ -e 's/__VERSION__/$(VERSION)/g' \
+ -e 's:__bindir__:$(bindir):g' \
+ -e 's:__datadir__:$(datadir):g' \
+ < $< > $@
install: all installdirs
$(INSTALL_SCRIPT) initdb $(bindir)/initdb
diff --git a/src/bin/initdb/initdb.sh b/src/bin/initdb/initdb.sh
index ad12edaa9ff..8fbc8c68260 100644
--- a/src/bin/initdb/initdb.sh
+++ b/src/bin/initdb/initdb.sh
@@ -1,40 +1,42 @@
-#!/bin/sh
+#! /bin/sh
#-------------------------------------------------------------------------
#
-# initdb.sh--
-# Create (initialize) a Postgres database system.
-#
-# A database system is a collection of Postgres databases all managed
-# by the same postmaster.
+# initdb creates (initializes) a Postgres database cluster (site,
+# instance, installation, whatever). A database cluster is a
+# collection of Postgres databases all managed by the same postmaster.
#
-# To create the database system, we create the directory that contains
-# all its data, create the files that hold the global classes, create
-# a few other control files for it, and create one database: the
-# template database.
+# To create the database cluster, we create the directory that contains
+# all its data, create the files that hold the global tables, create
+# a few other control files for it, and create one database: the
+# template database.
#
-# The template database is an ordinary Postgres database. Its data
-# never changes, though. It exists to make it easy for Postgres to
-# create other databases -- it just copies.
+# The template database is an ordinary Postgres database. Its data
+# never changes, though. It exists to make it easy for Postgres to
+# create other databases -- it just copies.
#
-# Optionally, we can skip creating the database system and just create
-# (or replace) the template database.
+# Optionally, we can skip creating the complete database cluster and
+# just create (or replace) the template database.
#
-# To create all those classes, we run the postgres (backend) program and
-# feed it data from bki files that are in the Postgres library directory.
+# To create all those things, we run the postgres (backend) program and
+# feed it data from the bki files that were installed.
#
-# Copyright (c) 1994, Regents of the University of California
#
+# Copyright (c) 1994, Regents of the University of California
#
-# IDENTIFICATION
-# $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.100 2000/07/05 19:51:03 wieck Exp $
+# $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.101 2000/07/06 21:33:38 petere Exp $
#
#-------------------------------------------------------------------------
+
+##########################################################################
+#
+# INITIALIZATION
+
exit_nicely(){
stty echo > /dev/null 2>&1
echo
echo "$CMDNAME failed."
- if [ "$noclean" -eq 0 ]; then
+ if [ "$noclean" != yes ]; then
echo "Removing $PGDATA."
rm -rf "$PGDATA" || echo "Failed."
echo "Removing temp file $TEMPFILE."
@@ -48,6 +50,15 @@ exit_nicely(){
CMDNAME=`basename $0`
+# Placed here during build
+VERSION=__VERSION__
+bindir='__bindir__'
+# Note that "datadir" is not the directory we're initializing, it's
+# merely how Autoconf names PREFIX/share.
+datadir='__datadir__'
+# as set by configure --enable-multibyte[=XXX].
+MULTIBYTE=__MULTIBYTE__
+
if [ "$TMPDIR" ]; then
TEMPFILE="$TMPDIR/initdb.$$"
else
@@ -87,6 +98,10 @@ else
done
fi
+if [ x"$PGPATH" = x"" ] ; then
+ PGPATH=$bindir
+fi
+
# Check if needed programs actually exist in path
for prog in postgres pg_id
do
@@ -117,24 +132,26 @@ then
exit 1
fi
-# Replaced at build time
-VERSION=__VERSION__
+
short_version=`echo $VERSION | sed -e 's!^\([0-9][0-9]*\.[0-9][0-9]*\).*!\1!'`
if [ x"$short_version" = x"" ] ; then
echo "$CMDNAME: bug: version number is out of format"
exit 1
fi
+
+##########################################################################
+#
+# COMMAND LINE OPTIONS
+
# 0 is the default (non-)encoding
MULTIBYTEID=0
-# This is placed here by configure --enable-multibyte[=XXX].
-MULTIBYTE=__MULTIBYTE__
# Set defaults:
-debug=0
-noclean=0
-template_only=0
-show_setting=0
+debug=
+noclean=
+template_only=
+show_setting=
# Note: There is a single compelling reason that the name of the database
# superuser be the same as the Unix user owning the server process:
@@ -156,18 +173,18 @@ do
exit 0
;;
--debug|-d)
- debug=1
+ debug=yes
echo "Running with debug mode on."
;;
--show|-s)
- show_setting=1
+ show_setting=yes
;;
--noclean|-n)
- noclean=1
+ noclean=yes
echo "Running with noclean mode on. Mistakes will not be cleaned up."
;;
--template|-t)
- template_only=1
+ template_only=yes
echo "Updating template1 database only."
;;
# The sysid of the database superuser. Can be freely changed.
@@ -196,16 +213,13 @@ do
-D*)
PGDATA=`echo $1 | sed 's/^-D//'`
;;
-# The directory where the database templates are stored (traditionally in
-# $prefix/lib). This is now autodetected for the most common layouts.
- --pglib|-L)
- PGLIB="$2"
+# The directory where the database templates are stored. Normally
+# they are in PREFIX/share and this option should be unnecessary.
+ -L)
+ datadir="$2"
shift;;
- --pglib=*)
- PGLIB=`echo $1 | sed 's/^--pglib=//'`
- ;;
-L*)
- PGLIB=`echo $1 | sed 's/^-L//'`
+ datadir=`echo $1 | sed 's/^-L//'`
;;
# The encoding of the template1 database. Defaults to what you chose
# at configure time. (see above)
@@ -231,27 +245,26 @@ do
done
if [ "$usage" ]; then
- echo "initdb initialized a PostgreSQL database."
- echo
- echo "Usage:"
- echo " $CMDNAME [options] datadir"
- echo
- echo "Options:"
- echo " [-D, --pgdata] <datadir> Location for this database"
- echo " -W, --pwprompt Prompt for a password for the new superuser's"
- if [ -n "$MULTIBYTE" ]
- then
- echo " -E, --encoding <encoding> Set the default multibyte encoding for new databases"
- fi
- echo " -i, --sysid <sysid> Database sysid for the superuser"
- echo "Less commonly used options: "
- echo " -L, --pglib <libdir> Where to find the input files"
- echo " -t, --template Re-initialize template database only"
- echo " -d, --debug Generate lots of debugging output"
- echo " -n, --noclean Do not clean up after errors"
- echo
- echo "Report bugs to <pgsql-bugs@postgresql.org>."
- exit 0
+ echo "$CMDNAME initialized a PostgreSQL database cluster."
+ echo
+ echo "Usage:"
+ echo " $CMDNAME [options] datadir"
+ echo
+ echo "Options:"
+ echo " [-D, --pgdata] <datadir> Location for this database cluster"
+ echo " -W, --pwprompt Prompt for a password for the new superuser"
+ if [ -n "$MULTIBYTE" ] ; then
+ echo " -E, --encoding <encoding> Set the default multibyte encoding for new databases"
+ fi
+ echo " -i, --sysid <sysid> Database sysid for the superuser"
+ echo "Less commonly used options: "
+ echo " -L <directory> Where to find the input files"
+ echo " -t, --template Re-initialize template database only"
+ echo " -d, --debug Generate lots of debugging output"
+ echo " -n, --noclean Do not clean up after errors"
+ echo
+ echo "Report bugs to <pgsql-bugs@postgresql.org>."
+ exit 0
fi
#-------------------------------------------------------------------------
@@ -284,7 +297,7 @@ fi
if [ -z "$PGDATA" ]
then
echo "$CMDNAME: You must identify where the the data for this database"
- echo "system will reside. Do this with either a --pgdata invocation"
+ echo "system will reside. Do this with either a -D invocation"
echo "option or a PGDATA environment variable."
echo
exit 1
@@ -305,76 +318,40 @@ fi
# Find the input files
#-------------------------------------------------------------------------
-if [ -z "$PGLIB" ]
-then
- for dir in "$PGPATH/../lib" "$PGPATH/../lib/pgsql"
- do
- if [ -f "$dir/global1.bki.source" ]
- then
- PGLIB="$dir"
- break
- fi
- done
-fi
-
-if [ -z "$PGLIB" ]
-then
- echo "$CMDNAME: Could not find the \"lib\" directory, that contains"
- echo "the files needed by initdb. Please specify it with the"
- echo "--pglib option."
- exit 1
-fi
+TEMPLATE1_BKI="$datadir"/template1.bki
+GLOBAL_BKI="$datadir"/global.bki
+TEMPLATE1_DESCR="$datadir"/template1.description
+GLOBAL_DESCR="$datadir"/global.description
-TEMPLATE="$PGLIB"/local1_template1.bki.source
-GLOBAL="$PGLIB"/global1.bki.source
-PG_HBA_SAMPLE="$PGLIB"/pg_hba.conf.sample
-POSTGRESQL_CONF_SAMPLE="$PGLIB"/postgresql.conf.sample
+PG_HBA_SAMPLE="$datadir"/pg_hba.conf.sample
+POSTGRESQL_CONF_SAMPLE="$datadir"/postgresql.conf.sample
-TEMPLATE_DESCR="$PGLIB"/local1_template1.description
-GLOBAL_DESCR="$PGLIB"/global1.description
-
-if [ "$show_setting" -eq 1 ]
+if [ "$show_setting" = yes ] || [ "$debug" = yes ]
then
- echo
- echo "The initdb setting:"
- echo
- echo " DATADIR: $PGDATA"
- echo " PGLIB: $PGLIB"
- echo " PGPATH: $PGPATH"
- echo " TEMPFILE: $TEMPFILE"
- echo " MULTIBYTE: $MULTIBYTE"
- echo " MULTIBYTEID: $MULTIBYTEID"
- echo " SUPERUSERNAME: $POSTGRES_SUPERUSERNAME"
- echo " SUPERUSERID: $POSTGRES_SUPERUSERID"
- echo " TEMPLATE: $TEMPLATE"
- echo " GLOBAL: $GLOBAL"
- echo " PG_HBA_SAMPLE: $PG_HBA_SAMPLE"
- echo " POSTGRESQL_CONF_SAMPLE: $POSTGRESQL_CONF_SAMPLE"
- echo " TEMPLATE_DESCR: $TEMPLATE_DESCR"
- echo " GLOBAL_DESCR: $GLOBAL_DESCR"
- echo
- exit 0
+ echo
+ echo "Initdb variables:"
+ for var in PGDATA datadir PGPATH TEMPFILE MULTIBYTE MULTIBYTEID \
+ POSTGRES_SUPERUSERNAME POSTGRES_SUPERUSERID TEMPLATE1_BKI GLOBAL_BKI \
+ TEMPLATE1_DESCR GLOBAL_DESCR POSTGRESQL_CONF_SAMPLE PG_HBA_SAMPLE ; do
+ eval "echo ' '$var=\$$var"
+ done
+fi
+
+if [ "$show_setting" = yes ] ; then
+ exit 0
fi
-for PREREQ_FILE in "$TEMPLATE" "$GLOBAL" "$PG_HBA_SAMPLE"
+for PREREQ_FILE in "$TEMPLATE1_BKI" "$GLOBAL_BKI" "$PG_HBA_SAMPLE"
do
- if [ ! -f "$PREREQ_FILE" ]
- then
+ if [ ! -f "$PREREQ_FILE" ] ; then
echo "$CMDNAME does not find the file '$PREREQ_FILE'."
echo "This means you have a corrupted installation or identified the"
- echo "wrong directory with the --pglib invocation option."
+ echo "wrong directory with the -L invocation option."
exit 1
fi
done
-[ "$debug" -ne 0 ] && echo "$CMDNAME: Using $TEMPLATE as input to create the template database."
-
-if [ "$template_only" -eq 0 ]
-then
- [ "$debug" -ne 0 ] && echo "$CMDNAME: Using $GLOBAL as input to create the global classes."
- [ "$debug" -ne 0 ] && echo "$CMDNAME: Using $PG_HBA_SAMPLE as default authentication control file."
-fi
trap 'echo "Caught signal." ; exit_nicely' 1 2 3 15
@@ -383,16 +360,17 @@ echo "This database system will be initialized with username \"$POSTGRES_SUPERUS
echo "This user will own all the data files and must also own the server process."
echo
-# -----------------------------------------------------------------------
-# Create the data directory if necessary
-# -----------------------------------------------------------------------
+
+##########################################################################
+#
+# CREATE DATABASE DIRECTORY
# umask must disallow access to group, other for files and dirs
umask 077
if [ -f "$PGDATA"/PG_VERSION ]
then
- if [ "$template_only" -eq 0 ]
+ if [ "$template_only" != yes ]
then
echo "$CMDNAME: The file $PGDATA/PG_VERSION already exists."
echo "This probably means initdb has already been run and the"
@@ -430,14 +408,15 @@ else
fi
fi
-#----------------------------------------------------------------------------
-# Create the template1 database
-#----------------------------------------------------------------------------
+
+##########################################################################
+#
+# CREATE TEMPLATE1 DATABASE
rm -rf "$PGDATA"/base/template1 || exit_nicely
mkdir "$PGDATA"/base/template1 || exit_nicely
-if [ "$debug" -eq 1 ]
+if [ "$debug" = yes ]
then
BACKEND_TALK_ARG="-d"
else
@@ -448,25 +427,26 @@ BACKENDARGS="-boot -C -F -D$PGDATA $BACKEND_TALK_ARG"
FIRSTRUN="-boot -x -C -F -D$PGDATA $BACKEND_TALK_ARG"
echo "Creating template database in $PGDATA/base/template1"
-[ "$debug" -ne 0 ] && echo "Running: $PGPATH/postgres $FIRSTRUN template1"
+[ "$debug" = yes ] && echo "Running: $PGPATH/postgres $FIRSTRUN template1"
-cat "$TEMPLATE" \
+cat "$TEMPLATE1_BKI" \
| sed -e "s/PGUID/$POSTGRES_SUPERUSERID/g" \
| "$PGPATH"/postgres $FIRSTRUN template1 \
|| exit_nicely
echo $short_version > "$PGDATA"/base/template1/PG_VERSION || exit_nicely
-#----------------------------------------------------------------------------
-# Create the global classes, if requested.
-#----------------------------------------------------------------------------
-if [ "$template_only" -eq 0 ]
+##########################################################################
+#
+# CREATE GLOBAL TABLES
+
+if [ "$template_only" != yes ]
then
echo "Creating global relations in $PGDATA/global"
- [ "$debug" -ne 0 ] && echo "Running: $PGPATH/postgres $BACKENDARGS template1"
+ [ "$debug" = yes ] && echo "Running: $PGPATH/postgres $BACKENDARGS template1"
- cat "$GLOBAL" \
+ cat "$GLOBAL_BKI" \
| sed -e "s/POSTGRES/$POSTGRES_SUPERUSERNAME/g" \
-e "s/PGUID/$POSTGRES_SUPERUSERID/g" \
| "$PGPATH"/postgres $BACKENDARGS template1 \
@@ -485,7 +465,7 @@ then
#echo "show" >> "$TEMPFILE"
echo "close pg_database" >> "$TEMPFILE"
- [ "$debug" -ne 0 ] && echo "Running: $PGPATH/postgres $BACKENDARGS template1 < $TEMPFILE"
+ [ "$debug" = yes ] && echo "Running: $PGPATH/postgres $BACKENDARGS template1 < $TEMPFILE"
"$PGPATH"/postgres $BACKENDARGS template1 < "$TEMPFILE"
# Gotta remove that temp file before exiting on error.
@@ -494,6 +474,11 @@ then
[ "$retval" -ne 0 ] && exit_nicely
fi
+
+##########################################################################
+#
+# CREATE VIEWS and other things
+
echo
PGSQL_OPT="-o /dev/null -O -F -D$PGDATA"
@@ -607,7 +592,7 @@ echo "CREATE VIEW pg_indexes AS \
echo "Loading pg_description."
echo "COPY pg_description FROM STDIN" > $TEMPFILE
-cat "$TEMPLATE_DESCR" >> $TEMPFILE
+cat "$TEMPLATE1_DESCR" >> $TEMPFILE
cat "$GLOBAL_DESCR" >> $TEMPFILE
cat $TEMPFILE \
@@ -618,6 +603,11 @@ echo "Vacuuming database."
echo "VACUUM ANALYZE" \
| "$PGPATH"/postgres $PGSQL_OPT template1 > /dev/null || exit_nicely
+
+##########################################################################
+#
+# FINISHED
+
echo
echo "Success. You can now start the database server using:"
echo ""
diff --git a/src/include/Makefile b/src/include/Makefile
new file mode 100644
index 00000000000..d36e8bc7f9a
--- /dev/null
+++ b/src/include/Makefile
@@ -0,0 +1,55 @@
+#-------------------------------------------------------------------------
+#
+# Makefile for src/include
+#
+# Install exported headers to the include directory (these headers are
+# the minimal ones needed to build loadable backend extensions).
+#
+# $Header: /cvsroot/pgsql/src/include/Makefile,v 1.1 2000/07/06 21:33:44 petere Exp $
+#
+#-------------------------------------------------------------------------
+
+subdir = src/include
+top_builddir = ../..
+include ../Makefile.global
+
+
+HEADERS := os.h config.h c.h postgres.h postgres_ext.h fmgr.h \
+ libpq/pqcomm.h libpq/libpq-fs.h lib/dllist.h \
+ utils/geo_decls.h utils/elog.h utils/fmgroids.h utils/palloc.h \
+ access/attnum.h executor/spi.h commands/trigger.h
+
+
+all: $(HEADERS)
+
+
+# These rules are necessary in case someone installs the include tree
+# before building the backend tree. Very messy.
+utils/fmgroids.h: $(top_builddir)/src/backend/utils/fmgroids.h
+ cd utils && rm -f fmgroids.h && $(LN_S) ../$(top_builddir)/src/backend/utils/fmgroids.h .
+
+# This file is built in the backend tree, but we need to keep track of
+# the dependencies here.
+$(top_builddir)/src/backend/utils/fmgroids.h: $(top_srcdir)/src/backend/utils/Gen_fmgrtab.sh catalog/pg_proc.h
+ $(MAKE) -C $(dir $@) fmgroids.h
+
+
+install: all installdirs
+ @for i in $(HEADERS); do \
+ echo "$(INSTALL_DATA) $(srcdir)/$$i $(includedir)/$$i"; \
+ $(INSTALL_DATA) $(srcdir)/$$i $(includedir)/$$i; \
+ done
+
+# Automatically pick out the needed subdirectories for the include
+# tree.
+installdirs:
+ $(mkinstalldirs) $(addprefix $(includedir)/, $(sort $(dir $(HEADERS))))
+
+uninstall:
+ rm -f $(addprefix $(includedir)/, $(HEADERS))
+
+clean:
+ rm -f utils/fmgroids.h parser/parse.h
+
+distclean maintainer-clean: clean
+ rm -f config.h dynloader.h os.h
diff --git a/src/include/c.h b/src/include/c.h
index 36caac611fe..65ff45aa923 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: c.h,v 1.74 2000/06/08 22:37:35 momjian Exp $
+ * $Id: c.h,v 1.75 2000/07/06 21:33:44 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -904,12 +904,6 @@ extern char *vararg_format(const char *fmt,...);
#define PG_BINARY_W "w"
#endif
-#ifdef FIXADE
-#if defined(hpux)
-#include "port/hpux/fixade.h" /* for unaligned access fixup */
-#endif /* hpux */
-#endif
-
#if defined(sun) && defined(__sparc__) && !defined(__SVR4)
#define memmove(d, s, l) bcopy(s, d, l)
#include <unistd.h>
diff --git a/src/test/regress/run_check.sh b/src/test/regress/run_check.sh
index 2f33fdcdf7a..d057d35264f 100755
--- a/src/test/regress/run_check.sh
+++ b/src/test/regress/run_check.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Header: /cvsroot/pgsql/src/test/regress/Attic/run_check.sh,v 1.20 2000/06/20 16:40:19 petere Exp $
+# $Header: /cvsroot/pgsql/src/test/regress/Attic/run_check.sh,v 1.21 2000/07/06 21:33:45 petere Exp $
# ----------
# Check call syntax
@@ -187,7 +187,7 @@ export PATH
# Run initdb to initialize a database system in ./tmp_check
# ----------
echo "=============== Initializing check database instance ================"
-initdb -L $LIBDIR -D $PGDATA --noclean >$LOGDIR/initdb.log 2>&1
+initdb -D $PGDATA --noclean >$LOGDIR/initdb.log 2>&1
if [ $? -ne 0 ]
then