Files
postgresql/src/makefiles/Makefile.hpux
Tom Lane 291a957745 Split the LDFLAGS make variable into two parts: LDFLAGS is now used for
linking both executables and shared libraries, and we add on LDFLAGS_EX when
linking executables or LDFLAGS_SL when linking shared libraries.  This
provides a significantly cleaner way of dealing with link-time switches than
the former behavior.  Also, make sure that the various platform-specific
%.so: %.o rules incorporate LDFLAGS and LDFLAGS_SL; most of them missed that
before.  (I did not add these variables for the platforms that invoke $(LD)
directly, however.  It's not clear if we can do that safely, since for the
most part we assume these variables use CC command-line syntax.)

Per gripe from Aaron Swenson and subsequent investigation.
2010-07-05 18:54:38 +00:00

63 lines
1.5 KiB
Makefile

# If we don't have POSIX signals, we need to use the libBSD signal routines.
# (HPUX 9 and early HPUX 10 releases don't have POSIX signals.) Link in
# libBSD only in that case.
ifeq ($(HAVE_POSIX_SIGNALS), no)
LIBS := -lBSD $(LIBS)
endif
# Using X/Open Networking Interfaces requires to link with libxnet.
# Without specifying this, bind(), getpeername() and so on don't work
# correctly in the LP64 data model.
LIBS := -lxnet $(LIBS)
# Set up rpath so that the executables don't need SHLIB_PATH to be set.
# (Note: --disable-rpath is a really bad idea on this platform...)
ifeq ($(with_gnu_ld), yes)
rpath = -Wl,-rpath -Wl,'$(rpathdir)'
else
rpath = -Wl,+b -Wl,'$(rpathdir)'
endif
# catch null pointer dereferences
ifeq ($(with_gnu_ld), yes)
# XXX what to put here?
else
LDFLAGS_EX += -Wl,-z
endif
# set up appropriate options for shared library builds
export_dynamic = -Wl,-E
INSTALL_SHLIB_OPTS = -m 555
AROPT = crs
ifeq ($(host_cpu), ia64)
DLSUFFIX = .so
else
DLSUFFIX = .sl
endif
ifeq ($(GCC), yes)
CFLAGS_SL = -fPIC
else
CFLAGS_SL = +Z
endif
# Rule for building a shared library from a single .o file
%$(DLSUFFIX): %.o
ifeq ($(GCC), yes)
ifeq ($(with_gnu_ld), yes)
$(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_SL) -shared -o $@ $< `$(CC) $(LDFLAGS) -print-libgcc-file-name`
else
$(LD) -b -o $@ $< `$(CC) $(LDFLAGS) -print-libgcc-file-name`
endif
else
ifeq ($(with_gnu_ld), yes)
$(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_SL) -shared -o $@ $<
else
$(LD) -b -o $@ $<
endif
endif
sqlmansect = 5