Makefile.global.in 20.2 KB
Newer Older
1
# -*-makefile-*-
2
# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.254 2009/06/23 03:46:00 tgl Exp $
3 4 5 6 7 8

#------------------------------------------------------------------------------
# All PostgreSQL makefiles include this file and use the variables it sets,
# which in turn are put here by the configure script. There is no need for
# users to edit this file -- if it turns out to be necessary then that's a
# bug.
9
#
10 11 12 13 14
# A makefile that includes this file needs to set the variable `subdir' to
# the relative path from the top to itself and `top_builddir' to the relative
# path from itself to the top before including this file. (The "top" is the
# parent directory of the directory this file is in.)
#------------------------------------------------------------------------------
15

16 17 18 19 20

##########################################################################
#
# Meta configuration

21
.PHONY: all install install-strip installdirs uninstall clean distclean maintainer-clean distprep check installcheck maintainer-check coverage installcheck-good
22 23 24 25 26
.SILENT: installdirs

# make `all' the default target
all:

27 28 29 30
# Delete target files if the command fails after it has
# started to update the file.
.DELETE_ON_ERROR:

31 32 33
# BLD_ARCH
BLD_ARCH = @BLD_ARCH@

34
# PostgreSQL version number
35 36
PG_VERSION = @PG_PACKAGE_VERSION@
PG_MAJORVERSION = @PG_MAJORVERSION@
37 38

# GPDB version number
39
GP_VERSION = @GP_VERSION_SHORT@
40 41 42
GP_MAJORVERSION = @GP_MAJORVERSION@

ADDON_DIR = @ADDON_DIR@
43

44
# Support for VPATH builds
45
vpath_build = @vpath_build@
46
abs_top_srcdir = @abs_top_srcdir@
47

48
ifneq ($(vpath_build),yes)
49
top_srcdir = $(top_builddir)
50
srcdir = .
51
else # vpath_build = yes
52
top_srcdir = $(abs_top_srcdir)
53 54
srcdir = $(top_srcdir)/$(subdir)
VPATH = $(srcdir)
55
endif
56

57 58
vpathsearch = `for f in $(addsuffix /$(1),$(subst :, ,. $(VPATH))); do test -r $$f && echo $$f && break; done`

59 60 61
# Saved arguments from configure
configure_args = @configure_args@

62 63

##########################################################################
64
#
65
# Installation directories
66 67 68 69
#
# These are set by the equivalent --xxxdir configure options.  We
# append "postgresql" to some of them, if the string does not already
# contain "pgsql" or "postgres", in order to avoid directory clutter.
70 71 72 73 74 75 76
#
# In a PGXS build, we cannot use the values inserted into Makefile.global
# by configure, since the installation tree may have been relocated.
# Instead get the path values from pg_config.

ifndef PGXS

77
# Note that prefix, exec_prefix, and datarootdir aren't defined in a PGXS build;
78
# makefiles may only use the derived variables such as bindir.
79

80 81
prefix := @prefix@
exec_prefix := @exec_prefix@
82
datarootdir := @datarootdir@
M
 
Marc G. Fournier 已提交
83

84
bindir := @bindir@
85

86
datadir := @datadir@
87 88 89 90 91 92
ifeq "$(findstring pgsql, $(datadir))" ""
ifeq "$(findstring postgres, $(datadir))" ""
override datadir := $(datadir)/postgresql
endif
endif

93
sysconfdir := @sysconfdir@
94 95 96 97 98
ifeq "$(findstring pgsql, $(sysconfdir))" ""
ifeq "$(findstring postgres, $(sysconfdir))" ""
override sysconfdir := $(sysconfdir)/postgresql
endif
endif
99 100

libdir := @libdir@
101

102 103 104 105 106 107
pkglibdir = $(libdir)
ifeq "$(findstring pgsql, $(pkglibdir))" ""
ifeq "$(findstring postgres, $(pkglibdir))" ""
override pkglibdir := $(pkglibdir)/postgresql
endif
endif
108 109

includedir := @includedir@
110

111 112 113 114 115 116
pkgincludedir = $(includedir)
ifeq "$(findstring pgsql, $(pkgincludedir))" ""
ifeq "$(findstring postgres, $(pkgincludedir))" ""
override pkgincludedir := $(pkgincludedir)/postgresql
endif
endif
117

