Fix install problems on MacOS X and HP-UX.
authorAndy Polyakov <appro@openssl.org>
Tue, 25 Oct 2005 22:03:36 +0000 (22:03 +0000)
committerAndy Polyakov <appro@openssl.org>
Tue, 25 Oct 2005 22:03:36 +0000 (22:03 +0000)
PR: 1218,1185

Makefile.org
Makefile.shared
engines/Makefile

index ec96428985eb4a0632db508d8a361e3258a693dc..a28b469eaaaf7bd0a81487f8597ce2ee7c5c497f 100644 (file)
@@ -255,7 +255,7 @@ clean-shared:
 
 link-shared:
        @ set -e; for i in ${SHLIBDIRS}; do \
-               $(MAKE) -f $(HERE)/Makefile.shared \
+               $(MAKE) -f $(HERE)/Makefile.shared -e $(BUILDENV) \
                        LIBNAME=$$i LIBVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} \
                        LIBCOMPATVERSIONS=";${SHLIB_VERSION_HISTORY}" \
                        symlink.$(SHLIB_TARGET); \
index 1b14dd145027a0463296510a6f5f816315def3cf..acee25cfeac67a6c1d0f11efea82bf3a7700e3e5 100644 (file)
@@ -196,10 +196,14 @@ link_app.bsd:
        fi; $(LINK_APP)
 
 # For Darwin AKA Mac OS/X (dyld)
+# link_o.darwin produces .so, because we let it use dso_dlfcn module,
+# which has .so extension hard-coded. One can argue that one should
+# develop special dso module for MacOS X. At least manual encourages
+# to use native NSModule(3) API and refers to dlfcn as termporary hack.
 link_o.darwin:
        @ $(CALC_VERSIONS); \
        SHLIB=lib$(LIBNAME); \
-       SHLIB_SUFFIX=.dylib; \
+       SHLIB_SUFFIX=.so; \
        ALLSYMSFLAGS='-all_load'; \
        NOALLSYMSFLAGS=''; \
        SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS)"; \
@@ -450,7 +454,7 @@ link_o.hpux:
        @if ${DETECT_GNU_LD}; then $(DO_GNU_SO); else \
        $(CALC_VERSIONS); \
        SHLIB=lib$(LIBNAME).sl; \
-       expr $(PLATFORM) : '.*ia64' > /dev/null && SHLIB=lib$(LIBNAME).so; \
+       expr "$(CFLAGS)" : 'DSO_DLFCN' > /dev/null && SHLIB=lib$(LIBNAME).so; \
        SHLIB_SUFFIX=; \
        ALLSYMSFLAGS='-Wl,-Fl'; \
        NOALLSYMSFLAGS=''; \
index b8fb1e9a0a386babd89299fa83e45192281f0aac..2052b5f528d82e75a6cae0475b4986ed8c0c5e7d 100644 (file)
@@ -84,6 +84,7 @@ links:
 # XXXXX This currently only works on systems that use .so as suffix
 # for shared libraries as well as for Cygwin which uses the
 # dlfcn_name_converter and therefore stores the engines with .so suffix, too.
+# XXXXX This was extended to HP-UX dl targets, which use .sl suffix.
 install:
        @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
        @if [ -n "$(SHARED_LIBS)" ]; then \
@@ -91,12 +92,18 @@ install:
                for l in $(LIBNAMES); do \
                        ( echo installing $$l; \
                          if [ "$(PLATFORM)" != "Cygwin" ]; then \
-                                 cp lib$$l.so $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/lib$$l.so.new; \
+                               case "$(CFLAGS)" in \
+                               *DSO_DLFCN*)    sfx="so";;      \
+                               *DSO_DL*)       sfx="sl";;      \
+                               *)              sfx="bad";;     \
+                               esac; \
+                               cp lib$$l.$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/lib$$l.$$sfx.new; \
                          else \
-                                 cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/lib$$l.so.new; \
+                               sfx="so"; \
+                               cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/lib$$l.$$sfx.new; \
                          fi; \
-                         chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/lib$$l.so.new; \
-                         mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/lib$$l.so.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/lib$$l.so ); \
+                         chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/lib$$l.$$sfx.new; \
+                         mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/lib$$l.$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines/lib$$l.$$sfx ); \
                done; \
        fi