[90028] branches/release_2_0/base

jberry at macports.org jberry at macports.org
Sun Feb 19 16:14:17 PST 2012


Revision: 90028
          http://trac.macports.org/changeset/90028
Author:   jberry at macports.org
Date:     2012-02-19 16:14:16 -0800 (Sun, 19 Feb 2012)
Log Message:
-----------
Merge from trunk: r88540,r88541,r88546,r88777,r88779,r88787,r89359,r89984

Use xcrun -find to find xcode compiler if it's not found in /usr/bin.

Revision Links:
--------------
    http://trac.macports.org/changeset/88540
    http://trac.macports.org/changeset/88541
    http://trac.macports.org/changeset/88546
    http://trac.macports.org/changeset/88777
    http://trac.macports.org/changeset/88779
    http://trac.macports.org/changeset/88787
    http://trac.macports.org/changeset/89359
    http://trac.macports.org/changeset/89984

Modified Paths:
--------------
    branches/release_2_0/base/configure
    branches/release_2_0/base/configure.ac
    branches/release_2_0/base/src/port1.0/port_autoconf.tcl.in
    branches/release_2_0/base/src/port1.0/portconfigure.tcl

Property Changed:
----------------
    branches/release_2_0/base/


Property changes on: branches/release_2_0/base
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/gsoc08-privileges/base:37343-46937
/branches/gsoc09-logging/base:51231-60371
/branches/universal-sanity/base:51872-52323
/branches/variant-descs-14482/base:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659
/trunk/base:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79771-79774,79782,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80245,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81005,81119,81146,81171,81234,81269,81361,81371,81414-81415,81454,81464,81467,81475,81522,81556-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82135,82767,82921,82924,82947,83136,83149,83267,83270-83271,83391,83395,83443,83471,83537,84351,88045,88179,88185,89988,89993-89994,90000,90002,90004,90010,90020
/users/perry/base-bugs_and_notes:45682-46060
/users/perry/base-select:44044-44692
   + /branches/gsoc08-privileges/base:37343-46937
/branches/gsoc09-logging/base:51231-60371
/branches/universal-sanity/base:51872-52323
/branches/variant-descs-14482/base:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659
/trunk/base:79584,79586,79590-79594,79599-79600,79649,79686,79689,79692,79750,79762,79771-79774,79782,79787,79864,79943,80069,80088,80178,80220,80222,80224,80226,80229,80245,80287,80335,80443,80581,80583,80586,80779,80797-80798,80894,80928,80932,80934,80969,80971,81005,81119,81146,81171,81234,81269,81361,81371,81414-81415,81454,81464,81467,81475,81522,81556-81558,81562,81565,81567,81577,81630,81657,81830-81832,82111,82135,82767,82921,82924,82947,83136,83149,83267,83270-83271,83391,83395,83443,83471,83537,84351,88045,88179,88185,88540-88541,88546,88777,88779,88787,89359,89984,89988,89993-89994,90000,90002,90004,90010,90020
/users/perry/base-bugs_and_notes:45682-46060
/users/perry/base-select:44044-44692

Modified: branches/release_2_0/base/configure
===================================================================
--- branches/release_2_0/base/configure	2012-02-19 23:52:28 UTC (rev 90027)
+++ branches/release_2_0/base/configure	2012-02-20 00:14:16 UTC (rev 90028)
@@ -689,6 +689,7 @@
 GNUPATCH
 GNUMAKE
 GNUTAR
+XCRUN
 XCODEBUILD
 LAUNCHCTL
 HAVE_LAUNCHD
@@ -5325,6 +5326,46 @@
 fi
 
 
+# Extract the first word of "xcrun", so it can be a program name with args.
+set dummy xcrun; 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_path_XCRUN+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $XCRUN in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_XCRUN="$XCRUN" # Let the user override the test with a path.
+  ;;
+  *)
+  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_path_XCRUN="$as_dir/$ac_word$ac_exec_ext"
+    $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
+
+  ;;
+esac
+fi
+XCRUN=$ac_cv_path_XCRUN
+if test -n "$XCRUN"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XCRUN" >&5
+$as_echo "$XCRUN" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
 for ac_prog in gnutar gtar
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.