118
mandir := @mandir@
119

120
docdir := @docdir@
121 122 123 124 125
ifeq "$(findstring pgsql, $(docdir))" ""
ifeq "$(findstring postgres, $(docdir))" ""
override docdir := $(docdir)/postgresql
endif
endif
126 127

htmldir := @htmldir@
128

P
Peter Eisentraut 已提交
129
localedir := @localedir@
130

131 132
else # PGXS case

133 134
# Extension makefiles should set PG_CONFIG, but older ones might not
ifndef PG_CONFIG
135
PG_CONFIG = pg_config
136
endif
137 138 139 140 141 142 143 144 145 146 147

bindir := $(shell $(PG_CONFIG) --bindir)
datadir := $(shell $(PG_CONFIG) --sharedir)
sysconfdir := $(shell $(PG_CONFIG) --sysconfdir)
libdir := $(shell $(PG_CONFIG) --libdir)
pkglibdir := $(shell $(PG_CONFIG) --pkglibdir)
includedir := $(shell $(PG_CONFIG) --includedir)
pkgincludedir := $(shell $(PG_CONFIG) --pkgincludedir)
mandir := $(shell $(PG_CONFIG) --mandir)
docdir := $(shell $(PG_CONFIG) --docdir)
localedir := $(shell $(PG_CONFIG) --localedir)
148 149 150 151 152 153 154

endif # PGXS

# These derived path variables aren't separately configurable.

includedir_server = $(pkgincludedir)/server
includedir_internal = $(pkgincludedir)/internal
155 156
pgxsdir = $(pkglibdir)/pgxs

157

158
##########################################################################
159
#
160
# Features
161
#
162
# Records the choice of the various --enable-xxx and --with-xxx options.
163

164 165 166
with_perl	= @with_perl@
with_python	= @with_python@
with_tcl	= @with_tcl@
167
with_openssl	= @with_openssl@
168
with_ossp_uuid	= @with_ossp_uuid@
169
with_libxml	= @with_libxml@
170
with_libxslt	= @with_libxslt@
171
with_system_tzdata = @with_system_tzdata@
172
with_zlib	= @with_zlib@
173
with_libbz2	= @with_libbz2@
174
with_apr_config	= @with_apr_config@
175 176
with_apu_config	= @with_apu_config@
with_libsigar	= @with_libsigar@
177
enable_shared	= @enable_shared@
178
enable_rpath	= @enable_rpath@
179 180 181
# NLS is not supported in Greenplum, see comment documenting
# this in configure.in
# enable_nls	= @enable_nls@
182
enable_debug	= @enable_debug@
183
enable_dtrace	= @enable_dtrace@
184
enable_coverage	= @enable_coverage@
185
enable_thread_safety	= @enable_thread_safety@
186 187
enable_largefile	= @enable_largefile@
enable_orca		= @enable_orca@
188
enable_codegen		= @enable_codegen@
189
enable_gpfdist		= @enable_gpfdist@
190
enable_pxf			= @enable_pxf@
191
enable_gphdfs		= @enable_gphdfs@
192 193 194
enable_snmp			= @enable_snmp@
enable_ddboost	    = @enable_ddboost@
enable_netbackup	= @enable_netbackup@
195
enable_mapreduce    = @enable_mapreduce@
A
Adam Lee 已提交
196
enable_gpcloud 	    = @enable_gpcloud@
197
enable_gpperfmon    = @enable_gpperfmon@
198

199
enable_tap_tests = @enable_tap_tests@
200

201
python_includespec	= @python_includespec@
202
python_libdir		= @python_libdir@
203
python_libspec		= @python_libspec@
204
python_additional_libs	= @python_additional_libs@
205
python_configdir	= @python_configdir@
B
Bruce Momjian 已提交
206
python_version		= @python_version@
207

208 209
krb_srvtab = @krb_srvtab@

210 211 212 213
TCLSH			= @TCLSH@
TCL_LIB_FILE		= @TCL_LIB_FILE@
TCL_LIBS		= @TCL_LIBS@
TCL_LIB_SPEC		= @TCL_LIB_SPEC@
214
TCL_INCLUDE_SPEC	= @TCL_INCLUDE_SPEC@
215 216 217
TCL_SHARED_BUILD	= @TCL_SHARED_BUILD@
TCL_SHLIB_LD_LIBS	= @TCL_SHLIB_LD_LIBS@

