please find attached an alternate submission which addresses open item

"make pgxs install by default". It is up to the committers to chose.

(1) there is only one "install" target. no more "install-all-headers".
    it simplifies/changes several makefiles.

(2) the documentation reflects the change.

(3) a minor fix on pgxs to use a nicer patch without a double slash.

Fabien Coelho
This commit is contained in:
Bruce Momjian 2004-10-06 08:50:02 +00:00
parent d42d427252
commit 513e89b44b
7 changed files with 23 additions and 48 deletions

View File

@ -1,7 +1,7 @@
# #
# PostgreSQL top level makefile # PostgreSQL top level makefile
# #
# $PostgreSQL: pgsql/GNUmakefile.in,v 1.40 2004/07/30 12:26:39 petere Exp $ # $PostgreSQL: pgsql/GNUmakefile.in,v 1.41 2004/10/06 08:49:58 momjian Exp $
# #
subdir = subdir =
@ -15,9 +15,9 @@ all:
@echo "All of PostgreSQL successfully made. Ready to install." @echo "All of PostgreSQL successfully made. Ready to install."
install: install:
$(MAKE) -C doc install $(MAKE) -C doc $@
$(MAKE) -C src install $(MAKE) -C src $@
$(MAKE) -C config install $(MAKE) -C config $@
@echo "PostgreSQL installation complete." @echo "PostgreSQL installation complete."
installdirs uninstall distprep: installdirs uninstall distprep:
@ -25,9 +25,6 @@ installdirs uninstall distprep:
$(MAKE) -C src $@ $(MAKE) -C src $@
$(MAKE) -C config $@ $(MAKE) -C config $@
install-all-headers:
$(MAKE) -C src $@
# clean, distclean, etc should apply to contrib too, even though # clean, distclean, etc should apply to contrib too, even though
# it's not built by default # it's not built by default
clean: clean:

View File

@ -11,7 +11,7 @@
# GNUmakefile won't exist yet, so we catch that case as well. # GNUmakefile won't exist yet, so we catch that case as well.
all check install installdirs install-all-headers installcheck uninstall dep depend clean distclean maintainer-clean: all check install installdirs installcheck uninstall dep depend clean distclean maintainer-clean:
@if [ ! -f GNUmakefile ] ; then \ @if [ ! -f GNUmakefile ] ; then \
echo "You need to run the 'configure' program first. See the file"; \ echo "You need to run the 'configure' program first. See the file"; \
echo "'INSTALL' for installation instructions." ; \ echo "'INSTALL' for installation instructions." ; \

View File

@ -1,4 +1,4 @@
<!-- $PostgreSQL: pgsql/doc/src/sgml/installation.sgml,v 1.205 2004/10/01 02:00:43 neilc Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/installation.sgml,v 1.206 2004/10/06 08:49:59 momjian Exp $ -->
<chapter id="installation"> <chapter id="installation">
<title><![%standalone-include[<productname>PostgreSQL</>]]> <title><![%standalone-include[<productname>PostgreSQL</>]]>
@ -1035,18 +1035,9 @@ All of PostgreSQL is successfully made. Ready to install.
</para> </para>
<para> <para>
The standard installation provides only the header files needed for client The standard installation provides all the header files needed for client
application development. If you plan to do any server-side program application development as well as for any server-side program
development (such as custom functions or data types written in C), development (such as custom functions or data types written in C).
then you may want to install the entire <productname>PostgreSQL</>
include tree into your target include directory. To do that, enter
<screen>
<userinput>gmake install-all-headers</userinput>
</screen>
This adds a megabyte or two to the installation footprint, and is only
useful if you don't plan to keep the whole source tree around for
reference. (If you do, you can just use the source's include
directory when building server-side software.)
</para> </para>
<formalpara> <formalpara>

View File

@ -4,7 +4,7 @@
# #
# Copyright (c) 1994, Regents of the University of California # Copyright (c) 1994, Regents of the University of California
# #
# $PostgreSQL: pgsql/src/Makefile,v 1.34 2004/08/20 20:13:10 momjian Exp $ # $PostgreSQL: pgsql/src/Makefile,v 1.35 2004/10/06 08:49:59 momjian Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
@ -33,10 +33,6 @@ install-local: installdirs-local
$(INSTALL_DATA) $(srcdir)/Makefile.shlib $(DESTDIR)$(pgxsdir)/$(subdir)/Makefile.shlib $(INSTALL_DATA) $(srcdir)/Makefile.shlib $(DESTDIR)$(pgxsdir)/$(subdir)/Makefile.shlib
$(INSTALL_DATA) $(srcdir)/nls-global.mk $(DESTDIR)$(pgxsdir)/$(subdir)/nls-global.mk $(INSTALL_DATA) $(srcdir)/nls-global.mk $(DESTDIR)$(pgxsdir)/$(subdir)/nls-global.mk
install-all-headers:
$(MAKE) -C include $@
$(MAKE) -C port $@
installdirs: installdirs-local installdirs: installdirs-local
installdirs-local: installdirs-local:

View File

