• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..18-Jun-2021-

SDL_image/H17-Jan-2021-8971

a52/H27-Jul-2020-2,1311,903

aom/H07-Jun-2021-169148

aribb24/H24-Nov-2017-6450

aribb25/H24-Nov-2017-3123

asdcplib/H12-Jan-2018-4,6884,556

ass/H13-Jan-2020-262234

bluray/H06-Apr-2021-10989

bpg/H24-Nov-2017-3727

breakpad/H16-Dec-2018-1,4231,411

caca/H17-Jan-2021-126109

cddb/H20-Mar-2021-194167

chromaprint/H17-Jan-2021-7260

crystalhd/H24-Nov-2017-2517

d3d11/H26-May-2021-849745

d3d9/H18-Jan-2021-507474

daala/H24-Nov-2017-3528

dav1d/H26-May-2021-3021

dca/H28-Mar-2020-3628

directx/H15-Jan-2019-2820

dshow/H15-Jan-2019-2517

dvbpsi/H16-Jul-2019-156133

dvdcss/H20-Apr-2021-2618

dvdnav/H20-Apr-2021-3526

dvdread/H18-Apr-2021-3426

dxvahd/H19-Mar-2020-453391

ebml/H20-Mar-2021-2517

faad2/H27-Jul-2020-140118

ffi/H24-Nov-2017-2518

ffmpeg/H09-Jun-2021-1,4091,181

flac/H27-Jul-2020-242209

fluid/H24-Nov-2017-8873

fluidlite/H17-Jan-2021-3223

fontconfig/H27-Jul-2020-296258

freetype2/H07-Jun-2021-3425

fribidi/H31-Mar-2020-7059

gcrypt/H24-Oct-2020-681588

gettext/H18-Jan-2021-203170

glew/H27-Jul-2020-141126

glib/H24-Nov-2017-2820

gme/H17-Jan-2021-7055

gmp/H24-Oct-2020-196161

gnutls/H26-May-2021-366314

goom/H27-Jul-2020-386334

gpg-error/H24-Oct-2020-350303

growl/H24-Oct-2020-252220

gsm/H24-Nov-2017-7761

harfbuzz/H10-Jun-2021-523470

iconv/H16-Feb-2019-1,7041,683

jack/H24-Nov-2017-5844

jpeg/H02-Dec-2018-3828

kate/H05-Jan-2018-3223

lame/H16-Jun-2021-130113

libarchive/H20-Mar-2021-754679

libdsm/H27-Jul-2020-4030

libmpeg2/H27-Jul-2020-441423

libplacebo/H27-Jul-2020-157143

libtasn1/H02-Dec-2018-3926

libxml2/H14-Mar-2018-160137

live555/H20-Mar-2021-662588

lua/H27-Jul-2020-379327

mad/H02-Dec-2018-1,2791,090

matroska/H20-Mar-2021-3020

mfx/H27-Jul-2020-8167

microdns/H27-Jul-2020-145119

modplug/H18-May-2020-8368

mpcdec/H17-Jan-2021-9578

mpg123/H16-Jun-2021-9377

mysofa/H17-Jan-2021-3827

ncurses/H24-Oct-2020-3122

nettle/H17-Jan-2021-7460

nfs/H20-Mar-2021-4132

ogg/H24-Nov-2017-10186

openjpeg/H17-Jan-2021-193162

opus/H16-Dec-2018-3323

orc/H24-Nov-2017-9884

png/H15-Feb-2020-7862

postproc/H17-Jan-2021-154130

projectM/H17-Jan-2021-407353

protobuf/H27-Jul-2020-6249

pthreads/H27-Jul-2020-259222

qt/H24-Oct-2020-1,7461,574

qtsvg/H27-Jul-2020-7256

regex/H24-Nov-2017-4130

samplerate/H24-Nov-2017-2922

schroedinger/H24-Nov-2017-5337

sdl/H05-Jan-2018-6252

shout/H27-Jul-2020-212178

sidplay2/H07-Apr-2020-239213

smb2/H20-Mar-2021-2518

soxr/H17-Jan-2021-243210

sparkle/H17-Jan-2021-3022

spatialaudio/H17-Jan-2021-3020

speex/H27-Jul-2020-3930

speexdsp/H27-Jul-2020-4435

sqlite/H24-Nov-2017-2718

srt/H17-Jan-2021-177147

ssh2/H24-Nov-2017-155127

taglib/H17-Jan-2021-200167

theora/H15-Feb-2020-10893

tiff/H17-May-2018-2821

tiger/H24-Nov-2017-7355

tremor/H24-Oct-2020-5241

twolame/H27-Jul-2020-3224

upnp/H27-Jul-2020-542478

vncclient/H21-Apr-2020-156139

vorbis/H27-Jul-2020-8469

vpx/H16-Jun-2021-358323

