mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-15 08:20:16 +08:00
337da0678a
Eliminate the mysterious games that the Cygwin build plays with the linker flag variables. DLLLIBS is gone, use SHLIB_LINK like everyone else. Detect cygipc in configure, after the linker flags are set up, otherwise configure might not work at all. Make sure everything is covered by make clean. Fix the build of the new conversion procedure modules. Add new DLLIMPORT markers where required. Finally, the compiler complains if we use an explicit -I/usr/local/include, so don't do that. Curiously, -L/usr/local/lib is still necessary.
203 lines
5.1 KiB
Makefile
203 lines
5.1 KiB
Makefile
# $Header: /cvsroot/pgsql/contrib/contrib-global.mk,v 1.3 2002/09/05 18:28:45 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)
|
|
SHLIB_LINK += $(BE_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 =
|
|
|
|
SHLIB_LINK += $(BE_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
|