@ -2,11 +2,9 @@
# #
# Makefile for src/include # Makefile for src/include
# #
# 'make install' installs only those headers needed for client-side # 'make install' installs whole contents of src/include.
# programming. 'make install-all-headers' installs the whole contents
# of src/include.
# #
# $PostgreSQL: pgsql/src/include/Makefile,v 1.12 2003/11/29 19:52:08 pgsql Exp $ # $PostgreSQL: pgsql/src/include/Makefile,v 1.13 2004/10/06 08:50:00 momjian Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
@ -18,8 +16,11 @@ include $(top_builddir)/src/Makefile.global
all: pg_config.h pg_config_os.h all: pg_config.h pg_config_os.h
# Install only selected headers # Subdirectories containing headers for server-side dev
SUBDIRS = access bootstrap catalog commands executor lib libpq mb \
nodes optimizer parser port regex rewrite storage tcop utils
# Install all headers
install: all installdirs remove-old-headers install: all installdirs remove-old-headers
# These headers are needed by the public headers of the interfaces. # These headers are needed by the public headers of the interfaces.
$(INSTALL_DATA) $(srcdir)/postgres_ext.h $(DESTDIR)$(includedir) $(INSTALL_DATA) $(srcdir)/postgres_ext.h $(DESTDIR)$(includedir)
@ -33,18 +34,7 @@ install: all installdirs remove-old-headers
$(INSTALL_DATA) $(srcdir)/postgres_fe.h $(DESTDIR)$(includedir_internal) $(INSTALL_DATA) $(srcdir)/postgres_fe.h $(DESTDIR)$(includedir_internal)
$(INSTALL_DATA) $(srcdir)/libpq/pqcomm.h $(DESTDIR)$(includedir_internal)/libpq $(INSTALL_DATA) $(srcdir)/libpq/pqcomm.h $(DESTDIR)$(includedir_internal)/libpq
$(INSTALL_DATA) $(srcdir)/lib/dllist.h $(DESTDIR)$(includedir_internal)/lib $(INSTALL_DATA) $(srcdir)/lib/dllist.h $(DESTDIR)$(includedir_internal)/lib
# These headers are needed for server-side development
installdirs:
$(mkinstalldirs) $(DESTDIR)$(includedir)/libpq $(DESTDIR)$(includedir_internal)/libpq $(DESTDIR)$(includedir_internal)/lib
# Install all headers
# Subdirectories containing headers that install-all-headers should install
SUBDIRS = access bootstrap catalog commands executor lib libpq mb \
nodes optimizer parser port regex rewrite storage tcop utils
install-all-headers: all install-all-dirs
$(INSTALL_DATA) pg_config.h $(DESTDIR)$(includedir_server) $(INSTALL_DATA) pg_config.h $(DESTDIR)$(includedir_server)
$(INSTALL_DATA) pg_config_os.h $(DESTDIR)$(includedir_server) $(INSTALL_DATA) pg_config_os.h $(DESTDIR)$(includedir_server)
for file in $(srcdir)/*.h; do \ for file in $(srcdir)/*.h; do \
@ -56,7 +46,8 @@ install-all-headers: all install-all-dirs
done \ done \
done done
install-all-dirs: installdirs:
$(mkinstalldirs) $(DESTDIR)$(includedir)/libpq $(DESTDIR)$(includedir_internal)/libpq $(DESTDIR)$(includedir_internal)/lib
$(mkinstalldirs) $(addprefix $(DESTDIR)$(includedir_server)/, $(SUBDIRS)) $(mkinstalldirs) $(addprefix $(DESTDIR)$(includedir_server)/, $(SUBDIRS))

View File

@ -1,6 +1,6 @@
# PGXS: PostgreSQL extensions makefile # PGXS: PostgreSQL extensions makefile
# $PostgreSQL: pgsql/src/makefiles/pgxs.mk,v 1.1 2004/07/30 12:26:40 petere Exp $ # $PostgreSQL: pgsql/src/makefiles/pgxs.mk,v 1.2 2004/10/06 08:50:02 momjian Exp $
# This file contains generic rules to build many kinds of simple # This file contains generic rules to build many kinds of simple
# extension modules. You only need to set a few variables and include # extension modules. You only need to set a few variables and include
@ -50,7 +50,7 @@ endif
ifdef PGXS ifdef PGXS
# We assume that we are in src/makefiles/, so top is ... # We assume that we are in src/makefiles/, so top is ...
top_builddir := $(dir $(PGXS))/../.. top_builddir := $(dir $(PGXS))../..
include $(top_builddir)/src/Makefile.global include $(top_builddir)/src/Makefile.global
top_srcdir = $(top_builddir) top_srcdir = $(top_builddir)

View File

@ -15,7 +15,7 @@
# for use only by the backend binaries # for use only by the backend binaries
# #
# IDENTIFICATION # IDENTIFICATION
# $PostgreSQL: pgsql/src/port/Makefile,v 1.19 2004/10/04 13:43:58 momjian Exp $ # $PostgreSQL: pgsql/src/port/Makefile,v 1.20 2004/10/06 08:50:02 momjian Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
@ -36,7 +36,7 @@ LIBOBJS_SRV := $(patsubst thread.o,thread_srv.o, $(LIBOBJS_SRV))
all: libpgport.a libpgport_srv.a all: libpgport.a libpgport_srv.a
# libpgport is needed by some contrib # libpgport is needed by some contrib
install-all-headers: install:
$(INSTALL_STLIB) libpgport.a $(DESTDIR)$(libdir) $(INSTALL_STLIB) libpgport.a $(DESTDIR)$(libdir)
uninstall: uninstall: