mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
246 lines
8.2 KiB
Makefile
246 lines
8.2 KiB
Makefile
# This file is part of Pinos.
|
|
#
|
|
# Copyright 2015 Wim Taymans <wim.taymans@gmail.com>
|
|
#
|
|
# Pinos is free software; you can redistribute it and/or modify
|
|
# 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.
|
|
#
|
|
# Pinos is distributed in the hope that it will be useful, but
|
|
# 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
|
|
# along with Pinos; if not, see <http://www.gnu.org/licenses/>.
|
|
|
|
###################################
|
|
# Extra directories #
|
|
###################################
|
|
|
|
pinosincludedir=$(includedir)/client
|
|
pinosserverincludedir=$(includedir)/server
|
|
pinoslibexecdir=$(libexecdir)/client
|
|
dbuspolicydir=$(sysconfdir)/dbus-1/system.d
|
|
|
|
###################################
|
|
# Compiler/linker flags #
|
|
###################################
|
|
|
|
AM_CPPFLAGS = \
|
|
-I$(top_srcdir)/src \
|
|
-I$(top_srcdir)/src/modules \
|
|
-I$(top_builddir)/src/modules \
|
|
-DPV_SRCDIR=\"$(abs_srcdir)\" \
|
|
-DPV_BUILDDIR=\"$(abs_builddir)\"
|
|
AM_CFLAGS = $(GLIB_CFLAGS) $(GST_CFLAGS)
|
|
AM_CXXFLAGS = $(AM_CFLAGS)
|
|
SERVER_CFLAGS = -D__INCLUDED_FROM_PINOS
|
|
|
|
AM_LIBADD = $(GLIB_LIBS) $(INTLLIBS) $(GST_LIBS)
|
|
AM_LDADD = $(GLIB_LIBS) $(GST_LIBS) $(INTLLIBS)
|
|
AM_LDFLAGS = $(NODELETE_LDFLAGS)
|
|
|
|
FOREIGN_CFLAGS = -w
|
|
|
|
###################################
|
|
# Extra files #
|
|
###################################
|
|
|
|
EXTRA_DIST = \
|
|
src/version.h.in \
|
|
daemon/pinos-system.conf
|
|
|
|
dbuspolicy_DATA = \
|
|
daemon/pinos-system.conf
|
|
|
|
###################################
|
|
# Includes #
|
|
###################################
|
|
|
|
enumtypesincludes = client/pv-context.h \
|
|
client/pv-introspect.h \
|
|
client/pv-stream.h \
|
|
client/pv-subscribe.h
|
|
|
|
client/pv-enumtypes.h: $(enumtypesincludes)
|
|
$(AM_V_GEN)$(GLIB_MKENUMS) \
|
|
--fhead "#ifndef __PV_ENUM_TYPES_H__\n#define __PV_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
|
|
--fprod "\n/* enumerations from \"@filename@\" */\n" \
|
|
--vhead "GType @enum_name@_get_type (void);\n#define PV_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
|
|
--ftail "G_END_DECLS\n\n#endif /* __PV_ENUM_TYPES_H__ */" \
|
|
$^ > client/pv-enumtypes.h
|
|
|
|
client/pv-enumtypes.c: $(enumtypesincludes) client/pv-enumtypes.h
|
|
$(AM_V_GEN)$(GLIB_MKENUMS) \
|
|
--fhead "#include \"pv-enumtypes.h\"\n#include <client/pinos.h>\n#define C_ENUM(v) ((gint) v)\n#define C_FLAGS(v) ((guint) v)\n " \
|
|
--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/pv-enumtypes.c
|
|
|
|
|
|
dbus/org-pinos.c: dbus/org-pinos.h
|
|
dbus/org-pinos.h: dbus/org.pinos.xml
|
|
$(AM_V_GEN) $(GDBUS_CODEGEN) \
|
|
--interface-prefix org.pinos. \
|
|
--generate-c-code dbus/org-pinos \
|
|
--generate-docbook ../doc/org-pinos \
|
|
--c-namespace Pv dbus/org.pinos.xml \
|
|
--c-generate-object-manager
|
|
|
|
|
|
built_header_make = client/pv-enumtypes.h dbus/org-pinos.h
|
|
built_source_make = client/pv-enumtypes.c dbus/org-pinos.c
|
|
|
|
BUILT_SOURCES = $(built_header_make) \
|
|
$(built_source_make)
|
|
|
|
CLEANFILES = $(built_header_make) $(built_source_make)
|
|
|
|
###################################
|
|
# Main daemon #
|
|
###################################
|
|
|
|
bin_PROGRAMS = pinos
|
|
|
|
pinos_SOURCES = \
|
|
daemon/main.c
|
|
|
|
pinos_CFLAGS = $(AM_CFLAGS)
|
|
pinos_LDADD = $(AM_LDADD) libpinoscore-@PV_MAJORMINOR@.la libpinos-@PV_MAJORMINOR@.la $(LIBLTDL)
|
|
# This is needed because automake doesn't properly expand the foreach below
|
|
pinos_DEPENDENCIES = libpinoscore-@PV_MAJORMINOR@.la libpinos-@PV_MAJORMINOR@.la
|
|
pinos_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS) $(IMMEDIATE_LDFLAGS)
|
|
|
|
###################################
|
|
# Test programs #
|
|
###################################
|
|
noinst_LTLIBRARIES =
|
|
|
|
TESTS_default =
|
|
|
|
TESTS_norun = test-client \
|
|
test-subscribe
|
|
|
|
# These tests need a running pinos daemon
|
|
TESTS_daemon =
|
|
|
|
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-@PV_MAJORMINOR@.la
|
|
test_client_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
|
|
|
|
test_subscribe_SOURCES = tests/test-subscribe.c
|
|
test_subscribe_CFLAGS = $(AM_CFLAGS)
|
|
test_subscribe_LDADD = $(AM_LDADD) libpinos-@PV_MAJORMINOR@.la
|
|
test_subscribe_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
|
|
|
|
###################################
|
|
# Client library #
|
|
###################################
|
|
|
|
pinosgstsource = gst/gstfdpay.h gst/gstfdpay.c \
|
|
gst/gstfddepay.h gst/gstfddepay.c \
|
|
gst/gsttmpfileallocator.h gst/gsttmpfileallocator.c \
|
|
wire-protocol.h
|
|
|
|
pinosinclude_HEADERS = \
|
|
client/pinos.h \
|
|
client/pv-context.h \
|
|
client/pv-enumtypes.h \
|
|
client/pv-introspect.h \
|
|
client/pv-stream.h \
|
|
client/pv-subscribe.h
|
|
|
|
lib_LTLIBRARIES = \
|
|
libpinos-@PV_MAJORMINOR@.la
|
|
|
|
# Public interface
|
|
libpinos_@PV_MAJORMINOR@_la_SOURCES = \
|
|
client/pv-context.h client/pv-context.c \
|
|
client/pv-enumtypes.h client/pv-enumtypes.c \
|
|
client/pv-introspect.h client/pv-introspect.c \
|
|
client/pv-stream.h client/pv-stream.c \
|
|
client/pinos.c client/pinos.h \
|
|
client/pv-subscribe.c client/pv-subscribe.h \
|
|
$(pinosgstsource)
|
|
|
|
|
|
libpinos_@PV_MAJORMINOR@_la_CFLAGS = $(AM_CFLAGS) $(GST_CFLAGS)
|
|
libpinos_@PV_MAJORMINOR@_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
|
|
libpinos_@PV_MAJORMINOR@_la_LIBADD = $(AM_LIBADD) $(LTLIBICONV) $(GST_LIBS)
|
|
|
|
###################################
|
|
# Daemon core library #
|
|
###################################
|
|
|
|
lib_LTLIBRARIES += libpinoscore-@PV_MAJORMINOR@.la
|
|
|
|
# Pure core stuff
|
|
libpinoscore_@PV_MAJORMINOR@_la_SOURCES = \
|
|
server/pv-client.c server/pv-client.h \
|
|
server/pv-daemon.c server/pv-daemon.h \
|
|
server/pv-source.c server/pv-source.h \
|
|
server/pv-client-source.c server/pv-client-source.h \
|
|
server/pv-source-output.c server/pv-source-output.h \
|
|
modules/gst/pv-gst-manager.c \
|
|
modules/gst/pv-gst-source.c \
|
|
dbus/org-pinos.c dbus/org-pinos.h
|
|
|
|
libpinoscore_@PV_MAJORMINOR@_la_CFLAGS = $(AM_CFLAGS) $(SERVER_CFLAGS)
|
|
libpinoscore_@PV_MAJORMINOR@_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
|
|
libpinoscore_@PV_MAJORMINOR@_la_LIBADD = $(AM_LIBADD) $(LIBLTDL) $(LTLIBICONV) \
|
|
libpinos-@PV_MAJORMINOR@.la
|
|
|
|
###################################
|
|
# GStreamer Plugin #
|
|
###################################
|
|
|
|
plugindir = $(libdir)/gstreamer-1.0
|
|
|
|
plugin_LTLIBRARIES = libgstpinos.la
|
|
|
|
libgstpinos_la_SOURCES = \
|
|
gst/gstpv.c \
|
|
gst/gstfdpay.c \
|
|
gst/gstfddepay.c \
|
|
gst/gstpvsrc.c \
|
|
gst/gstpvsink.c
|
|
|
|
libgstpinos_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GLIB_CFLAGS)
|
|
libgstpinos_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
|
|
libgstpinos_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(GLIB_LIBS) $(LIBM) -lgstvideo-1.0 \
|
|
libpinos-@PV_MAJORMINOR@.la libpinoscore-@PV_MAJORMINOR@.la
|
|
libgstpinos_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
|
|
|
|
noinst_HEADERS = gst/gstpvsrc.h gst/gstpvsink.h gst/gstfdpay.h gst/gstfddepay.h
|
|
|
|
###################################
|
|
# Some minor stuff #
|
|
###################################
|
|
|
|
DISTCLEANFILES =
|
|
|
|
install-exec-hook:
|
|
rm -f $(DESTDIR)$(modlibexecdir)/*.la
|
|
|
|
uninstall-hook:
|
|
rm -f $(DESTDIR)$(modlibexecdir)/*.so
|
|
|
|
# Automatically generate linker version script. We use the same one for all public .sos
|
|
update-map-file:
|
|
( echo "PINOS_0 {" ; \
|
|
echo "global:" ; \
|
|
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 ; \
|
|
echo "local:" ; \
|
|
echo "*;" ; \
|
|
echo "};" ) > $(srcdir)/map-file
|
|
|
|
update-all: update-map-file
|
|
|
|
.PHONY: update-all update-map-file coverage
|