m4: with_pkg: fix PKG_HAVE_WITH_MODULES macro
[vlc.git] / Makefile.am
1 ###############################################################################
2 # Automake targets and declarations
3 ###############################################################################
4
5 # SUBDIRS stores the directories where a "make" is required when building
6 # something. DIST_SUBDIRS stores the directories where nothing is built but
7 # which have makefiles with distribution information.
8 #  - src (libvlccore) is nedeed by modules
9 SUBDIRS = compat doc po share src modules lib bin test
10 DIST_SUBDIRS = m4 $(SUBDIRS)
11
12 EXTRA_DIST = \
13         extras/include/x86/x86inc.asm \
14         extras/include/x86/x86util.asm \
15         extras/package/macosx/package.mak \
16         extras/package/win32/package.mak \
17         extras/package/npapi.am
18
19 dist_noinst_SCRIPTS = bootstrap
20 nodist_noinst_SCRIPTS = compile
21
22 BUILT_SOURCES_distclean =
23
24 BUILT_SOURCES = $(BUILT_SOURCES_distclean)
25
26 SUFFIXES = 
27
28 DISTCHECK_CONFIGURE_FLAGS = \
29         --enable-fast-install \
30         --disable-a52 \
31         --disable-alsa \
32         --disable-avcodec --disable-avformat \
33         --disable-postproc --disable-swscale \
34         --disable-dbus \
35         --disable-mad --disable-libmpeg2 \
36         --disable-faad --disable-skins2 \
37         --disable-live555 \
38         --disable-lua \
39         --disable-fribidi \
40         --disable-mkv \
41         --with-kde-solid='$${datadir}/kde4/apps'
42
43 ACLOCAL_AMFLAGS = -I m4
44 AUTOMAKE_OPTIONS = \
45         1.11 \
46         -Wall \
47         check-news \
48         dist-xz \
49         no-dist-gzip
50 #       std-options
51
52 ChangeLog: Makefile.am
53         rm -f -- "$@"
54         cd doc && $(MAKE) $(AM_MAKEFLAGS) changelogs
55         $(LN_S) -f doc/ChangeLog-2015 "$@"
56
57
58 ###############################################################################
59 # tools (needed for contrib)
60 ##############################################################################
61 EXTRA_DIST += \
62         extras/tools/bootstrap \
63         extras/tools/packages.mak \
64         extras/tools/tools.mak \
65         extras/tools/SHA512SUMS \
66         extras/tools/automake-clang.patch \
67         extras/tools/bison-macOS-7df04f9.patch \
68         extras/tools/bison-macOS-c41f233c.patch \
69         extras/tools/cmake-enable-ALPN-support-on-macOS-10.14.patch \
70         extras/tools/libtool-2.4.6-bitcode.patch \
71         extras/tools/libtool-2.4.6-clang-libs.patch \
72         extras/tools/libtool-2.4.6-response-files.patch \
73         extras/tools/libtool-2.4.6-san.patch \
74         extras/tools/ragel-6.8-javacodegen.patch
75
76 ###############################################################################
77 # Various utilities ( editor syntax files, D-Bus controller ... )
78 ##############################################################################
79 EXTRA_DIST += \
80         extras/analyser/zsh_completion.sh \
81         extras/analyser/zsh.cpp \
82         extras/analyser/emacs.init \
83         extras/analyser/vlc.vim \
84         extras/analyser/valgrind.suppressions \
85         extras/buildsystem/make.pl \
86         extras/misc/mpris.py \
87         extras/misc/mpris.xml
88
89 ###############################################################################
90 # Scripts for building dependencies.
91 ##############################################################################
92 EXTRA_DIST += \
93         contrib/bootstrap \
94         contrib/src
95
96 ###############################################################################
97 # Building libvlc
98 ###############################################################################
99
100 CLEANFILES =
101 DISTCLEANFILES = $(BUILT_SOURCES_distclean) compile doltcompile doltlibtool
102 MAINTAINERCLEANFILES = ChangeLog
103
104 # Shortcut for developers to rebuild the core (libvlc + vlc)
105 # Don't use it if you don't know what it is about.
106 # Don't complain if it doesn't work. -- Courmisch
107 libcompat:
108         cd compat && $(MAKE) $(AM_MAKEFLAGS)
109
110 libvlccore: libcompat
111         cd src && $(MAKE) $(AM_MAKEFLAGS) libvlccore.la
112
113 libvlc: libvlccore
114         cd lib && $(MAKE) $(AM_MAKEFLAGS) libvlc.la
115
116 core: libvlc vlc$(EXEEXT)
117         cd bin && $(MAKE) $(AM_MAKEFLAGS) vlc$(EXEEXT) vlc-static$(EXEEXT)
118
119 doc:
120         cd doc && $(MAKE) $(AM_MAKEFLAGS) doc
121
122 .PHONY: libvlc core doc
123
124 ###############################################################################
125 # Building aliases
126 ###############################################################################
127
128 ALL_ALIASES = cvlc rvlc svlc qvlc nvlc
129 if BUILD_VLC
130 bin_SCRIPTS = $(ALIASES)
131 endif
132 CLEANFILES += $(ALIASES) $(noinst_SCRIPTS)
133 EXTRA_SCRIPTS = $(ALL_ALIASES)
134
135 dist_noinst_SCRIPTS += make-alias
136
137 MKALIAS = bindir="$(bindir)" transform="$(transform)" program_prefix="$(program_prefix)" program_suffix="$(program_suffix)" $(top_srcdir)/make-alias $@
138
139 cvlc: make-alias Makefile
140         $(AM_V_GEN)$(MKALIAS) dummy
141
142 rvlc: make-alias Makefile
143         $(AM_V_GEN)$(MKALIAS) rc
144
145 svlc: make-alias Makefile
146         $(AM_V_GEN)$(MKALIAS) skins2
147
148 qvlc: make-alias Makefile
149         $(AM_V_GEN)$(MKALIAS) qt
150
151 nvlc: make-alias Makefile
152         $(AM_V_GEN)$(MKALIAS) ncurses
153
154 if BUILD_VLC
155 noinst_SCRIPTS = vlc$(EXEEXT)
156 endif
157
158 vlc$(EXEEXT):
159 if HAVE_DARWIN
160         $(AM_V_GEN)$(LN_S) -f bin/vlc-osx-static vlc
161 else
162         $(AM_V_GEN)$(LN_S) -f bin/vlc-static$(EXEEXT) vlc$(EXEEXT)
163 endif
164
165 TESTS = test/run_vlc.sh
166 dist_noinst_SCRIPTS += test/run_vlc.sh
167
168 if BUILD_VLC
169 ###############################################################################
170 # Installing plugins cache
171 ###############################################################################
172 install-exec-hook:
173         if test "$(build)" = "$(host)"; then \
174                 PATH="$(DESTDIR)$(bindir):$$PATH" \
175                 LD_LIBRARY_PATH="$(DESTDIR)$(libdir):$$LD_LIBRARY_PATH" \
176                 "$(DESTDIR)$(pkglibexecdir)/vlc-cache-gen$(EXEEXT)" \
177                          "$(DESTDIR)$(pkglibdir)/plugins" ; \
178         else \
179                 echo "Cross-compilation: cache generation skipped!" ; \
180         fi
181 endif
182
183 uninstall-hook:
184         rm -f -- "$(DESTDIR)$(pkglibdir)/plugins/plugins.dat"
185
186 ###############################################################################
187 # Test coverage
188 ###############################################################################
189
190 lcov-raw.out:
191         $(MAKE) $(AM_MAKEFLAGS) all
192         lcov -z -d .
193         $(MAKE) $(AM_MAKEFLAGS) check
194         lcov -c -d . -o lcov-raw.out
195
196 lcov.out: lcov-raw.out
197         lcov -r lcov-raw.out -o lcov.out \
198                 '*test*' 'contrib/*' '/usr/include/*' '*mock*'
199
200 lcov: lcov.out
201         rm -Rf lcov lcov.tmp
202         prefix="$$(cd "$(top_srcdir)" && pwd)" ; \
203         genhtml -p "$$prefix" -o lcov.tmp lcov.out >/dev/null
204         mv lcov.tmp lcov
205
206 .PHONY: lcov-raw.out
207
208
209 ###############################################################################
210 # PO translation files update
211 ###############################################################################
212 .PHONY: update-po
213
214 update-po:
215         cd po && $(MAKE) POTFILES vlc.pot update-po
216
217 ###############################################################################
218 # OS Packaging rules
219 ###############################################################################
220 include extras/package/macosx/package.mak
221 include extras/package/win32/package.mak
222 include extras/package/win32/msi.mak
223