Gerald Pfeifer : makefiles: Support building with non-default LD.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Jan 22 15:20:46 CST 2015


Module: wine
Branch: master
Commit: 189ffc2e7313e901822caa7f76d1fe3961e922e0
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=189ffc2e7313e901822caa7f76d1fe3961e922e0

Author: Gerald Pfeifer <gerald at pfeifer.com>
Date:   Wed Jan 14 10:52:48 2015 +0100

makefiles: Support building with non-default LD.

---

 Make.vars.in              |  1 +
 configure                 | 93 +++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac              |  1 +
 tools/winegcc/Makefile.in |  1 +
 tools/winegcc/winegcc.c   |  2 +
 5 files changed, 98 insertions(+)

diff --git a/Make.vars.in b/Make.vars.in
index ee8ee39..e825f4b 100644
--- a/Make.vars.in
+++ b/Make.vars.in
@@ -40,6 +40,7 @@ RANLIB          = @RANLIB@
 STRIP           = @STRIP@
 LN_S            = @LN_S@
 TOOLSDIR        = @TOOLSDIR@
+LD              = @LD@
 LDFLAGS         = @LDFLAGS@
 DLLFLAGS        = @DLLFLAGS@
 PRELINK         = @PRELINK@
diff --git a/configure b/configure
index 817ddd7..c0aa93e 100755
--- a/configure
+++ b/configure
@@ -732,6 +732,7 @@ BISON
 FLEX
 TOOLSDIR
 TARGETFLAGS
+LD
 CPPBIN
 ac_ct_CXX
 CXXFLAGS
@@ -4737,6 +4738,98 @@ cat >>confdefs.h <<_ACEOF
 #define EXEEXT "$ac_exeext"
 _ACEOF
 
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$LD"; then
+  ac_cv_prog_LD="$LD" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_LD="${ac_tool_prefix}ld"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+LD=$ac_cv_prog_LD
+if test -n "$LD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_LD"; then
+  ac_cv_prog_ac_ct_LD="$ac_ct_LD" # 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_LD="ld"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LD=$ac_cv_prog_ac_ct_LD
+if test -n "$ac_ct_LD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LD" >&5
+$as_echo "$ac_ct_LD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_LD" = x; then
+    LD=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    LD=$ac_ct_LD
+  fi
+else
+  LD="$ac_cv_prog_LD"
+fi
+
 
 case $host in
   *-darwin*)
diff --git a/configure.ac b/configure.ac
index df3c37b..ab8945a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -122,6 +122,7 @@ AC_PROG_CXX
 dnl We can't use AC_PROG_CPP for winegcc, it uses by default $(CC) -E
 AC_CHECK_TOOL(CPPBIN,cpp,cpp)
 AC_DEFINE_UNQUOTED(EXEEXT,["$ac_exeext"],[Define to the file extension for executables.])
+AC_CHECK_TOOL(LD,ld)
 
 case $host in
   *-darwin*)
diff --git a/tools/winegcc/Makefile.in b/tools/winegcc/Makefile.in
index 3975ca5..370a2e4 100644
--- a/tools/winegcc/Makefile.in
+++ b/tools/winegcc/Makefile.in
@@ -16,6 +16,7 @@ winegcc_EXTRADEFS = \
 	-DCC="\"$(CC)\"" \
 	-DCPP="\"$(CPPBIN)\"" \
 	-DCXX="\"$(CXX)\"" \
+	-DLD="\"$(LD)\"" \
 	-DPRELINK="\"$(PRELINK)\""
 
 winegcc$(EXEEXT): winegcc.o utils.o
diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c
index a2f09d2..3b2794e 100644
--- a/tools/winegcc/winegcc.c
+++ b/tools/winegcc/winegcc.c
@@ -1034,6 +1034,8 @@ static void build(struct options* opts)
     /* run winebuild to generate the .spec.o file */
     spec_args = get_winebuild_args( opts );
     strarray_add( spec_args, strmake( "--cc-cmd=%s", build_tool_name( opts, "gcc", CC )));
+    strarray_add( spec_args, strmake( "--ld-cmd=%s", build_tool_name( opts, "ld", LD )));
+
     spec_o_name = get_temp_file(output_name, ".spec.o");
     if (opts->force_pointer_size)
         strarray_add(spec_args, strmake("-m%u", 8 * opts->force_pointer_size ));




More information about the wine-cvs mailing list