configure: Detect and use gld/gnm/gar as alternatives to ld/nm/ar, especially for winegcc.

oldstable
Francois Gouget 2008-06-26 14:05:57 +02:00 committed by Alexandre Julliard
parent f023be8aa7
commit 86bd0461a5
5 changed files with 158 additions and 25 deletions

View File

@ -46,6 +46,7 @@ LN_S = @LN_S@
TOOLSDIR = @TOOLSDIR@
AS = @AS@
LD = @LD@
NM = @NM@
LDFLAGS = @LDFLAGS@
PRELINK = @PRELINK@
RM = rm -f

174
configure vendored
View File

@ -687,7 +687,11 @@ BISON
AS
ac_ct_AS
LD
ac_ct_LD
NM
ac_ct_NM
AR
ac_ct_AR
ARFLAGS
RANLIB
STRIP
@ -5437,8 +5441,10 @@ esac
fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args.
set dummy ${ac_tool_prefix}ld; ac_word=$2
for ac_prog in ld gld
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
if test "${ac_cv_prog_LD+set}" = set; then
@ -5454,7 +5460,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_LD="${ac_tool_prefix}ld"
ac_cv_prog_LD="$ac_tool_prefix$ac_prog"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@ -5474,11 +5480,15 @@ echo "${ECHO_T}no" >&6; }
fi
test -n "$LD" && break
done
fi
if test -z "$ac_cv_prog_LD"; then
if test -z "$LD"; then
ac_ct_LD=$LD
# Extract the first word of "ld", so it can be a program name with args.
set dummy ld; ac_word=$2
for ac_prog in ld gld
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
if test "${ac_cv_prog_ac_ct_LD+set}" = set; then
@ -5494,7 +5504,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_LD="ld"
ac_cv_prog_ac_ct_LD="$ac_prog"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@ -5513,6 +5523,10 @@ else
echo "${ECHO_T}no" >&6; }
fi
test -n "$ac_ct_LD" && break
done
if test "x$ac_ct_LD" = x; then
LD="ld"
else
@ -5528,13 +5542,117 @@ ac_tool_warned=yes ;;
esac
LD=$ac_ct_LD
fi
else
LD="$ac_cv_prog_LD"
fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
for ac_prog in nm gnm
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
if test "${ac_cv_prog_NM+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test -n "$NM"; then
ac_cv_prog_NM="$NM" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_NM="$ac_tool_prefix$ac_prog"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
NM=$ac_cv_prog_NM
if test -n "$NM"; then
{ echo "$as_me:$LINENO: result: $NM" >&5
echo "${ECHO_T}$NM" >&6; }
else
{ echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6; }
fi
test -n "$NM" && break
done
fi
if test -z "$NM"; then
ac_ct_NM=$NM
for ac_prog in nm gnm
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
if test "${ac_cv_prog_ac_ct_NM+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test -n "$ac_ct_NM"; then
ac_cv_prog_ac_ct_NM="$ac_ct_NM" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_NM="$ac_prog"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_NM=$ac_cv_prog_ac_ct_NM
if test -n "$ac_ct_NM"; then
{ echo "$as_me:$LINENO: result: $ac_ct_NM" >&5
echo "${ECHO_T}$ac_ct_NM" >&6; }
else
{ echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6; }
fi
test -n "$ac_ct_NM" && break
done
if test "x$ac_ct_NM" = x; then
NM="nm"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
whose name does not start with the host triplet. If you think this
configuration is useful to you, please write to autoconf@gnu.org." >&5
echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
whose name does not start with the host triplet. If you think this
configuration is useful to you, please write to autoconf@gnu.org." >&2;}
ac_tool_warned=yes ;;
esac
NM=$ac_ct_NM
fi
fi
if test -n "$ac_tool_prefix"; then
for ac_prog in ar gar
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
if test "${ac_cv_prog_AR+set}" = set; then
@ -5550,7 +5668,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_AR="${ac_tool_prefix}ar"
ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@ -5570,11 +5688,15 @@ echo "${ECHO_T}no" >&6; }
fi
test -n "$AR" && break
done
fi
if test -z "$ac_cv_prog_AR"; then
if test -z "$AR"; then
ac_ct_AR=$AR
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
for ac_prog in ar gar
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
@ -5590,7 +5712,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_AR="ar"
ac_cv_prog_ac_ct_AR="$ac_prog"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@ -5609,6 +5731,10 @@ else
echo "${ECHO_T}no" >&6; }
fi
test -n "$ac_ct_AR" && break
done
if test "x$ac_ct_AR" = x; then
AR="ar"
else
@ -5624,8 +5750,6 @@ ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
fi
else
AR="$ac_cv_prog_AR"
fi
ARFLAGS=rc
@ -23493,16 +23617,16 @@ BISON!$BISON$ac_delim
AS!$AS$ac_delim
ac_ct_AS!$ac_ct_AS$ac_delim
LD!$LD$ac_delim
ac_ct_LD!$ac_ct_LD$ac_delim
NM!$NM$ac_delim
ac_ct_NM!$ac_ct_NM$ac_delim
AR!$AR$ac_delim
ac_ct_AR!$ac_ct_AR$ac_delim
ARFLAGS!$ARFLAGS$ac_delim
RANLIB!$RANLIB$ac_delim
STRIP!$STRIP$ac_delim
WINDRES!$WINDRES$ac_delim
LN_S!$LN_S$ac_delim
LN!$LN$ac_delim
GREP!$GREP$ac_delim
EGREP!$EGREP$ac_delim
LDCONFIG!$LDCONFIG$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 82; then
@ -23564,6 +23688,10 @@ _ACEOF
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
cat >conf$$subs.sed <<_ACEOF
LN!$LN$ac_delim
GREP!$GREP$ac_delim
EGREP!$EGREP$ac_delim
LDCONFIG!$LDCONFIG$ac_delim
INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
INSTALL_DATA!$INSTALL_DATA$ac_delim
@ -23642,7 +23770,7 @@ LIBOBJS!$LIBOBJS$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 76; then
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 80; then
break
elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5

View File

@ -161,8 +161,9 @@ then
fi
AC_CHECK_TOOLS(AS,[gas as],as)
AC_CHECK_TOOL(LD,ld,ld)
AC_CHECK_TOOL(AR,ar,ar)
AC_CHECK_TOOLS(LD,[ld gld],ld)
AC_CHECK_TOOLS(NM,[nm gnm],nm)
AC_CHECK_TOOLS(AR,[ar gar],ar)
AC_SUBST(ARFLAGS,rc)
AC_PROG_RANLIB
AC_CHECK_TOOL(STRIP,strip,strip)

View File

@ -9,6 +9,7 @@ DEFS = \
-DCPP="\"@CPPBIN@\"" \
-DCXX="\"@CXX@\"" \
-DLD="\"$(LD)\"" \
-DNM="\"$(NM)\"" \
-DPRELINK="\"$(PRELINK)\""
TOPSRCDIR = @top_srcdir@

View File

@ -572,6 +572,8 @@ static void build(struct options* opts)
strarray_add(spec_args, AS);
strarray_add(spec_args, "--ld-cmd");
strarray_add(spec_args, LD);
strarray_add(spec_args, "--nm-cmd");
strarray_add(spec_args, NM);
strarray_addall(spec_args, strarray_fromstring(DLLFLAGS, " "));
strarray_add(spec_args, opts->shared ? "--dll" : "--exe");
strarray_add(spec_args, "-o");