From 85ad7692fbe8c9de719846740ceb595b9b9e9736 Mon Sep 17 00:00:00 2001 From: Per Bothner Date: Sat, 12 Mar 2005 08:49:04 +0000 Subject: [PATCH] Allow special characters in source file names. Will break unless `-o target' is also given, which must not contain special characters. En passant, fix source file quoting broken for cygwin/MSVC. --- ChangeLog | 12 ++++++++++++ NEWS | 2 ++ config/ltmain.m4sh | 15 ++++++++++----- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index ab031d71..3927bb06 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2005-03-06 Per Bothner , + Ralf Wildenhues + + Allow special characters in source file names. Will break unless + `-o target' is also given, which must not contain special characters. + En passant, fix source file quoting broken for cygwin/MSVC. + + * ltmain.m4sh (func_mode_compile): Use new variable qsrcfile + for quoted source file name for compile $command. Fix missing + quotes for _c_o lockfile. + * NEWS: Update. + 2005-03-12 Ralf Wildenhues * config/ltmain.m4sh (func_mode_link): Reword double negation in diff --git a/NEWS b/NEWS index ce9a8f71..e2fdca8c 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,8 @@ New in 2.1b: 2005-??-??; CVS version 2.1a, Libtool team: * Shell optimizations which break use of the stdin file descriptor in libtool. * `libtoolize --install' now also installs `install-sh'. * Support (mostly) for DragonFly BSD. +* Allow shell special characters like `$' in source file names, but not + in object names, to enhance GCJ support. New in 1.9h: 2004-??-??; CVS version 1.9g, Libtool team: * Libtool versions can now be parallel installed, except that only one diff --git a/config/ltmain.m4sh b/config/ltmain.m4sh index 8aa6e7c5..21a82b22 100644 --- a/config/ltmain.m4sh +++ b/config/ltmain.m4sh @@ -1249,6 +1249,9 @@ func_mode_compile () esac done + func_quote_for_eval "$libobj" + test "X$libobj" != "X$func_quote_for_eval_result" \ + && func_fatal_error "libobj name \`$libobj' may not contain shell special characters." func_basename "$obj" objname="$func_basename_result" func_dirname "$obj" "/" "" @@ -1315,12 +1318,14 @@ compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi - $ECHO $srcfile > "$lockfile" + $ECHO "$srcfile" > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result $opt_dry_run || $RM "$libobj" "${libobj}T" @@ -1342,10 +1347,10 @@ EOF fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then - command="$base_compile $srcfile $pic_flag" + command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code - command="$base_compile $srcfile" + command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" @@ -1409,9 +1414,9 @@ EOF if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code - command="$base_compile $srcfile" + command="$base_compile $qsrcfile" else - command="$base_compile $srcfile $pic_flag" + command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then command="$command -o $obj"