pipewire/pinos/Makefile.am

314 lines
10 KiB
Text
Raw Normal View History

2015-06-30 18:06:36 +02:00
# This file is part of Pinos.
2015-04-16 16:58:33 +02:00
#
# Copyright 2015 Wim Taymans <wim.taymans@gmail.com>
#
2015-06-30 18:06:36 +02:00
# Pinos is free software; you can redistribute it and/or modify
2015-04-16 16:58:33 +02:00
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
2015-06-30 18:06:36 +02:00
# Pinos is distributed in the hope that it will be useful, but
2015-04-16 16:58:33 +02:00
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
2015-06-30 18:06:36 +02:00
# along with Pinos; if not, see <http://www.gnu.org/licenses/>.
2015-04-16 16:58:33 +02:00
###################################
# Extra directories #
###################################
2015-09-02 09:10:49 +02:00
pinosincludedir=$(includedir)/pinos/client
pinosserverincludedir=$(includedir)/pinos/server
pinoslibexecdir=$(libexecdir)/pinos/client
2015-09-04 17:10:48 +02:00
xdgautostartdir=$(sysconfdir)/xdg/autostart
2015-04-16 16:58:33 +02:00
dbuspolicydir=$(sysconfdir)/dbus-1/system.d
###################################
# Compiler/linker flags #
###################################
AM_CPPFLAGS = \
-I$(top_srcdir)/ \
-I$(top_srcdir)/spa/include/ \
-I$(top_srcdir)/pinos/modules \
-I$(top_builddir)/pinos/modules \
-DPINOS_SRCDIR=\"$(abs_srcdir)\" \
-DPINOS_BUILDDIR=\"$(abs_builddir)\"
AM_CFLAGS = $(GLIB_CFLAGS)
2015-04-16 16:58:33 +02:00
AM_CXXFLAGS = $(AM_CFLAGS)
2015-06-30 18:06:36 +02:00
SERVER_CFLAGS = -D__INCLUDED_FROM_PINOS
2015-04-16 16:58:33 +02:00
AM_LIBADD = $(GLIB_LIBS) $(INTLLIBS) $(GST_LIBS) -L$(top_srcdir)/spa/build/lib/ -lspa-lib
AM_LDADD = $(GLIB_LIBS) $(GST_LIBS) $(INTLLIBS) -L$(top_srcdir)/spa/build/lib/ -lspa-lib
AM_LDFLAGS = $(NODELETE_LDFLAGS) -Wl,-rpath=/home/wim/gst/head/pinos/spa/build/lib/
2015-04-16 16:58:33 +02:00
FOREIGN_CFLAGS = -w
MODULE_LDFLAGS = $(AM_LDFLAGS) $(AM_LIBLDFLAGS) -module -avoid-version
MODULE_LIBADD = $(AM_LIBADD) libpinoscore-@PINOS_MAJORMINOR@.la
2015-04-16 16:58:33 +02:00
###################################
# Extra files #
###################################
EXTRA_DIST = \
2015-09-02 09:10:49 +02:00
daemon/pinos-system.conf \
daemon/pinos.conf.in \
2015-09-04 17:10:48 +02:00
daemon/pinos.desktop.in \
2015-09-02 09:10:49 +02:00
dbus/org.pinos.xml \
client/private.h
2015-04-16 16:58:33 +02:00
pinosconf_DATA = \
daemon/pinos.conf
2015-04-16 16:58:33 +02:00
dbuspolicy_DATA = \
2015-06-30 18:06:36 +02:00
daemon/pinos-system.conf
2015-04-16 16:58:33 +02:00
2015-09-04 17:10:48 +02:00
xdgautostart_in_files = \
daemon/pinos.desktop.in
xdgautostart_DATA = $(xdgautostart_in_files:.desktop.in=.desktop)
@INTLTOOL_DESKTOP_RULE@
2015-04-16 16:58:33 +02:00
###################################
# Includes #
###################################
enumtypesincludes = client/context.h \
client/introspect.h \
client/ringbuffer.h \
client/stream.h \
client/subscribe.h
2015-04-16 16:58:33 +02:00
client/enumtypes.h: $(enumtypesincludes)
2015-04-16 16:58:33 +02:00
$(AM_V_GEN)$(GLIB_MKENUMS) \
--fhead "#ifndef __PINOS_ENUM_TYPES_H__\n#define __PINOS_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
2015-04-16 16:58:33 +02:00
--fprod "\n/* enumerations from \"@filename@\" */\n" \
--vhead "GType @enum_name@_get_type (void);\n#define PINOS_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
--ftail "G_END_DECLS\n\n#endif /* __PINOS_ENUM_TYPES_H__ */" \
$^ > client/enumtypes.h
2015-04-16 16:58:33 +02:00
client/enumtypes.c: $(enumtypesincludes) client/enumtypes.h
2015-04-16 16:58:33 +02:00
$(AM_V_GEN)$(GLIB_MKENUMS) \
--fhead "#include \"enumtypes.h\"\n#include <pinos/client/pinos.h>\n#define C_ENUM(v) ((gint) v)\n#define C_FLAGS(v) ((guint) v)\n " \
2015-04-16 16:58:33 +02:00
--fprod "\n/* enumerations from \"@filename@\" */" \
--vhead "GType\n@enum_name@_get_type (void)\n{\n static gsize id = 0;\n static const G@Type@Value values[] = {" \
--vprod " { C_@TYPE@(@VALUENAME@), \"@VALUENAME@\", \"@valuenick@\" }," \
--vtail " { 0, NULL, NULL }\n };\n\n if (g_once_init_enter (&id)) {\n GType tmp = g_@type@_register_static (\"@EnumName@\", values);\n g_once_init_leave (&id, tmp);\n }\n\n return (GType) id;\n}" \
$^ > client/enumtypes.c
2015-04-16 16:58:33 +02:00
2015-06-30 18:06:36 +02:00
dbus/org-pinos.c: dbus/org-pinos.h
dbus/org-pinos.h: dbus/org.pinos.xml
@$(MKDIR_P) ../doc
2015-04-16 16:58:33 +02:00
$(AM_V_GEN) $(GDBUS_CODEGEN) \
2015-06-30 18:06:36 +02:00
--interface-prefix org.pinos. \
--generate-c-code dbus/org-pinos \
--generate-docbook ../doc/org-pinos \
--c-namespace Pinos $< \
--c-generate-object-manager
2015-04-16 16:58:33 +02:00
built_header_make = client/enumtypes.h dbus/org-pinos.h
built_source_make = client/enumtypes.c dbus/org-pinos.c
2015-04-16 16:58:33 +02:00
BUILT_SOURCES = $(built_header_make) \
$(built_source_make)
CLEANFILES = $(built_header_make) $(built_source_make)
###################################
# Main daemon #
###################################
2015-06-30 18:06:36 +02:00
bin_PROGRAMS = pinos
2015-04-16 16:58:33 +02:00
2015-06-30 18:06:36 +02:00
pinos_SOURCES = \
daemon/daemon-config.h daemon/daemon-config.c \
2015-04-16 16:58:33 +02:00
daemon/main.c
2015-06-30 18:06:36 +02:00
pinos_CFLAGS = $(AM_CFLAGS)
pinos_LDADD = $(AM_LDADD) libpinoscore-@PINOS_MAJORMINOR@.la libpinos-@PINOS_MAJORMINOR@.la $(LIBLTDL)
2015-04-16 16:58:33 +02:00
# This is needed because automake doesn't properly expand the foreach below
pinos_DEPENDENCIES = libpinoscore-@PINOS_MAJORMINOR@.la libpinos-@PINOS_MAJORMINOR@.la
2015-06-30 18:06:36 +02:00
pinos_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS) $(IMMEDIATE_LDFLAGS)
2015-04-16 16:58:33 +02:00
###################################
# Test programs #
###################################
noinst_LTLIBRARIES =
TESTS_default =
TESTS_norun = test-client
2015-04-16 16:58:33 +02:00
2015-06-30 18:06:36 +02:00
# These tests need a running pinos daemon
TESTS_daemon =
2015-04-16 16:58:33 +02:00
noinst_PROGRAMS = $(TESTS_default) $(TESTS_norun) $(TESTS_daemon)
test_client_SOURCES = tests/test-client.c
test_client_CFLAGS = $(AM_CFLAGS)
test_client_LDADD = $(AM_LDADD) libpinos-@PINOS_MAJORMINOR@.la
2015-04-16 16:58:33 +02:00
test_client_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
###################################
# Tools programs #
###################################
bin_PROGRAMS += \
pinos-monitor
pinos_monitor_SOURCES = tools/pinos-monitor.c
pinos_monitor_CFLAGS = $(AM_CFLAGS)
pinos_monitor_LDADD = $(AM_LDADD) libpinos-@PINOS_MAJORMINOR@.la
pinos_monitor_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
2015-04-16 16:58:33 +02:00
###################################
# Client library #
###################################
2015-06-30 18:06:36 +02:00
pinosinclude_HEADERS = \
client/context.h \
client/enumtypes.h \
client/format.h \
client/introspect.h \
client/mainloop.h \
client/pinos.h \
client/properties.h \
client/stream.h \
client/subscribe.h
2015-04-16 16:58:33 +02:00
lib_LTLIBRARIES = \
libpinos-@PINOS_MAJORMINOR@.la
2015-04-16 16:58:33 +02:00
# Public interface
libpinos_@PINOS_MAJORMINOR@_la_SOURCES = \
client/context.h client/context.c \
client/enumtypes.h client/enumtypes.c \
client/format.h client/format.c \
client/introspect.h client/introspect.c \
client/mainloop.h client/mainloop.c \
client/properties.h client/properties.c \
client/stream.h client/stream.c \
2015-06-30 18:06:36 +02:00
client/pinos.c client/pinos.h \
client/ringbuffer.c client/ringbuffer.h \
client/subscribe.c client/subscribe.h
2015-04-16 16:58:33 +02:00
libpinos_@PINOS_MAJORMINOR@_la_CFLAGS = $(AM_CFLAGS)
libpinos_@PINOS_MAJORMINOR@_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
libpinos_@PINOS_MAJORMINOR@_la_LIBADD = $(AM_LIBADD) $(LTLIBICONV)
2015-04-16 16:58:33 +02:00
###################################
# Daemon core library #
###################################
lib_LTLIBRARIES += libpinoscore-@PINOS_MAJORMINOR@.la
2015-04-16 16:58:33 +02:00
# Pure core stuff
libpinoscore_@PINOS_MAJORMINOR@_la_SOURCES = \
server/client.c server/client.h \
server/client-node.c server/client-node.h \
server/command.c server/command.h \
server/daemon.c server/daemon.h \
server/link.c server/link.h \
server/module.c server/module.h \
2016-07-18 17:40:58 +02:00
server/node.c server/node.h \
server/node-factory.c server/node-factory.h \
2015-06-30 18:06:36 +02:00
dbus/org-pinos.c dbus/org-pinos.h
2015-04-16 16:58:33 +02:00
libpinoscore_@PINOS_MAJORMINOR@_la_CFLAGS = $(AM_CFLAGS) $(SERVER_CFLAGS)
libpinoscore_@PINOS_MAJORMINOR@_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
libpinoscore_@PINOS_MAJORMINOR@_la_LIBADD = $(LIBLTDL) $(LTLIBICONV) \
libpinos-@PINOS_MAJORMINOR@.la $(AM_LIBADD)
2015-04-16 16:58:33 +02:00
###################################
# Modules #
###################################
module_LTLIBRARIES =
if BUILD_MODULE_GST
module_LTLIBRARIES += module-gst.la
module_gst_la_SOURCES = \
modules/gst/gst-manager.c \
modules/gst/gst-node-factory.c \
modules/gst/module.c
module_gst_la_CFLAGS = $(AM_CFLAGS) $(GST_CFLAGS)
module_gst_la_LDFLAGS = $(MODULE_LDFLAGS)
module_gst_la_LIBADD = $(MODULE_LIBADD)
endif
if BUILD_MODULE_SPA
module_LTLIBRARIES += module-spa.la
module_spa_la_SOURCES = \
modules/spa/spa-audiotestsrc.c \
modules/spa/spa-alsa-sink.c \
modules/spa/spa-v4l2-source.c \
modules/spa/module.c
module_spa_la_CFLAGS = $(AM_CFLAGS)
module_spa_la_LDFLAGS = $(MODULE_LDFLAGS)
module_spa_la_LIBADD = $(MODULE_LIBADD)
endif
###################################
# GStreamer Plugin #
###################################
plugindir = $(libdir)/gstreamer-1.0
2015-06-30 18:06:36 +02:00
plugin_LTLIBRARIES = libgstpinos.la
2015-06-30 18:06:36 +02:00
libgstpinos_la_SOURCES = \
gst/gstburstcache.c \
gst/gstpinos.c \
gst/gstpinosformat.c \
gst/gstpinosdeviceprovider.c \
gst/gstpinossrc.c \
gst/gstpinossink.c \
gst/gstpinospool.c
2015-06-30 18:06:36 +02:00
libgstpinos_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GLIB_CFLAGS)
libgstpinos_la_LDFLAGS = $(AM_LDFLAGS) $(GST_PLUGIN_LDFLAGS)
libgstpinos_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(GLIB_LIBS) $(LIBM) -lgstvideo-1.0 -lgstaudio-1.0 \
libpinos-@PINOS_MAJORMINOR@.la libpinoscore-@PINOS_MAJORMINOR@.la $(AM_LIBADD)
2015-06-30 18:06:36 +02:00
libgstpinos_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
noinst_HEADERS = gst/gstburstcache.h gst/gstpinossrc.h \
gst/gstpinosformat.h \
gst/gstpinossink.h gst/gstpinosdeviceprovider.h
2015-04-16 16:58:33 +02:00
###################################
# Some minor stuff #
###################################
2015-09-04 17:10:48 +02:00
CLEANFILES += daemon/pinos.desktop
DISTCLEANFILES =
INSTALL_DIRS = $(moduledir)
2015-04-16 16:58:33 +02:00
install-directories-hook:
$(MKDIR_P) $(addprefix $(DESTDIR),$(INSTALL_DIRS))
2015-04-16 16:58:33 +02:00
INSTALL_EXEC_HOOKS = install-directories-hook
install-exec-hook: $(INSTALL_EXEC_HOOKS)
2015-04-16 16:58:33 +02:00
# Automatically generate linker version script. We use the same one for all public .sos
update-map-file:
2015-06-30 18:06:36 +02:00
( echo "PINOS_0 {" ; \
2015-04-16 16:58:33 +02:00
echo "global:" ; \
2015-06-30 18:06:36 +02:00
ctags -I PV_GCC_MALLOC,PV_GCC_ALLOC_SIZE2,PV_GCC_ALLOC_SIZE,PV_GCC_PURE,PV_GCC_CONST,PV_GCC_DEPRECATED,PV_GCC_PRINTF_ATTR -f - --c-kinds=p $(pinosinclude_HEADERS) | awk '/^pa_/ { print $$1 ";" }' | sort ; \
2015-04-16 16:58:33 +02:00
echo "local:" ; \
echo "*;" ; \
echo "};" ) > $(srcdir)/map-file
update-all: update-map-file
.PHONY: update-all update-map-file coverage $(INSTALL_EXEC_HOOKS)