summaryrefslogtreecommitdiffstats
path: root/contrib/ffmpeg/module.defs
blob: 7e245d8e54fbebc8332e44f5475032a7e43a22b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
$(eval $(call import.MODULE.defs,FFMPEG,ffmpeg,YASM BZIP2 ZLIB FDKAAC))
$(eval $(call import.CONTRIB.defs,FFMPEG))

FFMPEG.FETCH.url = http://download.handbrake.fr/handbrake/contrib/libav-v9.3.tar.bz2

FFMPEG.CONFIGURE.deps =
FFMPEG.CONFIGURE.env  =
FFMPEG.CONFIGURE.host =

FFMPEG.CONFIGURE.extra = \
    --enable-gpl \
    --disable-doc \
    --disable-bsfs \
    --disable-avconv \
    --disable-avplay \
    --disable-avprobe \
    --disable-avdevice \
    --disable-avfilter \
    --disable-avserver \
    --disable-muxers \
    --disable-network \
    --disable-hwaccels \
    --disable-encoders \
    --enable-encoder=aac \
    --enable-encoder=ac3 \
    --enable-encoder=flac \
    --enable-encoder=mpeg2video \
    --enable-encoder=mpeg4 \
    --enable-encoder=snow \
    --enable-zlib \
    --enable-bzlib \
    --cc="$(FFMPEG.GCC.gcc)" \
    --extra-ldflags="$(call fn.ARGS,FFMPEG.GCC,*archs *sysroot *minver ?extra) -L$(call fn.ABSOLUTE,$(CONTRIB.build/)lib)"

ifeq (1,$(FEATURE.fdk_aac))
FFMPEG.CONFIGURE.extra += \
    --enable-nonfree \
    --enable-libfdk-aac \
    --enable-encoder=libfdk_aac
endif

## check against tuple: B-SYSTEM where B is { 0 | 1 } for cross-compiling flag
ifeq (0-cygwin,$(BUILD.cross)-$(BUILD.system))
    FFMPEG.CONFIGURE.extra += --enable-pthreads --enable-memalign-hack
    FFMPEG.GCC.args.extra += -fno-common
else ifeq (darwin,$(BUILD.system))
    ## section for darwin-archs
    FFMPEG.CONFIGURE.extra += --enable-pthreads --enable-cross-compile --arch=$(BUILD.machine) --target-os=darwin
else ifeq (1-mingw,$(BUILD.cross)-$(BUILD.system))
    FFMPEG.CONFIGURE.extra += \
        --enable-w32threads \
        --enable-memalign-hack \
        --target-os=mingw32 \
        --arch=i386 \
        --enable-cross-compile --cross-prefix=$(BUILD.cross.prefix)
    FFMPEG.GCC.args.extra += -fno-common
else
    FFMPEG.CONFIGURE.extra += --enable-pthreads
endif

ifneq (none,$(FFMPEG.GCC.g))
	FFMPEG.CONFIGURE.extra += --enable-debug

ifeq (max,$(FFMPEG.GCC.g))
    FFMPEG.CONFIGURE.extra += --extra-cflags="$(call fn.ARGS,FFMPEG.GCC,*archs *sysroot *minver ?extra) -I$(call fn.ABSOLUTE,$(CONTRIB.build/)include) -DDEBUG"
else
    FFMPEG.CONFIGURE.extra += --extra-cflags="$(call fn.ARGS,FFMPEG.GCC,*archs *sysroot *minver ?extra) -I$(call fn.ABSOLUTE,$(CONTRIB.build/)include) -DNDEBUG"
endif

else
	FFMPEG.CONFIGURE.extra += --disable-debug
    FFMPEG.CONFIGURE.extra += --extra-cflags="$(call fn.ARGS,FFMPEG.GCC,*archs *sysroot *minver ?extra) -I$(call fn.ABSOLUTE,$(CONTRIB.build/)include) -DNDEBUG"
endif

ifeq (none,$(FFMPEG.GCC.O))
	FFMPEG.CONFIGURE.extra += --disable-optimizations
endif

## enable compile verbosity
FFMPEG.BUILD.extra = V=1

##
## llvm inline assembler (used in llvm-gcc and clang) runs out of registers
## on darwin i386 - unclear if it is a source code or llvm bug.
##
ifeq (darwin-i386,$(BUILD.system)-$(BUILD.machine))
    ## optimize mode hack: use clang
    ifneq (none,$(FFMPEG.GCC.O))
        FFMPEG.GCC.gcc = clang
    endif

    ## debug mode hack: omit frame pointer
    ifneq (none,$(FFMPEG.GCC.g))
        FFMPEG.GCC.args.extra += -fomit-frame-pointer
    endif
endif

## For POSIX.1-2001
ifeq (solaris,$(BUILD.system))
    FFMPEG.CONFIGURE.extra += --extra-libs=/usr/lib/values-xpg6.o
endif

## MPC8 Doesn't compile on SPARC
ifeq (solaris-sparc,$(BUILD.system)-$(BUILD.machine))
    FFMPEG.CONFIGURE.extra += --disable-demuxer=mpc8
endif

ifeq (1,$(FEATURE.local_yasm))
    FFMPEG.CONFIGURE.env = PATH="$(call fn.ABSOLUTE,$(CONTRIB.build/)bin):$(PATH)"
    FFMPEG.BUILD.env = PATH="$(call fn.ABSOLUTE,$(CONTRIB.build/)bin):$(PATH)"
endif