MacOSCompile
This is an howto to compile VLC media player on Mac OS X, focused on VLC 2.0 and newer.
Contents
- 1 Pre-requisites
- 2 Get the source code
- 3 Build VLC with a single command
- 4 Build steps
- 5 What's wrong: troubleshooting
Pre-requisites
Apple Software
- You need at least MacOSX 10.7, Lion or later is strongly recommended, though.
- Developer Tools from Apple from http://developer.apple.com/technology/xcode.html
You need at least Xcode4.3.
Note: If using Xcode 4.3, the command line tools must be installed manually through preferences.
Xcode select on Xcode 4.3
If you are on Xcode 4.3 with no previous Xcode installation , you probably need to run xcode select to point to your xcode developer directory.
xcrun clang
If this outputs 'Error: No developer directory...', then use xcode-select to select the developer directory within the Xcode package.
something like:
sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer
Configure the environment
On Mac OS X 10.7 VLC needs to be compiled using Apple's clang compiler in its latest version. To use this compiler, you need to export the respective variables. In a Bourne Shell, type this (if Xcode is installed to its default location; bash is the default shell on OS X):
export CC="xcrun clang" export CXX="xcrun clang++" export OBJC="xcrun clang"
If you are using a C-Shell, you need to use the setenv command of course.
Get the source code
git clone git://git.videolan.org/vlc.git
Build VLC with a single command
Setup a build folder:
cd vlc && mkdir build && cd build
And run the build:
../extras/package/macosx/build.sh
Wait and you are finished
You can see more options for this build (change arch or sdk):
../extras/package/macosx/build.sh -h
Build steps
Now, if you prefer, you can read the following detailed information on how the build internally works:
Additional development tools
You need development tools, notably all the autotools, to build VLC correctly.
Here is how:
cd vlc/extras/tools ./bootstrap && make cd ../..
Important: set the new PATH.
export PATH=$PWD/extras/tools/build/bin:$PATH
SDK selection
Set the OSX_Version to your current OSX Version
export OSX_VERSION=10.7
Prepare 3rd party libraries
Before compiling VLC, you need lots of other libraries. Here is how to get them:
cd contrib mkdir -p osx && cd osx ../bootstrap --host=x86_64-apple-darwin10 --build=x86_64-apple-darwin10
Prebuilt libraries (recommended)
If you want to download a prebuilt package of all the needed libraries.
make prebuilt
And then skip to bootstrap section of this page.
Build your own libraries (not for the faint-hearted)
If you want to build from source a package in the contribs:
make -j4 .gettext export PATH=$PWD/../x86_64-apple-darwin10/bin:$PATH
Then:
make -j4
If you had no errors, the 3rd party libraries (contrib) are built correctly and you can proceed to the next step.
Go Back
Go back to the VLC source directory:
cd ../..
Bootstrap VLC
This will create the configure script:
./bootstrap
Configure the VLC build
Create a build folder:
mkdir -p build && cd build
To list the different options of configure:
../extras/package/macosx/configure.sh --help
To build a binary with the previously installed x86_64-apple-darwin10 contrib:
../extras/package/macosx/configure.sh --enable-debug --host=x86_64-apple-darwin10 --build=x86_64-apple-darwin10
Build VLC
Just do:
make -j4
and wait...
if you want to avoid recompiling VLC.app every time during development use
make VLC-dev.app
Package VLC Application for Mac
If you want a disk-image:
make package-macosx
Sign VLC Application for Mac
If you want to sign your application with a certificate, for example for Gatekeeper, you need to run:
extras/package/macosx/codesign.sh -i "certificate name"
What's wrong: troubleshooting
3rd party packagers and PATH
Pay careful attention to remove any reference to 3rd party package managersfrom your environment. This is important to avoid conflicts between your package manager (homebrew, fink, macports...) and the contrib package manager we use to build our contrib.
It shouldn't be necessary, but it can happen.
git must still be accessible though!
unset PKG_CONFIG_PATH unset PKG_CONFIG_LIBDIR export PATH=$PWD/build/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin