summaryrefslogtreecommitdiffstats
path: root/Makefile.shared
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2003-04-08 08:36:20 +0000
committerRichard Levitte <levitte@openssl.org>2003-04-08 08:36:20 +0000
commite96133e4cf60f9185203202b7bbbd79485eeeb12 (patch)
treeb3bd6cdc90436922cefd068bcd7e3c01e763797d /Makefile.shared
parentf65a75786b4eaf633ffab2ccb52f2c0dd51d268d (diff)
It seems like OpenUnix's ld uses LD_LIBRARY_PATH to search for
libraries. What's worse, the directories given in LD_LIBRARY_PATH are checked first! Therefore, we need a hack to prepend all the directories we give with -L to the current value of LD_LIBRARY_PATH, thereby temporarly forming a hacked value. Only copy LIBEXTRAS if they are given. Svr5 doesn't use -z allextract...
Diffstat (limited to 'Makefile.shared')
-rw-r--r--Makefile.shared17
1 files changed, 12 insertions, 5 deletions
diff --git a/Makefile.shared b/Makefile.shared
index 3584158b9c..c39c8424e6 100644
--- a/Makefile.shared
+++ b/Makefile.shared
@@ -88,11 +88,17 @@ CALC_VERSIONS= \
LINK_APP= \
( $(DEBUG); \
+ LIBPATH=`for x in $$LIBDEPS; do if echo $$x | grep '^ *-L' > /dev/null 2>&1; then echo $$x | sed -e 's/^ *-L//'; fi; done | uniq | while read d; do echo -n $${d}:; done'`; \
+ LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`
+ LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \
$$LDCMD $(LDFLAGS) $$LDFLAGS -o $$APPNAME $(OBJECTS) $$LIBDEPS )
LINK_SO= \
( $(DEBUG); \
nm -Pg $$SHOBJECTS | grep ' [BDT] ' | cut -f1 -d' ' > lib$(LIBNAME).exp; \
+ LIBPATH=`for x in $$LIBDEPS; do if echo $$x | grep '^ *-L' > /dev/null 2>&1; then echo $$x | sed -e 's/^ *-L//'; fi; done | uniq | while read d; do echo -n $${d}:; done'`; \
+ LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`
+ LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \
$$SHAREDCMD $(SHARED_LDFLAGS) $$SHAREDFLAGS -o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \
$$ALLSYMSFLAGS $$SHOBJECTS $$NOALLSYMSFLAGS $$LIBDEPS ) && \
$(SYMLINK_SO); ( $(DEBUG); rm -f lib$(LIBNAME).exp )
@@ -122,7 +128,8 @@ LINK_SO_A_VIA_O= \
$(LINK_SO) && rm -f $(LIBNAME).o
LINK_SO_A_UNPACKED= \
UNPACKDIR=link_tmp.$$$$; rm -rf $$UNPACKDIR; mkdir $$UNPACKDIR; \
- (cd $$UNPACKDIR; ar x ../lib$(LIBNAME).a) && cp $(LIBEXTRAS) $$UNPACKDIR && \
+ (cd $$UNPACKDIR; ar x ../lib$(LIBNAME).a) && \
+ ([ -z "$(LIBEXTRAS)" ] || cp $(LIBEXTRAS) $$UNPACKDIR) && \
SHOBJECTS=$$UNPACKDIR/*.o; \
$(LINK_SO) && rm -rf $$UNPACKDIR
@@ -457,11 +464,11 @@ link_o.svr3:
else \
$(CALC_VERSIONS); \
SHARE_FLAG='-G'; \
- (${CC} -v 2>&1 | grep gcc) > /dev/null && SHARE_FLAGS='-shared'; \
+ (${CC} -v 2>&1 | grep gcc) > /dev/null && SHARE_FLAG='-shared'; \
SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=; \
LIBDEPS="$(LIBDEPS) -lc"; \
- ALLSYMSFLAGS='-z allextract'; \
+ ALLSYMSFLAGS=''; \
NOALLSYMSFLAGS=''; \
SHAREDFLAGS="$${SHARE_FLAG} -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"; \
SHAREDCMD='$(CC)'; \
@@ -473,11 +480,11 @@ link_a.svr3:
else \
$(CALC_VERSIONS); \
SHARE_FLAG='-G'; \
- (${CC} -v 2>&1 | grep gcc) > /dev/null && SHARE_FLAGS='-shared'; \
+ (${CC} -v 2>&1 | grep gcc) > /dev/null && SHARE_FLAG='-shared'; \
SHLIB=lib$(LIBNAME).so; \
SHLIB_SUFFIX=; \
LIBDEPS="$(LIBDEPS) -lc"; \
- ALLSYMSFLAGS='-z allextract'; \
+ ALLSYMSFLAGS=''; \
NOALLSYMSFLAGS=''; \
SHAREDFLAGS="$${SHARE_FLAG} -h $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"; \
SHAREDCMD='$(CC)'; \