Commit 96f3b56c authored by Richard Levitte's avatar Richard Levitte
Browse files

A few corrections with the shared library support:

1. make sure libssl.so becomes dependent on libcrypto.so
2. correct a number of silly bugs in the solaris-shared target, and make
   sure lib*.so also depends on libc.so.
parent ee087bb8
Loading
Loading
Loading
Loading
+10 −13
Original line number Diff line number Diff line
@@ -241,7 +241,7 @@ libcrypto.so: libcrypto.a
	fi
libssl.so: libcrypto.so libssl.a
	@if [ "$(SHLIB_TARGET)" != "" ]; then \
		$(MAKE) SHLIBDIRS=ssl $(SHLIB_TARGET); \
		$(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-L. -lcrypto' $(SHLIB_TARGET); \
	else \
		echo "There's no support for shared libraries on this platform" >&2; \
	fi
@@ -254,47 +254,44 @@ clean-shared:
	done

linux-shared:
	libs=; for i in ${SHLIBDIRS}; do \
	libs='${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
	rm -f lib$$i.so \
		lib$$i.so.${SHLIB_MAJOR} \
		lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
	( set -x; ${CC}  -shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
		-Wl,-S,-soname=lib$$i.so.${SHLIB_MAJOR} \
		-Wl,--whole-archive lib$$i.a \
		-Wl,--no-whole-archive -lc $$libs ) || exit 1; \
		-Wl,--no-whole-archive $$libs -lc ) || exit 1; \
	libs="$$libs -L. -l$$i"; \
	( set -x; \
		ln -s lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
			lib$$i.so.${SHLIB_MAJOR}; \
		ln -s lib$$i.so.${SHLIB_MAJOR} lib$$i.so ); \
	done;
	done

# This assumes that GNU utilities are *not* used
true64-shared:
	libs=; for i in ${SHLIBDIRS}; do \
	libs='${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
	( set -x; ${CC}  -shared -no_archive -o lib$$i.so \
		-set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \
		-all lib$$i.a -none -lc $$libs ) || exit 1; \
		-all lib$$i.a -none $$libs -lc ) || exit 1; \
	libs="$$libs -L. -l$$i"; \
	done;
	done

# This assumes that GNU utilities are *not* used
solaris-shared:
	libs=; for i in ${SHLIBDIRS}; do \
	libs='${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
	rm -f lib$$i.so \
		lib$$i.so.${SHLIB_MAJOR} \
		lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
	( set -x; ${CC}  -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
		-h lib$$i.so.${SHLIB_MAJOR} \
		-z allextract lib$$i.a $$libs ) || exit 1; \
		-z allextract lib$$i.a $$libs -lc ) || exit 1; \
	libs="$$libs -L. -l$$i"; \
	ln -s lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
		lib$$i.so.${SHLIB_MAJOR}; \
	ln -s lib$$i.so.${SHLIB_MAJOR} lib$$i.so; \
	done; \
	@set -x; \
	for i in ${SHLIBDIRS}; do \
	done;
	done

Makefile.ssl: Makefile.org
	@echo "Makefile.ssl is older than Makefile.org."