]> git.sesse.net Git - vlc/blob - contrib/src/vpx/rules.mak
97ec9399e3ee6d900d961cc7ea83aba85db29fa8
[vlc] / contrib / src / vpx / rules.mak
1 # libvpx
2
3 VPX_VERSION := v1.3.0
4 VPX_URL := http://webm.googlecode.com/files/libvpx-$(VPX_VERSION).tar.bz2
5
6 $(TARBALLS)/libvpx-$(VPX_VERSION).tar.bz2:
7         $(call download,$(VPX_URL))
8
9 .sum-vpx: libvpx-$(VPX_VERSION).tar.bz2
10
11 libvpx: libvpx-$(VPX_VERSION).tar.bz2 .sum-vpx
12         $(UNPACK)
13         $(APPLY) $(SRC)/vpx/libvpx-sysroot.patch
14         $(APPLY) $(SRC)/vpx/libvpx-no-cross.patch
15         $(APPLY) $(SRC)/vpx/libvpx-mac.patch
16         $(APPLY) $(SRC)/vpx/libvpx-ios.patch
17         $(MOVE)
18
19 DEPS_vpx =
20
21 ifdef HAVE_CROSS_COMPILE
22 VPX_CROSS := $(HOST)-
23 else
24 VPX_CROSS :=
25 endif
26
27 VPX_LDFLAGS := $(LDFLAGS)
28
29 ifeq ($(ARCH),arm)
30 VPX_ARCH := armv7
31 else ifeq ($(ARCH),i386)
32 VPX_ARCH := x86
33 else ifeq ($(ARCH),mips)
34 VPX_ARCH := mips32
35 else ifeq ($(ARCH),ppc)
36 VPX_ARCH := ppc32
37 else ifeq ($(ARCH),ppc64)
38 VPX_ARCH := ppc64
39 else ifeq ($(ARCH),sparc)
40 VPX_ARCH := sparc
41 else ifeq ($(ARCH),x86_64)
42 VPX_ARCH := x86_64
43 endif
44
45 ifdef HAVE_ANDROID
46 VPX_OS := android
47 else ifdef HAVE_LINUX
48 VPX_OS := linux
49 else ifdef HAVE_MACOSX
50 ifeq ($(OSX_VERSION),10.5)
51 VPX_OS := darwin9
52 else
53 VPX_OS := darwin10
54 endif
55 else ifdef HAVE_IOS
56 VPX_OS := darwin11
57 else ifdef HAVE_SOLARIS
58 VPX_OS := solaris
59 else ifdef HAVE_WIN64 # must be before WIN32
60 VPX_OS := win64
61 else ifdef HAVE_WIN32
62 VPX_OS := win32
63 else ifdef HAVE_BSD
64 VPX_OS := linux
65 endif
66
67 VPX_TARGET := generic-gnu
68 ifdef VPX_ARCH
69 ifdef VPX_OS
70 VPX_TARGET := $(VPX_ARCH)-$(VPX_OS)-gcc
71 endif
72 endif
73
74 VPX_CONF := \
75         --enable-runtime-cpu-detect \
76         --disable-docs \
77         --disable-examples \
78         --disable-unit-tests \
79         --disable-install-bins \
80         --disable-install-docs
81
82 ifndef BUILD_ENCODERS
83         VPX_CONF += --disable-vp8-encoder --disable-vp9-encoder
84 endif
85
86 ifndef HAVE_WIN32
87 VPX_CONF += --enable-pic
88 endif
89 ifdef HAVE_MACOSX
90 VPX_CONF += --sdk-path=$(MACOSX_SDK)
91 endif
92 ifdef HAVE_IOS
93 VPX_CONF += --sdk-path=$(IOS_SDK) --enable-vp8-decoder --disable-vp8-encoder --disable-vp9-encoder
94 VPX_LDFLAGS := "-L$(IOS_SDK)/usr/lib -arch $(ARCH) -syslibroot $(IOS_SDK) -ios_version_min 6.1"
95 endif
96 ifdef HAVE_ANDROID
97 # vpx configure.sh overrides our sysroot and it looks for it itself, and
98 # uses that path to look for the compiler (which we already know)
99 VPX_CONF += --sdk-path=$(shell dirname $(shell which $(HOST)-gcc))
100 # needed for cpu-features.h
101 VPX_CONF += --extra-cflags="-I $(ANDROID_NDK)/sources/cpufeatures/"
102 endif
103
104 .vpx: libvpx
105         cd $< && LDFLAGS="$(VPX_LDFLAGS)" CROSS=$(VPX_CROSS) ./configure --target=$(VPX_TARGET) \
106                 $(VPX_CONF) --prefix=$(PREFIX)
107         cd $< && $(MAKE)
108         cd $< && ../../../contrib/src/pkg-static.sh vpx.pc
109         cd $< && $(MAKE) install
110         touch $@