mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00:00
Original announce message: VDR developer version 1.7.23 is now available at ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.23.tar.bz2 A 'diff' against the previous version is available at ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.22-1.7.23.diff MD5 checksums: de136f7be28c4b6f1fa0e2218b4acc11 vdr-1.7.23.tar.bz2 2977b75cd8dacad187d11c10b867d56a vdr-1.7.22-1.7.23.diff WARNING: ======== This is a developer version. Even though I use it in my productive environment. I strongly recommend that you only use it under controlled conditions and for testing and debugging. From the HISTORY file: - Removed the '.pl' suffix from svdrpsend.pl (sorry, I missed that one). - Fixed bonding more than two devices. - Fixed handling symbolic links in cRecordings::ScanVideoDir() (reported by Sundararaj Reel). - Fixed a memory leak in cRecordings::ScanVideoDir() in case there are too many link levels (reported by Sundararaj Reel). - Removed redundant memset() in the ctor of cSatCableNumbers (triggered by Ville Skyttä pointing out that the argument sequence in the call was wrong). - Removed a redundant NULL check in cDvbSpuDecoder::setTime() (thanks to Ville Skyttä). - Added HasSnr to the DEBUG_SIGNALQUALITY output in cDvbTuner::GetSignalQuality() (triggered by Ville Skyttä pointing out that the variable HasSnr was unused). - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - Added support for HbbTV to libsi (thanks to Christoph Haubrich). - Added support for devices with more than one delivery system per frontend. This requires a DVB driver with version 5.5 or higher that can handle the DTV_ENUM_DELSYS call. With older drivers it will fall back to one delivery system per frontend. - Updated the Hungarian language texts (thanks to István Füley). - cDvbTuner::ExecuteDiseqc() now makes sure only one tuner sends SCR commands at any given time (reported by Frank Neumann). - cEvent::FixEpgBugs() now replaces any newline characters in stream component descriptions with blanks (thanks to Torsten Lang for reporting a problem with EPG data from BSkyB's "MTV MUSIC", S28.2E-2-2010-7012). - Fixed cDvbSubtitleConverter::SetOsdData() (thanks to Rolf Ahrenberg). - Fixed cListBase::Move() in case From and To are equal (reported by Sundararaj Reel). - Added support for DVB-T2 to libsi (thanks to Rolf Ahrenberg). - Added support for handling DVB-T2 transponders. This requires a DVB driver with version 5.3 or higher that can handle the DTV_DVBT2_PLP_ID call (thanks to Rolf Ahrenberg). - Fixed cConfig::Load() for g++ version 4.7.0 (thanks to Ville Skyttä). - Fixed a possible memory corruption in cTsToPes::GetPes() in case of broken TS packets, e.g. when switching channels. - Fixed the SVDRP command CLRE for a single channel in case there are events that have a timer (thanks to Timo Eskola). - BIDI support now checks at runtime whether the system runs with UTF-8 (suggested by Torsten Lang). - Added member functions Adapter() and Frontend() to cDvbDevice (suggested by Rolf Ahrenberg). - The parameters that are only used by "second generation" delivery systems (DVB-S2 and DVB-T2) are no longer written into channels.conf for "first generation" delivery systems (DVB-S and DVB-T). - Changed IndexToHMSF() so that it can handle negative Index values. - Added option -N to the msgmerge call in the Makefile, because fuzzy translation mostly resulted in useless strings. - The new setup option "Replay/Show remaining time" can be used to switch between showing the total length or the remaining time of the recording that is currently replayed. - Fixed wrongfully displaying the length of a recording in the title of the replay progress display. - Fixed frozen live view with device bonding in case the bonded master is used for live viewing (reported by Uwe Scheffler).
250 lines
6.6 KiB
Makefile
250 lines
6.6 KiB
Makefile
#
|
|
# Makefile for the Video Disk Recorder
|
|
#
|
|
# See the main source file 'vdr.c' for copyright information and
|
|
# how to reach the author.
|
|
#
|
|
# $Id: Makefile 2.23 2012/01/14 13:09:10 kls Exp $
|
|
|
|
.DELETE_ON_ERROR:
|
|
|
|
CC ?= gcc
|
|
CFLAGS ?= -g -O3 -Wall
|
|
|
|
CXX ?= g++
|
|
CXXFLAGS ?= -g -O3 -Wall -Woverloaded-virtual -Wno-parentheses
|
|
|
|
LSIDIR = ./libsi
|
|
DESTDIR ?=
|
|
PREFIX ?= /usr/local
|
|
MANDIR = $(PREFIX)/share/man
|
|
BINDIR = $(PREFIX)/bin
|
|
INCDIR = $(PREFIX)/include
|
|
LOCDIR = ./locale
|
|
LIBS = -ljpeg -lpthread -ldl -lcap -lrt $(shell pkg-config --libs freetype2 fontconfig)
|
|
INCLUDES ?= $(shell pkg-config --cflags freetype2 fontconfig)
|
|
|
|
PLUGINDIR= ./PLUGINS
|
|
PLUGINLIBDIR= $(PLUGINDIR)/lib
|
|
|
|
VIDEODIR = /video
|
|
CONFDIR = $(VIDEODIR)
|
|
|
|
DOXYGEN = /usr/bin/doxygen
|
|
DOXYFILE = Doxyfile
|
|
|
|
PCDIR ?= $(firstword $(subst :, , ${PKG_CONFIG_PATH}:$(shell pkg-config --variable=pc_path pkg-config):$(PREFIX)/lib/pkgconfig))
|
|
|
|
include Make.global
|
|
-include Make.config
|
|
|
|
SILIB = $(LSIDIR)/libsi.a
|
|
|
|
OBJS = audio.o channels.o ci.o config.o cutter.o device.o diseqc.o dvbdevice.o dvbci.o\
|
|
dvbplayer.o dvbspu.o dvbsubtitle.o eit.o eitscan.o epg.o filter.o font.o i18n.o interface.o keys.o\
|
|
lirc.o menu.o menuitems.o nit.o osdbase.o osd.o pat.o player.o plugin.o rcu.o\
|
|
receiver.o recorder.o recording.o remote.o remux.o ringbuffer.o sdt.o sections.o shutdown.o\
|
|
skinclassic.o skins.o skinsttng.o sourceparams.o sources.o spu.o status.o svdrp.o themes.o thread.o\
|
|
timers.o tools.o transfer.o vdr.o videodir.o
|
|
|
|
ifndef NO_KBD
|
|
DEFINES += -DREMOTE_KBD
|
|
endif
|
|
ifdef REMOTE
|
|
DEFINES += -DREMOTE_$(REMOTE)
|
|
endif
|
|
ifdef VDR_USER
|
|
DEFINES += -DVDR_USER=\"$(VDR_USER)\"
|
|
endif
|
|
ifdef BIDI
|
|
INCLUDES += $(shell pkg-config --cflags fribidi)
|
|
DEFINES += -DBIDI
|
|
LIBS += $(shell pkg-config --libs fribidi)
|
|
endif
|
|
|
|
LIRC_DEVICE ?= /var/run/lirc/lircd
|
|
RCU_DEVICE ?= /dev/ttyS1
|
|
|
|
DEFINES += -DLIRC_DEVICE=\"$(LIRC_DEVICE)\" -DRCU_DEVICE=\"$(RCU_DEVICE)\"
|
|
|
|
DEFINES += -D_GNU_SOURCE
|
|
|
|
DEFINES += -DVIDEODIR=\"$(VIDEODIR)\"
|
|
DEFINES += -DCONFDIR=\"$(CONFDIR)\"
|
|
DEFINES += -DPLUGINDIR=\"$(PLUGINLIBDIR)\"
|
|
DEFINES += -DLOCDIR=\"$(LOCDIR)\"
|
|
|
|
# The version numbers of VDR and the plugin API (taken from VDR's "config.h"):
|
|
|
|
VDRVERSION = $(shell sed -ne '/define VDRVERSION/s/^.*"\(.*\)".*$$/\1/p' config.h)
|
|
APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' config.h)
|
|
|
|
all: vdr i18n vdr.pc
|
|
|
|
# Implicit rules:
|
|
|
|
%.o: %.c
|
|
$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
|
|
|
|
# Dependencies:
|
|
|
|
MAKEDEP = $(CXX) -MM -MG
|
|
DEPFILE = .dependencies
|
|
$(DEPFILE): Makefile
|
|
@$(MAKEDEP) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@
|
|
|
|
-include $(DEPFILE)
|
|
|
|
# The main program:
|
|
|
|
vdr: $(OBJS) $(SILIB)
|
|
$(CXX) $(CXXFLAGS) -rdynamic $(LDFLAGS) $(OBJS) $(LIBS) $(LIBDIRS) $(SILIB) -o vdr
|
|
|
|
# The libsi library:
|
|
|
|
$(SILIB):
|
|
$(MAKE) -C $(LSIDIR) all
|
|
|
|
# pkg-config file:
|
|
|
|
vdr.pc: Makefile Make.global
|
|
@echo "bindir=$(BINDIR)" > $@
|
|
@echo "includedir=$(INCDIR)" >> $@
|
|
@echo "configdir=$(CONFDIR)" >> $@
|
|
@echo "videodir=$(VIDEODIR)" >> $@
|
|
@echo "plugindir=$(PLUGINLIBDIR)" >> $@
|
|
@echo "localedir=$(LOCDIR)" >> $@
|
|
@echo "apiversion=$(APIVERSION)" >> $@
|
|
@echo "cflags=$(CXXFLAGS) $(DEFINES) -I\$${includedir}" >> $@
|
|
@echo "plugincflags=\$${cflags} -fPIC" >> $@
|
|
@echo "" >> $@
|
|
@echo "Name: VDR" >> $@
|
|
@echo "Description: Video Disk Recorder" >> $@
|
|
@echo "URL: http://www.tvdr.de/" >> $@
|
|
@echo "Version: $(VDRVERSION)" >> $@
|
|
@echo "Cflags: \$${cflags}" >> $@
|
|
|
|
# Internationalization (I18N):
|
|
|
|
PODIR = po
|
|
LOCALEDIR = locale
|
|
I18Npo = $(wildcard $(PODIR)/*.po)
|
|
I18Nmsgs = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr.mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
|
|
I18Npot = $(PODIR)/vdr.pot
|
|
|
|
%.mo: %.po
|
|
msgfmt -c -o $@ $<
|
|
|
|
$(I18Npot): $(wildcard *.c)
|
|
xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=VDR --package-version=$(VDRVERSION) --msgid-bugs-address='<vdr-bugs@tvdr.de>' -o $@ `ls $^`
|
|
|
|
%.po: $(I18Npot)
|
|
msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $<
|
|
@touch $@
|
|
|
|
$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr.mo: $(PODIR)/%.mo
|
|
@mkdir -p $(dir $@)
|
|
cp $< $@
|
|
|
|
.PHONY: i18n
|
|
i18n: $(I18Nmsgs)
|
|
|
|
install-i18n:
|
|
@mkdir -p $(DESTDIR)$(LOCDIR)
|
|
@(cd $(LOCALEDIR); cp -r --parents * $(DESTDIR)$(LOCDIR))
|
|
|
|
# The 'include' directory (for plugins):
|
|
|
|
include-dir:
|
|
@mkdir -p include/vdr
|
|
@(cd include/vdr; for i in ../../*.h; do ln -fs $$i .; done)
|
|
@mkdir -p include/libsi
|
|
@(cd include/libsi; for i in ../../libsi/*.h; do ln -fs $$i .; done)
|
|
|
|
# Plugins:
|
|
|
|
plugins: include-dir
|
|
@failed="";\
|
|
noapiv="";\
|
|
for i in `ls $(PLUGINDIR)/src | grep -v '[^a-z0-9]'`; do\
|
|
echo "Plugin $$i:";\
|
|
if ! grep -q "\$$(LIBDIR)/.*\$$(APIVERSION)" "$(PLUGINDIR)/src/$$i/Makefile" ; then\
|
|
echo "ERROR: plugin $$i doesn't honor APIVERSION - not compiled!";\
|
|
noapiv="$$noapiv $$i";\
|
|
continue;\
|
|
fi;\
|
|
$(MAKE) -C "$(PLUGINDIR)/src/$$i" all || failed="$$failed $$i";\
|
|
done;\
|
|
if [ -n "$$noapiv" ] ; then echo; echo "*** plugins without APIVERSION:$$noapiv"; echo; fi;\
|
|
if [ -n "$$failed" ] ; then echo; echo "*** failed plugins:$$failed"; echo; exit 1; fi
|
|
|
|
clean-plugins:
|
|
@for i in `ls $(PLUGINDIR)/src | grep -v '[^a-z0-9]'`; do $(MAKE) -C "$(PLUGINDIR)/src/$$i" clean; done
|
|
@-rm -f $(PLUGINDIR)/lib/lib*-*.so.$(APIVERSION)
|
|
|
|
# Install the files:
|
|
|
|
install: install-bin install-conf install-doc install-plugins install-i18n install-includes install-pc
|
|
|
|
# VDR binary:
|
|
|
|
install-bin: vdr
|
|
@mkdir -p $(DESTDIR)$(BINDIR)
|
|
@cp --remove-destination vdr svdrpsend $(DESTDIR)$(BINDIR)
|
|
|
|
# Configuration files:
|
|
|
|
install-conf:
|
|
@mkdir -p $(DESTDIR)$(VIDEODIR)
|
|
@if [ ! -d $(DESTDIR)$(CONFDIR) ]; then\
|
|
mkdir -p $(DESTDIR)$(CONFDIR);\
|
|
cp *.conf $(DESTDIR)$(CONFDIR);\
|
|
fi
|
|
|
|
# Documentation:
|
|
|
|
install-doc:
|
|
@mkdir -p $(DESTDIR)$(MANDIR)/man1
|
|
@mkdir -p $(DESTDIR)$(MANDIR)/man5
|
|
@gzip -c vdr.1 > $(DESTDIR)$(MANDIR)/man1/vdr.1.gz
|
|
@gzip -c vdr.5 > $(DESTDIR)$(MANDIR)/man5/vdr.5.gz
|
|
|
|
# Plugins:
|
|
|
|
install-plugins: plugins
|
|
@mkdir -p $(DESTDIR)$(PLUGINLIBDIR)
|
|
@cp --remove-destination $(PLUGINDIR)/lib/lib*-*.so.$(APIVERSION) $(DESTDIR)$(PLUGINLIBDIR)
|
|
|
|
# Includes:
|
|
|
|
install-includes: include-dir
|
|
@mkdir -p $(DESTDIR)$(INCDIR)
|
|
@cp -pLR include/vdr include/libsi $(DESTDIR)$(INCDIR)
|
|
|
|
# pkg-config file:
|
|
|
|
install-pc: vdr.pc
|
|
if [ -n "$(PCDIR)" ] ; then \
|
|
mkdir -p $(DESTDIR)$(PCDIR) ; \
|
|
cp vdr.pc $(DESTDIR)$(PCDIR) ; \
|
|
fi
|
|
|
|
# Source documentation:
|
|
|
|
srcdoc:
|
|
@cp $(DOXYFILE) $(DOXYFILE).tmp
|
|
@echo PROJECT_NUMBER = $(VDRVERSION) >> $(DOXYFILE).tmp
|
|
$(DOXYGEN) $(DOXYFILE).tmp
|
|
@rm $(DOXYFILE).tmp
|
|
|
|
# Housekeeping:
|
|
|
|
clean:
|
|
$(MAKE) -C $(LSIDIR) clean
|
|
-rm -f $(OBJS) $(DEPFILE) vdr vdr.pc core* *~
|
|
-rm -rf $(LOCALEDIR) $(PODIR)/*.mo $(PODIR)/*.pot
|
|
-rm -rf include
|
|
-rm -rf srcdoc
|
|
CLEAN: clean
|
|
|