VirtualBox

Changeset 84900 in vbox for trunk


Ignore:
Timestamp:
Jun 22, 2020 1:37:26 PM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
138769
Message:

configure: For Darwin: Modernize OS version, Xcode, SDK and Qt detection. Fix different linker options (-L is -F on Darwin).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/configure

    r84667 r84900  
    239239strip_L()
    240240{
    241   echo "$1"|$KBUILD_SED 's|-L\([^ ]\+\)|\1|g; s|^-[^L][^ ]*||g; s| -[^L][^ ]*||g; s|^ ||; s| *$||g'
     241  if [ "$OS" = "darwin" ]; then
     242    echo "$1"|$KBUILD_SED 's|-F\([^ ]\+\)|\1|g; s|^-[^F][^ ]*||g; s| -[^F][^ ]*||g; s|^ ||; s| *$||g'
     243  else
     244    echo "$1"|$KBUILD_SED 's|-L\([^ ]\+\)|\1|g; s|^-[^L][^ ]*||g; s| -[^L][^ ]*||g; s|^ ||; s| *$||g'
     245  fi
    242246}
    243247
    244248L_to_PATH()
    245249{
    246   echo "$1"|$KBUILD_SED 's|-L\([^ ]\+\)|\1|g; s|^-[^L][^ ]*||g; s| -[^L][^ ]*||g; s|^ ||; s| *$||g; s| |:|g'
     250echo $1 >> $LOG
     251  if [ "$OS" = "darwin" ]; then
     252    echo "$1"|$KBUILD_SED 's|-F\([^ ]\+\)|\1|g; s|^-[^F][^ ]*||g; s| -[^F][^ ]*||g; s|^ ||; s| *$||g; s| |:|g'
     253  else
     254    echo "$1"|$KBUILD_SED 's|-L\([^ ]\+\)|\1|g; s|^-[^L][^ ]*||g; s| -[^L][^ ]*||g; s|^ ||; s| *$||g; s| |:|g'
     255  fi
    247256}
    248257
     
    291300  cat $ODIR.tmp_src.cc >> $LOG
    292301  echo "using the following command line:" >> $LOG
    293   echo "$CXX $CXX_FLAGS -fPIC -g -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc \"$1\"" >> $LOG
     302  echo "$CXX $CXX_FLAGS -fPIC -g -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc $1" >> $LOG
    294303  $CXX $CXX_FLAGS -fPIC -g -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc $1 >> $LOG 2>&1
    295304  if [ $? -ne 0 ]; then
     
    15051514    QT_TRIES="$QT5DIR /System/Library /Library"
    15061515    for t in $QT_TRIES; do
    1507       if [ -f "$t/Frameworks/QtCore.framework/QtCore" ]; then
     1516      if [ -f "$t/Frameworks/QtCore.framework/QtCore" -o -f "$t/clang_64/lib/QtCore.framework/QtCore" ]; then
    15081517        PATH_SDK_QT5="$t"
     1518        foundqt5=1
    15091519        break
    15101520      fi
     
    15121522    # Add the necessary params for building the test application
    15131523    if [ -n "$PATH_SDK_QT5" ]; then
    1514       foundqt5=1
    1515       INCQT5=-I$PATH_SDK_QT5/Frameworks/QtCore.framework/Headers
    1516       LIBQT5=-F$PATH_SDK_QT5/Frameworks
    1517       FLGQT5="-framework QtCore"
     1524      if [ -f "$t/clang_64/lib/QtCore.framework/QtCore" ]; then
     1525        INCQT5=-I$PATH_SDK_QT5/clang_64/lib/QtCore.framework/Headers
     1526        LIBQT5=-F$PATH_SDK_QT5/clang_64/lib
     1527        SDKQT5=$PATH_SDK_QT5/clang_64
     1528      else
     1529        INCQT5=-I$PATH_SDK_QT5/Frameworks/QtCore.framework/Headers
     1530        LIBQT5=-F$PATH_SDK_QT5/Frameworks
     1531        SDKQT5=$PATH_SDK_QT5
     1532      fi
     1533      FLGQT5="-framework QtCore -std=c++11 -Wl,-rpath,`L_to_PATH "$LIBQT5"`"
    15181534    else
    15191535      log_failure "Qt5 framework not found (can be disabled using --disable-qt)"
     
    15951611          # Successful build & run the test application so add the necessary
    15961612          # params to AutoConfig.kmk:
    1597           cnf_append "PATH_SDK_QT5_INC" "$PATH_SDK_QT5/Frameworks"
    1598           cnf_append "PATH_SDK_QT5_LIB" "$PATH_SDK_QT5/Frameworks"
    1599           cnf_append "PATH_SDK_QT5" "$PATH_SDK_QT5/Frameworks"
     1613          cnf_append "PATH_SDK_QT5_INC" "`L_to_PATH "$LIBQT5"`"
     1614          cnf_append "PATH_SDK_QT5_LIB" "`L_to_PATH "$LIBQT5"`"
     1615          cnf_append "PATH_SDK_QT5" "$SDKQT5"
    16001616          # Check for the moc tool in the Qt directory found & some standard
    16011617          # directories.
    1602           for q in $PATH_SDK_QT5 /usr /Developer/Tools/Qt; do
     1618          for q in $PATH_SDK_QT5 $PATH_SDK_QT5/clang_64 /usr /Developer/Tools/Qt; do
    16031619            if which_wrapper "$q/bin/moc" > /dev/null; then
    16041620              cnf_append "PATH_TOOL_QT5_BIN" "$q/bin"
     
    21792195    fi
    21802196
    2181     # Check if specified path exists and is a directory.
    2182     if [ -d "$1" ]; then
     2197    # Check if specified path exists and is a directory containing Xcode.
     2198    if [ -d "$1" -a -f "$1/Contents/Developer/usr/bin/xcodebuild" ]; then
    21832199        return 1
    21842200    else
     
    21972213  darwin_ver=`uname -r`
    21982214  case "$darwin_ver" in
     2215    19\.*)
     2216      darwin_ver="10.15" # Catalina
     2217      ;;
     2218    18\.*)
     2219      darwin_ver="10.14" # Mojave
     2220      ;;
    21992221    17\.*)
    2200       check_xcode_sdk_path "$WITH_XCODE_DIR"
    2201       [ $? -eq 1 ] || fail
    22022222      darwin_ver="10.13" # High Sierra
    2203       sdk=$WITH_XCODE_DIR/Developer/SDKs/MacOSX10.6.sdk
    2204       cnf_append "VBOX_WITH_MACOSX_COMPILERS_FROM_DEVEL" "1"
    2205       cnf_append "VBOX_PATH_MACOSX_DEVEL_ROOT" "$WITH_XCODE_DIR/Developer"
    22062223      ;;
    22072224    16\.*)
    2208       check_xcode_sdk_path "$WITH_XCODE_DIR"
    2209       [ $? -eq 1 ] || fail
    22102225      darwin_ver="10.12" # Sierra
    2211       sdk=$WITH_XCODE_DIR/Developer/SDKs/MacOSX10.6.sdk
    2212       cnf_append "VBOX_WITH_MACOSX_COMPILERS_FROM_DEVEL" "1"
    2213       cnf_append "VBOX_PATH_MACOSX_DEVEL_ROOT" "$WITH_XCODE_DIR/Developer"
    22142226      ;;
    22152227    15\.*)
    2216       check_xcode_sdk_path "$WITH_XCODE_DIR"
    2217       [ $? -eq 1 ] || fail
    22182228      darwin_ver="10.11" # El Capitan
    2219       sdk=$WITH_XCODE_DIR/Developer/SDKs/MacOSX10.6.sdk
    2220       cnf_append "VBOX_WITH_MACOSX_COMPILERS_FROM_DEVEL" "1"
    2221       cnf_append "VBOX_PATH_MACOSX_DEVEL_ROOT" "$WITH_XCODE_DIR/Developer"
    22222229      ;;
    22232230    14\.*)
    2224       check_xcode_sdk_path "$WITH_XCODE_DIR"
    2225       [ $? -eq 1 ] || fail
    22262231      darwin_ver="10.10" # Yosemite
    2227       sdk=$WITH_XCODE_DIR/Developer/SDKs/MacOSX10.6.sdk
    2228       cnf_append "VBOX_WITH_MACOSX_COMPILERS_FROM_DEVEL" "1"
    2229       cnf_append "VBOX_PATH_MACOSX_DEVEL_ROOT" "$WITH_XCODE_DIR/Developer"
    22302232      ;;
    22312233    13\.*)
    2232       check_xcode_sdk_path "$WITH_XCODE_DIR"
    2233       [ $? -eq 1 ] || fail
    22342234      darwin_ver="10.9" # Mavericks
    2235       sdk=$WITH_XCODE_DIR/Developer/SDKs/MacOSX10.6.sdk
    2236       cnf_append "VBOX_WITH_MACOSX_COMPILERS_FROM_DEVEL" "1"
    2237       cnf_append "VBOX_PATH_MACOSX_DEVEL_ROOT" "$WITH_XCODE_DIR/Developer"
    2238       ;;
    2239     12\.*)
    2240       darwin_ver="10.8" # Mountain Lion
    2241       if [ ! -z "$WITH_XCODE_DIR" ]; then
    2242         sdk=$WITH_XCODE_DIR/Developer/SDKs/MacOSX10.6.sdk
    2243         cnf_append "VBOX_WITH_MACOSX_COMPILERS_FROM_DEVEL" "1"
    2244         cnf_append "VBOX_PATH_MACOSX_DEVEL_ROOT" "$WITH_XCODE_DIR/Developer"
    2245       else
    2246         sdk=/Developer/SDKs/MacOSX10.6.sdk
    2247       fi
    2248       CXX_FLAGS="-mmacosx-version-min=10.6 -isysroot $sdk -Wl,-syslibroot,$sdk"
    2249       ;;
    2250     11\.*)
    2251       darwin_ver="10.7" # Lion
    2252       sdk=/Developer/SDKs/MacOSX10.6.sdk
    2253       CXX_FLAGS="-mmacosx-version-min=10.6 -isysroot $sdk -Wl,-syslibroot,$sdk"
    2254       ;;
    2255     10\.*)
    2256       darwin_ver="10.6" # Snow Leopard
    2257       if [ "$BUILD_MACHINE" = "x86" ]; then
    2258           sdk=/Developer/SDKs/MacOSX10.5.sdk
    2259           CXX_FLAGS="-mmacosx-version-min=10.5 -isysroot $sdk -Wl,-syslibroot,$sdk"
    2260           cnf_append "VBOX_MACOS_10_5_WORKAROUND" "1"
    2261       else
    2262           sdk=/Developer/SDKs/MacOSX10.6.sdk
    2263           CXX_FLAGS="-mmacosx-version-min=10.6 -isysroot $sdk -Wl,-syslibroot,$sdk"
    2264       fi
    2265 #      test "$CC" = "gcc" && CC="gcc-4.0"
    2266 #      test "$CXX" = "g++" && CXX="g++-4.0"
    2267       cnf_append "VBOX_WITHOUT_VBOXPYTHON_FOR_OSX_10_7" "1"
    2268       ;;
    2269     9\.*)
    2270       darwin_ver="10.5" # Leopard
    2271       sdk=/Developer/SDKs/MacOSX10.5.sdk
    2272       CXX_FLAGS="-mmacosx-version-min=10.5 -isysroot $sdk -Wl,-syslibroot,$sdk"
    2273 #      test "$CC" = "gcc" && CC="gcc-4.0"
    2274 #      test "$CXX" = "g++" && CXX="g++-4.0"
    2275       cnf_append "VBOX_WITHOUT_VBOXPYTHON_FOR_OSX_10_6" "1"
    2276       cnf_append "VBOX_WITHOUT_VBOXPYTHON_FOR_OSX_10_7" "1"
    2277       ;;
    2278     8\.*)
    2279       darwin_ver="10.4" # Tiger
    2280       sdk=/Developer/SDKs/MacOSX10.4u.sdk
    2281       CXX_FLAGS="-mmacosx-version-min=10.4 -isysroot $sdk -Wl,-syslibroot,$sdk"
    2282 #      test "$CC" = "gcc" && CC="gcc-4.0"
    2283 #      test "$CXX" = "g++" && CXX="g++-4.0"
    2284       cnf_append "VBOX_WITH_COCOA_QT" ""
    2285       cnf_append "VBOX_WITHOUT_VBOXPYTHON_FOR_OSX_10_6" "1"
    2286       cnf_append "VBOX_WITHOUT_VBOXPYTHON_FOR_OSX_10_7" "1"
    22872235      ;;
    22882236    *)
     
    22922240      ;;
    22932241  esac
     2242
     2243  check_xcode_sdk_path "$WITH_XCODE_DIR"
     2244  [ $? -eq 1 ] || fail
     2245
     2246  # Pick the oldest SDK offered by Xcode, to get maximum compatibility
     2247  devel_subdir="$WITH_XCODE_DIR/Contents/Developer"
     2248  sdk_subdir="$devel_subdir/Platforms/MacOSX.platform/Developer/SDKs"
     2249  sdk_tries="$sdk_subdir"/MacOSX10.?.sdk" $sdk_subdir"/MacOSX10.??.sdk" $sdk_subdir"/MacOSX.sdk
     2250  for t in $sdk_tries; do
     2251    if [ -f "$t/SDKSettings.plist" ]; then
     2252      sdk="$t"
     2253      sdk_ver=`defaults read "$t/SDKSettings.plist" Version`
     2254      break
     2255    fi
     2256  done
     2257  if [ -z "$sdk" ]; then
     2258    echo "  failed to determine SDK directory. ($sdk_subdir/MacOSX*.sdk/SDKSettings.plist should exist)"
     2259    fail
     2260  fi
     2261
     2262  cnf_append "VBOX_WITH_MACOSX_COMPILERS_FROM_DEVEL" "1"
     2263  cnf_append "PATH_TOOL_VBoxXcode62" "$devel_subdir"
     2264  cnf_append "VBOX_PATH_MACOSX_DEVEL_ROOT" "$devel_subdir"
     2265  cnf_append "VBOX_PATH_MACOSX_SDK" "$sdk"
     2266  if [ -n "$sdk_ver" ]; then
     2267    cnf_append "VBOX_DEF_MACOSX_VERSION_MIN" "$sdk_ver"
     2268    cnf_append "VBOX_WITHOUT_VBOXPYTHON_FOR_OSX_10_6" "1"
     2269  fi
     2270
    22942271  log_success "found version $darwin_ver (SDK: $sdk)"
    22952272}
     
    23482325  --disable-hardening      don't be strict about /dev/vboxdrv access
    23492326  --build-libxml2          build libxml2 from sources
     2327  --build-libssl           build openssl from sources
    23502328EOF
    23512329[ $OSE -eq 0 ] && cat << EOF
    2352   --build-libssl           build openssl from sources
    23532330  --build-libcurl          build libcurl from sources
    23542331  --build-libvpx           build libvpx from sources
     
    24102387  WITH_KMODS=0
    24112388  BUILD_LIBXML2=1
     2389  BUILD_LIBSSL=1
    24122390  BUILD_LIBVPX=1
    24132391  [ $OSE -eq 1 ] || BUILD_LIBCURL=1
     
    24782456      INCCRYPTO="-I${OPENSSLDIR}/include"
    24792457      LIBCRYPTO="${OPENSSLDIR}/lib/libcrypto.a ${OPENSSLDIR}/lib/libssl.a"
     2458      # On Darwin (at least for macports) static OpenSSL also needs zlib.
     2459      [ "$OS" = "darwin" ] && LIBCRYPTO="$LIBCRYPTO ${OPENSSLDIR}/lib/libz.a"
    24802460      ;;
    24812461    --with-ow-dir=*)
     
    27952775  check_libxml2
    27962776  [ $WITH_LIBIDL -eq 1 ] && check_libidl
     2777  check_z
    27972778  check_ssl
    27982779  check_curl
    27992780  [ $WITH_LIBVPX -eq 1 ] && check_vpx
    28002781  [ $WITH_LIBOPUS -eq 1 ] && check_libopus
    2801   [ "$OS" != "darwin"  ] && check_z
    28022782  [ "$OS" != "darwin"  ] && check_png
    28032783  [ $OSE -eq 0 -a "$OS" = "linux" ] && check_pam
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette