X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=Makefile.am;h=16a4298c99abedc95317afc3303244275fd45165;hb=f302d243d74eebff2ed59d05001ddf1c922c7052;hp=4e608f1eba51a7ef1620373bed42306f93e99e9a;hpb=c8c602161f8bf9378812f48a2c0ddd1f2acb3549;p=vlc diff --git a/Makefile.am b/Makefile.am index 4e608f1eba..16a4298c99 100644 --- a/Makefile.am +++ b/Makefile.am @@ -13,7 +13,7 @@ NULL = # - po should come before . because VLC.app needs the pofiles # - loader should come before modules because some plugins need it SUBDIRS = intl loader modules po . mozilla activex share m4 doc -DIST_SUBDIRS = $(SUBDIRS) src debian ipkg lib +DIST_SUBDIRS = $(SUBDIRS) debian ipkg lib EXTRA_DIST = \ HACKING \ @@ -29,9 +29,18 @@ EXTRA_DIST = \ vlc.spec \ vlc.spec.mdk \ vlc.win32.nsi \ + src/misc/modules_builtin.h.in \ $(NULL) -BUILT_SOURCES = +BUILT_SOURCES_distclean = vlc-config +BUILT_SOURCES_clean = \ + stamp-api \ + src/misc/modules_builtin.h \ + src/misc/version.c \ + $(NULL) + +BUILT_SOURCES = $(BUILT_SOURCES_distclean) $(BUILT_SOURCES_clean) + SUFFIXES = # Tell aclocal to use -I m4. Wonder if it really works. @@ -45,11 +54,6 @@ AUTOMAKE_OPTIONS = dist-bzip2 subdir-objects # Headers ############################################################################### -BUILT_SOURCES += \ - stamp-api \ - src/misc/modules_builtin.h \ - $(NULL) - pkgincludedir = $(includedir)/vlc dist_pkginclude_HEADERS = \ @@ -64,6 +68,7 @@ dist_pkginclude_HEADERS = \ $(NULL) noinst_HEADERS = $(HEADERS_include) +noinst_DATA = $(DATA_noinst_beos) $(DATA_noinst_libvlc) HEADERS_include = \ include/aout_internal.h \ @@ -81,7 +86,6 @@ HEADERS_include = \ include/modules_inner.h \ include/mtime.h \ include/network.h \ - include/osd.h \ include/os_specific.h \ include/snapshot.h \ include/stream_output.h \ @@ -129,10 +133,15 @@ HEADERS_include = \ src/misc/modules_builtin.h: Makefile src/misc/modules_builtin.h.in vlc-config srcdir=$(srcdir) $(srcdir)/toolbox --update-includes - touch $@ + touch src/misc/modules_builtin.h + +src/misc/modules.c: src/misc/modules_builtin.h + +src/misc/version.c: FORCE + srcdir=$(srcdir) $(srcdir)/toolbox --update-version # These dependencies are mandatory -$(SOURCES_libvlc): src/misc/modules_builtin.h $(LIB_intl) +$(SOURCES_libvlc): $(LIB_intl) ############################################################################### # Optional libintl - FIXME, bad dependencies @@ -168,6 +177,12 @@ EXTRA_DIST += \ extras/MacOSX/Resources/English.lproj/Bookmarks.nib/classes.nib \ extras/MacOSX/Resources/English.lproj/Bookmarks.nib/info.nib \ extras/MacOSX/Resources/English.lproj/Bookmarks.nib/keyedobjects.nib \ + extras/MacOSX/Resources/English.lproj/Extended.nib/classes.nib \ + extras/MacOSX/Resources/English.lproj/Extended.nib/info.nib \ + extras/MacOSX/Resources/English.lproj/Extended.nib/keyedobjects.nib \ + extras/MacOSX/Resources/English.lproj/Update.nib/classes.nib \ + extras/MacOSX/Resources/English.lproj/Update.nib/info.nib \ + extras/MacOSX/Resources/English.lproj/Update.nib/keyedobjects.nib \ extras/MacOSX/Resources/English.lproj/InfoPlist.strings \ extras/MacOSX/Resources/a52.icns \ extras/MacOSX/Resources/aac.icns \ @@ -258,8 +273,8 @@ EXTRA_DIST += \ $(NULL) dist-hook: - cd $(distdir) && srcdir=$(srcdir) $(srcdir)/toolbox --update-vc - distdir=$(distdir) srcdir=$(srcdir) $(srcdir)/toolbox --dist-contrib + cd $(distdir) && srcdir=. $(SHELL) ./toolbox --update-vc + distdir=$(distdir) srcdir=$(srcdir) $(SHELL) $(srcdir)/toolbox --dist-contrib ############################################################################### # Building libvlc @@ -267,17 +282,28 @@ dist-hook: bin_SCRIPTS = vlc-config vlc-config: $(top_builddir)/config.status $(top_builddir)/vlc-config.in - cd $(top_builddir) && $(SHELL) ./config.status --file=$@ - -cd $(top_builddir) && chmod 0755 $@ + $(SHELL) ./config.status --file=vlc-config + chmod 0755 vlc-config vlc-config.in: vlc-config.in.in ./config.status --recheck -$(SOURCES): vlc-config - -CLEANFILES = $(BUILT_SOURCES) +MOSTLYCLEANFILES = $(DATA_noinst_libvlc) +CLEANFILES = $(BUILT_SOURCES_clean) stamp-builtin +DISTCLEANFILES = $(BUILT_SOURCES_distclean) vlc-config.in -lib_LIBRARIES = lib/libvlc.a $(LIBRARIES_libvlc_pic) +if HAVE_WIN32 +lib_LIBRARIES = lib/libvlc.a +else +if BUILD_SHARED +lib_LIBRARIES = lib/libvlc_pic.a +else +lib_LIBRARIES = lib/libvlc.a +if BUILD_MOZILLA +lib_LIBRARIES += lib/libvlc_pic.a +endif +endif +endif lib_libvlc_a_SOURCES = $(SOURCES_libvlc) lib_libvlc_a_CFLAGS = `$(VLC_CONFIG) --cflags vlc` @@ -307,12 +333,27 @@ endif if BUILD_GETOPT OPT_SOURCES_libvlc_getopt = $(SOURCES_libvlc_getopt) endif -if BUILD_MOZILLA -if !HAVE_WIN32 -LIBRARIES_libvlc_pic = lib/libvlc_pic.a + +# Build libvlc as a shared library +if BUILD_SHARED +DATA_noinst_libvlc = libvlc$(LIBEXT) +if HAVE_WIN32 +OBJECTS_libvlc_so = $(lib_libvlc_a_OBJECTS) +else +OBJECTS_libvlc_so = $(lib_libvlc_pic_a_OBJECTS) endif endif +libvlc$(LIBEXT): $(OBJECTS_libvlc_so) + @ldfl="`$(VLC_CONFIG) --libs plugin vlc $(pic) builtin`" ; \ + case `$(VLC_CONFIG) --linkage vlc` in \ + c++) ld="$(CXXLINK)" ;; \ + objc) ld="$(OBJCLINK)" ;; \ + c|*) ld="$(LINK)" ;; \ + esac ; \ + echo $$ld $(OBJECTS_libvlc_so) $$ldfl ; \ + $$ld $(OBJECTS_libvlc_so) $$ldfl + EXTRA_DIST += \ $(SOURCES_libvlc_beos) \ $(SOURCES_libvlc_darwin) \ @@ -387,8 +428,9 @@ SOURCES_libvlc_common = \ src/stream_output/sap.c \ src/stream_output/acl.c \ src/osd/osd.c \ - src/osd/osd_widgets.c \ src/osd/osd_parser.c \ + src/osd/osd_text.c \ + src/osd/osd_widgets.c \ src/misc/charset.c \ src/misc/httpd.c \ src/misc/tls.c \ @@ -411,6 +453,7 @@ SOURCES_libvlc_common = \ src/misc/getaddrinfo.c \ src/misc/vlm.c \ src/misc/xml.c \ + src/misc/version.c \ src/extras/libc.c \ src/control/core.c \ src/control/util.c \ @@ -436,27 +479,40 @@ vlc_SOURCES = src/vlc.c # Work around a bug in the arm-wince-pe linker if HAVE_WINCE -vlc_WORKAROUNDLDFLAGS = lib/libvlc.a +vlc_WORKAROUNDLDFLAGS = $(LIB_libvlc) endif -vlc_LDFLAGS = `$(VLC_CONFIG) --libs vlc builtin` $(vlc_WORKAROUNDLDFLAGS) -vlc_LDADD = lib/libvlc.a $(DATA_win32_rc) $(LIB_intl) +if BUILD_SHARED +### libvlc.so cannot be created into lib/ +LIB_libvlc = libvlc$(LIBEXT) +LDFLAGS_libvlc = +#-Wl,-rpath $(libdir) +else +LIB_libvlc = lib/libvlc.a +LDFLAGS_libvlc = `$(VLC_CONFIG) --libs vlc builtin` +endif + +vlc_LDFLAGS = $(LDFLAGS_libvlc) $(vlc_WORKAROUNDLDFLAGS) +vlc_LDADD = $(LIB_libvlc) $(DATA_win32_rc) $(LIB_intl) vlc_CFLAGS = `$(VLC_CONFIG) --cflags vlc` # We use DEPENDENCIES_vlc instead of vlc_DEPENDENCIES because of an # old automake-1.5 bug (automake/279). -DEPENDENCIES_vlc = lib/libvlc.a $(DATA_win32_rc) $(LIB_intl) +DEPENDENCIES_vlc = $(LIB_libvlc) $(DATA_win32_rc) $(LIB_intl) vlc$(EXEEXT): $(vlc_OBJECTS) $(DEPENDENCIES_vlc) stamp-builtin - @rm -f $(top_builddir)/vlc$(EXEEXT) + @rm -f vlc$(EXEEXT) @case `$(VLC_CONFIG) --linkage vlc builtin` in \ - c++) echo $(CXXLINK) $(vlc_OBJECTS) $(vlc_LDFLAGS) $(LIBS) ; $(CXXLINK) $(vlc_OBJECTS) $(vlc_LDADD) $(vlc_LDFLAGS) $(LIBS) $(vlc_LDADD) ;; \ - objc) echo $(OBJCLINK) $(vlc_OBJECTS) $(vlc_LDFLAGS) $(LIBS) ; $(OBJCLINK) $(vlc_OBJECTS) $(vlc_LDADD) $(vlc_LDFLAGS) $(LIBS) $(vlc_LDADD) ;; \ - c|*) echo $(LINK) $(vlc_OBJECTS) $(vlc_LDFLAGS) $(LIBS) ; $(LINK) $(vlc_OBJECTS) $(vlc_LDADD) $(vlc_LDFLAGS) $(LIBS) $(vlc_LDADD) ;; \ - esac + c++) cmd="$(CXXLINK)" ;; \ + objc) cmd="$(OBJCLINK)" ;; \ + c|*) cmd="$(LINK)" ;; \ + esac ; \ + cmd="$$cmd $(vlc_OBJECTS) $(vlc_LDADD) $(vlc_LDFLAGS) $(LIBS)" ; \ + echo $$cmd ; \ + eval $$cmd if HAVE_BEOS -noinst_DATA = vlc-bundle +DATA_noinst_beos = vlc-bundle vlc-bundle: vlc rm -Rf $(top_builddir)/vlc-bundle ; mkdir -p $(top_builddir)/vlc-bundle cp $(top_builddir)/vlc $(top_builddir)/vlc-bundle/ @@ -481,46 +537,20 @@ vlc-bundle: vlc find $(top_builddir)/vlc-bundle -type f -exec mimeset -f "{}" \; endif -# Install the modules and the symlinks +# Install the symlinks and shared libvlc install-exec-local: - for i in "" `$(VLC_CONFIG) --target plugin` ; do if test -n "$$i" ; then \ - echo $(INSTALL) -m 755 "$$i$(LIBEXT)" "$(DESTDIR)$(libdir)/vlc/`echo $$i | sed -e 's,.*modules/\([^/]*\).*,\1,'`" ; \ - $(INSTALL) -m 755 "$$i$(LIBEXT)" "$(DESTDIR)$(libdir)/vlc/`echo $$i | sed -e 's,.*modules/\([^/]*\).*,\1,'`" ; \ - fi ; done - for i in "" `$(VLC_CONFIG) --target builtin` ; do if test -n "$$i" ; then \ - echo $(INSTALL) -m 644 "$$i" "$(DESTDIR)$(libdir)/vlc" ; \ - $(INSTALL) -m 644 "$$i" "$(DESTDIR)$(libdir)/vlc" ; \ - fi ; done -if BUILD_MOZILLA - for i in "" `$(VLC_CONFIG) --target builtin pic` ; do if test -n "$$i" ; then \ - echo $(INSTALL) -m 644 "$$i" "$(DESTDIR)$(libdir)/vlc" ; \ - $(INSTALL) -m 644 "$$i" "$(DESTDIR)$(libdir)/vlc" ; \ - fi ; done -endif for i in "" $(ALIASES) ; do if test -n "$$i" ; then \ rm -f "$(DESTDIR)$(bindir)/$$i" && \ ln -s vlc "$(DESTDIR)$(bindir)/$$i" ; \ fi ; done + test -z "$(DATA_noinst_libvlc)" || $(INSTALL_PROGRAM) "$(DATA_noinst_libvlc)" "$(DESTDIR)$(libdir)" # the opposite of install-{data,exec}-local uninstall-local: - @for i in "" `$(VLC_CONFIG) --target plugin` ; do if test -n "$$i" ; then \ - echo rm -f "$(DESTDIR)$(libdir)/vlc/`echo $$i | sed -e 's,.*modules/\([^/]*\).*,\1,'`/$$(basename $$i$(LIBEXT))" ; \ - rm -f "$(DESTDIR)$(libdir)/vlc/`echo $$i | sed -e 's,.*modules/\([^/]*\).*,\1,'`/$$(basename $$i$(LIBEXT))" ; \ - fi ; done - @for i in "" `$(VLC_CONFIG) --target builtin` ; do if test -n "$$i" ; then \ - echo rm -f "$(DESTDIR)$(libdir)/vlc/$$(basename $$i)" ; \ - rm -f "$(DESTDIR)$(libdir)/vlc/$$(basename $$i)" ; \ - fi ; done -if BUILD_MOZILLA - @for i in "" `$(VLC_CONFIG) --target builtin pic` ; do if test -n "$$i" ; then \ - echo rm -f "$$i" "$(DESTDIR)$(libdir)/vlc/$$(basename $$i)" ; \ - rm -f "$$i" "$(DESTDIR)$(libdir)/vlc/$$(basename $$i)" ; \ - fi ; done -endif for i in "" $(ALIASES) ; do if test -n "$$i" ; then \ rm -f "$(DESTDIR)$(bindir)/$$i" ; \ fi ; done + test -z "$(DATA_noinst_libvlc)" || rm -f "$(DESTDIR)$(libdir)/$(DATA_noinst_libvlc)" if HAVE_DARWIN # Create the MacOS X app @@ -576,8 +606,10 @@ VLC-release.app: vlc wizard.m \ extended.h \ extended.m \ - bookmarks.h \ - bookmarks.m \ + bookmarks.h \ + bookmarks.m \ + update.h \ + update.m \ vout.m; do \ cp "$(srcdir)/modules/gui/macosx/$$i" \ $(top_builddir)/tmp/modules/gui/macosx; \ @@ -607,9 +639,9 @@ VLC-release.app: vlc then $(INSTALL) "$$i$(LIBEXT)" \ "$(top_builddir)/VLC-release.app/Contents/MacOS/modules" ; \ fi ; done - if test -d $(top_builddir)/extras/contrib/vlc-lib; then \ + if test -d $(srcdir)/extras/contrib/vlc-lib; then \ mkdir -p $(top_builddir)/VLC-release.app/Contents/MacOS/lib ; \ - for i in $(top_builddir)/extras/contrib/vlc-lib/*.dylib ; do \ + for i in $(srcdir)/extras/contrib/vlc-lib/*.dylib ; do \ $(INSTALL) -m 644 $${i} $(top_builddir)/VLC-release.app/Contents/MacOS/lib/vlc_`basename $${i}` ; \ done ; \ fi @@ -690,8 +722,10 @@ VLC.app: vlc wizard.m \ extended.h \ extended.m \ - bookmarks.h \ - bookmarks.m \ + bookmarks.h \ + bookmarks.m \ + update.h \ + update.m \ vout.m; do \ cp "$(srcdir)/modules/gui/macosx/$$i" \ $(top_builddir)/tmp/modules/gui/macosx; \ @@ -721,9 +755,9 @@ VLC.app: vlc then ln -sfn "`pwd`/$$i$(LIBEXT)" \ "$(top_builddir)/VLC.app/Contents/MacOS/modules" ; \ fi ; done - if test -d $(top_builddir)/extras/contrib/vlc-lib; then \ + if test -d $(srcdir)/extras/contrib/vlc-lib; then \ mkdir -p $(top_builddir)/VLC.app/Contents/MacOS/lib ; \ - for i in $(top_builddir)/extras/contrib/vlc-lib/*.dylib ; do \ + for i in $(srcdir)/extras/contrib/vlc-lib/*.dylib ; do \ ln -sfn `pwd`/$${i} $(top_builddir)/VLC.app/Contents/MacOS/lib/vlc_`basename $${i}` ; \ done ; \ fi @@ -1044,17 +1078,13 @@ update-po: | sort ; \ } > $(top_srcdir)/po/POTFILES.in rm -f $(top_srcdir)/po/vlc.pot - cd po && $(MAKE) POTFILES $(top_srcdir)/../po/vlc.pot update-po + cd po && $(MAKE) POTFILES vlc.pot update-po #cd po && $(MAKE) update-po ############################################################################### # Stamp rules ############################################################################### -clean: clean-stamp clean-recursive -clean-stamp: - rm -f stamp-builtin stamp-api - stamp-builtin: FORCE @for dep in "" `$(VLC_CONFIG) --target builtin`; do \ if test "$${dep}" -nt "$(top_builddir)/vlc$(EXEEXT)"; then \ @@ -1064,8 +1094,9 @@ stamp-builtin: FORCE done @if test ! -f $@; then printf "" > $@; fi -stamp-api: Makefile.in $(HEADERS_include) vlc-config vlc-api.pl src/misc/modules_builtin.h.in - cd $(srcdir) && cat $(HEADERS_include) | perl ./vlc-api.pl +stamp-api: Makefile.in $(HEADERS_include) vlc-config vlc-api.pl + ( cd $(srcdir) && cat $(HEADERS_include) ) | \ + top_srcdir="$(top_srcdir)" perl $(top_srcdir)/vlc-api.pl touch stamp-api ###############################################################################