summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian2002-11-10 00:37:28 +0000
committerBruce Momjian2002-11-10 00:37:28 +0000
commit3e427d541ed5990442bb469e56e464caa69aa90c (patch)
treed704ccd3387635da2f9a5803471dfa7e41dbb9ba
parent8691d337506fd21636599f183470ee588d8506d8 (diff)
I am attaching a patch file that will replace the previous one. It only
contains the patches to Makefile.global.in and Makefile.unixware. The Makefile.unixware patch has been updated to include the contents of LD_LIBRARY_PATH, if present, to the -rpath (-R) option. This change will simplify configuring and building PostgreSQL on systems that support LD_LIBRARY_PATH. You can set LD_LIBRARY_PATH to include all the directorys you want to have searched for additional libraries, run configure, then run make. The paths in LD_LIBRARY_PATH will then be embedded in the executables via the -rpath (-R) option to the linker, and so will not require LD_LIBRARY_PATH in order to run. Billy G. Allie
-rw-r--r--src/Makefile.global.in3
-rw-r--r--src/makefiles/Makefile.unixware18
2 files changed, 19 insertions, 2 deletions
diff --git a/src/Makefile.global.in b/src/Makefile.global.in
index 49f9b046b2..ae907afb37 100644
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -189,6 +189,9 @@ LIBS = @LIBS@
LD = @LD@
with_gnu_ld = @with_gnu_ld@
ld_R_works = @ld_R_works@
+# Set trpath to a list of library paths included in LDFLAGS
+# These paths can be added to rpath in the port specific makefiles if needed.
+trpath = $(filter -L%,@LDFLAGS@)
LDFLAGS = @LDFLAGS@
LDREL = -r
LDOUT = -o
diff --git a/src/makefiles/Makefile.unixware b/src/makefiles/Makefile.unixware
index 9e4d715932..76b52a5cd8 100644
--- a/src/makefiles/Makefile.unixware
+++ b/src/makefiles/Makefile.unixware
@@ -7,9 +7,23 @@ endif
ifeq ($(ld_R_works), yes)
ifeq ($(with_gnu_ld), yes)
- rpath = -Wl,-rpath,$(libdir)
+ # Convert the list of library search paths into -rpath options
+ # (i.e. "-LpathA -LpathB" -> ",-rpath,pathA,-rpath,pathB"), adding
+ # the contents of LD_LIBRARY_PATH if it exists.
+ tpath1=$(shell echo $(trpath) | sed -e 's/ *-L/,-rpath,/g')
+ifdef LD_LIBRARY_PATH
+ tpath2 = ,-rpath,tpath+=$(shell echo $(LD_LIBRARY_PATH) | sed -e 's/:/,-rpath,/g')
+endif
+ rpath = -Wl,-rpath,$(libdir)$(tpath)$(tpath2)
else
- rpath = -Wl,-R$(libdir)
+ # Convert the list of library search paths into a -R option path
+ # (i.e. "-LpathA -LpathB" -> ":pathA:pathB"), adding the contents of
+ # LD_LIBRARY_PATH if it exists.
+ tpath1 = $(shell echo $(trpath) | sed -e 's/ *-L/:/g')
+ifdef LD_LIBRARY_PATH
+ tpath2 = :$(LD_LIBRARY_PATH)
+endif
+ rpath = -Wl,-R$(libdir)$(tpath1)$(tpath2)
endif
endif
shlib_symbolic = -Wl,-Bsymbolic