]> git.sesse.net Git - vlc/blob - Makefile.am
Fix linking with C++ builtins
[vlc] / Makefile.am
1 ###############################################################################
2 # Automake targets and declarations
3 ###############################################################################
4
5 NULL =
6
7 # SUBDIRS stores the directories where a "make" is required when building
8 # something. DIST_SUBDIRS stores the directories where nothing is built but
9 # which have makefiles with distribution information.
10 #  - intl should come before modules and . because all the code uses gettext
11 #  - modules should come before . because vlc needs the builtins
12 #  - . should come before mozilla/bindings because the plugin needs libvlc_pic.a
13 #  - po should come before . because VLC.app needs the pofiles
14 #  - loader should come before modules because some plugins need it
15 SUBDIRS = intl loader src modules po . mozilla bindings activex share m4 doc
16 DIST_SUBDIRS = $(SUBDIRS) debian ipkg
17
18 EXTRA_DIST = \
19         HACKING \
20         INSTALL.win32 \
21         INSTALL.wince \
22         vlc.exe.manifest \
23         MAINTAINERS \
24         README.MacOSX.rtf \
25         bootstrap \
26         toolbox \
27         vlc-api.pl \
28         vlc-config.in.in \
29         vlc.spec \
30         vlc.spec.mdk \
31         vlc.win32.nsi \
32         $(NULL)
33
34 BUILT_SOURCES_distclean = vlc-config compile
35 BUILT_SOURCES_clean = macosx-sdk
36
37 BUILT_SOURCES = $(BUILT_SOURCES_distclean) $(BUILT_SOURCES_clean)
38
39 SUFFIXES = 
40
41 DISTCHECK_CONFIGURE_FLAGS = --disable-dvd --disable-mad --disable-libmpeg2 \
42         --disable-ffmpeg --disable-faad --disable-skins2
43
44 # Tell aclocal to use -I m4. Wonder if it really works.
45 ACLOCAL_AMFLAGS = -I m4
46
47 # XXX: these flags could be set in configure.ac, but we set them here
48 # because old versions of automake don't support them in configure.ac.
49 AUTOMAKE_OPTIONS = dist-bzip2 subdir-objects
50
51 ###############################################################################
52 # MacOS X project
53 ###############################################################################
54
55 EXTRA_DIST += \
56         extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib \
57         extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib \
58         extras/MacOSX/Resources/English.lproj/MainMenu.nib/keyedobjects.nib \
59         extras/MacOSX/Resources/English.lproj/About.nib/classes.nib \
60         extras/MacOSX/Resources/English.lproj/About.nib/info.nib \
61         extras/MacOSX/Resources/English.lproj/About.nib/keyedobjects.nib \
62         extras/MacOSX/Resources/English.lproj/Open.nib/classes.nib \
63         extras/MacOSX/Resources/English.lproj/Open.nib/info.nib \
64         extras/MacOSX/Resources/English.lproj/Open.nib/keyedobjects.nib \
65         extras/MacOSX/Resources/English.lproj/Preferences.nib/classes.nib \
66         extras/MacOSX/Resources/English.lproj/Preferences.nib/info.nib \
67         extras/MacOSX/Resources/English.lproj/Preferences.nib/keyedobjects.nib \
68         extras/MacOSX/Resources/English.lproj/Wizard.nib/classes.nib \
69         extras/MacOSX/Resources/English.lproj/Wizard.nib/info.nib \
70         extras/MacOSX/Resources/English.lproj/Wizard.nib/keyedobjects.nib \
71         extras/MacOSX/Resources/English.lproj/Bookmarks.nib/classes.nib \
72         extras/MacOSX/Resources/English.lproj/Bookmarks.nib/info.nib \
73         extras/MacOSX/Resources/English.lproj/Bookmarks.nib/keyedobjects.nib \
74         extras/MacOSX/Resources/English.lproj/Extended.nib/classes.nib \
75         extras/MacOSX/Resources/English.lproj/Extended.nib/info.nib \
76         extras/MacOSX/Resources/English.lproj/Extended.nib/keyedobjects.nib \
77         extras/MacOSX/Resources/English.lproj/SFilters.nib/classes.nib \
78         extras/MacOSX/Resources/English.lproj/SFilters.nib/info.nib \
79         extras/MacOSX/Resources/English.lproj/SFilters.nib/keyedobjects.nib \
80         extras/MacOSX/Resources/English.lproj/Update.nib/classes.nib \
81         extras/MacOSX/Resources/English.lproj/Update.nib/info.nib \
82         extras/MacOSX/Resources/English.lproj/Update.nib/keyedobjects.nib \
83         extras/MacOSX/Resources/English.lproj/Interaction.nib/classes.nib \
84         extras/MacOSX/Resources/English.lproj/Interaction.nib/info.nib \
85         extras/MacOSX/Resources/English.lproj/Interaction.nib/keyedobjects.nib \
86         extras/MacOSX/Resources/English.lproj/InfoPlist.strings \
87         extras/MacOSX/Resources/a52.icns \
88         extras/MacOSX/Resources/aac.icns \
89         extras/MacOSX/Resources/asf.icns \
90         extras/MacOSX/Resources/asx.icns \
91         extras/MacOSX/Resources/avi.icns \
92         extras/MacOSX/Resources/bin.icns \
93         extras/MacOSX/Resources/cue.icns \
94         extras/MacOSX/Resources/dat.icns \
95         extras/MacOSX/Resources/divx.icns \
96         extras/MacOSX/Resources/dv.icns \
97         extras/MacOSX/Resources/generic.icns \
98         extras/MacOSX/Resources/m3u.icns \
99         extras/MacOSX/Resources/mov.icns \
100         extras/MacOSX/Resources/mp3.icns \
101         extras/MacOSX/Resources/mp4.icns \
102         extras/MacOSX/Resources/mpeg.icns \
103         extras/MacOSX/Resources/mpeg1.icns \
104         extras/MacOSX/Resources/mpeg2.icns \
105         extras/MacOSX/Resources/mpeg4.icns \
106         extras/MacOSX/Resources/mpg.icns \
107         extras/MacOSX/Resources/ogg.icns \
108         extras/MacOSX/Resources/ogm.icns \
109         extras/MacOSX/Resources/pls.icns \
110         extras/MacOSX/Resources/srt.icns \
111         extras/MacOSX/Resources/sub.icns \
112         extras/MacOSX/Resources/vlc.icns \
113         extras/MacOSX/Resources/vob.icns \
114         extras/MacOSX/Resources/wma.icns \
115         extras/MacOSX/Resources/wmv.icns \
116         extras/MacOSX/Resources/pause.png \
117         extras/MacOSX/Resources/pause_blue.png \
118         extras/MacOSX/Resources/play.png \
119         extras/MacOSX/Resources/play_blue.png \
120         extras/MacOSX/Resources/stop.png \
121         extras/MacOSX/Resources/stop_blue.png \
122         extras/MacOSX/Resources/display.png \
123         extras/MacOSX/Resources/display_slider.png \
124         extras/MacOSX/Resources/display_track.png \
125         extras/MacOSX/Resources/equalizerdrawer_active.png \
126         extras/MacOSX/Resources/equalizerdrawer_blue.png \
127         extras/MacOSX/Resources/fullscreen_active.png \
128         extras/MacOSX/Resources/fullscreen_blue.png \
129         extras/MacOSX/Resources/next_active.png \
130         extras/MacOSX/Resources/next_blue.png \
131         extras/MacOSX/Resources/playlistdrawer_active.png \
132         extras/MacOSX/Resources/playlistdrawer_blue.png \
133         extras/MacOSX/Resources/previous_active.png \
134         extras/MacOSX/Resources/previous_blue.png \
135         extras/MacOSX/Resources/skip_forward_active.png \
136         extras/MacOSX/Resources/skip_forward_blue.png \
137         extras/MacOSX/Resources/skip_previous_active.png \
138         extras/MacOSX/Resources/skip_previous_blue.png \
139         extras/MacOSX/Resources/volume_high.png \
140         extras/MacOSX/Resources/volume_low.png \
141         extras/MacOSX/Resources/volumeslider_blue.png \
142         extras/MacOSX/Resources/volumeslider_normal.png \
143         extras/MacOSX/Resources/volumetrack.png \
144         extras/MacOSX/Resources/about_bg.png \
145         extras/MacOSX/Resources/vlc.scriptSuite \
146         extras/MacOSX/Resources/vlc.scriptTerminology \
147         extras/MacOSX/Resources/README \
148         extras/MacOSX/vlc.pbproj/project.pbxproj \
149         extras/MacOSX/Delete_Preferences.app/Contents/Info.plist \
150         extras/MacOSX/Delete_Preferences.app/Contents/PkgInfo \
151         extras/MacOSX/Delete_Preferences.app/Contents/MacOS/applet \
152         extras/MacOSX/Delete_Preferences.app/Contents/Resources/description.rtfd/TXT.rtf \
153         extras/MacOSX/Delete_Preferences.app/Contents/Resources/applet.icns \
154         extras/MacOSX/Delete_Preferences.app/Contents/Resources/applet.rsrc \
155         extras/MacOSX/Delete_Preferences.app/Contents/Resources/Scripts/main.scpt \
156         extras/Makefile \
157         extras/zsh.cpp \
158         $(NULL)
159
160 ###############################################################################
161 # MS Visual Studio and eMbedded Visual Studio projects
162 ###############################################################################
163
164 EXTRA_DIST += \
165         msvc/vlc.dsw \
166         msvc/libvlc.dsp.in \
167         msvc/plugins.dsp.in \
168         msvc/vlc.dsp.in \
169         msvc/config.h.in \
170         msvc/modules_builtin_msvc.h \
171         evc/vlc.vcw \
172         evc/libvlc.vcp.in \
173         evc/vlc.vcp.in \
174         evc/plugins.vcp.in \
175         evc/errno.h \
176         evc/config.h.in \
177         evc/modules_builtin_evc.h \
178         $(NULL)
179
180 dist-hook:
181         cd $(distdir) && srcdir=. $(SHELL) ./toolbox --update-vc
182         distdir=$(distdir) srcdir=$(srcdir) $(SHELL) $(srcdir)/toolbox --dist-contrib
183
184 ###############################################################################
185 # Building libvlc
186 ###############################################################################
187
188 bin_SCRIPTS = vlc-config
189 vlc-config: $(top_builddir)/config.status $(top_builddir)/vlc-config.in
190         $(SHELL) ./config.status --file=$@
191         chmod 0755 $@
192
193 vlc-config.in: vlc-config.in.in
194         ./config.status --recheck
195
196 CLEANFILES = $(BUILT_SOURCES_clean) stamp-builtin
197 DISTCLEANFILES = $(BUILT_SOURCES_distclean) vlc-config.in compile
198
199 ###############################################################################
200 # Building vlc
201 ###############################################################################
202
203 .PHONY: libvlc
204
205 # Shortcut for developpers to rebuild the core (libvlc + vlc)
206 # Don't use it if you don't know what it is about.
207 # Don't complain if it doesn't work. -- Courmisch
208 core: libvlc vlc$(EXEEXT)
209
210 libvlc:
211         cd src && $(MAKE) all
212
213 bin_PROGRAMS = vlc
214
215 vlc_SOURCES = src/vlc.c
216 # Ugly kludge so that automake defines $(CXXLINK)
217 EXTRA_vlc_SOURCES = extras/zsh.cpp
218
219 # Work around a bug in the arm-wince-pe linker
220 if HAVE_WINCE
221 vlc_WORKAROUNDLDFLAGS = $(LIB_libvlc)
222 endif
223
224 vlc_CFLAGS = `$(VLC_CONFIG) --cflags vlc`
225 vlc_LDFLAGS = $(LDFLAGS_libvlc) $(vlc_WORKAROUNDLDFLAGS)
226 vlc_LDADD = $(DATA_win32_rc) $(INCLUDED_LIBINTL)
227
228 # We use DEPENDENCIES_vlc instead of vlc_DEPENDENCIES because of an
229 # old automake-1.5 bug (automake/279).
230 DEPENDENCIES_vlc = $(LIB_libvlc) $(DATA_win32_rc)
231
232 if BUILD_SHARED
233 vlc_LDFLAGS += `$(VLC_CONFIG) --libs vlc` -Wl,-rpath $(libdir) -Lsrc -lvlc
234 LIB_libvlc = src/libvlc$(LIBEXT)
235 else
236 vlc_LDFLAGS += `$(VLC_CONFIG) --libs vlc builtin`
237 vlc_LDADD += $(LIB_libvlc)
238 LIB_libvlc = src/libvlc.a
239 DEPENDENCIES_vlc += stamp-builtin
240 endif
241
242 vlc$(EXEEXT): $(vlc_OBJECTS) $(DEPENDENCIES_vlc)
243         @rm -f vlc$(EXEEXT)
244         @case `$(VLC_CONFIG) --linkage vlc builtin` in \
245           c++) cmd="$(CXXLINK)" ;; \
246           objc) cmd="$(OBJCLINK)" ;; \
247           c|*) cmd="$(LINK)" ;; \
248         esac ; \
249         cmd="$$cmd $(vlc_OBJECTS) $(vlc_LDADD) $(vlc_LDFLAGS) $(LIBS)" ; \
250         echo $$cmd ; \
251         eval $$cmd
252
253 if HAVE_BEOS
254 DATA_noinst_beos = vlc-bundle
255 vlc-bundle: vlc
256         rm -Rf $(top_builddir)/vlc-bundle ; mkdir -p $(top_builddir)/vlc-bundle
257         cp $(top_builddir)/vlc $(top_builddir)/vlc-bundle/
258         xres -o $(top_builddir)/vlc-bundle/vlc $(srcdir)/share/vlc_beos.rsrc
259         for i in "" `$(VLC_CONFIG) --target plugin` ; do \
260           if test -n "$$i" ; then \
261             mkdir -p $(top_builddir)/vlc-bundle/plugins ; \
262             cp "$$i$(LIBEXT)" $(top_builddir)/vlc-bundle/plugins/ ; \
263           fi ; \
264         done
265         if test -d $(top_builddir)/extras/contrib/vlc-lib ; then \
266           mkdir -p $(top_builddir)/vlc-bundle/lib ; \
267           for i in $(top_builddir)/extras/contrib/vlc-lib/*.so ; do \
268             cp $$i $(top_builddir)/vlc-bundle/lib/ ; \
269           done ; \
270         fi
271         for i in $(ALL_LINGUAS); do \
272           mkdir -p "$(top_builddir)/vlc-bundle/locale/$$i/LC_MESSAGES" ; \
273           cp "$(top_builddir)/po/$$i.gmo" \
274             "$(top_builddir)/vlc-bundle/locale/$$i/LC_MESSAGES/vlc.mo" || true ; \
275         done
276         find $(top_builddir)/vlc-bundle -type f -exec mimeset -f "{}" \;
277 endif
278
279 # Install the symlinks and shared libvlc
280 install-exec-local:
281         for i in "" $(ALIASES) ; do if test -n "$$i" ; then \
282           rm -f "$(DESTDIR)$(bindir)/$$i" && \
283           ln -sf vlc "$(DESTDIR)$(bindir)/$$i" ; \
284         fi ; done
285
286 # the opposite of install-{data,exec}-local
287 uninstall-local:
288         for i in "" $(ALIASES) ; do if test -n "$$i" ; then \
289           rm -f "$(DESTDIR)$(bindir)/$$i" ; \
290         fi ; done
291
292 if HAVE_DARWIN
293 # Create the MacOS X app
294 vlc_app_DATA = VLC.app
295 vlc_appdir = $(bindir)
296 # VLC-release.app is the old VLC.app target
297 VLC-release.app: vlc
298         @if test -e "$(top_builddir)/tmp"; then \
299           echo "Error: please remove $(top_builddir)/tmp, it is in the way"; \
300           false; \
301         else \
302           echo "OK."; mkdir -p "$(top_builddir)/tmp/extras"; \
303         fi
304         rm -Rf $(top_builddir)/VLC-release.app
305         cp -R $(srcdir)/extras/MacOSX $(top_builddir)/tmp/extras
306         for i in AUTHORS COPYING README.MacOSX.rtf THANKS; do \
307           cp "$(srcdir)/$$i" $(top_builddir)/tmp; \
308         done
309         mkdir -p $(top_builddir)/tmp/modules/audio_output
310         mkdir -p $(top_builddir)/tmp/modules/gui/macosx
311         for i in \
312             about.h \
313             about.m \
314             applescript.h \
315             applescript.m \
316             controls.h \
317             controls.m \
318             equalizer.h \
319             equalizer.m \
320             intf.h \
321             intf.m \
322             macosx.m \
323             misc.h \
324             misc.m \
325             open.h \
326             open.m \
327             output.h \
328             output.m \
329             playlist.h \
330             playlist.m \
331             playlistinfo.h \
332             playlistinfo.m \
333             prefs_widgets.h \
334             prefs_widgets.m \
335             prefs.h \
336             prefs.m \
337             vout.h \
338             voutqt.m \
339             voutgl.m \
340             wizard.h \
341             wizard.m \
342             extended.h \
343             extended.m \
344             bookmarks.h \
345             bookmarks.m \
346             sfilters.h \
347             sfilters.m \
348             vout.m; do \
349           cp "$(srcdir)/modules/gui/macosx/$$i" \
350              $(top_builddir)/tmp/modules/gui/macosx; \
351         done
352         case $(target_triplet) in \
353           *darwin6*) cd $(top_builddir)/tmp/extras/MacOSX && pbxbuild -target vlc | grep -v '^\([ \t]\|$$\)'; \
354             cd ../../../; \
355             cp -R $(top_builddir)/tmp/extras/MacOSX/build/VLC.bundle \
356                   $(top_builddir)/VLC-release.app;; \
357           *darwin7*) cd $(top_builddir)/tmp/extras/MacOSX && xcodebuild -target vlc | grep -v '^\([ \t]\|$$\)'; \
358             cd ../../../; \
359             cp -R $(top_builddir)/tmp/extras/MacOSX/build/VLC.bundle \
360                   $(top_builddir)/VLC-release.app;; \
361           *darwin8*) cd $(top_builddir)/tmp/extras/MacOSX && xcodebuild -target vlc | grep -v '^\([ \t]\|$$\)'; \
362             cd ../../../; \
363             cp -R $(top_builddir)/tmp/extras/MacOSX/build/Default/VLC.bundle \
364                   $(top_builddir)/VLC-release.app;; \
365         esac
366         rm -Rf $(top_builddir)/tmp
367         $(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS
368         $(INSTALL) $(top_builddir)/vlc \
369                    $(top_builddir)/VLC-release.app/Contents/MacOS/VLC
370         ln -sf ./VLC $(top_builddir)/VLC-release.app/Contents/MacOS/clivlc
371         $(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/modules
372         for i in "" `$(VLC_CONFIG) --target plugin` ; do \
373           if test -n "$$i" ; \
374             then $(INSTALL) "$$i$(LIBEXT)" \
375                            "$(top_builddir)/VLC-release.app/Contents/MacOS/modules" ; \
376           fi ; done
377         if test -d $(srcdir)/extras/contrib/vlc-lib; then \
378           mkdir -p $(top_builddir)/VLC-release.app/Contents/MacOS/lib ; \
379           for i in $(srcdir)/extras/contrib/vlc-lib/*.dylib ; do \
380             $(INSTALL) -m 644 $${i} $(top_builddir)/VLC-release.app/Contents/MacOS/lib/vlc_`basename $${i}` ; \
381           done ; \
382         fi
383         $(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/share
384         $(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/share/http
385         for i in $(srcdir)/share/http/* ; do \
386           $(INSTALL) -m 644 $${i} $(top_builddir)/VLC-release.app/Contents/MacOS/share/http/`basename $${i}` ; \
387         done ; \
388         $(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/locale
389         for i in $(ALL_LINGUAS); do \
390           mkdir -p $(top_builddir)/VLC-release.app/Contents/MacOS/locale/$${i}/LC_MESSAGES ; \
391           cp $(srcdir)/po/$${i}.gmo $(top_builddir)/VLC-release.app/Contents/MacOS/locale/$${i}/LC_MESSAGES/vlc.mo || true ; \
392           mkdir -p $(top_builddir)/VLC-release.app/Contents/Resources/$${i}.lproj ; \
393           ln -sf ../English.lproj/InfoPlist.strings \
394               $(top_builddir)/VLC-release.app/Contents/Resources/$${i}.lproj ; \
395           ln -sf ../English.lproj/MainMenu.nib \
396               $(top_builddir)/VLC-release.app/Contents/Resources/$${i}.lproj ; \
397           ln -sf ../English.lproj/vlc.scriptTerminology \
398               $(top_builddir)/VLC-release.app/Contents/Resources/$${i}.lproj ; \
399         done
400         printf "APPLVLC#" >| $(top_builddir)/VLC-release.app/Contents/PkgInfo
401
402 VLC.app: vlc
403         @if test -e "$(top_builddir)/tmp"; then \
404           echo "Error: please remove $(top_builddir)/tmp, it is in the way"; \
405           false; \
406         else \
407           echo "OK."; mkdir -p "$(top_builddir)/tmp/extras"; \
408         fi
409         rm -Rf $(top_builddir)/VLC.app
410         cp -R $(srcdir)/extras/MacOSX $(top_builddir)/tmp/extras
411         for i in AUTHORS COPYING README.MacOSX.rtf THANKS; do \
412           cp "$(srcdir)/$$i" $(top_builddir)/tmp; \
413         done
414         mkdir -p $(top_builddir)/tmp/modules/audio_output
415         mkdir -p $(top_builddir)/tmp/modules/gui/macosx
416         for i in \
417             about.h \
418             about.m \
419             applescript.h \
420             applescript.m \
421             controls.h \
422             controls.m \
423             equalizer.h \
424             equalizer.m \
425             intf.h \
426             intf.m \
427             macosx.m \
428             misc.h \
429             misc.m \
430             open.h \
431             open.m \
432             output.h \
433             output.m \
434             playlist.h \
435             playlist.m \
436             playlistinfo.h \
437             playlistinfo.m \
438             prefs_widgets.h \
439             prefs_widgets.m \
440             prefs.h \
441             prefs.m \
442             vout.h \
443             voutqt.m \
444             voutgl.m \
445             wizard.h \
446             wizard.m \
447             extended.h \
448             extended.m \
449             bookmarks.h \
450             bookmarks.m \
451             sfilters.h \
452             sfilters.m \
453             vout.m; do \
454           cp "$(srcdir)/modules/gui/macosx/$$i" \
455              $(top_builddir)/tmp/modules/gui/macosx; \
456         done
457         case $(target_triplet) in \
458           *darwin6*) cd $(top_builddir)/tmp/extras/MacOSX && pbxbuild -target vlc | grep -v '^\([ \t]\|$$\)'; \
459             cd ../../../; \
460             cp -R $(top_builddir)/tmp/extras/MacOSX/build/VLC.bundle \
461                   $(top_builddir)/VLC.app;; \
462           *darwin7*) cd $(top_builddir)/tmp/extras/MacOSX && xcodebuild -target vlc | grep -v '^\([ \t]\|$$\)'; \
463             cd ../../../; \
464             cp -R $(top_builddir)/tmp/extras/MacOSX/build/VLC.bundle \
465                   $(top_builddir)/VLC.app;; \
466           *darwin8*) cd $(top_builddir)/tmp/extras/MacOSX && xcodebuild -target vlc | grep -v '^\([ \t]\|$$\)'; \
467             cd ../../../; \
468             cp -R $(top_builddir)/tmp/extras/MacOSX/build/Default/VLC.bundle \
469                   $(top_builddir)/VLC.app;; \
470         esac
471         rm -Rf $(top_builddir)/tmp
472         $(INSTALL) -d $(top_builddir)/VLC.app/Contents/MacOS
473         $(INSTALL) $(top_builddir)/vlc \
474                    $(top_builddir)/VLC.app/Contents/MacOS/VLC
475         ln -sf ./VLC $(top_builddir)/VLC.app/Contents/MacOS/clivlc
476         $(INSTALL) -d $(top_builddir)/VLC.app/Contents/MacOS/modules
477         for i in "" `$(VLC_CONFIG) --target plugin` ; do \
478           if test -n "$$i" ; \
479             then ln -sfn "`pwd`/$$i$(LIBEXT)" \
480                            "$(top_builddir)/VLC.app/Contents/MacOS/modules" ; \
481           fi ; done
482         if test -d $(srcdir)/extras/contrib/vlc-lib; then \
483           mkdir -p $(top_builddir)/VLC.app/Contents/MacOS/lib ; \
484           for i in $(srcdir)/extras/contrib/vlc-lib/*.dylib ; do \
485             ln -sfn `pwd`/$${i} $(top_builddir)/VLC.app/Contents/MacOS/lib/vlc_`basename $${i}` ; \
486           done ; \
487         fi
488         ln -sfn `pwd`/share $(top_builddir)/VLC.app/Contents/MacOS/
489         $(INSTALL) -d $(top_builddir)/VLC.app/Contents/MacOS/locale
490         for i in $(ALL_LINGUAS); do \
491           mkdir -p $(top_builddir)/VLC.app/Contents/MacOS/locale/$${i}/LC_MESSAGES ; \
492           ln -sfn `pwd`/po/$${i}.gmo $(top_builddir)/VLC.app/Contents/MacOS/locale/$${i}/LC_MESSAGES/vlc.mo || true ; \
493           mkdir -p $(top_builddir)/VLC.app/Contents/Resources/$${i}.lproj ; \
494           ln -sf ../English.lproj/InfoPlist.strings \
495               $(top_builddir)/VLC.app/Contents/Resources/$${i}.lproj ; \
496           ln -sf ../English.lproj/MainMenu.nib \
497               $(top_builddir)/VLC.app/Contents/Resources/$${i}.lproj ; \
498         done
499         printf "APPLVLC#" >| $(top_builddir)/VLC.app/Contents/PkgInfo
500 endif
501
502 if HAVE_WIN32
503 DATA_win32_rc = $(noinst_share_vlc_win32_rc_DATA)
504 noinst_share_vlc_win32_rc_DATA = share/vlc_win32_rc.$(OBJEXT)
505 noinst_share_vlc_win32_rcdir = $(libdir)
506 share/vlc_win32_rc.$(OBJEXT): share/vlc_win32_rc.rc
507         $(WINDRES) -DVERSION=$(VERSION) -DVERSION_NUMBER=`echo $(VERSION).0.0.0 | sed 's/\([0-9]*\)[^.]*\.*\([0-9]*\)[^.]*\.*\([0-9]*\)[^.]*\.*\([0-9]*\).*/\1,\2,\3,\4/'` --include-dir $(srcdir)/share -i $< -o $@
508 endif
509
510
511 ###############################################################################
512 # Building specific source packages
513 ###############################################################################
514
515 dist-woody: distdir
516         $(remove_distdir_woody)
517         mv $(distdir) $(PACKAGE)-woody-$(VERSION)
518         $(srcdir)/toolbox --make-woody $(PACKAGE)-woody-$(VERSION)
519         $(AMTAR) chof - $(PACKAGE)-woody-$(VERSION) \
520           | GZIP=$(GZIP_ENV) gzip -c >$(PACKAGE)-woody-$(VERSION).tar.gz
521         $(remove_distdir_woody)
522
523 remove_distdir_woody = \
524   { test ! -d $(PACKAGE)-woody-$(VERSION) \
525     || { find $(PACKAGE)-woody-$(VERSION) -type d ! -perm -200 \
526            -exec chmod u+w {} ';' \
527          && rm -fr $(PACKAGE)-woody-$(VERSION); }; }
528
529 ###############################################################################
530 # Building architecture-specific binary packages
531 ###############################################################################
532
533 # XXX: this rule is probably only useful to you if you have exactly
534 # the same setup as me. Contact sam@zoy.org if you need to use it.
535 #
536
537 package-win-common:
538 # Check that tmp isn't in the way
539         @if test -e "$(top_builddir)/vlc-${VERSION}"; then \
540           echo "Error: please remove $(top_builddir)/vlc-${VERSION}, it is in the way"; \
541           false; \
542         else \
543           echo "OK."; mkdir -p "$(top_builddir)/vlc-${VERSION}"; \
544         fi
545
546 # Copy relevant files
547         cp "$(top_builddir)/vlc$(EXEEXT)" "$(top_builddir)/vlc-${VERSION}/"
548         cp "$(top_srcdir)/vlc.exe.manifest" "$(top_builddir)/vlc-${VERSION}/"
549         $(STRIP) "$(top_builddir)/vlc-${VERSION}/vlc$(EXEEXT)"
550 if BUILD_SHARED
551         cp "src/libvlc$(LIBEXT)" "vlc-${VERSION}/"
552         $(STRIP) "vlc-${VERSION}/libvlc$(LIBEXT)"
553 endif
554
555         for file in AUTHORS MAINTAINERS THANKS NEWS COPYING README ; \
556           do sed 's/@/_AT_/' < "$(srcdir)/$$file" > "$(top_builddir)/vlc-${VERSION}/$${file}.txt" ; \
557           unix2dos "$(top_builddir)/vlc-${VERSION}/$${file}.txt" ; done
558
559         mkdir $(top_builddir)/vlc-${VERSION}/locale
560         for i in $(ALL_LINGUAS); do \
561           mkdir -p "$(top_builddir)/vlc-${VERSION}/locale/$${i}/LC_MESSAGES" ; \
562           cp "$(srcdir)/po/$${i}.gmo" \
563             "$(top_builddir)/vlc-${VERSION}/locale/$${i}/LC_MESSAGES/vlc.mo" \
564             || true ; \
565         done
566
567         mkdir -p "$(top_builddir)/vlc-${VERSION}/http/images"
568         mkdir -p "$(top_builddir)/vlc-${VERSION}/http/requests"
569         mkdir -p "$(top_builddir)/vlc-${VERSION}/http/js"
570         mkdir -p "$(top_builddir)/vlc-${VERSION}/http/dialogs"
571         mkdir -p "$(top_builddir)/vlc-${VERSION}/http/old"
572         mkdir -p "$(top_builddir)/vlc-${VERSION}/http/old/vlm"
573         mkdir -p "$(top_builddir)/vlc-${VERSION}/http/old/admin"
574         cp $(srcdir)/share/http/*.html $(top_builddir)/vlc-${VERSION}/http/ ;
575         unix2dos $(top_builddir)/vlc-${VERSION}/http/*.html ;
576         cp $(srcdir)/share/http/*.css $(top_builddir)/vlc-${VERSION}/http/ ;
577         unix2dos $(top_builddir)/vlc-${VERSION}/http/*.css ;
578         cp $(srcdir)/share/http/js/*.js $(top_builddir)/vlc-${VERSION}/http/js/ ;
579         unix2dos $(top_builddir)/vlc-${VERSION}/http/js/*.js ;
580         cp $(srcdir)/share/http/dialogs/* $(top_builddir)/vlc-${VERSION}/http/dialogs/ ;
581         unix2dos $(top_builddir)/vlc-${VERSION}/http/dialogs/* ;
582         cp $(srcdir)/share/http/*.ico $(top_builddir)/vlc-${VERSION}/http/ ;
583         cp $(srcdir)/share/http/images/*.png $(top_builddir)/vlc-${VERSION}/http/images/
584         cp $(srcdir)/share/http/requests/*.xml $(top_builddir)/vlc-${VERSION}/http/requests/ ;
585         unix2dos $(top_builddir)/vlc-${VERSION}/http/requests/*.xml ;
586
587         cp $(srcdir)/share/http/old/*.html $(top_builddir)/vlc-${VERSION}/http/old/ ;
588         unix2dos $(top_builddir)/vlc-${VERSION}/http/old/*.html ;
589         cp $(srcdir)/share/http/old/*.ico $(top_builddir)/vlc-${VERSION}/http/old/ ;
590         cp $(srcdir)/share/http/old/*.css $(top_builddir)/vlc-${VERSION}/http/old/ ;
591         cp $(srcdir)/share/http/old/*.png $(top_builddir)/vlc-${VERSION}/http/old/ ;
592         cp $(srcdir)/share/http/old/vlm/*.html $(top_builddir)/vlc-${VERSION}/http/old/vlm/ ;
593         unix2dos $(top_builddir)/vlc-${VERSION}/http/old/vlm/*.html ;
594         cp $(srcdir)/share/http/old/admin/*.html $(top_builddir)/vlc-${VERSION}/http/old/admin/ ;
595         unix2dos $(top_builddir)/vlc-${VERSION}/http/old/admin/*.html ;
596
597         cp $(srcdir)/share/vlc48x48.ico $(top_builddir)/vlc-${VERSION}/ ;
598
599 if BUILD_MOZILLA
600         mkdir -p "$(top_builddir)/vlc-${VERSION}/mozilla"
601         cp $(top_builddir)/mozilla/*$(LIBEXT) $(top_builddir)/vlc-${VERSION}/mozilla/ ;
602         $(STRIP) $(top_builddir)/vlc-${VERSION}/mozilla/*$(LIBEXT);
603         cp $(top_builddir)/mozilla/vlcintf.xpt  $(top_builddir)/vlc-${VERSION}/mozilla/ ;
604 endif
605
606 if BUILD_ACTIVEX
607         mkdir -p "$(top_builddir)/vlc-${VERSION}/activex"
608         cp $(srcdir)/activex/README.TXT  $(top_builddir)/vlc-${VERSION}/activex/ ;
609         cp $(srcdir)/activex/test.html  $(top_builddir)/vlc-${VERSION}/activex/ ;
610         unix2dos $(top_builddir)/vlc-${VERSION}/activex/* ;
611
612         cp $(top_builddir)/activex/*$(LIBEXT) $(top_builddir)/vlc-${VERSION}/activex/ ;
613         $(STRIP) $(top_builddir)/vlc-${VERSION}/activex/*$(LIBEXT);
614 endif
615 # Rebase all those DLLs to speed up loading (need cygwin rebase)
616         if rebase -b 0x42 /dev/null >/dev/null 2>&1; then \
617                 find $(top_builddir)/vlc-${VERSION} -type f -name '*.dll' -print | rebase -b 0x70000000 -T -; \
618         fi
619
620 package-win32-base-debug: package-win-common
621 # Copy relevant files
622         cp "$(srcdir)/vlc.win32.nsi" "$(top_builddir)/vlc-${VERSION}/"
623
624         mkdir -p "$(top_builddir)/vlc-${VERSION}/plugins"
625         for i in "" `$(VLC_CONFIG) --target plugin` ; do \
626           if test -n "$$i" ; then \
627             $(INSTALL) "$(top_builddir)/$$i$(LIBEXT)" \
628             "$(top_builddir)/vlc-${VERSION}/plugins/" ; \
629           fi ; done
630
631         mkdir -p $(top_builddir)/vlc-${VERSION}/skins/fonts
632         for i in $(srcdir)/share/skins2/fonts/*.*; do \
633           cp $$i $(top_builddir)/vlc-${VERSION}/skins/fonts/ || true ; \
634         done
635         for i in $(srcdir)/share/skins2/*.*; do \
636           cp $$i $(top_builddir)/vlc-${VERSION}/skins/ || true ; \
637         done
638
639         mkdir -p "$(top_builddir)/vlc-${VERSION}/osdmenu"
640         cp $(srcdir)/share/osdmenu/*.* "$(top_builddir)/vlc-${VERSION}/osdmenu"
641         for dir in dvd dvd/selected dvd/unselect dvd/selection dvd/volume default default/selected default/selection default/volume;do \
642                 mkdir -p "$(top_builddir)/vlc-${VERSION}/osdmenu/$$dir"; \
643                 for file in $(srcdir)/share/osdmenu/$${dir}/*.*;do \
644                          cp $$file "$(top_builddir)/vlc-${VERSION}/osdmenu/$$dir" || true; \
645                 done; \
646         done
647         unix2dos $(top_builddir)/vlc-${VERSION}/osdmenu/*.cfg;
648         sed -i 's%share/osdmenu%osdmenu%g' $(top_builddir)/vlc-${VERSION}/osdmenu/*.cfg
649         sed -i 's%/%\\%g' $(top_builddir)/vlc-${VERSION}/osdmenu/*.cfg 
650
651
652 package-win32-base: package-win32-base-debug
653         for i in "" $(top_builddir)/vlc-${VERSION}/plugins/*$(LIBEXT) ; \
654           do if test -n "$$i" ; then $(STRIP) "$$i" ; fi ; done
655
656
657 package-win32-base-exe:
658 # Create package
659         if makensis -VERSION >/dev/null 2>&1; then \
660             MAKENSIS="makensis -DVERSION=${VERSION}"; \
661         elif [ -x "/cygdrive/c/Program Files/NSIS/makensis" ]; then \
662             MAKENSIS="/cygdrive/c/Program\ Files/NSIS/makensis /DVERSION=${VERSION}"; \
663         elif wine --version >dev/null 2>&1; then \
664             MAKENSIS="wine C:/Program\ Files/NSIS/makensis.exe /DVERSION=${VERSION}"; \
665         else \
666             echo 'Error: cannot locate makensis tool'; exit 1; \
667         fi; \
668         eval "$$MAKENSIS $(top_builddir)/vlc-${VERSION}/vlc.win32.nsi"
669
670 package-win32-base-exe-cygwin: package-win32-base-exe
671 # Create package
672
673 package-win32-base-exe-linux:
674 # Create package
675         makensis -DVERSION=${VERSION} $(top_builddir)/vlc-${VERSION}/vlc.win32.nsi
676
677 package-win32-base-zip:
678 # Create package 
679         zip -r vlc-${VERSION}-win32.zip vlc-${VERSION}
680
681 package-win32-exe: package-win32-base package-win32-base-exe
682 # Clean up
683         rm -Rf $(top_builddir)/vlc-${VERSION}
684
685 package-win32-exe-linux: package-win32-base package-win32-base-exe-linux
686 # Clean up
687         rm -Rf $(top_builddir)/vlc-${VERSION}
688
689 package-win32-zip: package-win32-base package-win32-base-zip
690 # Clean up
691         rm -Rf $(top_builddir)/vlc-${VERSION}
692
693 package-win32: package-win32-base package-win32-base-exe package-win32-base-zip
694 # Clean up
695         rm -Rf $(top_builddir)/vlc-${VERSION}
696
697 package-wince-base: package-win-common
698
699 package-wince-base-zip:
700 # Create package 
701         zip -r vlc-${VERSION}-wince.zip vlc-${VERSION}
702
703 package-wince: package-wince-base  package-wince-base-zip
704 # Clean up
705         rm -Rf $(top_builddir)/vlc-${VERSION}
706
707
708 package-beos:
709 # Check that tmp isn't in the way
710         @if test -e $(srcdir)/tmp; then \
711           echo "Error: please remove $(srcdir)/tmp, it is in the way"; \
712           false ; \
713         else \
714           echo "OK." ; mkdir $(srcdir)/tmp ; \
715         fi
716
717 # Copy relevant files
718         mkdir -p $(srcdir)/tmp/vlc ;
719         cd $(srcdir) && cp -R vlc-bundle/* AUTHORS COPYING ChangeLog README \
720           THANKS NEWS tmp/vlc/ ;
721
722 # Create debug package
723         xres -o $(srcdir)/tmp/vlc/vlc $(srcdir)/share/vlc_beos.rsrc ;
724         find $(srcdir)/tmp/vlc -exec mimeset -f {} \; ;
725         mv $(srcdir)/tmp/vlc $(srcdir)/tmp/vlc-${VERSION} ;
726         (cd $(srcdir)/tmp ; zip -9 -r vlc-${VERSION}-BeOS-debug.zip vlc-${VERSION} )
727         mv $(srcdir)/tmp/vlc-${VERSION}-BeOS-debug.zip $(srcdir)/ ;
728         mv $(srcdir)/tmp/vlc-${VERSION} $(srcdir)/tmp/vlc ;
729
730 # Create normal package
731         $(STRIP) --strip-debug --strip-unneeded $(srcdir)/tmp/vlc/vlc ;
732         find $(srcdir)/tmp/vlc -name 'lib*.so' -exec $(STRIP) \
733           --strip-debug --strip-unneeded "{}" \; ;
734         xres -o $(srcdir)/tmp/vlc/vlc $(srcdir)/share/vlc_beos.rsrc ;
735         find $(srcdir)/tmp/vlc -exec mimeset -f {} \; ;
736         mv $(srcdir)/tmp/vlc $(srcdir)/tmp/vlc-${VERSION} ;
737         (cd $(srcdir)/tmp ; zip -9 -r vlc-${VERSION}-BeOS.zip vlc-${VERSION} )
738         mv $(srcdir)/tmp/vlc-${VERSION}-BeOS.zip $(srcdir)/ ;
739
740 # Clean up
741         rm -Rf $(srcdir)/tmp ;
742
743 package-macosx:
744 # Check that the temporary location isn't in the way
745         @if test -e "$(top_builddir)/vlc-${VERSION}/"; then \
746           rm -Rf "$(top_builddir)/vlc-${VERSION}/" ; \
747         fi
748
749         echo "Create package directory: vlc-${VERSION}/";
750         mkdir -p "$(top_builddir)/vlc-${VERSION}/";
751
752 # Copy relevant files 
753         cp -R "$(top_builddir)/VLC-release.app" "$(top_builddir)/vlc-${VERSION}/VLC.app"
754         cd "$(srcdir)" && cp AUTHORS COPYING ChangeLog README README.MacOSX.rtf THANKS NEWS $(top_builddir)/vlc-${VERSION}/ && cp -R extras/MacOSX/Delete_Preferences.app $(top_builddir)/vlc-${VERSION}/
755
756 # Create disk image 
757         echo "Creating disk image" ;
758         rm -f "$(top_builddir)/vlc-${VERSION}.dmg" ;
759         hdiutil create -srcfolder "$(top_builddir)/vlc-${VERSION}" \
760           "$(top_builddir)/vlc-${VERSION}.dmg" -format UDZO -quiet ;
761         echo; echo "Disk image creation completed:" ;
762         ls -la "$(top_builddir)/vlc-${VERSION}.dmg" ; echo ;
763
764 # Clean up
765         rm -Rf "$(top_builddir)/vlc-${VERSION}" ;
766
767 package-translations:
768         @if test -e "$(srcdir)/vlc-translations-${VERSION}"; then \
769           echo "Error: please remove $(srcdir)/vlc-translations-${VERSION}, it is in the way"; \
770           false; \
771         else \
772           echo "OK."; mkdir -p "$(srcdir)/vlc-translations-${VERSION}"; \
773         fi
774 # Copy translations
775         for i in $(ALL_LINGUAS); do \
776           cp "$(srcdir)/po/$${i}.po" \
777             "$(srcdir)/vlc-translations-${VERSION}/$${i}.po" \
778             || true ; \
779         done
780         cp "$(srcdir)/doc/translations.txt" \
781           "$(srcdir)/vlc-translations-${VERSION}/README.txt"
782
783         echo "#!/bin/sh" >>"$(srcdir)/vlc-translations-$(VERSION)/convert.po.sh"
784         echo "" >>"$(srcdir)/vlc-translations-$(VERSION)/convert.po.sh"
785         echo 'if test $$# != 1; then' >>"$(srcdir)/vlc-translations-$(VERSION)/convert.po.sh"
786         echo "  echo \"Usage: convert-po.sh <.po file>\"" >>"$(srcdir)/vlc-translations-$(VERSION)/convert.po.sh"
787         echo "  exit 1" >>"$(srcdir)/vlc-translations-$(VERSION)/convert.po.sh"
788         echo "fi" >>"$(srcdir)/vlc-translations-$(VERSION)/convert.po.sh"
789         echo "" >>"$(srcdir)/vlc-translations-$(VERSION)/convert.po.sh"
790         echo 'msgfmt --statistics -o vlc.mo $$1' >>"$(srcdir)/vlc-translations-$(VERSION)/convert.po.sh"
791
792         $(AMTAR) chof - $(srcdir)/vlc-translations-$(VERSION) \
793           | GZIP=$(GZIP_ENV) gzip -c >$(srcdir)/vlc-translations-$(VERSION).tar.gz
794
795 ###############################################################################
796 # PO translation files update
797 ###############################################################################
798 .PHONY: update-po
799
800 update-po:
801         rm -f $(top_srcdir)/po/POTFILES.in
802         { \
803           cd $(top_srcdir) ; \
804           echo "# automatically created by make update-po" ; \
805           echo "" ; \
806           echo "# main sources" ; \
807           find include src -name '*.[chm]' -o -name '*.[ch]pp' \
808             | grep -v '\(vlc_symbols\|misc/modules_\|src/misc/version.c\)' \
809             | sort ; \
810           echo "" ; \
811           echo "# modules" ; \
812           find modules -name '*.[chm]' -o -name '*.[ch]pp' \
813             | grep -v '\(\.moc\.\|gui/gtk2/\)' \
814             | sort ; \
815         } > $(top_srcdir)/po/POTFILES.in
816         rm -f $(top_srcdir)/po/vlc.pot
817         cd po && $(MAKE) POTFILES vlc.pot update-po
818
819 #cd po && $(MAKE) update-po
820
821 ###############################################################################
822 # Stamp rules
823 ###############################################################################
824 stamp-builtin: FORCE
825         @for dep in "" `$(VLC_CONFIG) --target builtin`; do \
826           if test "$${dep}" -nt "$(top_builddir)/vlc$(EXEEXT)"; then \
827             rm -f $@; \
828             break; \
829           fi; \
830         done
831         @if test ! -f $@; then printf "" > $@; fi
832
833 ###############################################################################
834 # Enforce Mac OS X deployment target environment variable
835 ###############################################################################
836 macosx-sdk: Makefile.in $(HEADERS_include) vlc-config vlc-api.pl
837         export MACOSX_DEPLOYMENT_TARGET=$(MACOSX_DEPLOYMENT_TARGET)
838
839 ###############################################################################
840 # Force rule
841 ###############################################################################
842 FORCE: