Hi,
libtool uses '~' as IFS in some commands (ex. $archive_expsym_cmds),
so that win32 short name which includes '~' (ex. c:/progra~1/foo/...)
causes a problem. For example, if we want to build DLL which is linked
with -Lc:/progra~1/foo/lib -lbar, DLL build command fails.
I think it can be solved by putting off the command list variable
expansion until its execution loop.
In current libtool,
# expand command list variable
eval cmds=\"$archive_expsym_cmds\" # $deplibs is expanded here
....
# then, execute each command
save_ifs="$IFS"; IFS='~'
for cmd in $cmds; do
IFS="$save_ifs"
$show "$cmd"
$run eval "$cmd" || exit $?
done
IFS="$save_ifs"
If $deplibs includes -Lc:/progra~1/foo/lib, $cmd is sepalated at
-Lc:/progra, so that DLL build fails.
If command list variable expansion is put off until execution,
# set command list to $cmds
cmds=$archive_expsym_cmds
....
# execute each command
save_ifs="$IFS"; IFS='~'
for temp_cmd in $cmds; do
IFS="$save_ifs"
eval cmd=\"$temp_cmd\" # $deplibs is expanded here
$show "$cmd"
$run eval "$cmd" || exit $?
done
IFS="$save_ifs"
Command list is separated by IFS='~', then -Lc:/progra~1/foo/lib is
expanded into $cmd, and DLL build works well.
It enables libtool to treat win32 short name without changing IFS
character which is currently used.
What do you think of it?
Regards,
--Naofumi
_______________________________________________
Libtool mailing list
address@hidden
http://mail.gnu.org/mailman/listinfo/libtool