218 219
PTHREAD_CFLAGS		= @PTHREAD_CFLAGS@
PTHREAD_LIBS		= @PTHREAD_LIBS@
B
Bruce Momjian 已提交
220

M
Marbin Tan 已提交
221
have_yaml 		= @have_yaml@
222 223
have_docbook	= @have_docbook@
DOCBOOKSTYLE	= @DOCBOOKSTYLE@
224
COLLATEINDEX	= @COLLATEINDEX@
225
DOCBOOK2MAN	= @DOCBOOK2MAN@
226

227

228
##########################################################################
229
#
230
# Programs and flags
231

232
# Compilers
233

234 235
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
236 237 238 239

ifdef PGXS
override CPPFLAGS := -I$(includedir_server) -I$(includedir_internal) $(CPPFLAGS)
else # not PGXS
240 241 242 243
override CPPFLAGS := -I$(top_srcdir)/src/include $(CPPFLAGS)
ifdef VPATH
override CPPFLAGS := -I$(top_builddir)/src/include $(CPPFLAGS)
endif
244
endif # not PGXS
245

246 247
CC = @CC@
GCC = @GCC@
248
SUN_STUDIO_CC = @SUN_STUDIO_CC@
249
CFLAGS = @CFLAGS@
250
CFLAGS_VECTOR = @CFLAGS_VECTOR@
251
CFLAGS_SSE42 = @CFLAGS_SSE42@
252

253 254 255
CXX = @CXX@
CXXFLAGS = @CXXFLAGS@

256
# Kind-of compilers
257

258 259
BISON = @BISON@
BISONFLAGS = @BISONFLAGS@ $(YFLAGS)
260 261
FLEX = @FLEX@
FLEXFLAGS = @FLEXFLAGS@ $(LFLAGS)
262 263
DTRACE = @DTRACE@
DTRACEFLAGS = @DTRACEFLAGS@
264
ZIC = @ZIC@
265 266 267

# Linking

268 269 270
AR = @AR@
DLLTOOL = @DLLTOOL@
DLLWRAP = @DLLWRAP@
271
LIBS = @LIBS@
272 273
LDAP_LIBS_FE = @LDAP_LIBS_FE@
LDAP_LIBS_BE = @LDAP_LIBS_BE@
274
OSSP_UUID_LIBS = @OSSP_UUID_LIBS@
275 276
LD = @LD@
with_gnu_ld = @with_gnu_ld@
277
ld_R_works = @ld_R_works@
278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294

# We want -L for libpgport.a to be first in LDFLAGS.  We also need LDFLAGS
# to be a "recursively expanded" variable, else adjustments to rpathdir
# don't work right.  So we must NOT do LDFLAGS := something, meaning this has
# to be done first and elsewhere we must only do LDFLAGS += something.
ifdef PGXS
  LDFLAGS = -L$(libdir)
else
  LDFLAGS = -L$(top_builddir)/src/port
endif
LDFLAGS += @LDFLAGS@

LDFLAGS_EX = @LDFLAGS_EX@
# LDFLAGS_SL might have already been assigned by calling makefile
LDFLAGS_SL += @LDFLAGS_SL@


295 296 297
LDREL = -r
LDOUT = -o
RANLIB = @RANLIB@
298
WINDRES = @WINDRES@
299
X = @EXEEXT@
300

301
# Perl
302

303 304 305 306 307 308
ifneq (@PERL@,)
    # quoted to protect pathname with spaces
    PERL		= "@PERL@"
else
    PERL		= $(missing) perl
endif
309 310 311 312
perl_archlibexp		= @perl_archlibexp@
perl_privlibexp		= @perl_privlibexp@
perl_useshrplib		= @perl_useshrplib@
perl_embed_ldflags	= @perl_embed_ldflags@
313

314 315 316 317 318 319 320 321
# apr-1-config

APR_1_CONFIG		= @APR_1_CONFIG@
apr_includes		= @apr_includes@
apr_link_ld_libs	= @apr_link_ld_libs@
apr_cflags			= @apr_cflags@
apr_cppflags		= @apr_cppflags@

322 323 324 325 326
# apu-1-config
APU_1_CONFIG		= @APU_1_CONFIG@
apu_includes		= @apu_includes@
apu_link_ld_libs	= @apu_link_ld_libs@

