|
1 | | -# $PostgreSQL: pgsql/contrib/contrib-global.mk,v 1.7 2003/11/29 19:51:18 pgsql Exp $ |
| 1 | +# $PostgreSQL: pgsql/contrib/contrib-global.mk,v 1.8 2004/07/30 12:26:39 petere Exp $ |
2 | 2 |
|
3 | | -# This file contains generic rules to build many kinds of simple |
4 | | -# contrib modules. You only need to set a few variables and include |
5 | | -# this file, the rest will be done here. |
6 | | -# |
7 | | -# Use the following layout for your Makefile: |
8 | | -# |
9 | | -# subdir = contrib/xxx |
10 | | -# top_builddir = ../.. |
11 | | -# include $(top_builddir)/src/Makefile.global |
12 | | -# |
13 | | -# [variable assignments, see below] |
14 | | -# [custom rules, rarely necessary] |
15 | | -# |
16 | | -# include $(top_srcdir)/contrib/contrib-global.mk |
17 | | -# |
18 | | -# The following variables can be set: |
19 | | -# |
20 | | -# MODULES -- list of shared objects to be build from source file with |
21 | | -# same stem (do not include suffix in this list) |
22 | | -# DATA -- random files to install into $PREFIX/share/contrib |
23 | | -# DATA_built -- random files to install into $PREFIX/share/contrib, |
24 | | -# which need to be built first |
25 | | -# DOCS -- random files to install under $PREFIX/doc/contrib |
26 | | -# SCRIPTS -- script files (not binaries) to install into $PREFIX/bin |
27 | | -# SCRIPTS_built -- script files (not binaries) to install into $PREFIX/bin, |
28 | | -# which need to be built first |
29 | | -# REGRESS -- list of regression test cases (without suffix) |
30 | | -# |
31 | | -# or at most one of these two: |
32 | | -# |
33 | | -# PROGRAM -- a binary program to build (list objects files in OBJS) |
34 | | -# MODULE_big -- a shared object to build (list object files in OBJS) |
35 | | -# |
36 | | -# The following can also be set: |
37 | | -# |
38 | | -# EXTRA_CLEAN -- extra files to remove in 'make clean' |
39 | | -# PG_CPPFLAGS -- will be added to CPPFLAGS |
40 | | -# PG_LIBS -- will be added to PROGRAM link line |
41 | | -# SHLIB_LINK -- will be added to MODULE_big link line |
42 | | -# |
43 | | -# Better look at some of the existing uses for examples... |
44 | | - |
45 | | - |
46 | | -overrideCPPFLAGS := -I$(srcdir)$(CPPFLAGS) |
47 | | - |
48 | | -ifdefMODULES |
49 | | -overrideCFLAGS +=$(CFLAGS_SL) |
50 | | -SHLIB_LINK +=$(BE_DLLLIBS) |
51 | | -endif |
52 | | - |
53 | | -ifdefPG_CPPFLAGS |
54 | | -overrideCPPFLAGS :=$(PG_CPPFLAGS)$(CPPFLAGS) |
55 | | -endif |
56 | | - |
57 | | -all:$(PROGRAM)$(DATA_built)$(SCRIPTS_built)$(addsuffix$(DLSUFFIX),$(MODULES)) |
58 | | - |
59 | | -ifdefMODULE_big |
60 | | -# shared library parameters |
61 | | -NAME =$(MODULE_big) |
62 | | -SO_MAJOR_VERSION= 0 |
63 | | -SO_MINOR_VERSION= 0 |
64 | | -rpath = |
65 | | - |
66 | | -SHLIB_LINK +=$(BE_DLLLIBS) |
67 | | - |
68 | | -include$(top_srcdir)/src/Makefile.shlib |
69 | | - |
70 | | -all: all-lib |
71 | | -endif# MODULE_big |
72 | | - |
73 | | - |
74 | | -install: all installdirs |
75 | | -ifneq (,$(DATA)$(DATA_built)) |
76 | | -@for file in $(addprefix $(srcdir)/, $(DATA)) $(DATA_built); do \ |
77 | | - echo "$(INSTALL_DATA) $$file $(DESTDIR)$(datadir)/contrib"; \ |
78 | | - $(INSTALL_DATA) $$file $(DESTDIR)$(datadir)/contrib; \ |
79 | | -done |
80 | | -endif# DATA |
81 | | -ifdefMODULES |
82 | | -@for file in $(addsuffix $(DLSUFFIX), $(MODULES)); do \ |
83 | | - echo "$(INSTALL_SHLIB) $$file $(DESTDIR)$(pkglibdir)"; \ |
84 | | - $(INSTALL_SHLIB) $$file $(DESTDIR)$(pkglibdir); \ |
85 | | -done |
86 | | -endif# MODULES |
87 | | -ifdefDOCS |
88 | | -@for file in $(addprefix $(srcdir)/, $(DOCS)); do \ |
89 | | - echo "$(INSTALL_DATA) $$file $(DESTDIR)$(docdir)/contrib"; \ |
90 | | - $(INSTALL_DATA) $$file $(DESTDIR)$(docdir)/contrib; \ |
91 | | -done |
92 | | -endif# DOCS |
93 | | -ifdefPROGRAM |
94 | | -$(INSTALL_PROGRAM) $(PROGRAM)$(X) $(DESTDIR)$(bindir) |
95 | | -endif# PROGRAM |
96 | | -ifdefMODULE_big |
97 | | -$(INSTALL_SHLIB) $(shlib) $(DESTDIR)$(pkglibdir)/$(MODULE_big)$(DLSUFFIX) |
98 | | -endif# MODULE_big |
99 | | -ifdefSCRIPTS |
100 | | -@for file in $(addprefix $(srcdir)/, $(SCRIPTS)); do \ |
101 | | - echo "$(INSTALL_SCRIPT) $$file $(DESTDIR)$(bindir)"; \ |
102 | | - $(INSTALL_SCRIPT) $$file $(DESTDIR)$(bindir); \ |
103 | | -done |
104 | | -endif# SCRIPTS |
105 | | -ifdefSCRIPTS_built |
106 | | -@for file in $(SCRIPTS_built); do \ |
107 | | - echo "$(INSTALL_SCRIPT) $$file $(DESTDIR)$(bindir)"; \ |
108 | | - $(INSTALL_SCRIPT) $$file $(DESTDIR)$(bindir); \ |
109 | | -done |
110 | | -endif# SCRIPTS_built |
111 | | - |
112 | | - |
113 | | -installdirs: |
114 | | -ifneq (,$(DATA)$(DATA_built)) |
115 | | -$(mkinstalldirs) $(DESTDIR)$(datadir)/contrib |
116 | | -endif |
117 | | -ifneq (,$(MODULES)$(MODULE_big)) |
118 | | -$(mkinstalldirs) $(DESTDIR)$(pkglibdir) |
119 | | -endif |
120 | | -ifdefDOCS |
121 | | -$(mkinstalldirs) $(DESTDIR)$(docdir)/contrib |
122 | | -endif |
123 | | -ifneq (,$(PROGRAM)$(SCRIPTS)$(SCRIPTS_built)) |
124 | | -$(mkinstalldirs) $(DESTDIR)$(bindir) |
125 | | -endif |
126 | | - |
127 | | - |
128 | | -uninstall: |
129 | | -ifneq (,$(DATA)$(DATA_built)) |
130 | | -rm -f $(addprefix $(DESTDIR)$(datadir)/contrib/, $(notdir $(DATA) $(DATA_built))) |
131 | | -endif |
132 | | -ifdefMODULES |
133 | | -rm -f $(addprefix $(DESTDIR)$(pkglibdir)/, $(addsuffix $(DLSUFFIX), $(MODULES))) |
134 | | -endif |
135 | | -ifdefDOCS |
136 | | -rm -f $(addprefix $(DESTDIR)$(docdir)/contrib/, $(DOCS)) |
137 | | -endif |
138 | | -ifdefPROGRAM |
139 | | -rm -f $(DESTDIR)$(bindir)/$(PROGRAM)$(X) |
140 | | -endif |
141 | | -ifdefMODULE_big |
142 | | -rm -f $(DESTDIR)$(pkglibdir)/$(MODULE_big)$(DLSUFFIX) |
143 | | -endif |
144 | | -ifdefSCRIPTS |
145 | | -rm -f $(addprefix $(DESTDIR)$(bindir)/, $(SCRIPTS)) |
146 | | -endif |
147 | | -ifdefSCRIPTS_built |
148 | | -rm -f $(addprefix $(DESTDIR)$(bindir)/, $(SCRIPTS_built)) |
149 | | -endif |
150 | | - |
151 | | - |
152 | | -clean: |
153 | | -ifdefMODULES |
154 | | -rm -f $(addsuffix $(DLSUFFIX), $(MODULES)) $(addsuffix .o, $(MODULES)) |
155 | | -endif |
156 | | -ifdefDATA_built |
157 | | -rm -f $(DATA_built) |
158 | | -endif |
159 | | -ifdefSCRIPTS_built |
160 | | -rm -f $(SCRIPTS_built) |
161 | | -endif |
162 | | -ifdefPROGRAM |
163 | | -rm -f $(PROGRAM)$(X) |
164 | | -endif |
165 | | -ifdefOBJS |
166 | | -rm -f $(OBJS) |
167 | | -endif |
168 | | -ifdefEXTRA_CLEAN |
169 | | -rm -f $(EXTRA_CLEAN) |
170 | | -endif |
171 | | -ifdefREGRESS |
172 | | -# things created by various check targets |
173 | | -rm -rf results tmp_check log |
174 | | -rm -f regression.diffs regression.out regress.out run_check.out |
175 | | -ifeq ($(PORTNAME), win) |
176 | | -rm -f regress.def |
177 | | -endif |
178 | | -endif# REGRESS |
179 | | - |
180 | | -ifdefMODULE_big |
181 | | -clean: clean-lib |
182 | | -endif |
183 | | - |
184 | | -distcleanmaintainer-clean: clean |
185 | | - |
186 | | - |
187 | | -ifdefREGRESS |
188 | | - |
189 | | -# When doing a VPATH build, must copy over the test .sql and .out |
190 | | -# files so that the driver script can find them. We have to use an |
191 | | -# absolute path for the targets, because otherwise make will try to |
192 | | -# locate the missing files using VPATH, and will find them in |
193 | | -# $(srcdir), but the point here is that we want to copy them from |
194 | | -# $(srcdir) to the build directory. |
195 | | - |
196 | | -ifdefVPATH |
197 | | -abs_builddir :=$(shell pwd) |
198 | | -test_files_src :=$(wildcard$(srcdir)/sql/*.sql)$(wildcard$(srcdir)/expected/*.out)$(wildcard$(srcdir)/data/*.data) |
199 | | -test_files_build :=$(patsubst$(srcdir)/%,$(abs_builddir)/%,$(test_files_src)) |
200 | | - |
201 | | -all:$(test_files_build) |
202 | | -$(test_files_build):$(abs_builddir)/%:$(srcdir)/% |
203 | | -ln -s$<$@ |
204 | | -endif# VPATH |
205 | | - |
206 | | -.PHONY: submake |
207 | | -submake: |
208 | | -$(MAKE) -C$(top_builddir)/src/test/regress pg_regress |
209 | | - |
210 | | -# against installed postmaster |
211 | | -installcheck: submake |
212 | | -$(top_builddir)/src/test/regress/pg_regress$(REGRESS) |
213 | | - |
214 | | -# in-tree test doesn't work yet (no way to install my shared library) |
215 | | -#check: all submake |
216 | | -#$(top_builddir)/src/test/regress/pg_regress --temp-install\ |
217 | | -# --top-builddir=$(top_builddir) $(REGRESS) |
218 | | -check: |
219 | | -@echo"'make check' is not supported." |
220 | | -@echo"Do 'make install', then 'make installcheck' instead." |
221 | | -endif# REGRESS |
222 | | - |
223 | | - |
224 | | -# STANDARD RULES |
225 | | - |
226 | | -ifneq (,$(MODULES)$(MODULE_big)) |
227 | | -%.sql:%.sql.in |
228 | | -sed's,MODULE_PATHNAME,$$libdir/$*,g'$<>$@ |
229 | | -endif |
230 | | - |
231 | | -ifdefPROGRAM |
232 | | -$(PROGRAM):$(OBJS) |
233 | | -$(CC)$(CFLAGS)$(OBJS)$(PG_LIBS)$(LDFLAGS)$(LIBS) -o$@ |
234 | | -endif |
| 3 | +NO_PGXS = 1 |
| 4 | +include$(top_srcdir)/src/makefiles/pgxs.mk |