x264/H17-Jan-2021-125104

x265/H17-Jan-2021-8067

xau/H24-Nov-2017-2718

xcb/H24-Nov-2017-6150

xcb-proto/H24-Nov-2017-2618

xorg-macros/H24-Nov-2017-2517

xproto/H15-Feb-2020-2718

zlib/H24-Nov-2017-4938

zvbi/H16-Jun-2021-385339

READMEH A D24-Nov-20173.6 KiB12689

change_prefix.shH A D24-Nov-20171.9 KiB6332

gen-meson-crossfile.pyH A D21-Apr-20201.7 KiB5335

get-arch.shH A D06-Jan-2018401 3329

main.makH A D17-Jan-202117.1 KiB645574

pkg-static.shH A D24-Nov-2017929 3930

README

1Writing rules
2==============
3
4At the bare minimum, a package in contrib must provide two Makefile
5targets in src/foo/rules.mak:
6 - .foo to build and install the package, and
7 - .sum-foo to fetch or create a source tarball and verify it,
8where foo the package name.
9
10
11Tarball
12--------
13
14.sum-foo typically depends on a separate target that fetches the source
15code. In that case, .sum-foo needs only verify that the tarball
16is correct, e.g.:
17
18
19	$(TARBALLS)/libfoo-$(FOO_VERSION).tar.bz2:
20		$(call download,$(FOO_URL))
21
22	# This will use the default rule: check SHA-512
23	.sum-foo: libfoo-$(FOO_VERSION).tar.bz2
24
25NOTE: contrary to the previous VLC contribs, this system always uses
26a source tarball, even if the source code is downloaded from a VCS.
27This serves two purposes:
28 - offline builds (or behind a firewall),
29 - source code requirements compliance.
30
31
32Compilation
33------------
34
35Similarly, .foo typically depends on the source code directory. In this
36case, care must be taken that the directory name only exists if the
37source code is fully ready. Otherwise Makefile dependencies will break
38(this is not an issue for files, only directories).
39
40	libfoo: libfoo-$(FOO_VERSION).tar.bz2 .sum-foo
41		$(UNPACK) # to libfoo-$(FOO_VERSION)
42		### apply patches here ###
43		# last command: make the target directory
44		$(MOVE)
45
46	.foo: libfoo
47		cd $< && $(HOSTVARS) ./configure $(HOSTCONF)
48		cd $< && $(MAKE) install
49		touch $@
50
51Conditional builds
52-------------------
53
54As far as possible, build rules should determine automatically whether
55a package is useful (for VLC media player) or not. Useful packages
56should be listed in the PKGS special variable. See some examples:
57
58	# FFmpeg is always useful
59	PKGS += ffmpeg
60
61	# DirectX headers are useful only on Windows
62	ifdef HAVE_WIN32
63	PKGS += directx
64	endif
65
66	# x264 is only useful when stream output is enabled
67	ifdef BUILD_ENCODERS
68	PKGS += x264
69	endif
70
71If a package is a dependency of another package, but it is not a
72direct dependency of VLC, then it should NOT be added to PKGS. The
73build system will automatically build it via dependencies (see below).
74
75Some packages may be provided by the target system. This is especially
76common when building natively on Linux or BSD. When this situation is
77detected, the package name should be added to the PKGS_FOUND special
78variable. The build system will then skip building this package:
79
80	# Asks pkg-config if foo version 1.2.3 or later is present:
81	ifeq ($(call need_pkg,'foo >= 1.2.3'),)
82	PKGS_FOUND += foo
83	endif
84
85Note: The need_pkg function always return 1 during cross-compilation.
86This is a known bug.
87
88
89Dependencies
90-------------
91
92If package bar depends on package foo, the special DEPS_bar variable
93should be defined as follow:
94
95	DEPS_bar = foo $(DEPS_foo)
96
97Note that dependency resolution is unfortunately _not_ recursive.
98Therefore $(DEPS_foo) really should be specified explicitly as shown
99above. (In practice, this will not make any difference insofar as there
100are no pure second-level nested dependencies. For instance, libass
101depends on FontConfig, which depends on FreeType, but libass depends
102directly on FreeType anyway.)
103
104Also note that DEPS_bar is set "recursively" with =, rather than
105"immediately" with :=. This is so that $(DEPS_foo) is expanded
106correctly, even if DEPS_foo it is defined after DEPS_bar.
107
108Implementation note:
109
110	If you must know, the main.mak build hackery will automatically
111	emit a dependency from .bar onto .dep-foo:
112
113		.bar: .dep-foo
114
115	...whereby .dep-foo will depend on .foo:
116
117		.dep-foo: .foo
118			touch $@
119
120	...unless foo was detected in the target distribution:
121
122		.dep-foo:
123			touch $@
124
125	So you really only need to set DEPS_bar.
126