Commit 755c5b33 authored by Andy Polyakov's avatar Andy Polyakov
Browse files

Fix install problems on MacOS X and HP-UX.

PR: 1218,1185
parent ce6aa1e4
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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); \
+6 −2
Original line number Diff line number Diff line
@@ -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=''; \
+11 −4
Original line number Diff line number Diff line
@@ -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