mirror of
https://git.postgresql.org/git/postgresql.git
synced 2026-02-12 01:18:35 +08:00
Move DLSUFFIX from makefiles into header files for all platforms. Move the DLSUFFIX assignment from src/makefiles/ to src/templates/, have configure read it, and then substitute it into Makefile.global and pg_config.h. This avoids the need for all makefile rules that need it to locally set CPPFLAGS. It also resolves an inconsistent setup between the two Windows build systems. Reviewed-by: Andres Freund <andres@anarazel.de> Discussion: https://www.postgresql.org/message-id/2f9861fb-8969-9005-7518-b8e60f2bead9@enterprisedb.com
48 lines
1.2 KiB
Makefile
48 lines
1.2 KiB
Makefile
# 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
|
|
|
|
# env var name to use in place of LD_LIBRARY_PATH
|
|
ld_library_path_var = SHLIB_PATH
|
|
|
|
# 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
|