diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/GNUmakefile.in | 89 | ||||
-rw-r--r-- | src/backend/Makefile | 324 | ||||
-rw-r--r-- | src/backend/catalog/Makefile | 90 | ||||
-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.h | 67 | ||||
-rw-r--r-- | src/backend/utils/Gen_fmgrtab.sh | 7 | ||||
-rw-r--r-- | src/bin/initdb/Makefile | 8 | ||||
-rw-r--r-- | src/bin/initdb/initdb.sh | 266 | ||||
-rw-r--r-- | src/include/Makefile | 55 | ||||
-rw-r--r-- | src/include/c.h | 8 | ||||
-rwxr-xr-x | src/test/regress/run_check.sh | 4 |
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 |