PROTOC=protoc
CPPFLAGS=@CPPFLAGS@
CPPFLAGS += -Itlse -DWITH_KTLS -DNO_TLS_LEGACY_SUPPORT -DNO_SSL_COMPATIBLE_INTERFACE -DLTM_DESC -DTLS_REEXPORTABLE -DNO_TLS_WITH_CHACHA20_POLY1305
-CXXFLAGS=-Wall @CXXFLAGS@ @protobuf_CFLAGS@ @libsystemd_CFLAGS@ @libtomcrypt_CFLAGS@
-LDFLAGS=@LDFLAGS@
+CXXFLAGS=-Wall @CXXFLAGS@ @protobuf_CFLAGS@ @libsystemd_CFLAGS@ @libtomcrypt_CFLAGS@ -pthread
+CFLAGS=-Wall @CFLAGS@
+LDFLAGS=@LDFLAGS@ -pthread
LIBS=@LIBS@ @protobuf_LIBS@ @libsystemd_LIBS@ @libtomcrypt_LIBS@
+SYSTEMDSYSTEMUNITDIR=@SYSTEMDSYSTEMUNITDIR@
-OBJS=main.o client.o server.o stream.o udpstream.o serverpool.o mutexlock.o input.o input_stats.o httpinput.o udpinput.o parse.o config.o acceptor.o stats.o accesslog.o thread.o util.o log.o metacube2.o sa_compare.o timespec.o state.pb.o tlse/tlse.o
+OBJS=main.o client.o server.o stream.o udpstream.o serverpool.o input.o input_stats.o httpinput.o udpinput.o parse.o config.o acceptor.o stats.o accesslog.o thread.o util.o log.o metacube2.o sa_compare.o timespec.o state.pb.o tlse/tlse.o
+ifeq (@have_ffmpeg@,yes)
+all: cubemap ffmpeg_metacube_hack.so
+else
all: cubemap
+endif
%.pb.cc %.pb.h : %.proto
$(PROTOC) --cpp_out=. $<
$(CXX) -MMD -MP $(CPPFLAGS) $(CXXFLAGS) -o $@ -c $<
cubemap: $(OBJS)
$(CXX) -o cubemap $(OBJS) $(LIBS) $(LDFLAGS)
+ffmpeg_metacube_hack.so: ffmpeg_metacube_hack.c
+ $(CC) -shared $(CPPFLAGS) $(CFLAGS) -fPIC -o $@ $< -ldl
DEPS=$(OBJS:.o=.d)
-include $(DEPS)
clean:
- $(RM) cubemap $(OBJS) $(DEPS) state.pb.h state.pb.cc
+ $(RM) cubemap $(OBJS) $(DEPS) state.pb.h state.pb.cc ffmpeg_metacube_hack.so
-PREFIX=@prefix@
-SYSCONFDIR=@sysconfdir@
-LOCALSTATEDIR=@localstatedir@
+prefix=@prefix@
+sysconfdir=@sysconfdir@
+localstatedir=@localstatedir@
+libdir=@libdir@
install:
$(INSTALL) -m 755 -o root -g root -d \
- $(DESTDIR)$(PREFIX)/bin \
- $(DESTDIR)$(PREFIX)/share/man/man1 \
- $(DESTDIR)$(SYSCONFDIR) \
- $(DESTDIR)$(LOCALSTATEDIR)/lib/cubemap \
- $(DESTDIR)$(LOCALSTATEDIR)/log/cubemap \
- $(DESTDIR)$(PREFIX)/share/munin/plugins \
- $(DESTDIR)/lib/systemd/system
- $(INSTALL) -m 755 -o root -g root cubemap $(DESTDIR)$(PREFIX)/bin/cubemap
- $(INSTALL) -m 755 -o root -g root munin/cubemap munin/cubemap_input $(DESTDIR)$(PREFIX)/share/munin/plugins/
- gzip -c cubemap.1 > $(DESTDIR)$(PREFIX)/share/man/man1/cubemap.1.gz
+ $(DESTDIR)$(prefix)/bin \
+ $(DESTDIR)$(prefix)/share/man/man1 \
+ $(DESTDIR)$(sysconfdir) \
+ $(DESTDIR)$(localstatedir)/lib/cubemap \
+ $(DESTDIR)$(localstatedir)/log/cubemap \
+ $(DESTDIR)$(prefix)/share/munin/plugins \
+ $(DESTDIR)$(SYSTEMDSYSTEMUNITDIR)
+ $(INSTALL) -m 755 -o root -g root cubemap $(DESTDIR)$(prefix)/bin/cubemap
+ $(INSTALL) -m 755 -o root -g root munin/cubemap munin/cubemap_input $(DESTDIR)$(prefix)/share/munin/plugins/
+ifeq (@have_ffmpeg@,yes)
+ $(INSTALL) -m 755 -o root -g root -d $(DESTDIR)$(libdir)
+ $(INSTALL) -m 755 -o root -g root ffmpeg_metacube_hack.so $(DESTDIR)$(libdir)/
+endif
+ gzip -c cubemap.1 > $(DESTDIR)$(prefix)/share/man/man1/cubemap.1.gz
sed \
- -e "s,@prefix[@],$(PREFIX),g" \
- -e "s,@sysconfdir[@],$(SYSCONFDIR),g" \
- cubemap.service.in > $(DESTDIR)/lib/systemd/system/cubemap.service
+ -e "s,@prefix[@],$(prefix),g" \
+ -e "s,@sysconfdir[@],$(sysconfdir),g" \
+ cubemap.service.in > $(DESTDIR)$(SYSTEMDSYSTEMUNITDIR)/cubemap.service
# Make sure we don't overwrite an existing configuration.
- test ! -f $(DESTDIR)$(SYSCONFDIR)/cubemap.config
+ test ! -f $(DESTDIR)$(sysconfdir)/cubemap.config
sed \
- -e "s,cubemap\.stats,$(LOCALSTATEDIR)/lib/cubemap/\0,g" \
- -e "s,cubemap-input\.stats,$(LOCALSTATEDIR)/lib/cubemap/\0,g" \
- -e "s,access\.log,$(LOCALSTATEDIR)/log/cubemap/\0,g" \
- -e "s,cubemap\.log,$(LOCALSTATEDIR)/log/cubemap/\0,g" \
+ -e "s,cubemap\.stats,$(localstatedir)/lib/cubemap/\0,g" \
+ -e "s,cubemap-input\.stats,$(localstatedir)/lib/cubemap/\0,g" \
+ -e "s,access\.log,$(localstatedir)/log/cubemap/\0,g" \
+ -e "s,cubemap\.log,$(localstatedir)/log/cubemap/\0,g" \
-e 's,^stream,#\0,g' \
-e 's,^udpstream,#\0,g' \
- cubemap.config.sample > $(DESTDIR)$(SYSCONFDIR)/cubemap.config
+ cubemap.config.sample > $(DESTDIR)$(sysconfdir)/cubemap.config
.PHONY: clean install
.SUFFIXES: