mirror of
https://github.com/postgres/postgres.git
synced 2025-08-19 23:22:23 +03:00
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.
36 lines
635 B
Makefile
36 lines
635 B
Makefile
AROPT = crs
|
|
ifeq ($(with_gnu_ld), yes)
|
|
export_dynamic = -Wl,-E
|
|
else
|
|
export_dynamic = -Wl,-Bexport
|
|
endif
|
|
|
|
ifeq ($(ld_R_works), yes)
|
|
ifeq ($(with_gnu_ld), yes)
|
|
rpath = -Wl,-rpath,'$(rpathdir)'
|
|
else
|
|
rpath = -Wl,-R'$(rpathdir)'
|
|
endif
|
|
endif
|
|
|
|
# Unixware needs threads for everything that uses libpq
|
|
CFLAGS += $(PTHREAD_CFLAGS)
|
|
|
|
DLSUFFIX = .so
|
|
ifeq ($(GCC), yes)
|
|
CFLAGS_SL = -fpic
|
|
else
|
|
CFLAGS_SL = -K PIC
|
|
endif
|
|
ifeq ($(GCC), yes)
|
|
SO_FLAGS = -shared
|
|
else
|
|
SO_FLAGS = -G
|
|
endif
|
|
|
|
# Rule for building a shared library from a single .o file
|
|
%.so: %.o
|
|
$(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_SL) $(SO_FLAGS) -o $@ $<
|
|
|
|
sqlmansect = 5sql
|