]> git.sesse.net Git - vlc/blobdiff - extras/contrib/bootstrap
Simplify
[vlc] / extras / contrib / bootstrap
index fbba865e19638dc1bc75e21b0302c22cb3bf77f9..85eb400689fe320e92b6b6ccbcac000b19d21980 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,6 +70,22 @@ if test "$HOST" != "$BUILD"; then
     STRIP="${HOST}-strip"
 fi
 
+case $HOST in
+    *powerpc*|*ppc*)
+         ARCH="ppc"
+     ;;
+    *darwin10*)
+         ARCH="x86_64"
+     ;;
+    *86_64*)
+          ARCH="x86_64"
+     ;;
+    *86*)
+          ARCH="i386"
+     ;;
+esac
+echo "ARCH = $ARCH" >> config.mak
+
 # Check the HAVE_{OS}
 case $HOST in
     *darwin*)
@@ -92,50 +108,34 @@ esac
 
 case $HOST in
     ppc-darwin)
-# Mac OS X < 10.4
+        # Mac OS X < 10.4
         echo "Your version of Mac OS X is too old!" >&2
-        echo "Compiling VLC requires 10.4.x or later" >&2
+        echo "Compiling VLC requires 10.5.x or later" >&2
         exit 1
     ;;
     powerpc-apple-darwin8)
-# Mac OS X 10.4 or 10.5 with Xcode 2.5
-# Makefile cross compiling is only supported with gcc-4.0
-# ENVP defines the oldest environment on which the program will be able to run
-        SDK_TARGET=10.4
-        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
-        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}"
-        LD="ld -arch ppc -syslibroot \${MACOSX_SDK}"
-        echo "PATH = /bin:/usr/bin:/usr/local/bin" >> config.mak
-        cat src/Distributions/darwin.mak >> distro.mak
+        echo "Your version of Mac OS X is too old!" >&2
+        echo "Compiling and running VLC requires 10.5.x or later" >&2
+        exit 1
     ;;
     i686-apple-darwin8)
-        SDK_TARGET=10.4
-        echo "SDK_TARGET = ${SDK_TARGET}" >> config.mak
-        echo "HAVE_DARWIN_OS_ON_INTEL = 1" >> config.mak
-        echo "ENVP = MACOSX_DEPLOYMENT_TARGET=${SDK_TARGET}" >> config.mak
-        echo "MACOSX_SDK = /Developer/SDKs/MacOSX10.4u.sdk" >> config.mak
-        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}"
-        echo "PATH = /bin:/usr/bin:/usr/local/bin" >> config.mak
-        cat src/Distributions/darwin.mak >> distro.mak
+        echo "Your version of Mac OS X is too old!" >&2
+        echo "Compiling and running VLC requires 10.5.x or later" >&2
+        exit 1
     ;;
     powerpc-apple-darwin9)
 # Mac OS X 10.5 with Xcode 3, specific rules apply
-        SDK_TARGET=10.4
+        SDK_TARGET=10.5
         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
+        echo "MACOSX_SDK = /Developer/SDKs/MacOSX10.5.sdk" >> config.mak
         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=" -arch ppc -isysroot \${MACOSX_SDK} -Wl,-syslibroot,\${MACOSX_SDK}"
+        CC="/Developer/usr/llvm-gcc-4.2/bin/llvm-gcc-4.2"
+        CXX="/Developer/usr/llvm-gcc-4.2/bin/llvm-g++-4.2"
         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,20 +147,51 @@ case $HOST in
         fi
     ;;
     i686-apple-darwin9)
-        SDK_TARGET=10.4
+        SDK_TARGET=10.5
         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
-        CFLAGS_TUNING=" -march=pentium-m -mtune=prescott"
+        echo "MACOSX_SDK = /Developer/SDKs/MacOSX10.5.sdk" >> config.mak
+        CFLAGS_TUNING=" -march=prescott -mtune=generic -arch i386"
+        EXTRA_CFLAGS=" -D\${ENVP} -isysroot \${MACOSX_SDK} -mmacosx-version-min=\${SDK_TARGET}"
+        EXTRA_LDFLAGS=" -arch i386 -isysroot \${MACOSX_SDK} -Wl,-syslibroot,\${MACOSX_SDK}"
+        CC="/Developer/usr/llvm-gcc-4.2/bin/llvm-gcc-4.2"
+        CXX="/Developer/usr/llvm-gcc-4.2/bin/llvm-g++-4.2"
+        echo "PATH = /bin:/usr/bin:/usr/local/bin" >> config.mak
+        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
+    ;;
+    *-apple-darwin10)
+        SDK_TARGET=10.5
+        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
+        if test $ARCH = "x86_64"; then
+            CFLAGS_TUNING=" -march=core2 -mtune=core2"
+        else
+            CFLAGS_TUNING=" -march=prescott -mtune=core2"
+        fi
         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
@@ -193,6 +224,11 @@ case $HOST in
         fi
         cat src/Distributions/beos.mak >> distro.mak
     ;;
+    *mingw32ce)
+        echo "HAVE_WINCE = 1" >> config.mak
+        echo "PKG_CONFIG_PATH = \$(PREFIX)/lib/pkgconfig" >> config.mak
+        cat src/Distributions/wince.mak >> distro.mak
+    ;;
     *mingw32*)
         echo "HAVE_WIN32 = 1" >> config.mak
         echo "PKG_CONFIG_PATH = \$(PREFIX)/lib/pkgconfig" >> config.mak
@@ -226,6 +262,15 @@ case $HOST in
             cat src/Distributions/unix.mak >> distro.mak
         fi
     ;;
+    *86_64*linux*)
+        EXTRA_CFLAGS=" -fPIC"
+        EXTRA_CPPFLAGS=" -fPIC"
+        EXTRA_LDFLAGS=" -L/usr/lib64"
+        echo "LIBRARY_PATH = /usr/lib64" >> config.mak
+        echo "PKG_CONFIG_PATH = /usr/lib64/pkgconfig" >> config.mak
+        echo "PKG_CONFIG_LIBDIR = /usr/lib64/pkgconfig" >> config.mak
+        cat src/Distributions/unix.mak >> distro.mak
+    ;;
     *)
         if test "$HOST" = "$BUILD"; then
             if test -d "/usr/lib/pkgconfig"; then
@@ -239,6 +284,8 @@ case $HOST in
             # Try to match distribution
             if test -f /etc/fedora-release; then
                 cat src/Distributions/fedora.mak >> distro.mak
+            elif test -f /etc/maemo_version; then
+                cat src/Distributions/maemo.mak >> distro.mak
             else
                 # Default Unix-like systems
                 cat src/Distributions/unix.mak >> distro.mak
@@ -270,38 +317,55 @@ echo "EXTRA_LDFLAGS = ${EXTRA_LDFLAGS}" >> config.mak
 echo "EXTRA_PATH = ${EXTRA_PATH}" >> config.mak
 
 if wget --version >/dev/null 2>&1; then
-    echo "WGET = `which wget` -c" >> config.mak
-elif which curl >/dev/null; then
+    echo "WGET = `which wget` -c --passive" >> config.mak
+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 test -f /sw/bin/svn; then
-    echo "SVN = /sw/bin/svn" >> config.mak
-elif test -f /usr/local/bin/svn; then
-    echo "SVN = /usr/local/bin/svn" >> config.mak
-elif test -f /usr/bin/svn; then
-    echo "SVN = /usr/bin/svn" >> config.mak
-elif test -f /opt/local/bin/svn; then
-    echo "SVN = /opt/local/bin/svn" >> config.mak
-elif 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 installed." >&2
+    echo "You do not have a subversion client in your PATH." >&2
 fi
 
-if test -f /sw/bin/git; then
-    echo "GIT = /sw/bin/git" >> config.mak
-elif test -f /usr/local/bin/git; then
-    echo "GIT = /usr/local/bin/git" >> config.mak
-elif test -f /usr/bin/git; then
-    echo "GIT = /usr/bin/git" >> config.mak
-elif test -f /opt/local/bin/git; then
-    echo "GIT = /opt/local/bin/git" >> config.mak
-elif 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 installed." >&2
+    echo "You do not have a Git client in your PATH." >&2
+fi
+
+if test -z "$CONTRIBS_RELEASE"; then
+    echo "EXTRA_CFLAGS += -DNDEBUG" >> config.mak
+    set +x
+    echo
+    echo "*****************************************************************"
+    echo "* If you need contribs with all debug information, run this     *"
+    echo "* line and compile the libraries on your own.                   *"
+    echo "* CONTRIBS_RELEASE=no ./bootstrap                               *"
+    echo "*****************************************************************"
+fi
+
+if test $HAVE_DARWIN_9; then
+    set +x
+    echo
+    echo "*****************************************************************"
+    echo "* We are using both the llvm-gcc-4.2 and the gcc-4.2 compilers  *"
+    echo "* on OS X, so compilation will fail if these are not installed. *"
+    echo "*****************************************************************"
+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 "* While doing so, for the time being, the 10.5 SDK is used.     *"
+    echo "* Note that in contrast to our Darwin 9 builds, we are not      *"
+    echo "* using the llvm compiler, but GCC 4.2.                         *"
+    echo "*****************************************************************"
+    set -x
 fi