]> git.sesse.net Git - vlc/blobdiff - extras/contrib/bootstrap
Darwin 10 adaptations
[vlc] / extras / contrib / bootstrap
index 5c2123ce1c4f9752262272d2077d519ca080a95f..e5266a4caffa367adfc29a0c1f8413f735a44a48 100755 (executable)
@@ -2,12 +2,12 @@
 # ***************************************************************************
 # bootstrap : Set up config.mak
 # ***************************************************************************
-# Copyright (C) 2003-2007 the VideoLAN team
+# Copyright (C) 2003-2009 the VideoLAN team
 # $Id$
 #
 # Authors: Christophe Massiot <massiot@via.ecp.fr>
 #          Derk-Jan Hartman <hartman at videolan dot org>
-#          Felix Kühne <fkuehne@users.sourceforge.net>
+#          Felix Paul Kühne <fkuehne at videolan dot org>
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -70,11 +70,28 @@ if test "$HOST" != "$BUILD"; then
     STRIP="${HOST}-strip"
 fi
 
+case $HOST in
+    *powerpc*|*ppc*)
+         echo "ARCH=ppc" >> config.mak
+     ;;
+    *darwin10*)
+         echo "ARCH=x86_64" >> config.mak
+     ;;
+    *86*)
+          echo "ARCH=i386" >> config.mak
+     ;;
+esac
+
 # Check the HAVE_{OS}
 case $HOST in
     *darwin*)
         echo "HAVE_DARWIN_OS = 1" >> config.mak
         echo "HAVE_BSD = 1" >> config.mak
+        if test $CONTRIBS_CC_LLVM; then
+            echo "DARWIN_COMPILER = LLVMGCC" >> config.mak
+        else
+            echo "DARWIN_COMPILER = GCC" >> config.mak
+        fi
     ;;
     *linux*)
         echo "HAVE_LINUX = 1" >> config.mak
@@ -127,15 +144,30 @@ case $HOST in
     ;;
     powerpc-apple-darwin9)
 # Mac OS X 10.5 with Xcode 3, specific rules apply
-        SDK_TARGET=10.4
+        if test -z "$CONTRIBS_CC_LLVM"; then
+            SDK_TARGET=10.4
+        else
+            SDK_TARGET=10.5
+        fi
         echo "SDK_TARGET = ${SDK_TARGET}" >> config.mak
         echo "ENVP = MACOSX_DEPLOYMENT_TARGET=${SDK_TARGET}" >> config.mak
-        echo "MACOSX_SDK = /Developer/SDKs/MacOSX10.4u.sdk" >> config.mak
+        if test -z "$CONTRIBS_CC_LLVM"; then
+            echo "MACOSX_SDK = /Developer/SDKs/MacOSX10.4u.sdk" >> config.mak
+        else
+            echo "MACOSX_SDK = /Developer/SDKs/MacOSX10.5.sdk" >> config.mak
+        fi
         echo "HAVE_DARWIN_9 = 1" >> config.mak
+        HAVE_DARWIN_9=1
         CFLAGS_TUNING=" -arch ppc -mtune=G4"
-        EXTRA_CFLAGS=" -D\${ENVP} -mmacosx-version-min=\${SDK_TARGET}"
-        CC="gcc -isysroot \${MACOSX_SDK}"
-        CXX="g++ -isysroot \${MACOSX_SDK}"
+        EXTRA_CFLAGS=" -D\${ENVP} -isysroot \${MACOSX_SDK} -mmacosx-version-min=\${SDK_TARGET}"
+        EXTRA_LDFLAGS=" -isysroot \${MACOSX_SDK} -Wl,-syslibroot,\${MACOSX_SDK}"
+        if test -z "$CONTRIBS_CC_LLVM"; then
+            CC="gcc"
+            CXX="g++"
+        else
+            CC="/Developer/usr/llvm-gcc-4.2/bin/llvm-gcc-4.2"
+            CXX="/Developer/usr/llvm-gcc-4.2/bin/llvm-g++-4.2"
+        fi
         LD="ld -arch ppc -syslibroot \${MACOSX_SDK}"
         echo "PATH = /bin:/usr/bin:/usr/local/bin:" >> config.mak
         cat src/Distributions/darwin.mak >> distro.mak
@@ -147,19 +179,36 @@ case $HOST in
         fi
     ;;
     i686-apple-darwin9)
-        SDK_TARGET=10.4
+        if test -z "$CONTRIBS_CC_LLVM"; then
+            SDK_TARGET=10.4
+        else
+            SDK_TARGET=10.5
+        fi
         MIN_LD_VERSION_WITH_TEXT_RELOCATION=81
         echo "SDK_TARGET = ${SDK_TARGET}" >> config.mak
         echo "HAVE_DARWIN_OS_ON_INTEL = 1" >> config.mak
         echo "HAVE_DARWIN_9 = 1" >> config.mak
+        HAVE_DARWIN_9=1
         if test `ld -v 2> /dev/stdout | sed -E 's/.*ld64-([0-9]+).*/\1/'` -lt ${MIN_LD_VERSION_WITH_TEXT_RELOCATION}; then
-            echo "NO_TEXT_RELOCATION = 1" >> config.mak
+            echo "ERROR: Your ld version is unable to compile VLC.\nUpdate to Xcode 3.1 or higher." >&2
+            exit 1
         fi
         echo "ENVP = MACOSX_DEPLOYMENT_TARGET=${SDK_TARGET}" >> config.mak
-        echo "MACOSX_SDK = /Developer/SDKs/MacOSX10.4u.sdk" >> config.mak
+        if test -z "$CONTRIBS_CC_LLVM"; then
+            echo "MACOSX_SDK = /Developer/SDKs/MacOSX10.4u.sdk" >> config.mak
+        else
+            echo "MACOSX_SDK = /Developer/SDKs/MacOSX10.5.sdk" >> config.mak
+        fi
         CFLAGS_TUNING=" -march=pentium-m -mtune=prescott"
         EXTRA_CFLAGS=" -D\${ENVP} -isysroot \${MACOSX_SDK} -mmacosx-version-min=\${SDK_TARGET}"
         EXTRA_LDFLAGS=" -isysroot \${MACOSX_SDK} -Wl,-syslibroot,\${MACOSX_SDK}"
+        if test -z "$CONTRIBS_CC_LLVM"; then
+            CC="gcc"
+            CXX="g++"
+        else
+            CC="/Developer/usr/llvm-gcc-4.2/bin/i686-apple-darwin9-llvm-gcc-4.2"
+            CXX="/Developer/usr/llvm-gcc-4.2/bin/i686-apple-darwin9-llvm-g++-4.2"
+        fi
         echo "PATH = /bin:/usr/bin:/usr/local/bin" >> config.mak
         cat src/Distributions/darwin.mak >> distro.mak
         if test -e /Developer/SDKs; then
@@ -169,6 +218,29 @@ case $HOST in
             exit 1
         fi
     ;;
+    *-apple-darwin10)
+        SDK_TARGET=10.6
+        echo "SDK_TARGET = ${SDK_TARGET}" >> config.mak
+        echo "HAVE_DARWIN_OS_ON_INTEL = 1" >> config.mak
+        echo "HAVE_DARWIN_9 = 1" >> config.mak
+        echo "HAVE_DARWIN_10 = 1" >> config.mak
+        HAVE_DARWIN_10=1
+        echo "ENVP = MACOSX_DEPLOYMENT_TARGET=${SDK_TARGET}" >> config.mak
+        echo "MACOSX_SDK = /Developer/SDKs/MacOSX${SDK_TARGET}.sdk" >> config.mak
+        CFLAGS_TUNING=" -march=core2"
+        EXTRA_CFLAGS=" -D\${ENVP} -isysroot \${MACOSX_SDK} -mmacosx-version-min=\${SDK_TARGET}"
+        EXTRA_LDFLAGS=" -isysroot \${MACOSX_SDK} -Wl,-syslibroot,\${MACOSX_SDK}"
+        echo "PATH = /bin:/usr/bin:/usr/local/bin" >> config.mak
+        CC="gcc"
+        CXX="g++"
+        cat src/Distributions/darwin.mak >> distro.mak
+        if test -e /Developer/SDKs; then
+            echo "SDKs found. Everything is fine." >&2
+        else
+            echo "ERROR:\nYour Developer Tools' SDKs were not found.\nYou need to add extra symbolic links to /Developer to achieve correctly\nbuilt contribs.\nHave a look at the OSX-Compile-HOWTO for details." >&2
+            exit 1
+        fi
+    ;;
     i586-pc-beos)
         if test -f /boot/beos/system/lib/libbind.so; then
             EXTRA_LDFLAGS=" -lbind -lsocket"
@@ -271,20 +343,20 @@ echo "EXTRA_PATH = ${EXTRA_PATH}" >> config.mak
 
 if wget --version >/dev/null 2>&1; then
     echo "WGET = `which wget` -c --passive" >> config.mak
-elif which curl >/dev/null; then
+elif test -z `curl --version >/dev/null 2>&1`; then
     echo "WGET = `which curl` -L -O" >> config.mak
 else
     echo "You need at least wget or curl to fetch the packages." >&2
     exit 1
 fi
 
-if svn help >/dev/null 2>&1; then
+if svn --version >/dev/null 2>&1; then
     echo "SVN = `which svn`" >> config.mak
 else
     echo "You do not have a subversion client in your PATH." >&2
 fi
 
-if git help >/dev/null 2>&1; then
+if git --version>/dev/null 2>&1; then
     echo "GIT = `which git`" >> config.mak
 else
     echo "You do not have a Git client in your PATH." >&2
@@ -293,10 +365,37 @@ fi
 if test -z "$CONTRIBS_RELEASE"; then
     set +x
     echo
-    echo "***********************************************************"
-    echo "* If you are building contribs for a release build of VLC *"
-    echo "* Please run CONTRIBS_RELEASE=sexy ./bootstrap            *"
-    echo "***********************************************************"
+    echo "*****************************************************************"
+    echo "* If you are building contribs for a release build of VLC       *"
+    echo "* Please run CONTRIBS_RELEASE=sexy ./bootstrap                  *"
+    echo "*                                                               *"
+    echo "* Ignore this message if you don't compile the 3rd party        *"
+    echo "* libraries your own aka by just running 'make' next.           *"
+    echo "*****************************************************************"
 else
     echo "EXTRA_CFLAGS += -DNDEBUG" >> config.mak
+    set -x
+fi
+
+if test $HAVE_DARWIN_9; then
+if test -z "$CONTRIBS_CC_LLVM"; then
+    set +x
+    echo
+    echo "*****************************************************************"
+    echo "* In case that you target Mac OS X 10.5 or later only,          *"
+    echo "* we recommend to use llvm-gcc-4.2 for compilation.             *"
+    echo "* Please run CONTRIBS_CC_LLVM=yes ./bootstrap to do so.         *"
+    echo "*****************************************************************"
+    set -x
+fi
+fi
+
+if test $HAVE_DARWIN_10; then
+    set +x
+    echo
+    echo "*****************************************************************"
+    echo "* You are running Darwin 10.                                    *"
+    echo "* For testing purposes, VLC will be compiled in 64bit mode.     *"
+    echo "*****************************************************************"
+    set -x
 fi