Modified: branches/release_2_0/base/configure.ac
===================================================================
--- branches/release_2_0/base/configure.ac	2012-02-19 23:52:28 UTC (rev 90027)
+++ branches/release_2_0/base/configure.ac	2012-02-20 00:14:16 UTC (rev 90028)
@@ -115,6 +115,7 @@
 AC_CHECK_PROG(HAVE_LAUNCHD, [launchd], [yes], [])
 AC_PATH_PROG(LAUNCHCTL, [launchctl], [])
 AC_PATH_PROG(XCODEBUILD, [xcodebuild], [])
+AC_PATH_PROG(XCRUN, [xcrun], [])
 AC_PATH_PROGS(GNUTAR, [gnutar gtar], [], [$PATH:/usr/local/bin])
 AC_PATH_PROGS(GNUMAKE, [gnumake gmake], [], [$PATH:/usr/local/bin])
 AC_PATH_PROGS(GNUPATCH, [gnupatch gpatch], [], [$PATH:/usr/local/bin])

Modified: branches/release_2_0/base/src/port1.0/port_autoconf.tcl.in
===================================================================
--- branches/release_2_0/base/src/port1.0/port_autoconf.tcl.in	2012-02-19 23:52:28 UTC (rev 90027)
+++ branches/release_2_0/base/src/port1.0/port_autoconf.tcl.in	2012-02-20 00:14:16 UTC (rev 90028)
@@ -62,6 +62,9 @@
 	variable mtree_path "@MTREE@"
 	variable pax_path "@PAX@"
 	variable xar_path "@XAR@"
+	variable xcode_select_path "@XCODE_SELECT@"
+	variable xcodebuild_path "@XCODEBUILD@"
+	variable xcrun_path "@XCRUN@"
 	variable sed_command "@SED@"
 	variable sed_ext_flag "@SED_EXT@"
 	variable tar_command "@TAR_CMD@"

Modified: branches/release_2_0/base/src/port1.0/portconfigure.tcl
===================================================================
--- branches/release_2_0/base/src/port1.0/portconfigure.tcl	2012-02-19 23:52:28 UTC (rev 90027)
+++ branches/release_2_0/base/src/port1.0/portconfigure.tcl	2012-02-20 00:14:16 UTC (rev 90028)
@@ -372,6 +372,29 @@
     }
 }
 
