Build a convenience library for plugin development
This commit is contained in:
parent
731fa96fdf
commit
003fafbf7d
110
src/Makefile.am
110
src/Makefile.am
|
@ -1,7 +1,9 @@
|
||||||
AUTOMAKE_OPTIONS = gnu
|
AUTOMAKE_OPTIONS = gnu
|
||||||
|
|
||||||
AM_CPPFLAGS = @MYSQL_CFLAGS@ @MARIADB_CFLAGS@ @FFMPEG_CFLAGS@ -Wall -finline-functions -fomit-frame-pointer
|
AM_CPPFLAGS = @MYSQL_CFLAGS@ @MARIADB_CFLAGS@ @FFMPEG_CFLAGS@ -Wall -finline-functions -fomit-frame-pointer
|
||||||
#AM_CXXFLAGS = -frepo
|
# Compile zm binaries with -rdynamic to enable visiblily of global static
|
||||||
|
# variables in shared libraries (plugins)
|
||||||
|
AM_CXXFLAGS = -rdynamic
|
||||||
|
|
||||||
CLEANFILES = *.rpo
|
CLEANFILES = *.rpo
|
||||||
|
|
||||||
|
@ -24,24 +26,18 @@ zm_SOURCES = \
|
||||||
zm_buffer.cpp \
|
zm_buffer.cpp \
|
||||||
zm_camera.cpp \
|
zm_camera.cpp \
|
||||||
zm_comms.cpp \
|
zm_comms.cpp \
|
||||||
zm_config.cpp \
|
|
||||||
zm_coord.cpp \
|
zm_coord.cpp \
|
||||||
zm_curl_camera.cpp \
|
zm_curl_camera.cpp \
|
||||||
zm.cpp \
|
zm.cpp \
|
||||||
zm_db.cpp \
|
|
||||||
zm_logger.cpp \
|
|
||||||
zm_event.cpp \
|
zm_event.cpp \
|
||||||
zm_exception.cpp \
|
zm_exception.cpp \
|
||||||
zm_file_camera.cpp \
|
zm_file_camera.cpp \
|
||||||
zm_ffmpeg_camera.cpp \
|
zm_ffmpeg_camera.cpp \
|
||||||
zm_image.cpp \
|
|
||||||
zm_jpeg.cpp \
|
|
||||||
zm_libvlc_camera.cpp \
|
zm_libvlc_camera.cpp \
|
||||||
zm_local_camera.cpp \
|
zm_local_camera.cpp \
|
||||||
zm_monitor.cpp \
|
zm_monitor.cpp \
|
||||||
zm_ffmpeg.cpp \
|
zm_ffmpeg.cpp \
|
||||||
zm_mpeg.cpp \
|
zm_mpeg.cpp \
|
||||||
zm_poly.cpp \
|
|
||||||
zm_regexp.cpp \
|
zm_regexp.cpp \
|
||||||
zm_remote_camera.cpp \
|
zm_remote_camera.cpp \
|
||||||
zm_remote_camera_http.cpp \
|
zm_remote_camera_http.cpp \
|
||||||
|
@ -55,13 +51,47 @@ zm_SOURCES = \
|
||||||
zm_sdp.cpp \
|
zm_sdp.cpp \
|
||||||
zm_signal.cpp \
|
zm_signal.cpp \
|
||||||
zm_stream.cpp \
|
zm_stream.cpp \
|
||||||
zm_thread.cpp \
|
|
||||||
zm_time.cpp \
|
zm_time.cpp \
|
||||||
zm_timer.cpp \
|
zm_timer.cpp \
|
||||||
zm_user.cpp \
|
zm_user.cpp \
|
||||||
|
$(SOURCES_common)
|
||||||
|
|
||||||
|
# These source files are used both for zm binaries and the libzmplugins
|
||||||
|
# convenience library
|
||||||
|
SOURCES_common = \
|
||||||
|
zm_config.cpp \
|
||||||
|
zm_db.cpp \
|
||||||
|
zm_image.cpp \
|
||||||
|
zm_jpeg.cpp \
|
||||||
|
zm_logger.cpp \
|
||||||
|
zm_poly.cpp \
|
||||||
zm_utils.cpp \
|
zm_utils.cpp \
|
||||||
|
zm_thread.cpp \
|
||||||
zm_zone.cpp
|
zm_zone.cpp
|
||||||
|
|
||||||
|
# These header files are used both for zm binaries and the libzmplugins
|
||||||
|
# convenience library
|
||||||
|
HEADERS_common = \
|
||||||
|
jinclude.h \
|
||||||
|
zm.h \
|
||||||
|
zm_box.h \
|
||||||
|
zm_config_defines.h \
|
||||||
|
zm_config.h \
|
||||||
|
zm_coord.h \
|
||||||
|
zm_db.h \
|
||||||
|
zm_event.h \
|
||||||
|
zm_ffmpeg.h \
|
||||||
|
zm_image.h \
|
||||||
|
zm_jpeg.h \
|
||||||
|
zm_logger.h \
|
||||||
|
zm_mem_utils.h \
|
||||||
|
zm_mpeg.h \
|
||||||
|
zm_poly.h \
|
||||||
|
zm_rgb.h \
|
||||||
|
zm_stream.h \
|
||||||
|
zm_utils.h \
|
||||||
|
zm_zone.h
|
||||||
|
|
||||||
zmc_SOURCES = zmc.cpp $(zm_SOURCES)
|
zmc_SOURCES = zmc.cpp $(zm_SOURCES)
|
||||||
zma_SOURCES = zma.cpp $(zm_SOURCES)
|
zma_SOURCES = zma.cpp $(zm_SOURCES)
|
||||||
zms_SOURCES = zms.cpp $(zm_SOURCES)
|
zms_SOURCES = zms.cpp $(zm_SOURCES)
|
||||||
|
@ -84,39 +114,22 @@ zmf_LDADD = $(zm_LDADD)
|
||||||
zmstreamer_LDADD = $(zm_LDADD)
|
zmstreamer_LDADD = $(zm_LDADD)
|
||||||
|
|
||||||
noinst_HEADERS = \
|
noinst_HEADERS = \
|
||||||
jinclude.h \
|
|
||||||
zm_box.h \
|
|
||||||
zm_buffer.h \
|
zm_buffer.h \
|
||||||
zm_camera.h \
|
zm_camera.h \
|
||||||
zm_comms.h \
|
zm_comms.h \
|
||||||
zm_config_defines.h \
|
|
||||||
zm_config.h \
|
|
||||||
zm_coord.h \
|
|
||||||
zm_curl_camera.h \
|
zm_curl_camera.h \
|
||||||
zm_db.h \
|
|
||||||
zm_logger.h \
|
|
||||||
zm_event.h \
|
|
||||||
zm_exception.h \
|
zm_exception.h \
|
||||||
zmf.h \
|
zmf.h \
|
||||||
zm_file_camera.h \
|
zm_file_camera.h \
|
||||||
zm_ffmpeg_camera.h \
|
zm_ffmpeg_camera.h \
|
||||||
zm_font.h \
|
zm_font.h \
|
||||||
zm_font.h \
|
|
||||||
zm.h \
|
|
||||||
zm_image.h \
|
|
||||||
zm_jpeg.h \
|
|
||||||
zm_libvlc_camera.h \
|
zm_libvlc_camera.h \
|
||||||
zm_local_camera.h \
|
zm_local_camera.h \
|
||||||
zm_mem_utils.h \
|
|
||||||
zm_monitor.h \
|
zm_monitor.h \
|
||||||
zm_ffmpeg.h \
|
|
||||||
zm_mpeg.h \
|
|
||||||
zm_poly.h \
|
|
||||||
zm_regexp.h \
|
zm_regexp.h \
|
||||||
zm_remote_camera.h \
|
zm_remote_camera.h \
|
||||||
zm_remote_camera_http.h \
|
zm_remote_camera_http.h \
|
||||||
zm_remote_camera_rtsp.h \
|
zm_remote_camera_rtsp.h \
|
||||||
zm_rgb.h \
|
|
||||||
zm_rtp_ctrl.h \
|
zm_rtp_ctrl.h \
|
||||||
zm_rtp_data.h \
|
zm_rtp_data.h \
|
||||||
zm_rtp.h \
|
zm_rtp.h \
|
||||||
|
@ -124,13 +137,48 @@ noinst_HEADERS = \
|
||||||
zm_rtsp.h \
|
zm_rtsp.h \
|
||||||
zm_sdp.h \
|
zm_sdp.h \
|
||||||
zm_signal.h \
|
zm_signal.h \
|
||||||
zm_stream.h \
|
|
||||||
zm_thread.h \
|
zm_thread.h \
|
||||||
zm_time.h \
|
zm_time.h \
|
||||||
zm_timer.h \
|
zm_timer.h \
|
||||||
zm_user.h \
|
zm_user.h
|
||||||
zm_utils.h \
|
|
||||||
zm_zone.h
|
if ZM_HAS_PLUGIN_SUPPORT
|
||||||
|
# Add objects to zm binaries for plugins management
|
||||||
|
zm_SOURCES += \
|
||||||
|
zm_detector.cpp \
|
||||||
|
zm_image_analyser.cpp \
|
||||||
|
zm_plugin.cpp \
|
||||||
|
zm_plugin_manager.cpp
|
||||||
|
|
||||||
|
# Build a convenience library for plugin development
|
||||||
|
noinst_LTLIBRARIES = libzmplugins.la
|
||||||
|
libzmplugins_la_SOURCES = zm_detector.cpp $(SOURCES_common)
|
||||||
|
|
||||||
|
# A hack to avoid conflicts between objects created both with libtool
|
||||||
|
# and without (objects will be prefixed with "libzmplugins_la")
|
||||||
|
libzmplugins_la_CPPFLAGS = $(AM_CPPFLAGS)
|
||||||
|
|
||||||
|
# Install the necessary headers for plugin development
|
||||||
|
pkginclude_HEADERS = \
|
||||||
|
zm_detector.h \
|
||||||
|
zm_image_analyser.h \
|
||||||
|
zm_plugin.h \
|
||||||
|
zm_plugin_manager.h \
|
||||||
|
$(HEADERS_common)
|
||||||
|
|
||||||
|
# Install a pkg-config file for a proper handling of the libzmplugins
|
||||||
|
# convenience library
|
||||||
|
pkgconfigdir = $(libdir)/pkgconfig
|
||||||
|
pkgconfig_DATA = libzmplugins.pc
|
||||||
|
else
|
||||||
|
# Don't intall plugin headers if no support
|
||||||
|
noinst_HEADERS += \
|
||||||
|
zm_detector.h \
|
||||||
|
zm_plugin.h \
|
||||||
|
zm_plugin_manager.h \
|
||||||
|
zm_image_analyser.h \
|
||||||
|
$(HEADERS_common)
|
||||||
|
endif
|
||||||
|
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
zm_config.h.in \
|
zm_config.h.in \
|
||||||
|
@ -140,10 +188,14 @@ dist-hook:
|
||||||
@( rm $(distdir)/zm_config.h )
|
@( rm $(distdir)/zm_config.h )
|
||||||
|
|
||||||
# Yes, you are correct. This is a HACK!
|
# Yes, you are correct. This is a HACK!
|
||||||
|
# And the manual installation of libzmplugins.a is necessary because libtool has
|
||||||
|
# no option to force installation of convenience libraries.
|
||||||
install-exec-hook:
|
install-exec-hook:
|
||||||
( cd $(DESTDIR)@bindir@; mkdir -p $(DESTDIR)$(cgidir); mv zms $(DESTDIR)$(cgidir) )
|
( cd $(DESTDIR)@bindir@; mkdir -p $(DESTDIR)$(cgidir); mv zms $(DESTDIR)$(cgidir) )
|
||||||
( cd $(DESTDIR)$(cgidir); chown $(webuser):$(webgroup) zms; ln -f zms nph-zms )
|
( cd $(DESTDIR)$(cgidir); chown $(webuser):$(webgroup) zms; ln -f zms nph-zms )
|
||||||
|
install -D -m 644 .libs/libzmplugins.a $(DESTDIR)$(libdir)/libzmplugins.a
|
||||||
|
|
||||||
uninstall-hook:
|
uninstall-hook:
|
||||||
( cd $(DESTDIR)$(cgidir); rm -f zms nph-zms )
|
( cd $(DESTDIR)$(cgidir); rm -f zms nph-zms )
|
||||||
|
( cd $(DESTDIR)$(libdir); rm -f libzmplugins.a )
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue