bootstrap
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:14k
源码类别:

midi

开发平台:

Unix_Linux

  1. #!/bin/sh
  2. # ***************************************************************************
  3. # bootstrap : Set up config.mak
  4. # ***************************************************************************
  5. # Copyright (C) 2003-2009 the VideoLAN team
  6. # $Id$
  7. #
  8. # Authors: Christophe Massiot <massiot@via.ecp.fr>
  9. #          Derk-Jan Hartman <hartman at videolan dot org>
  10. #          Felix Paul K眉hne <fkuehne at videolan dot org>
  11. #
  12. # This program is free software; you can redistribute it and/or modify
  13. # it under the terms of the GNU General Public License as published by
  14. # the Free Software Foundation; either version 2 of the License, or
  15. # (at your option) any later version.
  16. #
  17. # This program is distributed in the hope that it will be useful,
  18. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  19. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  20. # GNU General Public License for more details.
  21. #
  22. # You should have received a copy of the GNU General Public License
  23. # along with this program; if not, write to the Free Software
  24. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  25. # ***************************************************************************
  26. if test "$#" -gt "2" -o "$1" = "-h" -o "$1" = "--help" ; then
  27.     echo "Usage: $0 [host [distro]]" >&2
  28.     echo "  Prepare config.mak and distro.mak file." >&2
  29.     exit 1
  30. fi
  31. LANG=C
  32. export LANG
  33. set -e
  34. set +x
  35. BUILD=`gcc -dumpmachine`
  36. if test "$#" -ge "1"; then
  37.     HOST="$1"
  38. else
  39.     HOST="$BUILD"
  40. fi
  41. DISTRO=
  42. if test "$#" = "2"; then
  43.     echo "Forcing distro.mak to use $2.mak"
  44.     DISTRO="$2"
  45.     HOST="$1"
  46. fi
  47. rm -f config.mak
  48. {
  49.     echo "# Automatically generated by bootstrap."
  50.     echo "# Make changes if you know what you're doing."
  51. } > config.mak
  52. rm -f distro.mak
  53. {
  54.     echo "# Automatically generated by bootstrap"
  55.     echo "# Make changes if you know what you're doing."
  56. } > distro.mak
  57. if test "$HOST" != "$BUILD"; then
  58.     CC="${HOST}-gcc"
  59.     CXX="${HOST}-g++"
  60.     LD="${HOST}-ld"
  61.     RANLIB="${HOST}-ranlib"
  62.     AR="${HOST}-ar"
  63.     STRIP="${HOST}-strip"
  64. fi
  65. case $HOST in
  66.     *powerpc*|*ppc*)
  67.          echo "ARCH=ppc" >> config.mak
  68.      ;;
  69.     *86_64*)
  70.           echo "ARCH=x86_64" >> config.mak
  71.      ;;
  72.     *86*)
  73.           echo "ARCH=i386" >> config.mak
  74.      ;;
  75. esac
  76. # Check the HAVE_{OS}
  77. case $HOST in
  78.     *darwin*)
  79.         echo "HAVE_DARWIN_OS = 1" >> config.mak
  80.         echo "HAVE_BSD = 1" >> config.mak
  81.     ;;
  82.     *linux*)
  83.         echo "HAVE_LINUX = 1" >> config.mak
  84.     ;;
  85.     *bsd*)
  86.         echo "HAVE_BSD = 1" >> config.mak
  87.     ;;
  88.     *wince*)
  89.         echo "HAVE_WINCE = 1" >> config.mak
  90.     ;;
  91.     *beos*)
  92.         echo "HAVE_BEOS = 1" >> config.mak
  93.     ;;
  94. esac
  95. case $HOST in
  96.     ppc-darwin)
  97.         # Mac OS X < 10.4
  98.         echo "Your version of Mac OS X is too old!" >&2
  99.         echo "Compiling VLC requires 10.5.x or later" >&2
  100.         exit 1
  101.     ;;
  102.     *-apple-darwin8)
  103.         echo "Your version of Mac OS X is too old!" >&2
  104.         echo "Compiling and running VLC requires 10.5.x or later" >&2
  105.         exit 1
  106.     ;;
  107.     powerpc-apple-darwin9)
  108.         SDK_TARGET=10.5
  109.         echo "SDK_TARGET = ${SDK_TARGET}" >> config.mak
  110.         echo "ENVP = MACOSX_DEPLOYMENT_TARGET=${SDK_TARGET}" >> config.mak
  111.         echo "MACOSX_SDK = /Developer/SDKs/MacOSX10.5.sdk" >> config.mak
  112.         echo "HAVE_DARWIN_9 = 1" >> config.mak
  113.         HAVE_DARWIN_9=1
  114.         HAVE_DARWIN_32=1
  115.         CFLAGS_TUNING=" -arch ppc -mtune=G4"
  116.         EXTRA_CFLAGS=" -D${ENVP} -isysroot ${MACOSX_SDK} -mmacosx-version-min=${SDK_TARGET}"
  117.         EXTRA_LDFLAGS=" -arch ppc -isysroot ${MACOSX_SDK} -mmacosx-version-min=${SDK_TARGET} -Wl,-syslibroot,${MACOSX_SDK}"
  118.         CC="/Developer/usr/bin/gcc-4.2"
  119.         CXX="/Developer/usr/bin/g++-4.2"
  120.         LD="ld -arch ppc -syslibroot ${MACOSX_SDK} -mmacosx-version-min=${SDK_TARGET}"
  121.         echo "PATH = /bin:/usr/bin:/usr/local/bin:" >> config.mak
  122.         DISTRO=darwin
  123.         if test -e /Developer/SDKs; then
  124.             echo "SDKs found. Everything is fine." >&2
  125.         else
  126.             echo "ERROR:nYour Developer Tools' SDKs were not found.nYou need to add extra symbolic links to /Developer to achieve correctlynbuilt contribs.nHave a look at the OSX-Compile-HOWTO for details." >&2
  127.             exit 1
  128.         fi
  129.     ;;
  130.     i686-apple-darwin*)
  131.         SDK_TARGET=10.5
  132.         MIN_LD_VERSION_WITH_TEXT_RELOCATION=81
  133.         echo "SDK_TARGET = ${SDK_TARGET}" >> config.mak
  134.         echo "HAVE_DARWIN_OS_ON_INTEL = 1" >> config.mak
  135.         echo "HAVE_DARWIN_9 = 1" >> config.mak
  136.         HAVE_DARWIN_9=1
  137.         if test `ld -v 2> /dev/stdout | sed -E 's/.*ld64-([0-9]+).*/1/'` -lt ${MIN_LD_VERSION_WITH_TEXT_RELOCATION}; then
  138.             echo "ERROR: Your ld version is unable to compile VLC.nUpdate to Xcode 3.1 or higher." >&2
  139.             exit 1
  140.         fi
  141.         echo "ENVP = MACOSX_DEPLOYMENT_TARGET=${SDK_TARGET}" >> config.mak
  142.         echo "MACOSX_SDK = /Developer/SDKs/MacOSX10.5.sdk" >> config.mak
  143.         HAVE_DARWIN_32=1
  144.         CFLAGS_TUNING=" -march=prescott -mtune=generic -arch i386 -m32"
  145.         EXTRA_CFLAGS=" -D${ENVP} -isysroot ${MACOSX_SDK} -mmacosx-version-min=${SDK_TARGET}"
  146.         EXTRA_LDFLAGS=" -arch i386 -isysroot ${MACOSX_SDK} -Wl,-syslibroot,${MACOSX_SDK} -mmacosx-version-min=${SDK_TARGET}"
  147.         CC="/Developer/usr/bin/gcc-4.2"
  148.         CXX="/Developer/usr/bin/g++-4.2"
  149.         echo "PATH = /bin:/usr/bin:/usr/local/bin" >> config.mak
  150.         DISTRO=darwin
  151.         if test -e /Developer/SDKs; then
  152.             echo "SDKs found. Everything is fine." >&2
  153.         else
  154.             echo "ERROR:nYour Developer Tools' SDKs were not found.nYou need to add extra symbolic links to /Developer to achieve correctlynbuilt contribs.nHave a look at the OSX-Compile-HOWTO for details." >&2
  155.             exit 1
  156.         fi
  157.         if test $HOST = "i686-apple-darwin10"; then
  158.             echo "HAVE_DARWIN_10 = 1" >> config.mak
  159.         fi
  160.     ;;
  161.     x86_64-apple-darwin*)
  162.         SDK_TARGET=10.5
  163.         echo "SDK_TARGET = ${SDK_TARGET}" >> config.mak
  164.         echo "HAVE_DARWIN_OS_ON_INTEL = 1" >> config.mak
  165.         echo "HAVE_DARWIN_9 = 1" >> config.mak
  166.         echo "ENVP = MACOSX_DEPLOYMENT_TARGET=${SDK_TARGET}" >> config.mak
  167.         echo "MACOSX_SDK = /Developer/SDKs/MacOSX${SDK_TARGET}.sdk" >> config.mak
  168.         HAVE_DARWIN_64=1
  169.         CFLAGS_TUNING=" -march=core2 -mtune=core2 -m64 -arch x86_64"
  170.         echo "HAVE_DARWIN_64 = 1" >> config.mak
  171.         EXTRA_CFLAGS=" -D${ENVP} -isysroot ${MACOSX_SDK} -mmacosx-version-min=${SDK_TARGET}"
  172.         EXTRA_LDFLAGS=" -isysroot ${MACOSX_SDK} -Wl,-syslibroot,${MACOSX_SDK} -mmacosx-version-min=${SDK_TARGET}"
  173.         echo "PATH = /bin:/usr/bin:/usr/local/bin" >> config.mak
  174.         CC="/Developer/usr/bin/gcc-4.2"
  175.         CXX="/Developer/usr/bin/g++-4.2"
  176.         LD="ld"
  177.         RANLIB="ranlib"
  178.         AR="ar"
  179.         STRIP="strip"
  180.         DISTRO=darwin64
  181.         if test -e /Developer/SDKs; then
  182.             echo "SDKs found. Everything is fine." >&2
  183.         else
  184.             echo "ERROR:nYour Developer Tools' SDKs were not found.nYou need to add extra symbolic links to /Developer to achieve correctlynbuilt contribs.nHave a look at the OSX-Compile-HOWTO for details." >&2
  185.             exit 1
  186.         fi
  187.         if test $HOST = "x86_64-apple-darwin10"; then
  188.             echo "HAVE_DARWIN_10 = 1" >> config.mak
  189.         fi
  190.     ;;
  191.     i586-pc-beos)
  192.         if test -f /boot/beos/system/lib/libbind.so; then
  193.             EXTRA_LDFLAGS=" -lbind -lsocket"
  194.         else
  195.             EXTRA_LDFLAGS=" -lnet"
  196.         fi
  197.         if test "$HOST" = "$BUILD"; then
  198. #           Compiling on BeOS
  199.             PATH=".:/boot/home/config/bin:/bin:/boot/apps"
  200.             PATH="${PATH}:/boot/preferences:/boot/beos/apps"
  201.             PATH="${PATH}:/boot/beos/preferences"
  202.             PATH="${PATH}:/boot/develop/tools/gnupro/bin"
  203.             echo "PATH = ${PATH}" >> config.mak
  204.             LIBRARY_PATH="${LIBRARY_PATH}:%A/lib:/boot/home/config/lib"
  205.             LIBRARY_PATH="${LIBRARY_PATH}:/boot/beos/system/lib"
  206.             echo "LIBRARY_PATH = ${LIBRARY_PATH}" >> config.mak
  207.         else
  208. #           Cross compiling from Linux
  209.             PATH="/opt/beos-tools/bin:/opt/cross-tools/bin"
  210.             PATH="${PATH}:/usr/bin:/bin"
  211.             echo "PATH = ${PATH}" >> config.mak
  212.         fi
  213.         cat src/Distributions/beos.mak >> distro.mak
  214.     ;;
  215.     *mingw32ce)
  216.         echo "HAVE_WINCE = 1" >> config.mak
  217.         echo "PKG_CONFIG_PATH = $(PREFIX)/lib/pkgconfig" >> config.mak
  218.         EXTRA_CPPFLAGS=" -D_WIN32_WCE=0x0500"
  219.         DISTRO=wince
  220.     ;;
  221.     x86_64-*-mingw*)
  222.         echo "HAVE_WIN64 = 1" >> config.mak
  223.         echo "HAVE_WIN32 = 1" >> config.mak
  224.         echo "PKG_CONFIG_PATH = $(PREFIX)/lib/pkgconfig" >> config.mak
  225.            EXTRA_CFLAGS="-O3"
  226.         DISTRO=win64
  227.     ;;
  228.     *mingw32*)
  229.         echo "HAVE_WIN32 = 1" >> config.mak
  230.         echo "PKG_CONFIG_PATH = $(PREFIX)/lib/pkgconfig" >> config.mak
  231.         EXTRA_CFLAGS="-O3"
  232.         DISTRO=win32
  233.     ;;
  234.     i686-pc-cygwin)
  235.         echo "HAVE_WIN32 = 1" >> config.mak
  236.         echo "HAVE_CYGWIN = 1" >> config.mak
  237.         CC="gcc -mno-cygwin -isystem /usr/include/mingw"
  238.         CXX="g++ -mno-cygwin -isystem /usr/include/mingw"
  239.         HOST=`$CC -dumpmachine`
  240.         EXTRA_CFLAGS=" -mno-cygwin -isystem /usr/include/mingw"
  241.         EXTRA_CPPFLAGS=" -mno-cygwin -isystem /usr/include/mingw"
  242.         EXTRA_LDFLAGS=" -mno-cygwin"
  243.         echo "PKG_CONFIG_PATH = $(PREFIX)/lib/pkgconfig" >> config.mak
  244.         DISTRO=win32
  245.     ;;
  246.     arm-wince-pe)
  247.         echo "PKG_CONFIG_PATH = $(PREFIX)/lib/pkgconfig" >> config.mak
  248.         EXTRA_CPPFLAGS=" -D_WIN32_WCE"
  249.         DISTRO=wince
  250.     ;;
  251.     armeb-linux-uclibc)
  252.         echo "HAVE_UCLIBC = 1" >> config.mak
  253.         echo "HAVE_BIGENDIAN = 1" >> config.mak
  254.         EXTRA_CFLAGS="-Os -march=armv5 -msoft-float"
  255.     ;;
  256.     arm-none-linux-gnueabi)
  257.         if test -f /etc/maemo_version; then
  258.             DISTRO=maemo
  259.             echo 'HAVE_MAEMO = 1' >> config.mak
  260.             EXTRA_CFLAGS=" -mcpu=cortex-a8 -mtune=cortex-a8 -march=armv7-a"
  261.             EXTRA_CLFAGS="$EXTRA_CFLAGS -mfpu=neon"
  262.             EXTRA_CFLAGS="$EXTRA_CFLAGS -mthumb -mthumb-interwork"
  263.             echo 'HAVE_ISA_THUMB = 1' >> config.mak
  264.         else
  265.             EXTRA_CFLAGS="-msoft-float"
  266.         fi
  267.     ;;
  268.     *86_64*linux*)
  269.         EXTRA_CFLAGS=" -fPIC"
  270.         EXTRA_CPPFLAGS=" -fPIC"
  271.         EXTRA_LDFLAGS=" -L/usr/lib64"
  272.         echo "LIBRARY_PATH = /usr/lib64" >> config.mak
  273.         echo "PKG_CONFIG_PATH = /usr/lib64/pkgconfig" >> config.mak
  274.         echo "PKG_CONFIG_LIBDIR = /usr/lib64/pkgconfig" >> config.mak
  275.     ;;
  276. esac
  277. if test -z "${DISTRO}" -a "$HOST" = "$BUILD"; then
  278.     if test -d "/usr/lib/pkgconfig"; then
  279.         if test -z "$PKG_CONFIG_PATH"; then
  280.             echo "PKG_CONFIG_PATH = /usr/lib/pkgconfig" >> config.mak
  281.         fi
  282.         if test -z "$PKG_CONFIG_LIBDIR"; then
  283.             echo "PKG_CONFIG_LIBDIR = /usr/lib/pkgconfig" >> config.mak
  284.         fi
  285.     fi
  286.     # Try to match distribution
  287.     if test -f /etc/fedora-release; then
  288.         DISTRO=fedora
  289.     elif test -f /etc/maemo_version; then
  290.         DISTRO=maemo
  291.         echo 'HAVE_MAEMO = 1' >> config.mak
  292.     elif test -f /etc/debian_version; then
  293.         # NOTE: check for Debian *after* its derivatives
  294.         DISTRO=debian
  295.     fi
  296. fi
  297. # Default Unix-like systems
  298. test -z "${DISTRO}" && DISTRO=unix
  299. cat src/Distributions/"${DISTRO}".mak >> distro.mak
  300. echo "BUILD = $BUILD" >> config.mak
  301. echo "HOST = $HOST" >> config.mak
  302. echo "PREFIX = `pwd`" >> config.mak
  303. echo "CC = ${CC}" >> config.mak
  304. echo "CXX = ${CXX}" >> config.mak
  305. echo "LD = ${LD}" >> config.mak
  306. echo "RANLIB = ${RANLIB}" >> config.mak
  307. echo "AR = ${AR}" >> config.mak
  308. echo "STRIP = ${STRIP}" >> config.mak
  309. echo "EXTRA_CFLAGS = ${CFLAGS_TUNING} ${EXTRA_CFLAGS}" >> config.mak
  310. echo "EXTRA_CPPFLAGS = ${EXTRA_CPPFLAGS} -isystem $(PREFIX)/include" >> config.mak
  311. echo "EXTRA_LDFLAGS = ${EXTRA_LDFLAGS}" >> config.mak
  312. echo "EXTRA_PATH = ${EXTRA_PATH}" >> config.mak
  313. if wget --version >/dev/null 2>&1; then
  314.     echo "WGET = `which wget` -c --passive" >> config.mak
  315. elif test -z `curl --version >/dev/null 2>&1`; then
  316.     echo "WGET = `which curl` -L -O" >> config.mak
  317. else
  318.     echo "You need at least wget or curl to fetch the packages." >&2
  319.     exit 1
  320. fi
  321. if svn --version >/dev/null 2>&1; then
  322.     echo "SVN = `which svn`" >> config.mak
  323. else
  324.     echo "You do not have a subversion client in your PATH." >&2
  325. fi
  326. if git --version>/dev/null 2>&1; then
  327.     echo "GIT = `which git`" >> config.mak
  328. else
  329.     echo "You do not have a Git client in your PATH." >&2
  330. fi
  331. if test -z "$CONTRIBS_RELEASE"; then
  332.     echo "EXTRA_CFLAGS += -DNDEBUG" >> config.mak
  333.     set +x
  334.     echo
  335.     echo "*****************************************************************"
  336.     echo "* If you need contribs with all debug information, run this     *"
  337.     echo "* line and compile the libraries on your own.                   *"
  338.     echo "* CONTRIBS_RELEASE=no ./bootstrap                               *"
  339.     echo "*****************************************************************"
  340. fi
  341. if test $HAVE_DARWIN_9; then
  342.     set +x
  343.     echo
  344.     echo "*****************************************************************"
  345.     echo "* We are using GCC-4.2 on OS X, so compilation WILL FAIL if it  *"
  346.     echo "* is NOT installed. *"
  347.     echo "*****************************************************************"
  348. fi
  349. if test $HAVE_DARWIN_32; then
  350.     set +x
  351.     echo
  352.     echo "*****************************************************************"
  353.     echo "* VLC will be compiled in 32bit mode.                           *" 
  354.     echo "*                                                               *"
  355.     echo "* Re-run with the x86_64-apple-darwin* argument to turn on      *" 
  356.     echo "* 64bit compilation for Intel-based Macs, whereas * is either   *"
  357.     echo "* 9 or 10 depending on your Darwin version.                     *"
  358.     echo "* There is NO PPC64 support right now.                          *"
  359.     echo "*****************************************************************"
  360. fi
  361. if test $HAVE_DARWIN_64; then
  362.     set +x
  363.     echo
  364.     echo "*****************************************************************"
  365.     echo "* VLC will be compiled in 64bit mode using the 10.5 SDK.        *" 
  366.     echo "*****************************************************************"
  367.     set -x
  368. fi