mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-27 08:39:28 +08:00
264f8f2b6c
under libdir, for a cleaner separation in the installation layout and compatibility with binary packaging standards. Point backend's default search location there. The contrib modules are also installed in the said location, giving them the benefit of the default search path as well. No changes in user interface nevertheless.
203 lines
5.2 KiB
Makefile
203 lines
5.2 KiB
Makefile
# $Header: /cvsroot/pgsql/contrib/contrib-global.mk,v 1.2 2001/09/16 16:11:08 petere Exp $
|
|
|
|
# This file contains generic rules to build many kinds of simple
|
|
# contrib modules. You only need to set a few variables and include
|
|
# this file, the rest will be done here.
|
|
#
|
|
# Use the following layout for your Makefile:
|
|
#
|
|
# subdir = contrib/xxx
|
|
# top_builddir = ../..
|
|
# include $(top_builddir)/src/Makefile.global
|
|
#
|
|
# [variable assignments, see below]
|
|
# [custom rules, rarely necessary]
|
|
#
|
|
# include $(top_srcdir)/contrib/contrib-global.mk
|
|
#
|
|
# The following variables can be set:
|
|
#
|
|
# MODULES -- list of shared objects to be build from source file with
|
|
# same stem (do not include suffix in this list)
|
|
# DATA -- random files to install into $PREFIX/share/contrib
|
|
# DATA_built -- random files to install into $PREFIX/share/contrib,
|
|
# which need to be built first
|
|
# DOCS -- random files to install under $PREFIX/doc/contrib
|
|
# SCRIPTS -- script files (not binaries) to install into $PREFIX/bin
|
|
# REGRESS -- list of regression test cases (without suffix)
|
|
#
|
|
# or at most one of these two:
|
|
#
|
|
# PROGRAM -- a binary program to build (list objects files in OBJS)
|
|
# MODULE_big -- a shared object to build (list object files in OBJS)
|
|
#
|
|
# The following can also be set:
|
|
#
|
|
# EXTRA_CLEAN -- extra files to remove in 'make clean'
|
|
# PG_CPPFLAGS -- will be added to CPPFLAGS
|
|
# PG_LIBS -- will be added to PROGRAM link line
|
|
# SHLIB_LINK -- will be added to MODULE_big link line
|
|
#
|
|
# Better look at some of the existing uses for examples...
|
|
|
|
|
|
override CPPFLAGS := -I$(srcdir) $(CPPFLAGS)
|
|
|
|
ifdef MODULES
|
|
override CFLAGS += $(CFLAGS_SL)
|
|
override DLLLIBS := $(BE_DLLLIBS) $(DLLLIBS)
|
|
endif
|
|
|
|
ifdef PG_CPPFLAGS
|
|
override CPPFLAGS := $(PG_CPPFLAGS) $(CPPFLAGS)
|
|
endif
|
|
|
|
all: $(PROGRAM) $(DATA_built) $(addsuffix $(DLSUFFIX), $(MODULES))
|
|
|
|
ifdef MODULE_big
|
|
# shared library parameters
|
|
NAME = $(MODULE_big)
|
|
SO_MAJOR_VERSION= 0
|
|
SO_MINOR_VERSION= 0
|
|
rpath =
|
|
|
|
override DLLLIBS := $(BE_DLLLIBS) $(DLLLIBS)
|
|
|
|
include $(top_srcdir)/src/Makefile.shlib
|
|
|
|
all: all-lib
|
|
endif # MODULE_big
|
|
|
|
|
|
install: all installdirs
|
|
ifneq (,$(DATA)$(DATA_built))
|
|
@for file in $(addprefix $(srcdir)/, $(DATA)) $(DATA_built); do \
|
|
echo "$(INSTALL_DATA) $$file $(DESTDIR)$(datadir)/contrib"; \
|
|
$(INSTALL_DATA) $$file $(DESTDIR)$(datadir)/contrib; \
|
|
done
|
|
endif # DATA
|
|
ifdef MODULES
|
|
@for file in $(addsuffix $(DLSUFFIX), $(MODULES)); do \
|
|
echo "$(INSTALL_SHLIB) $$file $(DESTDIR)$(pkglibdir)"; \
|
|
$(INSTALL_SHLIB) $$file $(DESTDIR)$(pkglibdir); \
|
|
done
|
|
endif # MODULES
|
|
ifdef DOCS
|
|
@for file in $(addprefix $(srcdir)/, $(DOCS)); do \
|
|
echo "$(INSTALL_DATA) $$file $(DESTDIR)$(docdir)/contrib"; \
|
|
$(INSTALL_DATA) $$file $(DESTDIR)$(docdir)/contrib; \
|
|
done
|
|
endif # DOCS
|
|
ifdef PROGRAM
|
|
$(INSTALL_PROGRAM) $(PROGRAM)$(X) $(DESTDIR)$(bindir)
|
|
endif # PROGRAM
|
|
ifdef MODULE_big
|
|
$(INSTALL_SHLIB) $(shlib) $(DESTDIR)$(pkglibdir)/$(MODULE_big)$(DLSUFFIX)
|
|
endif # MODULE_big
|
|
ifdef SCRIPTS
|
|
@for file in $(addprefix $(srcdir)/, $(SCRIPTS)); do \
|
|
echo "$(INSTALL_SCRIPT) $$file $(DESTDIR)$(bindir)"; \
|
|
$(INSTALL_SCRIPT) $$file $(DESTDIR)$(bindir); \
|
|
done
|
|
endif # SCRIPTS
|
|
|
|
|
|
installdirs:
|
|
ifneq (,$(DATA)$(DATA_built))
|
|
$(mkinstalldirs) $(DESTDIR)$(datadir)/contrib
|
|
endif
|
|
ifneq (,$(MODULES)$(MODULE_big))
|
|
$(mkinstalldirs) $(DESTDIR)$(pkglibdir)
|
|
endif
|
|
ifdef DOCS
|
|
$(mkinstalldirs) $(DESTDIR)$(docdir)/contrib
|
|
endif
|
|
ifneq (,$(PROGRAM)$(SCRIPTS))
|
|
$(mkinstalldirs) $(DESTDIR)$(bindir)
|
|
endif
|
|
|
|
|
|
uninstall:
|
|
ifneq (,$(DATA)$(DATA_built))
|
|
rm -f $(addprefix $(DESTDIR)$(datadir)/contrib/, $(DATA) $(DATA_built))
|
|
endif
|
|
ifdef MODULES
|
|
rm -f $(addprefix $(DESTDIR)$(pkglibdir)/, $(addsuffix $(DLSUFFIX), $(MODULES)))
|
|
endif
|
|
ifdef DOCS
|
|
rm -f $(addprefix $(DESTDIR)$(docdir)/contrib/, $(DOCS))
|
|
endif
|
|
ifdef PROGRAM
|
|
rm -f $(DESTDIR)$(bindir)/$(PROGRAM)$(X)
|
|
endif
|
|
ifdef MODULE_big
|
|
rm -f $(DESTDIR)$(pkglibdir)/$(MODULE_big)$(DLSUFFIX)
|
|
endif
|
|
ifdef SCRIPTS
|
|
rm -f $(addprefix $(DESTDIR)$(bindir)/, $(SCRIPTS))
|
|
endif
|
|
|
|
|
|
clean:
|
|
ifdef MODULES
|
|
rm -f $(addsuffix $(DLSUFFIX), $(MODULES)) $(addsuffix .o, $(MODULES))
|
|
endif
|
|
ifdef DATA_built
|
|
rm -f $(DATA_built)
|
|
endif
|
|
ifdef PROGRAM
|
|
rm -f $(PROGRAM)$(X)
|
|
endif
|
|
ifdef OBJS
|
|
rm -f $(OBJS)
|
|
endif
|
|
ifdef EXTRA_CLEAN
|
|
rm -f $(EXTRA_CLEAN)
|
|
endif
|
|
ifdef REGRESS
|
|
# things created by various check targets
|
|
rm -rf results tmp_check log
|
|
rm -f regression.diffs regression.out regress.out run_check.out
|
|
ifeq ($(PORTNAME), win)
|
|
rm -f regress.def
|
|
endif
|
|
endif # REGRESS
|
|
|
|
ifdef MODULE_big
|
|
clean: clean-lib
|
|
endif
|
|
|
|
distclean maintainer-clean: clean
|
|
|
|
|
|
ifdef REGRESS
|
|
.PHONY: submake
|
|
submake:
|
|
$(MAKE) -C $(top_builddir)/src/test/regress pg_regress
|
|
|
|
# against installed postmaster
|
|
installcheck: submake
|
|
$(top_builddir)/src/test/regress/pg_regress $(REGRESS)
|
|
|
|
# in-tree test doesn't work yet (no way to install my shared library)
|
|
#check: all submake
|
|
# $(top_builddir)/src/test/regress/pg_regress --temp-install \
|
|
# --top-builddir=$(top_builddir) $(REGRESS)
|
|
check:
|
|
@echo "'make check' is not supported."
|
|
@echo "Do 'make install', then 'make installcheck' instead."
|
|
endif # REGRESS
|
|
|
|
|
|
# STANDARD RULES
|
|
|
|
ifneq (,$(MODULES)$(MODULE_big))
|
|
%.sql: %.sql.in
|
|
sed 's,MODULE_PATHNAME,$$libdir/$*,g' $< >$@
|
|
endif
|
|
|
|
ifdef PROGRAM
|
|
$(PROGRAM): $(OBJS)
|
|
$(CC) $(CFLAGS) $(OBJS) $(PG_LIBS) $(LDFLAGS) $(LIBS) -o $@
|
|
endif
|