+# Find a developer tool
+proc portconfigure::find_developer_tool {name} {
+	global developer_dir
+
+    # first try /usr/bin since this doesn't move around
+    set toolpath "/usr/bin/${name}"
+    if {[file executable $toolpath]} {
+        return $toolpath
+    }
+
+	# Use xcode's xcrun to find the named tool.
+	if {![catch {exec [findBinary xcrun $portutil::autoconf::xcrun_path] -find ${name}} toolpath]} {
+		return ${toolpath}
+	}
+
+	# If xcrun failed to find the tool, return a path from
+	# the developer_dir.
+	# The tool may not be there, but we'll leave it up to
+	# the invoking code to figure out that it doesn't have
+	# a valid compiler
+	return "${developer_dir}/usr/bin/${name}"
+}
+
 # internal function to find correct compilers
 proc portconfigure::configure_get_compiler {type} {
     global configure.compiler prefix developer_dir
@@ -379,42 +402,42 @@
     switch -exact ${configure.compiler} {
         cc {
             switch -exact ${type} {
-                cc   { set ret /usr/bin/cc }
-                objc { set ret /usr/bin/cc }
-                cxx  { set ret /usr/bin/c++ }
-                cpp  { set ret /usr/bin/cpp }
+                cc   { set ret [find_developer_tool cc] }
+                objc { set ret [find_developer_tool cc] }
+                cxx  { set ret [find_developer_tool c++] }
+                cpp  { set ret [find_developer_tool cpp] }
             }
         }
         gcc {
             switch -exact ${type} {
-                cc   { set ret /usr/bin/gcc }
-                objc { set ret /usr/bin/gcc }
-                cxx  { set ret /usr/bin/g++ }
-                cpp  { set ret /usr/bin/cpp }
+                cc   { set ret [find_developer_tool gcc] }
+                objc { set ret [find_developer_tool gcc] }
+                cxx  { set ret [find_developer_tool g++] }
+                cpp  { set ret [find_developer_tool cpp] }
             }
         }
         gcc-3.3 {
             switch -exact ${type} {
-                cc   { set ret /usr/bin/gcc-3.3 }
-                objc { set ret /usr/bin/gcc-3.3 }
-                cxx  { set ret /usr/bin/g++-3.3 }
-                cpp  { set ret /usr/bin/cpp-3.3 }
+                cc   { set ret [find_developer_tool gcc-3.3] }
+                objc { set ret [find_developer_tool gcc-3.3] }
+                cxx  { set ret [find_developer_tool g++-3.3] }
+                cpp  { set ret [find_developer_tool cpp-3.3] }
             }
         }
         gcc-4.0 {
             switch -exact ${type} {
-                cc   { set ret /usr/bin/gcc-4.0 }
-                objc { set ret /usr/bin/gcc-4.0 }
-                cxx  { set ret /usr/bin/g++-4.0 }
-                cpp  { set ret /usr/bin/cpp-4.0 }
+                cc   { set ret [find_developer_tool gcc-4.0] }
+                objc { set ret [find_developer_tool gcc-4.0] }
+                cxx  { set ret [find_developer_tool g++-4.0] }
+                cpp  { set ret [find_developer_tool cpp-4.0] }
             }
         }
         gcc-4.2 {
             switch -exact ${type} {
-                cc   { set ret /usr/bin/gcc-4.2 }
-                objc { set ret /usr/bin/gcc-4.2 }
-                cxx  { set ret /usr/bin/g++-4.2 }
-                cpp  { set ret /usr/bin/cpp-4.2 }
+                cc   { set ret [find_developer_tool gcc-4.2] }
+                objc { set ret [find_developer_tool gcc-4.2] }
+                cxx  { set ret [find_developer_tool g++-4.2] }
+                cpp  { set ret [find_developer_tool cpp-4.2] }
             }
         }
         llvm-gcc-4.2 {
@@ -424,21 +447,22 @@
                 set llvm_prefix ${developer_dir}
             }
             switch -exact ${type} {
-                cc   { set ret ${llvm_prefix}/usr/bin/llvm-gcc-4.2 }
-                objc { set ret ${llvm_prefix}/usr/bin/llvm-gcc-4.2 }
-                cxx  { set ret ${llvm_prefix}/usr/bin/llvm-g++-4.2 }
-                cpp  { set ret ${llvm_prefix}/usr/bin/llvm-cpp-4.2 }
+                cc   { set ret [find_developer_tool llvm-gcc-4.2] }
+                objc { set ret [find_developer_tool llvm-gcc-4.2] }
+                cxx  { set ret [find_developer_tool llvm-g++-4.2] }
+                cpp  { set ret [find_developer_tool llvm-cpp-4.2] }
             }
         }
         clang {
             switch -exact ${type} {
-                cc   { set ret /usr/bin/clang }
-                objc { set ret /usr/bin/clang }
+                cc   { set ret [find_developer_tool clang] }
+                objc { set ret [find_developer_tool clang] }
                 cxx  {
-                    if {[file executable /usr/bin/clang++]} {
-                        set ret /usr/bin/clang++
+					set clangpp [find_developer_tool clang++]
+                    if {[file executable ${clangpp}]} {
+                        set ret ${clangpp}
                     } else {
-                        set ret /usr/bin/llvm-g++-4.2
+                        set ret [find_developer_tool llvm-g++-4.2]
                     }
                 }
             }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20120219/f40e7c19/attachment.html>


More information about the macports-changes mailing list