327 328 329 330
# Miscellaneous

AWK	= @AWK@
LN_S	= @LN_S@
P
Peter Eisentraut 已提交
331 332
MSGFMT  = @MSGFMT@
MSGMERGE = @MSGMERGE@
333 334
PYTHON	= @PYTHON@
TAR	= @TAR@
P
Peter Eisentraut 已提交
335
XGETTEXT = @XGETTEXT@
336

337 338 339
GZIP	= gzip
BZIP2	= bzip2

340 341 342
PL_TESTDB = pl_regression
CONTRIB_TESTDB = contrib_regression

343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372
# Testing

abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@

check:

PROVE = @PROVE@
# There are common routines in src/test/perl, and some test suites have
# extra perl modules in their own directory.
PG_PROVE_FLAGS = -I $(top_srcdir)/src/test/perl/ -I $(srcdir)
# User-supplied prove flags such as --verbose can be provided in PROVE_FLAGS.
PROVE_FLAGS =

ifeq ($(enable_tap_tests),yes)
define prove_installcheck
rm -rf $(CURDIR)/tmp_check/log
cd $(srcdir) && TESTDIR='$(CURDIR)' PATH="$(bindir):$$PATH" top_builddir='$(CURDIR)/$(top_builddir)' PG_REGRESS='$(CURDIR)/$(top_builddir)/src/test/regress/pg_regress' $(PROVE) $(PG_PROVE_FLAGS) $(PROVE_FLAGS) $(if $(PROVE_TESTS),$(PROVE_TESTS),t/*.pl)
endef

define prove_check
rm -rf $(CURDIR)/tmp_check/log
cd $(srcdir) && TESTDIR='$(CURDIR)' $(with_temp_install) top_builddir='$(CURDIR)/$(top_builddir)' PG_REGRESS='$(CURDIR)/$(top_builddir)/src/test/regress/pg_regress' $(PROVE) $(PG_PROVE_FLAGS) $(PROVE_FLAGS) $(if $(PROVE_TESTS),$(PROVE_TESTS),t/*.pl)
endef

else
prove_installcheck = @echo "TAP tests not enabled"
prove_check = $(prove_installcheck)
endif

373 374
# Installation.

375
INSTALL	= $(SHELL) $(top_srcdir)/config/install-sh -c
376

377 378
INSTALL_SCRIPT_MODE	= 755
INSTALL_DATA_MODE	= 644
379
INSTALL_PROGRAM	= $(INSTALL_PROGRAM_ENV) $(INSTALL) $(INSTALL_STRIP_FLAG)
380 381
INSTALL_SCRIPT	= $(INSTALL) -m $(INSTALL_SCRIPT_MODE)
INSTALL_DATA	= $(INSTALL) -m $(INSTALL_DATA_MODE)
382 383
INSTALL_STLIB	= $(INSTALL_STLIB_ENV) $(INSTALL_DATA) $(INSTALL_STRIP_FLAG)
INSTALL_SHLIB	= $(INSTALL_SHLIB_ENV) $(INSTALL) $(INSTALL_SHLIB_OPTS) $(INSTALL_STRIP_FLAG)
384 385
# Override in Makefile.port if necessary
INSTALL_SHLIB_OPTS = -m 755
386

387 388
MKDIR_P = @MKDIR_P@

389 390
mkinstalldirs	= $(SHELL) $(top_srcdir)/config/mkinstalldirs
missing		= $(SHELL) $(top_srcdir)/config/missing
391

392 393 394 395
STRIP		= @STRIP@
STRIP_STATIC_LIB = @STRIP_STATIC_LIB@
STRIP_SHARED_LIB = @STRIP_SHARED_LIB@

396 397 398 399 400 401
# Documentation

JADE	= @JADE@
NSGMLS	= @NSGMLS@
SGMLSPL	= @SGMLSPL@

402 403 404 405 406 407 408 409 410 411 412
# Code coverage

GCOV = @GCOV@
LCOV = @LCOV@
GENHTML = @GENHTML@

ifeq ($(enable_coverage),yes)
# ccache loses .gcno files
export CCACHE_DISABLE = 1
endif

413 414 415
# Feature settings

DEF_PGPORT = @default_port@
416 417 418
# NLS is not supported in Greenplum, see comment documenting
# this in configure.in
# WANTED_LANGUAGES = @WANTED_LANGUAGES@
419

420

421

422
##########################################################################
423 424 425 426
#
# Additional platform-specific settings
#

427
# Name of the "template"
428
PORTNAME= @PORTNAME@
429

430 431
build_os = @build_os@

432 433 434
host_tuple = @host@
host_os = @host_os@
host_cpu = @host_cpu@
435

436 437 438
# Make HAVE_IPV6 available for initdb script creation
HAVE_IPV6= @HAVE_IPV6@

T
Tom Lane 已提交
439
# The HP-UX port makefile, for one, needs access to this symbol
440 441
HAVE_POSIX_SIGNALS= @HAVE_POSIX_SIGNALS@

442 443 444 445
# This is mainly for use on FreeBSD, where we have both a.out and elf
# systems now.  May be applicable to other systems to?
ELF_SYSTEM= @ELF_SYS@

446 447 448
# Backend stack size limit has to be hard-wired on Windows (it's in bytes)
WIN32_STACK_RLIMIT=4194304

449
# Pull in platform-specific magic
450
include $(top_builddir)/src/Makefile.port
451

452 453 454 455
# Set up rpath if enabled.  By default it will point to our libdir,
# but individual Makefiles can force other rpath paths if needed.
rpathdir = $(libdir)

456 457 458
ifeq ($(enable_rpath), yes)
LDFLAGS += $(rpath)
endif
459

460

461 462 463 464
##########################################################################
#
# Some variables needed to find some client interfaces

465 466 467 468 469
ifdef PGXS
# some contribs assumes headers and libs are in the source tree...
libpq_srcdir = $(includedir)
libpq_builddir = $(libdir)
else
470 471
libpq_srcdir = $(top_srcdir)/src/interfaces/libpq
libpq_builddir = $(top_builddir)/src/interfaces/libpq
472 473
endif

474 475
# This macro is for use by libraries linking to libpq.  (Because libpgport
# isn't created with the same link flags as libpq, it can't be used.)
476 477
libpq = -L$(libpq_builddir) -lpq

478 479
# If doing static linking, shared library dependency info isn't available,
# so add in the libraries that libpq depends on.
480
ifeq ($(enable_shared), no)
481 482
libpq += $(filter -lintl -lssl -lcrypto -lkrb5 -lcrypt, $(LIBS)) \
	$(LDAP_LIBS_FE) $(PTHREAD_LIBS)
483
endif
484

485
# This macro is for use by client executables (not libraries) that use libpq.
486 487 488
# We force clients to pull symbols from the non-shared library libpgport
# rather than pulling some libpgport symbols from libpq just because
# libpq uses those functions too.  This makes applications less
489 490 491 492 493 494 495 496 497 498
# dependent on changes in libpq's usage of pgport.  To do this we link to
# pgport before libpq.  This does cause duplicate -lpgport's to appear
# on client link lines.
ifdef PGXS
libpq_pgport = -L$(libdir) -lpgport $(libpq)
else
libpq_pgport = -L$(top_builddir)/src/port -lpgport $(libpq)
endif


499 500 501 502 503 504 505 506
submake-libpq:
	$(MAKE) -C $(libpq_builddir) all

submake-libpgport:
	$(MAKE) -C $(top_builddir)/src/port all

.PHONY: submake-libpq submake-libpgport

507 508

##########################################################################
509
#
510
# Customization
511
#
512 513 514
# This includes your local customizations if Makefile.custom exists
# in the source directory.  This file doesn't exist in the original
# distribution so that it doesn't get overwritten when you upgrade.
515 516 517 518 519 520
#
# NOTE:  Makefile.custom is from the pre-Autoconf days of PostgreSQL.
# You are liable to shoot yourself in the foot if you use it without
# knowing exactly what you're doing.  The preferred (and more
# reliable) method is to communicate what you want to do to the
# configure script, and leave the makefiles alone.
521

522
-include $(top_srcdir)/src/Makefile.custom
523 524 525 526 527 528 529 530 531 532 533 534 535 536

ifneq ($(CUSTOM_INSTALL),)
INSTALL= $(CUSTOM_INSTALL)
endif

ifneq ($(CUSTOM_CC),)
  CC= $(CUSTOM_CC)
endif

ifneq ($(CUSTOM_COPT),)
  COPT= $(CUSTOM_COPT)
endif

ifdef COPT
537 538
   CFLAGS += $(COPT)
   LDFLAGS += $(COPT)
539 540 541
endif

ifdef PROFILE
542 543
   CFLAGS += $(PROFILE)
   LDFLAGS += $(PROFILE)
544
endif
545 546


547 548
##########################################################################
#
549
# substitute implementations of C library routines (see src/port/)
550

551
LIBOBJS = @LIBOBJS@
552

553 554 555
# files needed for the chosen CRC-32C implementation
PG_CRC32C_OBJS = @PG_CRC32C_OBJS@

556
LIBS := -lpgport $(LIBS)
557
# add location of libpgport.a to LDFLAGS
558
ifdef PGXS
559
override LDFLAGS := -L$(libdir) $(LDFLAGS)
560
else
561
override LDFLAGS := -L$(top_builddir)/src/port $(LDFLAGS)
562
endif
P
Move  
Peter Eisentraut 已提交
563

564 565
# to make ws2_32.lib the last library, and always link with shfolder,
# so SHGetFolderName isn't picked up from shell32.dll
B
Bruce Momjian 已提交
566
ifeq ($(PORTNAME),win32)
567
LIBS += -lws2_32 -lshfolder
568 569
override LDFLAGS := -L$(top_builddir)/gpAux/ext/win32/kfw-3-2-2/lib $(LDFLAGS)
override AR := /usr/bin/i686-pc-mingw32-ar
B
Bruce Momjian 已提交
570 571
endif

B
Bruce Momjian 已提交
572
# Not really standard libc functions, used by the backend.
P
Move  
Peter Eisentraut 已提交
573
TAS         = @TAS@
574

P
Peter Eisentraut 已提交
575

576 577
##########################################################################
#
578 579
# Global targets and rules

580 581 582
%.i: %.c
	$(CPP) $(CPPFLAGS) -o $@ $<

583
%.gz: %
584
	$(GZIP) --best -c $< >$@
585 586

%.bz2: %
587
	$(BZIP2) -c $< >$@
588

589 590
ifndef PGXS

591 592 593 594
# Remake Makefile.global from Makefile.global.in if the latter
# changed. In order to trigger this rule, the including file must
# write `include $(top_builddir)/src/Makefile.global', not some
# shortcut thereof.
P
Peter Eisentraut 已提交
595
$(top_builddir)/src/Makefile.global: $(top_srcdir)/src/Makefile.global.in $(top_builddir)/config.status
596
	cd $(top_builddir) && ./config.status src/Makefile.global
P
Peter Eisentraut 已提交
597

598 599
# Remake pg_config.h from pg_config.h.in if the latter changed.
# config.status will not change the timestamp on pg_config.h if it
600
# doesn't change, so as to avoid recompiling the entire tree
601 602
# unnecessarily. Therefore we make config.status update a timestamp file
# stamp-h everytime it runs, so that we don't trigger this rule everytime.
603
# (We do trigger the null rule for stamp-h to pg_config.h everytime; so it's
604
# important for that rule to be null!)
605 606
#
# Of course you need to turn on dependency tracking to get any
607 608
# dependencies on pg_config.h.
$(top_builddir)/src/include/pg_config.h: $(top_builddir)/src/include/stamp-h
609

610
$(top_builddir)/src/include/stamp-h: $(top_srcdir)/src/include/pg_config.h.in $(top_builddir)/config.status
611
	cd $(top_builddir) && ./config.status src/include/pg_config.h
612

613 614 615 616 617
# Also remake ecpg_config.h from ecpg_config.h.in if the latter changed, same 
# logic as above.
$(top_builddir)/src/interfaces/ecpg/include/ecpg_config.h: $(top_builddir)/src/interfaces/ecpg/include/stamp-h

 $(top_builddir)/src/interfaces/ecpg/include/stamp-h: $(top_builddir)/src/interfaces/ecpg/include/ecpg_config.h.in $(top_builddir)/config.status
618 619
	cd $(top_builddir) && ./config.status src/interfaces/ecpg/include/ecpg_config.h

620 621
# When configure changes, rerun configure with the same options as
# last time. To change configure, you need to run autoconf manually.
P
Peter Eisentraut 已提交
622 623 624
$(top_builddir)/config.status: $(top_srcdir)/configure
	cd $(top_builddir) && ./config.status --recheck

625 626
endif # not PGXS

P
Peter Eisentraut 已提交
627

628 629 630 631 632 633 634 635
install-strip:
	@$(MAKE) INSTALL_PROGRAM_ENV="STRIPPROG='$(STRIP)'" \
	    INSTALL_STLIB_ENV="STRIPPROG='$(STRIP_STATIC_LIB)'" \
	    INSTALL_SHLIB_ENV="STRIPPROG='$(STRIP_SHARED_LIB)'" \
	    INSTALL_STRIP_FLAG=-s \
	    install


636 637
##########################################################################
#
P
Peter Eisentraut 已提交
638 639 640 641 642 643 644 645 646 647 648
# Automatic dependency generation
# -------------------------------
# When we configure with --enable-depend then we override the default
# compilation rule with the magic below. While or after creating the
# actual output file we also create a dependency list for the .c file.
# Next time we invoke make we will have top-notch information about
# whether this file needs to be updated. The dependency files are kept
# in the .deps subdirectory of each directory.

autodepend = @autodepend@

649
ifeq ($(autodepend), yes)
P
Peter Eisentraut 已提交
650

651 652 653 654
ifndef COMPILE.c
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
endif

P
Peter Eisentraut 已提交
655
DEPDIR = .deps
656

P
Peter Eisentraut 已提交
657 658 659 660
ifeq ($(GCC), yes)

# GCC allows us to create object and dependency file in one invocation.
%.o : %.c
661 662
	@if test ! -d $(DEPDIR); then mkdir -p $(DEPDIR); fi
	$(COMPILE.c) -o $@ $< -MMD -MP -MF $(DEPDIR)/$(*F).Po
P
Peter Eisentraut 已提交
663 664 665 666 667 668

endif # GCC

# Include all the dependency files generated for the current
# directory. List /dev/null as dummy because if the wildcard expands
# to nothing then make would complain.
669
-include $(wildcard $(DEPDIR)/*.Po) /dev/null
P
Peter Eisentraut 已提交
670 671

# hook for clean-up
672
clean distclean maintainer-clean: clean-deps
P
Peter Eisentraut 已提交
673 674 675

.PHONY: clean-deps
clean-deps:
676
	@rm -rf $(DEPDIR)
P
Peter Eisentraut 已提交
677 678

endif # autodepend
P
Peter Eisentraut 已提交
679 680 681 682 683 684 685 686 687 688 689 690 691


##########################################################################
#
# Native language support

ifeq ($(enable_nls), yes)
ifneq (,$(wildcard $(srcdir)/nls.mk))

include $(top_srcdir)/src/nls-global.mk

endif # nls.mk
endif # enable_nls
692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739


##########################################################################
#
# Coverage

# Explanation of involved files:
#   foo.c	source file
#   foo.o	object file
#   foo.gcno	gcov graph (a.k.a. "notes") file, created at compile time
#		(by gcc -ftest-coverage)
#   foo.gcda	gcov data file, created when the program is run (for
#		programs compiled with gcc -fprofile-arcs)
#   foo.c.gcov	gcov output file with coverage information, created by
#		gcov from foo.gcda (by "make coverage")
#   foo.c.gcov.out  stdout captured when foo.c.gcov is created, mildly
#		interesting
#   lcov.info	lcov tracefile, built from gcda files in one directory,
#		later collected by "make coverage-html"

ifeq ($(enable_coverage), yes)

# There is a strange interaction between lcov and existing .gcov
# output files.  Hence the rm command and the ordering dependency.

gcda_files := $(wildcard *.gcda)

lcov.info: $(gcda_files)
	rm -f *.gcov
	$(if $^,$(LCOV) -d . -c -o $@ $(LCOVFLAGS))

%.c.gcov: %.gcda | lcov.info
	$(GCOV) -b -f -p -o . $(GCOVFLAGS) $*.c >$*.c.gcov.out


# hook for clean-up
clean distclean maintainer-clean: clean-coverage

.PHONY: clean-coverage
clean-coverage:
	rm -f *.gcda *.gcno lcov.info *.gcov *.gcov.out


# User-callable target to reset counts between test runs
coverage-clean:
	rm -f `find . -name '*.gcda' -print`

endif # enable_coverage