diff -Naur librep-0.14.old/configure librep-0.14.new/configure --- librep-0.14.old/configure Tue Jul 3 04:04:22 2001 +++ librep-0.14.new/configure Wed Jun 12 05:24:21 2002 @@ -3450,11 +3450,11 @@ ;; darwin* | rhapsody*) - allow_undefined_flag='-undefined suppress' + allow_undefined_flag='-flat_namespace -undefined suppress' # FIXME: Relying on posixy $() will cause problems for # cross-compilation, but unfortunately the echo tests do not # yet detect zsh echo's removal of \ escapes. - archive_cmds='$CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib $libobjs $deplibs$linkopts -install_name $rpath/$soname $(test -n "$verstring" -a x$verstring != x0.0 && echo $verstring)' + archive_cmds='$CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib $libobjs $deplibs$linkopts $(test .$module != .yes && echo -install_name $rpath/$soname $tmp_verstring)' # We need to add '_' to the symbols in $export_symbols first #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols' hardcode_direct=yes @@ -6194,7 +6194,7 @@ if test "$doug_lea_malloc" = "no"; then case ${host} in - *-dec-osf*) + *-dec-osf* | *-darwin*) cat >> confdefs.h <<\EOF #define LIBC_MALLOC 1 EOF diff -Naur librep-0.14.old/ltmain.sh librep-0.14.new/ltmain.sh --- librep-0.14.old/ltmain.sh Tue Jul 3 04:04:21 2001 +++ librep-0.14.new/ltmain.sh Wed Jun 5 01:29:37 2002 @@ -2858,6 +2858,11 @@ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval cmds=\"$archive_expsym_cmds\" else + if test "x$verstring" = "x0.0"; then + tmp_verstring= + else + tmp_verstring="$verstring" + fi eval cmds=\"$archive_cmds\" fi IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' diff -Naur librep-0.14.old/src/unix_files.c librep-0.14.new/src/unix_files.c --- librep-0.14.old/src/unix_files.c Sat Oct 28 12:47:44 2000 +++ librep-0.14.new/src/unix_files.c Wed Jun 5 01:29:00 2002 @@ -298,10 +298,23 @@ repv rep_make_directory(repv dir) { - if(mkdir(rep_STR(dir), S_IRWXU | S_IRWXG | S_IRWXO) == 0) - return Qt; + const char *param = rep_STR(dir); + const char *copy = NULL; + repv result; + + if (param[0] != 0 && strchr(param,0)[-1] == '/') { + copy = strdup(param); + strchr(copy,0)[-1] = 0; + } + + if(mkdir(copy ? copy : param, S_IRWXU | S_IRWXG | S_IRWXO) == 0) + result = Qt; else - return rep_signal_file_error(dir); + result = rep_signal_file_error(dir); + + if (copy != NULL) + free(copy); + return result; } repv