⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pgxs.mk

📁 PostgreSQL 8.2中增加了很多企业用户所需要的功能和性能上的提高,其开发团队说,该版本将加速更多企业向该数据库移植.核心开发成员之一Bruce Momjian表示,在新版PostgreSQL
💻 MK
字号:
# PGXS: PostgreSQL extensions makefile# $PostgreSQL: pgsql/src/makefiles/pgxs.mk,v 1.9 2006/07/21 00:24:04 tgl Exp $ # This file contains generic rules to build many kinds of simple# extension 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:##   [variable assignments, see below]#   [custom rules, rarely necessary]##   PGXS := $(shell pg_config --pgxs)#   include $(PGXS)## 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#   SCRIPTS_built -- script files (not binaries) to install into $PREFIX/bin,#     which need to be built first#   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...ifndef PGXSifndef NO_PGXS$(error pgxs error: makefile variable PGXS or NO_PGXS must be set)endifendififdef PGXS# We assume that we are in src/makefiles/, so top is ...top_builddir := $(dir $(PGXS))../..include $(top_builddir)/src/Makefile.globaltop_srcdir = $(top_builddir)srcdir = .VPATH =endifoverride CPPFLAGS := -I$(srcdir) $(CPPFLAGS)ifdef MODULESoverride CFLAGS += $(CFLAGS_SL)SHLIB_LINK += $(BE_DLLLIBS)endififdef PG_CPPFLAGSoverride CPPFLAGS := $(PG_CPPFLAGS) $(CPPFLAGS)endifall: $(PROGRAM) $(DATA_built) $(SCRIPTS_built) $(addsuffix $(DLSUFFIX), $(MODULES))ifdef MODULE_big# shared library parametersNAME = $(MODULE_big)SO_MAJOR_VERSION= 0SO_MINOR_VERSION= 0SHLIB_LINK += $(BE_DLLLIBS)include $(top_srcdir)/src/Makefile.shliball: all-libendif # MODULE_biginstall: all installdirsifneq (,$(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'; \	doneendif # DATAifdef MODULES	@for file in $(addsuffix $(DLSUFFIX), $(MODULES)); do \	  echo "$(INSTALL_SHLIB) $$file '$(DESTDIR)$(pkglibdir)'"; \	  $(INSTALL_SHLIB) $$file '$(DESTDIR)$(pkglibdir)'; \	doneendif # MODULESifdef DOCSifdef docdir	@for file in $(addprefix $(srcdir)/, $(DOCS)); do \	  echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(docdir)/contrib'"; \	  $(INSTALL_DATA) $$file '$(DESTDIR)$(docdir)/contrib'; \	doneendif # docdirendif # DOCSifdef PROGRAM	$(INSTALL_PROGRAM) $(PROGRAM)$(X) '$(DESTDIR)$(bindir)'endif # PROGRAMifdef MODULE_big	$(INSTALL_SHLIB) $(shlib) '$(DESTDIR)$(pkglibdir)/$(MODULE_big)$(DLSUFFIX)'endif # MODULE_bigifdef SCRIPTS	@for file in $(addprefix $(srcdir)/, $(SCRIPTS)); do \	  echo "$(INSTALL_SCRIPT) $$file '$(DESTDIR)$(bindir)'"; \	  $(INSTALL_SCRIPT) $$file '$(DESTDIR)$(bindir)'; \	doneendif # SCRIPTSifdef SCRIPTS_built	@for file in $(SCRIPTS_built); do \	  echo "$(INSTALL_SCRIPT) $$file '$(DESTDIR)$(bindir)'"; \	  $(INSTALL_SCRIPT) $$file '$(DESTDIR)$(bindir)'; \	doneendif # SCRIPTS_builtinstalldirs:ifneq (,$(DATA)$(DATA_built))	$(mkinstalldirs) '$(DESTDIR)$(datadir)/contrib'endififneq (,$(MODULES)$(MODULE_big))	$(mkinstalldirs) '$(DESTDIR)$(pkglibdir)'endififdef DOCSifdef docdir	$(mkinstalldirs) '$(DESTDIR)$(docdir)/contrib'endif # docdirendif # DOCSifneq (,$(PROGRAM)$(SCRIPTS)$(SCRIPTS_built))	$(mkinstalldirs) '$(DESTDIR)$(bindir)'endifuninstall:ifneq (,$(DATA)$(DATA_built))	rm -f $(addprefix '$(DESTDIR)$(datadir)'/contrib/, $(notdir $(DATA) $(DATA_built)))endififdef MODULES	rm -f $(addprefix '$(DESTDIR)$(pkglibdir)'/, $(addsuffix $(DLSUFFIX), $(MODULES)))endififdef DOCS	rm -f $(addprefix '$(DESTDIR)$(docdir)'/contrib/, $(DOCS))endififdef PROGRAM	rm -f '$(DESTDIR)$(bindir)/$(PROGRAM)$(X)'endififdef MODULE_big	rm -f '$(DESTDIR)$(pkglibdir)/$(MODULE_big)$(DLSUFFIX)'endififdef SCRIPTS	rm -f $(addprefix '$(DESTDIR)$(bindir)'/, $(SCRIPTS))endififdef SCRIPTS_built	rm -f $(addprefix '$(DESTDIR)$(bindir)'/, $(SCRIPTS_built))endifclean:ifdef MODULES	rm -f $(addsuffix $(DLSUFFIX), $(MODULES)) $(addsuffix .o, $(MODULES))endififdef DATA_built	rm -f $(DATA_built)endififdef SCRIPTS_built	rm -f $(SCRIPTS_built)endififdef PROGRAM	rm -f $(PROGRAM)$(X)endififdef OBJS	rm -f $(OBJS)endififdef EXTRA_CLEAN	rm -f $(EXTRA_CLEAN)endififdef REGRESS# things created by various check targets	rm -rf results tmp_check log	rm -f regression.diffs regression.out regress.out run_check.outifeq ($(PORTNAME), win)	rm -f regress.defendifendif # REGRESSifdef MODULE_bigclean: clean-libendifdistclean maintainer-clean: cleanifdef REGRESS# Calling makefile can set REGRESS_OPTS, but this is the default:ifndef REGRESS_OPTSREGRESS_OPTS = --dbname=$(CONTRIB_TESTDB)endif# where to find psql for running the testsPSQLDIR = $(bindir)# When doing a VPATH build, must copy over the test .sql and .out# files so that the driver script can find them.  We have to use an# absolute path for the targets, because otherwise make will try to# locate the missing files using VPATH, and will find them in# $(srcdir), but the point here is that we want to copy them from# $(srcdir) to the build directory.ifdef VPATHabs_builddir := $(shell pwd)test_files_src := $(wildcard $(srcdir)/sql/*.sql) $(wildcard $(srcdir)/expected/*.out) $(wildcard $(srcdir)/data/*.data)test_files_build := $(patsubst $(srcdir)/%, $(abs_builddir)/%, $(test_files_src))all: $(test_files_build)$(test_files_build): $(abs_builddir)/%: $(srcdir)/%	ln -s $< $@endif # VPATH.PHONY: submakesubmake:ifndef PGXS	$(MAKE) -C $(top_builddir)/src/test/regress pg_regress$(X)endif# against installed postmasterinstallcheck: submake	$(top_builddir)/src/test/regress/pg_regress --psqldir=$(PSQLDIR) $(REGRESS_OPTS) $(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_OPTS) $(REGRESS)check:	@echo "'make check' is not supported."	@echo "Do 'make install', then 'make installcheck' instead."endif # REGRESS# STANDARD RULESifneq (,$(MODULES)$(MODULE_big))%.sql: %.sql.in	sed 's,MODULE_PATHNAME,$$libdir/$*,g' $< >$@endififdef PROGRAM$(PROGRAM): $(OBJS)	$(CC) $(CFLAGS) $(OBJS) $(PG_LIBS) $(LDFLAGS) $(LIBS) -o $@endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -