mirror of
https://github.com/postgres/postgres.git
synced 2026-01-05 23:38:41 +03:00
Back-patch commitdddfc4cb2, which broke LDFLAGS and related Makefile variables into two parts, one for within-build-tree library references and one for external libraries, to ensure that the order of -L flags has all of the former before all of the latter. This turns out to fix a problem recently noted on buildfarm member peripatus, that we attempted to incorporate code from libpgport.a into a shared library. That will fail on platforms that are sticky about putting non-PIC code into shared libraries. (It's quite surprising we hadn't seen such failures before, since the code in question has been like that for a long time.) I think that peripatus' problem could have been fixed with just a subset of this patch; but since the previous issue of accidentally linking to the wrong copy of a Postgres shlib seems likely to bite people in the field, let's just back-patch the whole change. Now that commitdddfc4cb2has survived some beta testing, I'm less afraid to back-patch it than I was at the time. This also fixes undesired inclusion of "-DFRONTEND" in pg_config's CPPFLAGS output (in 9.6 and up) and undesired inclusion of "-L../../src/common" in its LDFLAGS output (in all supported branches). Back-patch to v10 and older branches; this is already in v11. Discussion: https://postgr.es/m/20180704234304.bq2dxispefl65odz@ler-imac.local
52 lines
1.3 KiB
Makefile
52 lines
1.3 KiB
Makefile
#-------------------------------------------------------------------------
|
|
#
|
|
# Makefile for src/bin/pg_ctl
|
|
#
|
|
# Portions Copyright (c) 1996-2017, PostgreSQL Global Development Group
|
|
# Portions Copyright (c) 1994, Regents of the University of California
|
|
#
|
|
# src/bin/pg_ctl/Makefile
|
|
#
|
|
#-------------------------------------------------------------------------
|
|
|
|
PGFILEDESC = "pg_ctl - starts/stops/restarts the PostgreSQL server"
|
|
PGAPPICON=win32
|
|
|
|
subdir = src/bin/pg_ctl
|
|
top_builddir = ../../..
|
|
include $(top_builddir)/src/Makefile.global
|
|
|
|
# On Windows, we need to link with libpq, just for use of pqexpbuffer;
|
|
# but let's not pull that in on platforms where we don't need it.
|
|
ifeq ($(PORTNAME), win32)
|
|
override CPPFLAGS := -I$(libpq_srcdir) $(CPPFLAGS)
|
|
LDFLAGS_INTERNAL += $(libpq_pgport)
|
|
SUBMAKE_LIBPQ := submake-libpq
|
|
endif
|
|
|
|
OBJS= pg_ctl.o $(WIN32RES)
|
|
|
|
all: pg_ctl
|
|
|
|
pg_ctl: $(OBJS) | submake-libpgport $(SUBMAKE_LIBPQ)
|
|
$(CC) $(CFLAGS) $(OBJS) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
|
|
|
|
install: all installdirs
|
|
$(INSTALL_PROGRAM) pg_ctl$(X) '$(DESTDIR)$(bindir)/pg_ctl$(X)'
|
|
|
|
installdirs:
|
|
$(MKDIR_P) '$(DESTDIR)$(bindir)'
|
|
|
|
uninstall:
|
|
rm -f '$(DESTDIR)$(bindir)/pg_ctl$(X)'
|
|
|
|
clean distclean maintainer-clean:
|
|
rm -f pg_ctl$(X) $(OBJS)
|
|
rm -rf tmp_check
|
|
|
|
check:
|
|
$(prove_check)
|
|
|
|
installcheck:
|
|
$(prove_installcheck)
|