On Thursday 12 February 2015 17:49:55 Margaret Lewicka wrote:
* Replace LD_LIBRARY_PATH with DYLD_LIBRARY_PATH for Darwin
* Remove the -lcrypt flag for Darwin (unsupported)
---
configure.ac | 13 +++++++++++++
run.in | 10 +++++-----
v2v/link.sh.in | 2 +-
3 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/configure.ac b/configure.ac
index d68190a..295de11 100644
--- a/configure.ac
+++ b/configure.ac
@@ -582,6 +582,19 @@ fi
AC_MSG_RESULT([$DISTRO])
AC_SUBST([DISTRO])
+AC_MSG_CHECKING([whether we're building on Mac OS X])
+if test "x$(uname)" = "xDarwin"; then
+ AC_MSG_RESULT([yes])
+ LCRYPT_FLAG=
+ SHARED_LIBS_PATH="DYLD_LIBRARY_PATH"
+else
+ AC_MSG_RESULT([no])
+ LCRYPT_FLAG="-lcrypt"
+ SHARED_LIBS_PATH="LD_LIBRARY_PATH"
+fi
+AC_SUBST([LCRYPT_FLAG])
+AC_SUBST([SHARED_LIBS_PATH])
We link to libcrypt because it provides crypt(), at least on GNU libc
and on the FreeBSD libc; it seems not the case on Mac OS X, looking
at your patch.
I'd say that this should turn into a proper configure check, trying to
use crypt() without extra libraries and if not possible with libcrypt.
Also (minor style detail) I'd call the variable name e.g. LIBCRYPT.
dnl Add extra packages to the appliance.
AC_ARG_WITH([extra-packages],
[AS_HELP_STRING([--with-extra-packages="pkg1 pkg2 ..."],
diff --git a/run.in b/run.in
index a8c2904..4612e0e 100755
--- a/run.in
+++ b/run.in
@@ -77,13 +77,13 @@ fi
PATH="$b/align:$b/builder:$b/cat:$b/customize:$b/df:$b/diff:$b/edit:$b/erlang:$b/fish:$b/format:$b/fuse:$b/inspector:$b/make-fs:$b/p2v:$b/rescue:$b/resize:$b/sparsify:$b/sysprep:$b/test-tool:$b/tools:$b/v2v:$PATH"
export PATH
-# Set LD_LIBRARY_PATH to contain library.
-if [ -z "$LD_LIBRARY_PATH" ]; then
- LD_LIBRARY_PATH="$b/src/.libs:$b/java/.libs:$b/gobject/.libs"
+# Set @SHARED_LIBS_PATH@ to contain library.
+if [ -z "$@SHARED_LIBS_PATH@" ]; then
+ @SHARED_LIBS_PATH@="$b/src/.libs:$b/java/.libs:$b/gobject/.libs"
else
-
LD_LIBRARY_PATH="$b/src/.libs:$b/java/.libs:$b/gobject/.libs:$LD_LIBRARY_PATH"
+
@SHARED_LIBS_PATH@="$b/src/.libs:$b/java/.libs:$b/gobject/.libs:$@SHARED_LIBS_PATH@"
fi
-export LD_LIBRARY_PATH
+export @SHARED_LIBS_PATH@
Is setting LD_LIBRARY_PATH somehow harmful/problematic on Mac OS X?
If not, I'd say to use a variable for the library paths we want to add,
then adding them to both LD_LIBRARY_PATH and DYLD_LIBRARY_PATH;
something like
libdirs="$b/src/.libs:...etc"
# Set LD_LIBRARY_PATH to contain library.
if [ -z "$LD_LIBRARY_PATH" ]; then
LD_LIBRARY_PATH="$libdirs"
else
LD_LIBRARY_PATH="$libdirs:$LD_LIBRARY_PATH"
fi
export LD_LIBRARY_PATH
# ditto for DYLD_LIBRARY_PATH
Thanks,
--
Pino Toscano