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