common.am 2.44 KB
Newer Older
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
# Common code for VLC modules/.../Makefile.am
#
# Copyright (C) 2005-2007 the VideoLAN team
# Copyright (C) 2005-2008 Rémi Denis-Courmont
#
# Authors: Sam Hocevar <sam@zoy.org>

NULL =
SUFFIXES = _plugin$(LIBEXT) _plugin.la

libvlcdir = $(libdir)/vlc/$(basedir)
libvlc_LTLIBRARIES =
EXTRA_DIST = Modules.am
BUILT_SOURCES =
CLEANFILES =

include $(srcdir)/Modules.am

if HAVE_PLUGINS
LTLIBVLC = $(top_builddir)/src/libvlc.la

AM_LDFLAGS = -rpath '$(libvlcdir)' \
	-avoid-version -module -no-undefined \
	-shrext $(LIBEXT)
if HAVE_COMPILER_EXPORT
AM_LDFLAGS += -export-dynamic
else
AM_LDFLAGS += -export-symbol-regex ^vlc_entry
endif
AM_LIBADD = $(LTLIBVLC)
endif

all: all-modules

nice:
	$(top_builddir)/compile

# Find out which modules were enabled and tell make to build them
all-modules:
	@set fnord $$MAKEFLAGS; amf=$$2; targets=`\
	z=$$($(VLC_CONFIG) --list plugin); for mod in $(mods); do case "$$z " in *\ $${mod}\ *) echo lib$${mod}_plugin.la;; esac; done; \
	`; case "$$targets" in *lib*) $(MAKE) $(AM_MAKEFLAGS) $$targets || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; ;; esac; \
	test -z "$$fail"

# Build a plugin with the adequate linker and linker's flags
_plugin.la_plugin$(LIBEXT):
	@mod="$*" ; mod=$${mod#lib} ; \
	ldfl="`$(VLC_CONFIG) --libs plugin $$mod` $(LIBVLC) -u $(SYMPREF)$(VLC_ENTRY)" ; \
	case `$(VLC_CONFIG) --linkage $$mod` in \
	  c++)  ld="$(CXXLINK)" ;; \
	  objc) ld="$(OBJCLINK)" ;; \
	  c|*)  ld="$(LINK)" ;; \
	esac ; \
	echo $$ld $< $$ldfl ; \
	$$ld $< $$ldfl

if MAINTAINER_MODE
$(srcdir)/Makefile.am: $(srcdir)/Modules.am $(top_srcdir)/modules/genmf
	cd \$(top_srcdir) && \$(SHELL) modules/genmf ${dir}
endif

mostlyclean-local:
	-rm -f -- *.la

### automake creates libvlcdir after running install-*-local
### so we have to create it ourselves first
install-exec-local: all-modules
	@if test -z "$(libvlc_LTLIBRARIES)"; then \
	  z=$$($(VLC_CONFIG) --list plugin); \
	  m=`for mod in $(mods); do case "$$z " in *\ $${mod}\ *) printf " lib$${mod}_plugin.la" ;; esac; done` ; \
	  test -z "$$m" || \
	    $(MAKE) $(AM_MAKEFLAGS) libvlc_LTLIBRARIES="$$m" install-libvlcLTLIBRARIES || exit $$? ; \
	fi

uninstall-local:
	@if test -z "$(libvlc_LTLIBRARIES)"; then \
	  z=$$($(VLC_CONFIG) --list plugin); \
	  m=`for mod in $(mods); do case "$$z " in *\ $${mod}\ *) printf " lib$${mod}_plugin.la" ;; esac; done` ; \
	  test -z "$$m" || \
	    $(MAKE) $(AM_MAKEFLAGS) libvlc_LTLIBRARIES="$$m" uninstall-libvlcLTLIBRARIES || exit $$?; \
	fi