| # -*-makefile-*- |
| # $PostgreSQL: pgsql/src/Makefile.global.in,v 1.232 2006/10/08 17:15:33 tgl Exp $ |
| #------------------------------------------------------------------------------ |
| # 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. |
| # |
| # 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.) |
| #------------------------------------------------------------------------------ |
| |
| |
| ########################################################################## |
| # |
| # Meta configuration |
| |
| .PHONY: all install install-strip installdirs uninstall clean distclean maintainer-clean distprep check installcheck maintainer-check coverage installcheck-good |
| .SILENT: installdirs |
| |
| # make `all' the default target |
| all: |
| |
| feature-test: |
| |
| # Delete target files if the command fails after it has |
| # started to update the file. |
| .DELETE_ON_ERROR: |
| |
| # PostgreSQL version number |
| VERSION = @PACKAGE_VERSION@ |
| MAJORVERSION = @PG_MAJORVERSION@ |
| |
| # GPDB version number |
| GP_MAJORVERSION = @GP_MAJORVERSION@ |
| |
| # HAWQ version number |
| HQ_MAJORVERSION = @HQ_MAJORVERSION@ |
| |
| # Support for VPATH builds |
| vpath_build = @vpath_build@ |
| abs_top_srcdir = @abs_top_srcdir@ |
| abs_top_builddir = @abs_top_builddir@ |
| |
| ifneq ($(vpath_build),yes) |
| top_srcdir = $(top_builddir) |
| srcdir = . |
| else # vpath_build = yes |
| top_srcdir = $(abs_top_srcdir) |
| srcdir = $(top_srcdir)/$(subdir) |
| VPATH = $(srcdir) |
| endif |
| |
| vpathsearch = `for f in $(addsuffix /$(1),$(subst :, ,. $(VPATH))); do test -r $$f && echo $$f && break; done` |
| |
| # Saved arguments from configure |
| configure_args = @configure_args@ |
| |
| |
| ########################################################################## |
| # |
| # Installation directories |
| # |
| # 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. |
| # |
| # 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 |
| |
| # Note that prefix, exec_prefix, and datarootdir aren't defined in a PGXS build; |
| # makefiles may only use the derived variables such as bindir. |
| |
| prefix := @prefix@ |
| exec_prefix := @exec_prefix@ |
| datarootdir := @datarootdir@ |
| |
| bindir := @bindir@ |
| sbindir := @sbindir@ |
| |
| datadir := @datadir@ |
| ifeq "$(findstring pgsql, $(datadir))" "" |
| ifeq "$(findstring postgres, $(datadir))" "" |
| override datadir := $(datadir)/postgresql |
| endif |
| endif |
| |
| sysconfdir := @sysconfdir@ |
| #ifeq "$(findstring pgsql, $(sysconfdir))" "" |
| #ifeq "$(findstring postgres, $(sysconfdir))" "" |
| #override sysconfdir := $(sysconfdir)/postgresql |
| #endif |
| #endif |
| |
| libdir := @libdir@ |
| |
| pkglibdir = $(libdir) |
| ifeq "$(findstring pgsql, $(pkglibdir))" "" |
| ifeq "$(findstring postgres, $(pkglibdir))" "" |
| override pkglibdir := $(pkglibdir)/postgresql |
| endif |
| endif |
| |
| includedir := @includedir@ |
| |
| pkgincludedir = $(includedir) |
| ifeq "$(findstring pgsql, $(pkgincludedir))" "" |
| ifeq "$(findstring postgres, $(pkgincludedir))" "" |
| override pkgincludedir := $(pkgincludedir)/postgresql |
| endif |
| endif |
| |
| mandir := @mandir@ |
| |
| docdir := @docdir@ |
| #ifeq "$(findstring pgsql, $(docdir))" "" |
| #ifeq "$(findstring postgres, $(docdir))" "" |
| #override docdir := $(docdir)/postgresql |
| #endif |
| #endif |
| |
| htmldir := @htmldir@ |
| |
| localedir := @localedir@ |
| |
| else # PGXS case |
| |
| # Extension makefiles should set PG_CONFIG, but older ones might not |
| ifndef PG_CONFIG |
| PG_CONFIG = pg_config |
| endif |
| |
| 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) |
| |
| endif # PGXS |
| |
| # These derived path variables aren't separately configurable. |
| |
| includedir_server = $(pkgincludedir)/server |
| includedir_internal = $(pkgincludedir)/internal |
| includedir_internal_cdb = $(pkgincludedir)/internal/cdb |
| pgxsdir = $(pkglibdir)/pgxs |
| |
| sqlmansect_dummy = l |
| |
| |
| ########################################################################## |
| # |
| # Features |
| # |
| # Records the choice of the various --enable-xxx and --with-xxx options. |
| |
| with_perl = @with_perl@ |
| with_python = @with_python@ |
| with_tcl = @with_tcl@ |
| with_r = @with_r@ |
| with_pgcrypto = @with_pgcrypto@ |
| with_orc = @with_orc@ |
| with_java = @with_java@ |
| with_openssl = @with_openssl@ |
| with_system_tzdata = @with_system_tzdata@ |
| with_zlib = @with_zlib@ |
| enable_shared = @enable_shared@ |
| enable_rpath = @enable_rpath@ |
| enable_nls = @enable_nls@ |
| enable_debug = @enable_debug@ |
| enable_dtrace = @enable_dtrace@ |
| enable_coverage = @enable_coverage@ |
| enable_thread_safety = @enable_thread_safety@ |
| enable_largefile = @enable_largefile@ |
| enable_snmp = @enable_snmp@ |
| enable_email = @enable_email@ |
| enable_connectemc = @enable_connectemc@ |
| enable_orca = @enable_orca@ |
| enable_gphdfs = @enable_gphdfs@ |
| |
| python_includespec = @python_includespec@ |
| python_libdir = @python_libdir@ |
| python_libspec = @python_libspec@ |
| python_additional_libs = @python_additional_libs@ |
| python_configdir = @python_configdir@ |
| python_version = @python_version@ |
| |
| krb_srvtab = @krb_srvtab@ |
| |
| TCLSH = @TCLSH@ |
| TCL_LIB_FILE = @TCL_LIB_FILE@ |
| TCL_LIBS = @TCL_LIBS@ |
| TCL_LIB_SPEC = @TCL_LIB_SPEC@ |
| TCL_INCLUDE_SPEC = @TCL_INCLUDE_SPEC@ |
| TCL_SHARED_BUILD = @TCL_SHARED_BUILD@ |
| TCL_SHLIB_LD_LIBS = @TCL_SHLIB_LD_LIBS@ |
| |
| PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ |
| PTHREAD_LIBS = @PTHREAD_LIBS@ |
| |
| have_docbook = @have_docbook@ |
| DOCBOOKSTYLE = @DOCBOOKSTYLE@ |
| COLLATEINDEX = @COLLATEINDEX@ |
| |
| |
| ########################################################################## |
| # |
| # Programs and flags |
| |
| # Compilers |
| |
| CPP = @CPP@ |
| CPPFLAGS = @CPPFLAGS@ |
| CPPFLAGS += -I$(abs_top_srcdir)/depends/libhdfs3/build/install$(prefix)/include |
| CPPFLAGS += -I$(abs_top_srcdir)/depends/libyarn/build/install$(prefix)/include |
| CPPFLAGS += -I/usr/local/hawq/include |
| |
| ifdef PGXS |
| override CPPFLAGS := -I$(includedir_server) -I$(includedir_internal) $(CPPFLAGS) |
| else # not PGXS |
| override CPPFLAGS := -I$(top_srcdir)/src/include $(CPPFLAGS) |
| ifdef VPATH |
| override CPPFLAGS := -I$(top_builddir)/src/include $(CPPFLAGS) |
| endif |
| endif # not PGXS |
| |
| CC = @CC@ |
| GCC = @GCC@ |
| SUN_STUDIO_CC = @SUN_STUDIO_CC@ |
| CFLAGS = @CFLAGS@ |
| CFLAGS_SSE42 = @CFLAGS_SSE42@ |
| |
| # Kind-of compilers |
| |
| BISON = @BISON@ |
| BISONFLAGS = @BISONFLAGS@ $(YFLAGS) |
| FLEX = @FLEX@ |
| MAVEN = @MAVEN@ |
| FLEXFLAGS = @FLEXFLAGS@ $(LFLAGS) |
| DTRACE = @DTRACE@ |
| DTRACEFLAGS = @DTRACEFLAGS@ |
| ZIC = @ZIC@ |
| |
| # Linking |
| |
| AR = @AR@ |
| DLLTOOL = @DLLTOOL@ |
| DLLWRAP = @DLLWRAP@ |
| LIBS = @LIBS@ |
| LDAP_LIBS_FE = @LDAP_LIBS_FE@ |
| LDAP_LIBS_BE = @LDAP_LIBS_BE@ |
| LD = @LD@ |
| with_gnu_ld = @with_gnu_ld@ |
| ld_R_works = @ld_R_works@ |
| |
| # 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 += -L$(abs_top_srcdir)/depends/libhdfs3/build/install$(prefix)/lib |
| LDFLAGS += -L$(abs_top_srcdir)/depends/libyarn/build/install$(prefix)/lib |
| |
| LDFLAGS_EX = @LDFLAGS_EX@ |
| # LDFLAGS_SL might have already been assigned by calling makefile |
| LDFLAGS_SL += @LDFLAGS_SL@ |
| LDREL = -r |
| LDOUT = -o |
| RANLIB = @RANLIB@ |
| WINDRES = @WINDRES@ |
| X = @EXEEXT@ |
| |
| # Perl |
| |
| ifneq (@PERL@,) |
| # quoted to protect pathname with spaces |
| PERL = "@PERL@" |
| else |
| PERL = $(missing) perl |
| endif |
| perl_archlibexp = @perl_archlibexp@ |
| perl_privlibexp = @perl_privlibexp@ |
| perl_useshrplib = @perl_useshrplib@ |
| perl_embed_ldflags = @perl_embed_ldflags@ |
| |
| # Java |
| ifneq (@JAVA@,) |
| # quoted to protect pathname with spaces |
| JAVA = "@JAVA@" |
| JAVAC = "@JAVAC@" |
| JAVAH = "@JAVAH@" |
| JAR = "@JAR@" |
| JAVADOC = "@JAVADOC@" |
| JAVA_HOME = @JAVA_HOME@ |
| JAVAC_FLAGS = @JAVAC_FLAGS@ |
| else |
| JAVA = $(missing) java |
| JAVAC = $(missing) javac |
| JAVAH = $(missing) javah |
| JAR = $(missing) jar |
| JAVADOC = $(missing) javadoc |
| endif |
| |
| # R |
| ifeq ($(with_r), yes) |
| R_HOME = "@R_HOME@" |
| endif |
| |
| # Miscellaneous |
| |
| AWK = @AWK@ |
| LN_S = @LN_S@ |
| MSGFMT = @MSGFMT@ |
| MSGMERGE = @MSGMERGE@ |
| PYTHON = @PYTHON@ |
| TAR = @TAR@ |
| XGETTEXT = @XGETTEXT@ |
| |
| GZIP = gzip |
| BZIP2 = bzip2 |
| |
| PL_TESTDB = pl_regression |
| CONTRIB_TESTDB = contrib_regression |
| |
| # Installation. |
| |
| INSTALL = $(SHELL) $(top_srcdir)/config/install-sh -c |
| |
| INSTALL_SCRIPT_MODE = 755 |
| INSTALL_DATA_MODE = 644 |
| INSTALL_PROGRAM = $(INSTALL_PROGRAM_ENV) $(INSTALL) $(INSTALL_STRIP_FLAG) |
| INSTALL_SCRIPT = $(INSTALL) -m $(INSTALL_SCRIPT_MODE) |
| INSTALL_DATA = $(INSTALL) -m $(INSTALL_DATA_MODE) |
| INSTALL_STLIB = $(INSTALL_STLIB_ENV) $(INSTALL_DATA) $(INSTALL_STRIP_FLAG) |
| INSTALL_SHLIB = $(INSTALL_SHLIB_ENV) $(INSTALL) $(INSTALL_SHLIB_OPTS) $(INSTALL_STRIP_FLAG) |
| # Override in Makefile.port if necessary |
| INSTALL_SHLIB_OPTS = -m 755 |
| |
| MKDIR_P = @MKDIR_P@ |
| |
| mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs |
| missing = $(SHELL) $(top_srcdir)/config/missing |
| |
| STRIP = @STRIP@ |
| STRIP_STATIC_LIB = @STRIP_STATIC_LIB@ |
| STRIP_SHARED_LIB = @STRIP_SHARED_LIB@ |
| |
| # Documentation |
| |
| JADE = @JADE@ |
| NSGMLS = @NSGMLS@ |
| SGMLSPL = @SGMLSPL@ |
| |
| # Code coverage |
| |
| GCOV = @GCOV@ |
| LCOV = @LCOV@ |
| GENHTML = @GENHTML@ |
| |
| ifeq ($(BUILD_TYPE),gcov) |
| CFLAGS+=-fprofile-arcs -ftest-coverage |
| CXXFLAGS+=-fprofile-arcs -ftest-coverage |
| export BUILD_TYPE=gcov |
| endif |
| |
| ifeq ($(enable_coverage),yes) |
| # ccache loses .gcno files |
| export CCACHE_DISABLE = 1 |
| endif |
| |
| # Feature settings |
| |
| DEF_PGPORT = @default_port@ |
| WANTED_LANGUAGES = @WANTED_LANGUAGES@ |
| |
| # catdump json |
| catdump_json = $(abs_top_srcdir)/tools/bin/gppylib/data/$(HQ_MAJORVERSION).json |
| |
| |
| ########################################################################## |
| # |
| # Additional platform-specific settings |
| # |
| |
| # Name of the "template" |
| PORTNAME= @PORTNAME@ |
| |
| build_os = @build_os@ |
| |
| host_tuple = @host@ |
| host_os = @host_os@ |
| host_cpu = @host_cpu@ |
| |
| # Make HAVE_IPV6 available for initdb script creation |
| HAVE_IPV6= @HAVE_IPV6@ |
| |
| # The HP-UX port makefile, for one, needs access to this symbol |
| HAVE_POSIX_SIGNALS= @HAVE_POSIX_SIGNALS@ |
| |
| # 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@ |
| |
| # Backend stack size limit has to be hard-wired on Windows (it's in bytes) |
| WIN32_STACK_RLIMIT=4194304 |
| |
| # Pull in platform-specific magic |
| include $(top_builddir)/src/Makefile.port |
| |
| # 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) |
| |
| ifeq ($(enable_rpath), yes) |
| LDFLAGS += $(rpath) |
| endif |
| |
| |
| ########################################################################## |
| # |
| # Some variables needed to find some client interfaces |
| |
| ifdef PGXS |
| # some contribs assumes headers and libs are in the source tree... |
| libpq_srcdir = $(includedir) |
| libpq_builddir = $(libdir) |
| else |
| libpq_srcdir = $(top_srcdir)/src/interfaces/libpq |
| libpq_builddir = $(top_builddir)/src/interfaces/libpq |
| endif |
| |
| # 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.) |
| libpq = -L$(libpq_builddir) -lpq |
| |
| # If doing static linking, shared library dependency info isn't available, |
| # so add in the libraries that libpq depends on. |
| ifeq ($(enable_shared), no) |
| libpq += $(filter -lintl -lssl -lcrypto -lkrb5 -lcrypt, $(LIBS)) \ |
| $(LDAP_LIBS_FE) $(PTHREAD_LIBS) |
| endif |
| |
| # This macro is for use by client executables (not libraries) that use libpq. |
| # 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 |
| # 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 |
| |
| |
| submake-libpq: |
| $(MAKE) -C $(libpq_builddir) all |
| |
| submake-libpgport: |
| $(MAKE) -C $(top_builddir)/src/port all |
| |
| .PHONY: submake-libpq submake-libpgport |
| |
| |
| ########################################################################## |
| # |
| # Customization |
| # |
| # 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. |
| # |
| # 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. |
| |
| #-include $(top_srcdir)/src/Makefile.custom |
| |
| ifneq ($(CUSTOM_INSTALL),) |
| INSTALL= $(CUSTOM_INSTALL) |
| endif |
| |
| ifneq ($(CUSTOM_CC),) |
| CC= $(CUSTOM_CC) |
| endif |
| |
| ifneq ($(CUSTOM_COPT),) |
| COPT= $(CUSTOM_COPT) |
| endif |
| |
| ifdef COPT |
| CFLAGS += $(COPT) |
| LDFLAGS += $(COPT) |
| endif |
| |
| ifdef PROFILE |
| CFLAGS += $(PROFILE) |
| LDFLAGS += $(PROFILE) |
| endif |
| |
| |
| ########################################################################## |
| # |
| # substitute implementations of C library routines (see src/port/) |
| |
| LIBOBJS = @LIBOBJS@ |
| |
| # files needed for the chosen CRC-32C implementation |
| PG_CRC32C_OBJS = @PG_CRC32C_OBJS@ |
| |
| LIBS := -lpgport $(LIBS) |
| # add location of libpgport.a to LDFLAGS |
| ifdef PGXS |
| override LDFLAGS := -L$(libdir) $(LDFLAGS) |
| else |
| override LDFLAGS := -L$(top_builddir)/src/port $(LDFLAGS) |
| endif |
| |
| # to make ws2_32.lib the last library, and always link with shfolder, |
| # so SHGetFolderName isn't picked up from shell32.dll |
| ifeq ($(PORTNAME),win32) |
| LIBS += -lws2_32 -lshfolder |
| endif |
| |
| # Not really standard libc functions, used by the backend. |
| TAS = @TAS@ |
| |
| |
| ########################################################################## |
| # Required by HAWQ RM |
| |
| ifeq ($(BLD_ARCH),osx106_x86) |
| LIBS := $(LIBS) -framework CoreServices -framework IOKit |
| endif |
| |
| LIBS := $(LIBS) -lyarn -lkrb5 |
| |
| ########################################################################## |
| # |
| # Global targets and rules |
| |
| %.i: %.c |
| $(CPP) $(CPPFLAGS) -o $@ $< |
| |
| %.gz: % |
| $(GZIP) -f --best $< |
| |
| %.bz2: % |
| $(BZIP2) -f $< |
| |
| ifeq ($(PORTNAME),win32) |
| # Build rules to add versioninfo resources to win32 binaries |
| WIN32RES += win32ver.o |
| ifeq ($(PGFILESHLIB),1) |
| PGFTYPE=VFT_DLL |
| else |
| PGFTYPE=VFT_APP |
| endif |
| ifneq (,$(PGAPPICON)) |
| PGICOSTR=$(subst /,\/,IDI_ICON ICON \"$(top_builddir)/src/port/$(PGAPPICON).ico\") |
| endif |
| win32ver.rc: $(top_builddir)/src/port/win32ver.rc |
| sed -e 's;FILEDESC;$(PGFILEDESC);' -e 's;VFT_APP;$(PGFTYPE);' -e 's;_ICO_;$(PGICOSTR);' -e 's;\(VERSION.*\),0 *$$;\1,'`date '+%y%j' | sed 's/^0*//'`';' $(top_builddir)/src/port/win32ver.rc > win32ver.rc |
| win32ver.o: $(top_builddir)/src/port/win32ver.rc |
| sed -e 's;FILEDESC;$(PGFILEDESC);' -e 's;VFT_APP;$(PGFTYPE);' -e 's;_ICO_;$(PGICOSTR);' -e 's;\(VERSION.*\),0 *$$;\1,'`date '+%y%j' | sed 's/^0*//'`';' $(top_builddir)/src/port/win32ver.rc > win32ver.rc |
| windres -i win32ver.rc -o win32ver.o --include-dir=$(top_builddir)/src/include |
| rm -f win32ver.rc |
| endif |
| |
| ifndef PGXS |
| |
| # 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. |
| $(top_builddir)/src/Makefile.global: $(top_srcdir)/src/Makefile.global.in $(top_builddir)/config.status |
| cd $(top_builddir) && ./config.status src/Makefile.global |
| |
| # 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 |
| # doesn't change, so as to avoid recompiling the entire tree |
| # unnecessarily. Therefore we make config.status update a timestamp file |
| # stamp-h everytime it runs, so that we don't trigger this rule everytime. |
| # (We do trigger the null rule for stamp-h to pg_config.h everytime; so it's |
| # important for that rule to be null!) |
| # |
| # Of course you need to turn on dependency tracking to get any |
| # dependencies on pg_config.h. |
| $(top_builddir)/src/include/pg_config.h: $(top_builddir)/src/include/stamp-h |
| |
| $(top_builddir)/src/include/stamp-h: $(top_srcdir)/src/include/pg_config.h.in $(top_builddir)/config.status |
| cd $(top_builddir) && ./config.status src/include/pg_config.h |
| |
| # Also remake ecpg_config.h from ecpg_config.h.in if the latter changed. Values in it can |
| # only change if pg_config.h has changed, so include this file to its dependencies. |
| $(top_builddir)/src/interfaces/ecpg/include/ecpg_config.h: $(top_builddir)/src/include/pg_config.h $(top_builddir)/src/interfaces/ecpg/include/ecpg_config.h.in $(top_builddir)/config.status |
| cd $(top_builddir) && ./config.status src/interfaces/ecpg/include/ecpg_config.h |
| |
| # When configure changes, rerun configure with the same options as |
| # last time. To change configure, you need to run autoconf manually. |
| $(top_builddir)/config.status: $(top_srcdir)/configure |
| cd $(top_builddir) && ./config.status --recheck |
| |
| endif # not PGXS |
| |
| |
| 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 |
| |
| |
| ########################################################################## |
| # |
| # 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@ |
| |
| ifeq ($(autodepend), yes) |
| |
| ifndef COMPILE.c |
| COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c |
| endif |
| |
| DEPDIR = .deps |
| |
| ifeq ($(GCC), yes) |
| |
| # GCC allows us to create object and dependency file in one invocation. |
| %.o : %.c |
| @if test ! -d $(DEPDIR); then mkdir -p $(DEPDIR); fi |
| $(COMPILE.c) -o $@ $< -MMD -MP -MF $(DEPDIR)/$(*F).Po |
| |
| 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. |
| -include $(wildcard $(DEPDIR)/*.Po) /dev/null |
| |
| # hook for clean-up |
| clean distclean maintainer-clean: clean-deps |
| |
| .PHONY: clean-deps |
| clean-deps: |
| @rm -rf $(DEPDIR) |
| |
| endif # autodepend |
| |
| |
| ########################################################################## |
| # |
| # 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 |
| |
| ########################################################################## |
| # |
| # 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 |