diff --git a/CONTRIBUTORS b/CONTRIBUTORS index c8861486..6474b72d 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -2809,6 +2809,8 @@ Christopher Reimer for reporting a problem with external Dolby Digital processing via the '-a' option in live mode and with TS recordings for contributing to a patch that implements FHS support + for suggesting to remove some redundancy in the Makefile/Make.global/Make.config + mechanism Stefan Huskamp for suggesting to make entering characters via the number keys diff --git a/HISTORY b/HISTORY index 90204a83..e580ee7a 100644 --- a/HISTORY +++ b/HISTORY @@ -7417,7 +7417,7 @@ Video Disk Recorder Revision History plugins to display these items in a more elaborate way than just a simple line of text. -2012-12-18: Version 1.7.34 +2012-12-19: Version 1.7.34 - Changed the type of the TimerMatch parameter in cSkinDisplayMenu::SetItemEvent() from 'int' to 'eTimerEvent' (reported by Christoph Haubrich). @@ -7429,3 +7429,10 @@ Video Disk Recorder Revision History xgettext in several plugin Makefiles. - Added "-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE" to the DEFINES in the Makefile (somehow got lost from Make.config.template in version 1.7.13). +- Removed some redundancy in the Makefile/Make.global/Make.config mechanism (suggested + by Christopher Reimer). The file Make.global is no longer used, and plugin Makefiles + don't include the file Make.config any more. Instead they now retrieve all necessary + information through calls to pkg-config. + Plugin authors (and users) can apply the patch from + ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.33-pluginmakefile.diff + to their Makefile to make the necessary changes (see comments in that file for details). diff --git a/Make.config.template b/Make.config.template index 08f9ece8..3a4e3842 100644 --- a/Make.config.template +++ b/Make.config.template @@ -6,20 +6,16 @@ # See the main source file 'vdr.c' for copyright information and # how to reach the author. # -# $Id: Make.config.template 2.10 2012/10/09 10:32:32 kls Exp $ +# $Id: Make.config.template 2.11 2012/12/18 17:37:54 kls Exp $ ### The C compiler and options: CC = gcc CFLAGS = -g -O3 -Wall +CFLAGS += -fPIC CXX = g++ -CXXFLAGS = -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses - -ifdef PLUGIN -CFLAGS += -fPIC -CXXFLAGS += -fPIC -endif +CXXFLAGS = $(CFLAGS) -Werror=overloaded-virtual -Wno-parentheses # Use 'make M32=1 ...' to build a 32-bit version of VDR on a 64-bit machine: ifdef M32 @@ -35,9 +31,10 @@ MANDIR = $(PREFIX)/man BINDIR = $(PREFIX)/bin # By default locale and plugin files are built under the source directory: -LOCDIR = ./locale -PLUGINDIR = ./PLUGINS -PLUGINLIBDIR = $(PLUGINDIR)/lib +INCDIR = $(CWD)/include +LOCDIR = $(CWD)/locale +PLUGINDIR = $(CWD)/PLUGINS +LIBDIR = $(PLUGINDIR)/lib # By default VDR requires only one single directory to operate: VIDEODIR = /video # Activate the following line to build VDR according to the FHS ("File system Hierarchy Standard"): @@ -47,8 +44,9 @@ VIDEODIR = /srv/vdr/video CONFDIR = /var/lib/vdr CACHEDIR = /var/cache/vdr RESDIR = $(PREFIX)/share/vdr +INCDIR = $(PREFIX)/include LOCDIR = $(PREFIX)/share/locale -PLUGINLIBDIR = $(PREFIX)/lib/vdr +LIBDIR = $(PREFIX)/lib/vdr endif ### The remote control: diff --git a/Makefile b/Makefile index 682e14dc..4b86faf6 100644 --- a/Makefile +++ b/Makefile @@ -4,28 +4,33 @@ # See the main source file 'vdr.c' for copyright information and # how to reach the author. # -# $Id: Makefile 2.31 2012/12/18 13:20:17 kls Exp $ +# $Id: Makefile 2.32 2012/12/19 11:26:50 kls Exp $ .DELETE_ON_ERROR: CC ?= gcc -CFLAGS ?= -g -O3 -Wall +CFLAGS ?= -g -O3 -Wall -fPIC +CFLAGS += -fPIC CXX ?= g++ -CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses +CXXFLAGS ?= $(CFLAGS) -Werror=overloaded-virtual -Wno-parentheses +CDEFINES = -D_GNU_SOURCE +CDEFINES = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE + +CWD := $(shell pwd) LSIDIR = ./libsi DESTDIR ?= PREFIX ?= /usr/local MANDIR ?= $(PREFIX)/share/man BINDIR ?= $(PREFIX)/bin -INCDIR ?= $(PREFIX)/include -LOCDIR ?= ./locale +INCDIR ?= $(CWD)/include +LOCDIR ?= $(CWD)/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 +PLUGINDIR= $(CWD)/PLUGINS +LIBDIR = $(PLUGINDIR)/lib # By default VDR requires only one single directory to operate: VIDEODIR = /video @@ -36,7 +41,6 @@ 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 @@ -48,6 +52,8 @@ OBJS = audio.o channels.o ci.o config.o cutter.o device.o diseqc.o dvbdevice.o d skinclassic.o skinlcars.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 +DEFINES += $(CDEFINES) + ifndef NO_KBD DEFINES += -DREMOTE_KBD endif @@ -66,15 +72,11 @@ endif LIRC_DEVICE ?= /var/run/lirc/lircd DEFINES += -DLIRC_DEVICE=\"$(LIRC_DEVICE)\" - -DEFINES += -D_GNU_SOURCE -DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE - DEFINES += -DVIDEODIR=\"$(VIDEODIR)\" DEFINES += -DCONFDIR=\"$(CONFDIR)\" DEFINES += -DCACHEDIR=\"$(CACHEDIR)\" DEFINES += -DRESDIR=\"$(RESDIR)\" -DEFINES += -DPLUGINDIR=\"$(PLUGINLIBDIR)\" +DEFINES += -DPLUGINDIR=\"$(LIBDIR)\" DEFINES += -DLOCDIR=\"$(LOCDIR)\" # Default values for directories: @@ -88,7 +90,7 @@ RESDIRDEF = $(firstword $(RESDIR) $(CONFDIRDEF)) 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 +all: vdr i18n plugins # Implicit rules: @@ -107,27 +109,28 @@ $(DEPFILE): Makefile # The main program: vdr: $(OBJS) $(SILIB) - $(CXX) $(CXXFLAGS) -rdynamic $(LDFLAGS) $(OBJS) $(LIBS) $(LIBDIRS) $(SILIB) -o vdr + $(CXX) $(CXXFLAGS) -rdynamic $(LDFLAGS) $(OBJS) $(LIBS) $(SILIB) -o vdr # The libsi library: $(SILIB): - $(MAKE) -C $(LSIDIR) all + $(MAKE) -C $(LSIDIR) CXXFLAGS="$(CXXFLAGS)" DEFINES="$(CDEFINES)" all # pkg-config file: -vdr.pc: Makefile Make.global +.PHONY: vdr.pc +vdr.pc: @echo "bindir=$(BINDIR)" > $@ - @echo "includedir=$(INCDIR)" >> $@ + @echo "incdir=$(INCDIR)" >> $@ @echo "configdir=$(CONFDIRDEF)" >> $@ @echo "videodir=$(VIDEODIR)" >> $@ @echo "cachedir=$(CACHEDIRDEF)" >> $@ @echo "resdir=$(RESDIRDEF)" >> $@ - @echo "plugindir=$(PLUGINLIBDIR)" >> $@ - @echo "localedir=$(LOCDIR)" >> $@ + @echo "libdir=$(LIBDIR)" >> $@ + @echo "locdir=$(LOCDIR)" >> $@ @echo "apiversion=$(APIVERSION)" >> $@ - @echo "cflags=$(CXXFLAGS) $(DEFINES) -I\$${includedir}" >> $@ - @echo "plugincflags=\$${cflags} -fPIC" >> $@ + @echo "cflags=$(CFLAGS) $(CDEFINES)" >> $@ + @echo "cxxflags=$(CXXFLAGS) $(CDEFINES)" >> $@ @echo "" >> $@ @echo "Name: VDR" >> $@ @echo "Description: Video Disk Recorder" >> $@ @@ -158,7 +161,7 @@ $(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr.mo: $(PODIR)/%.mo cp $< $@ .PHONY: i18n -i18n: $(I18Nmsgs) +i18n: $(I18Nmsgs) $(I18Npot) install-i18n: @mkdir -p $(DESTDIR)$(LOCDIR) @@ -174,7 +177,7 @@ include-dir: # Plugins: -plugins: include-dir +plugins: include-dir vdr.pc @failed="";\ noapiv="";\ for i in `ls $(PLUGINDIR)/src | grep -v '[^a-z0-9]'`; do\ @@ -184,7 +187,7 @@ plugins: include-dir noapiv="$$noapiv $$i";\ continue;\ fi;\ - $(MAKE) -C "$(PLUGINDIR)/src/$$i" all || failed="$$failed $$i";\ + $(MAKE) -C "$(PLUGINDIR)/src/$$i" VDRDIR=$(CWD) 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 @@ -226,8 +229,8 @@ install-doc: # Plugins: install-plugins: plugins - @mkdir -p $(DESTDIR)$(PLUGINLIBDIR) - @cp --remove-destination $(PLUGINDIR)/lib/lib*-*.so.$(APIVERSION) $(DESTDIR)$(PLUGINLIBDIR) + @mkdir -p $(DESTDIR)$(LIBDIR) + @cp --remove-destination $(PLUGINDIR)/lib/lib*-*.so.$(APIVERSION) $(DESTDIR)$(LIBDIR) # Includes: @@ -254,9 +257,9 @@ srcdoc: # 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 + @$(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 diff --git a/PLUGINS/src/dvbsddevice/Makefile b/PLUGINS/src/dvbsddevice/Makefile index e218cc35..2a6b285a 100644 --- a/PLUGINS/src/dvbsddevice/Makefile +++ b/PLUGINS/src/dvbsddevice/Makefile @@ -1,42 +1,36 @@ # # Makefile for a Video Disk Recorder plugin # -# $Id: Makefile 1.10 2012/12/18 09:36:37 kls Exp $ +# $Id: Makefile 1.11 2012/12/19 11:16:48 kls Exp $ # The official name of this plugin. # This name will be used in the '-P...' option of VDR to load the plugin. # By default the main source file also carries this name. -# IMPORTANT: the presence of this macro is important for the Make.config -# file. So it must be defined, even if it is not used here! -# + PLUGIN = dvbsddevice ### The version number of this plugin (taken from the main source file): VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') -### The C++ compiler and options: - -CXX ?= g++ -CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses - ### The directory environment: -VDRDIR ?= ../../.. -LIBDIR ?= ../../lib +# Use package data if installed...otherwise assume we're under the VDR source directory: +PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc)) +INCDIR ?= $(call PKGCFG,incdir) +LIBDIR ?= $(call PKGCFG,libdir) +LOCDIR ?= $(call PKGCFG,locdir) +# TMPDIR ?= /tmp -### Make sure that necessary options are included: +### The compiler options: -include $(VDRDIR)/Make.global +export CFLAGS ?= $(call PKGCFG,cflags) +export CXXFLAGS ?= $(call PKGCFG,cxxflags) -### Allow user defined options to overwrite defaults: +### The version number of VDR's plugin API: --include $(VDRDIR)/Make.config - -### The version number of VDR's plugin API (taken from VDR's "config.h"): - -APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h) +APIVERSION = $(call PKGCFG,apiversion) ### The name of the distribution archive: @@ -45,9 +39,9 @@ PACKAGE = vdr-$(ARCHIVE) ### Includes and Defines (add further entries here): -INCLUDES += -I$(VDRDIR)/include +INCLUDES += -I$(INCDIR) -DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' +DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"' ### The object files (add further files here): @@ -55,7 +49,7 @@ OBJS = $(PLUGIN).o dvbsdffdevice.o dvbsdffosd.o ### The main target: -all: libvdr-$(PLUGIN).so i18n +all: libvdr-$(PLUGIN).so ### Implicit rules: @@ -71,38 +65,13 @@ $(DEPFILE): Makefile -include $(DEPFILE) -### Internationalization (I18N): - -PODIR = po -LOCALEDIR = $(VDRDIR)/locale -I18Npo = $(wildcard $(PODIR)/*.po) -I18Nmsgs = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file)))))) -I18Npot = $(PODIR)/$(PLUGIN).pot - -%.mo: %.po - msgfmt -c -o $@ $< - -$(I18Npot): $(wildcard *.c) - xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='' -o $@ `ls $^` - -%.po: $(I18Npot) - msgmerge -U --no-wrap --no-location --backup=none -q $@ $< - @touch $@ - -$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo - @mkdir -p $(dir $@) - cp $< $@ - -.PHONY: i18n -i18n: $(I18Nmsgs) $(I18Npot) - ### Targets: libvdr-$(PLUGIN).so: $(OBJS) $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION) -dist: $(I18Npo) clean +dist: clean @-rm -rf $(TMPDIR)/$(ARCHIVE) @mkdir $(TMPDIR)/$(ARCHIVE) @cp -a * $(TMPDIR)/$(ARCHIVE) diff --git a/PLUGINS/src/epgtableid0/Makefile b/PLUGINS/src/epgtableid0/Makefile index 8745b4af..5a1da9c4 100644 --- a/PLUGINS/src/epgtableid0/Makefile +++ b/PLUGINS/src/epgtableid0/Makefile @@ -1,42 +1,36 @@ # # Makefile for a Video Disk Recorder plugin # -# $Id: Makefile 1.3 2012/12/18 09:29:44 kls Exp $ +# $Id: Makefile 1.4 2012/12/19 11:17:32 kls Exp $ # The official name of this plugin. # This name will be used in the '-P...' option of VDR to load the plugin. # By default the main source file also carries this name. -# IMPORTANT: the presence of this macro is important for the Make.config -# file. So it must be defined, even if it is not used here! -# + PLUGIN = epgtableid0 ### The version number of this plugin (taken from the main source file): VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') -### The C++ compiler and options: - -CXX ?= g++ -CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses - ### The directory environment: -VDRDIR ?= ../../.. -LIBDIR ?= ../../lib +# Use package data if installed...otherwise assume we're under the VDR source directory: +PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc)) +INCDIR ?= $(call PKGCFG,incdir) +LIBDIR ?= $(call PKGCFG,libdir) +LOCDIR ?= $(call PKGCFG,locdir) +# TMPDIR ?= /tmp -### Make sure that necessary options are included: +### The compiler options: -include $(VDRDIR)/Make.global +export CFLAGS ?= $(call PKGCFG,cflags) +export CXXFLAGS ?= $(call PKGCFG,cxxflags) -### Allow user defined options to overwrite defaults: +### The version number of VDR's plugin API: --include $(VDRDIR)/Make.config - -### The version number of VDR's plugin API (taken from VDR's "config.h"): - -APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h) +APIVERSION = $(call PKGCFG,apiversion) ### The name of the distribution archive: @@ -45,9 +39,9 @@ PACKAGE = vdr-$(ARCHIVE) ### Includes and Defines (add further entries here): -INCLUDES += -I$(VDRDIR)/include +INCLUDES += -I$(INCDIR) -DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' +DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"' ### The object files (add further files here): @@ -55,7 +49,7 @@ OBJS = $(PLUGIN).o ### The main target: -all: libvdr-$(PLUGIN).so i18n +all: libvdr-$(PLUGIN).so ### Implicit rules: @@ -71,38 +65,13 @@ $(DEPFILE): Makefile -include $(DEPFILE) -### Internationalization (I18N): - -PODIR = po -LOCALEDIR = $(VDRDIR)/locale -I18Npo = $(wildcard $(PODIR)/*.po) -I18Nmsgs = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file)))))) -I18Npot = $(PODIR)/$(PLUGIN).pot - -%.mo: %.po - msgfmt -c -o $@ $< - -$(I18Npot): $(wildcard *.c) - xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='' -o $@ `ls $^` - -%.po: $(I18Npot) - msgmerge -U --no-wrap --no-location --backup=none -q $@ $< - @touch $@ - -$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo - @mkdir -p $(dir $@) - cp $< $@ - -.PHONY: i18n -i18n: $(I18Nmsgs) $(I18Npot) - ### Targets: libvdr-$(PLUGIN).so: $(OBJS) $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION) -dist: $(I18Npo) clean +dist: clean @-rm -rf $(TMPDIR)/$(ARCHIVE) @mkdir $(TMPDIR)/$(ARCHIVE) @cp -a * $(TMPDIR)/$(ARCHIVE) diff --git a/PLUGINS/src/hello/Makefile b/PLUGINS/src/hello/Makefile index 4d21c984..8a3e6d53 100644 --- a/PLUGINS/src/hello/Makefile +++ b/PLUGINS/src/hello/Makefile @@ -1,42 +1,36 @@ # # Makefile for a Video Disk Recorder plugin # -# $Id: Makefile 2.10 2012/12/18 09:37:05 kls Exp $ +# $Id: Makefile 2.11 2012/12/19 12:10:07 kls Exp $ # The official name of this plugin. # This name will be used in the '-P...' option of VDR to load the plugin. # By default the main source file also carries this name. -# IMPORTANT: the presence of this macro is important for the Make.config -# file. So it must be defined, even if it is not used here! -# + PLUGIN = hello ### The version number of this plugin (taken from the main source file): VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') -### The C++ compiler and options: - -CXX ?= g++ -CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses - ### The directory environment: -VDRDIR ?= ../../.. -LIBDIR ?= ../../lib +# Use package data if installed...otherwise assume we're under the VDR source directory: +PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc)) +INCDIR ?= $(call PKGCFG,incdir) +LIBDIR ?= $(call PKGCFG,libdir) +LOCDIR ?= $(call PKGCFG,locdir) +# TMPDIR ?= /tmp -### Make sure that necessary options are included: +### The compiler options: -include $(VDRDIR)/Make.global +export CFLAGS ?= $(call PKGCFG,cflags) +export CXXFLAGS ?= $(call PKGCFG,cxxflags) -### Allow user defined options to overwrite defaults: +### The version number of VDR's plugin API: --include $(VDRDIR)/Make.config - -### The version number of VDR's plugin API (taken from VDR's "config.h"): - -APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h) +APIVERSION = $(call PKGCFG,apiversion) ### The name of the distribution archive: @@ -45,9 +39,9 @@ PACKAGE = vdr-$(ARCHIVE) ### Includes and Defines (add further entries here): -INCLUDES += -I$(VDRDIR)/include +INCLUDES += -I$(INCDIR) -DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' +DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"' ### The object files (add further files here): @@ -74,9 +68,8 @@ $(DEPFILE): Makefile ### Internationalization (I18N): PODIR = po -LOCALEDIR = $(VDRDIR)/locale I18Npo = $(wildcard $(PODIR)/*.po) -I18Nmsgs = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file)))))) +I18Nmsgs = $(addprefix $(LOCDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file)))))) I18Npot = $(PODIR)/$(PLUGIN).pot %.mo: %.po @@ -86,10 +79,10 @@ $(I18Npot): $(wildcard *.c) xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='' -o $@ `ls $^` %.po: $(I18Npot) - msgmerge -U --no-wrap --no-location --backup=none -q $@ $< + msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $< @touch $@ -$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo +$(I18Nmsgs): $(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo @mkdir -p $(dir $@) cp $< $@ diff --git a/PLUGINS/src/osddemo/Makefile b/PLUGINS/src/osddemo/Makefile index 68a236b5..a400658e 100644 --- a/PLUGINS/src/osddemo/Makefile +++ b/PLUGINS/src/osddemo/Makefile @@ -1,40 +1,34 @@ # # Makefile for a Video Disk Recorder plugin # -# $Id: Makefile 2.5 2012/03/11 15:34:08 kls Exp $ +# $Id: Makefile 2.6 2012/12/18 13:35:25 kls Exp $ # The official name of this plugin. -# This name will be used in the '-P...' option of VDR to load the plugin. -# By default the main source file also carries this name. -# + PLUGIN = osddemo ### The version number of this plugin (taken from the main source file): VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') -### The C++ compiler and options: - -CXX ?= g++ -CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses - ### The directory environment: -VDRDIR ?= ../../.. -LIBDIR ?= ../../lib +# Use package data if installed...otherwise assume we're under the VDR source directory: +PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc)) +INCDIR ?= $(call PKGCFG,incdir) +LIBDIR ?= $(call PKGCFG,libdir) +LOCDIR ?= $(call PKGCFG,locdir) +# TMPDIR ?= /tmp -### Make sure that necessary options are included: +### The compiler options: -include $(VDRDIR)/Make.global +export CFLAGS ?= $(call PKGCFG,cflags) +export CXXFLAGS ?= $(call PKGCFG,cxxflags) -### Allow user defined options to overwrite defaults: +### The version number of VDR's plugin API: --include $(VDRDIR)/Make.config - -### The version number of VDR's plugin API (taken from VDR's "config.h"): - -APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h) +APIVERSION = $(call PKGCFG,apiversion) ### The name of the distribution archive: @@ -43,9 +37,9 @@ PACKAGE = vdr-$(ARCHIVE) ### Includes and Defines (add further entries here): -INCLUDES += -I$(VDRDIR)/include +INCLUDES += -I$(INCDIR) -DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' +DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"' ### The object files (add further files here): @@ -60,7 +54,7 @@ all: libvdr-$(PLUGIN).so %.o: %.c $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< -# Dependencies: +### Dependencies: MAKEDEP = $(CXX) -MM -MG DEPFILE = .dependencies diff --git a/PLUGINS/src/pictures/Makefile b/PLUGINS/src/pictures/Makefile index 038066c2..27ac5963 100644 --- a/PLUGINS/src/pictures/Makefile +++ b/PLUGINS/src/pictures/Makefile @@ -1,42 +1,36 @@ # # Makefile for a Video Disk Recorder plugin # -# $Id: Makefile 2.10 2012/12/18 09:37:16 kls Exp $ +# $Id: Makefile 2.11 2012/12/19 12:10:17 kls Exp $ # The official name of this plugin. # This name will be used in the '-P...' option of VDR to load the plugin. # By default the main source file also carries this name. -# IMPORTANT: the presence of this macro is important for the Make.config -# file. So it must be defined, even if it is not used here! -# + PLUGIN = pictures ### The version number of this plugin (taken from the main source file): VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') -### The C++ compiler and options: - -CXX ?= g++ -CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses - ### The directory environment: -VDRDIR ?= ../../.. -LIBDIR ?= ../../lib +# Use package data if installed...otherwise assume we're under the VDR source directory: +PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc)) +INCDIR ?= $(call PKGCFG,incdir) +LIBDIR ?= $(call PKGCFG,libdir) +LOCDIR ?= $(call PKGCFG,locdir) +# TMPDIR ?= /tmp -### Make sure that necessary options are included: +### The compiler options: -include $(VDRDIR)/Make.global +export CFLAGS ?= $(call PKGCFG,cflags) +export CXXFLAGS ?= $(call PKGCFG,cxxflags) -### Allow user defined options to overwrite defaults: +### The version number of VDR's plugin API: --include $(VDRDIR)/Make.config - -### The version number of VDR's plugin API (taken from VDR's "config.h"): - -APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h) +APIVERSION = $(call PKGCFG,apiversion) ### The name of the distribution archive: @@ -45,9 +39,9 @@ PACKAGE = vdr-$(ARCHIVE) ### Includes and Defines (add further entries here): -INCLUDES += -I$(VDRDIR)/include +INCLUDES += -I$(INCDIR) -DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' +DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"' ### The object files (add further files here): @@ -74,9 +68,8 @@ $(DEPFILE): Makefile ### Internationalization (I18N): PODIR = po -LOCALEDIR = $(VDRDIR)/locale I18Npo = $(wildcard $(PODIR)/*.po) -I18Nmsgs = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file)))))) +I18Nmsgs = $(addprefix $(LOCDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file)))))) I18Npot = $(PODIR)/$(PLUGIN).pot %.mo: %.po @@ -86,10 +79,10 @@ $(I18Npot): $(wildcard *.c) xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='' -o $@ `ls $^` %.po: $(I18Npot) - msgmerge -U --no-wrap --no-location --backup=none -q $@ $< + msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $< @touch $@ -$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo +$(I18Nmsgs): $(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo @mkdir -p $(dir $@) cp $< $@ diff --git a/PLUGINS/src/rcu/Makefile b/PLUGINS/src/rcu/Makefile index aa6be743..1635edf4 100644 --- a/PLUGINS/src/rcu/Makefile +++ b/PLUGINS/src/rcu/Makefile @@ -1,42 +1,36 @@ # # Makefile for a Video Disk Recorder plugin # -# $Id: Makefile 1.3 2012/12/18 09:30:02 kls Exp $ +# $Id: Makefile 1.4 2012/12/19 11:17:56 kls Exp $ # The official name of this plugin. # This name will be used in the '-P...' option of VDR to load the plugin. # By default the main source file also carries this name. -# IMPORTANT: the presence of this macro is important for the Make.config -# file. So it must be defined, even if it is not used here! -# + PLUGIN = rcu ### The version number of this plugin (taken from the main source file): VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') -### The C++ compiler and options: - -CXX ?= g++ -CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses - ### The directory environment: -VDRDIR ?= ../../.. -LIBDIR ?= ../../lib +# Use package data if installed...otherwise assume we're under the VDR source directory: +PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc)) +INCDIR ?= $(call PKGCFG,incdir) +LIBDIR ?= $(call PKGCFG,libdir) +LOCDIR ?= $(call PKGCFG,locdir) +# TMPDIR ?= /tmp -### Make sure that necessary options are included: +### The compiler options: -include $(VDRDIR)/Make.global +export CFLAGS ?= $(call PKGCFG,cflags) +export CXXFLAGS ?= $(call PKGCFG,cxxflags) -### Allow user defined options to overwrite defaults: +### The version number of VDR's plugin API: --include $(VDRDIR)/Make.config - -### The version number of VDR's plugin API (taken from VDR's "config.h"): - -APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h) +APIVERSION = $(call PKGCFG,apiversion) ### The name of the distribution archive: @@ -45,9 +39,9 @@ PACKAGE = vdr-$(ARCHIVE) ### Includes and Defines (add further entries here): -INCLUDES += -I$(VDRDIR)/include +INCLUDES += -I$(INCDIR) -DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' +DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"' ### The object files (add further files here): @@ -55,7 +49,7 @@ OBJS = $(PLUGIN).o ### The main target: -all: libvdr-$(PLUGIN).so i18n +all: libvdr-$(PLUGIN).so ### Implicit rules: @@ -71,38 +65,13 @@ $(DEPFILE): Makefile -include $(DEPFILE) -### Internationalization (I18N): - -PODIR = po -LOCALEDIR = $(VDRDIR)/locale -I18Npo = $(wildcard $(PODIR)/*.po) -I18Nmsgs = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file)))))) -I18Npot = $(PODIR)/$(PLUGIN).pot - -%.mo: %.po - msgfmt -c -o $@ $< - -$(I18Npot): $(wildcard *.c) - xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='' -o $@ `ls $^` - -%.po: $(I18Npot) - msgmerge -U --no-wrap --no-location --backup=none -q $@ $< - @touch $@ - -$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo - @mkdir -p $(dir $@) - cp $< $@ - -.PHONY: i18n -i18n: $(I18Nmsgs) $(I18Npot) - ### Targets: libvdr-$(PLUGIN).so: $(OBJS) $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION) -dist: $(I18Npo) clean +dist: clean @-rm -rf $(TMPDIR)/$(ARCHIVE) @mkdir $(TMPDIR)/$(ARCHIVE) @cp -a * $(TMPDIR)/$(ARCHIVE) diff --git a/PLUGINS/src/servicedemo/Makefile b/PLUGINS/src/servicedemo/Makefile index 941aaff6..22aa7f0e 100644 --- a/PLUGINS/src/servicedemo/Makefile +++ b/PLUGINS/src/servicedemo/Makefile @@ -1,13 +1,12 @@ # # Makefile for a Video Disk Recorder plugin # -# $Id: Makefile 2.5 2012/03/11 15:34:13 kls Exp $ +# $Id: Makefile 2.6 2012/12/18 13:35:40 kls Exp $ # The official name of this plugin. # This name will be used in the '-P...' option of VDR to load the plugin. # By default the main source file also carries this name. -# -PLUGIN = servicedemo # dummy name for Make.config + PLUGIN1 = svccli PLUGIN2 = svcsvr @@ -15,28 +14,24 @@ PLUGIN2 = svcsvr VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN1).c | awk '{ print $$6 }' | sed -e 's/[";]//g') -### The C++ compiler and options: - -CXX ?= g++ -CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses - ### The directory environment: -VDRDIR ?= ../../.. -LIBDIR ?= ../../lib +# Use package data if installed...otherwise assume we're under the VDR source directory: +PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc)) +INCDIR ?= $(call PKGCFG,incdir) +LIBDIR ?= $(call PKGCFG,libdir) +LOCDIR ?= $(call PKGCFG,locdir) +# TMPDIR ?= /tmp -### Make sure that necessary options are included: +### The compiler options: -include $(VDRDIR)/Make.global +export CFLAGS ?= $(call PKGCFG,cflags) +export CXXFLAGS ?= $(call PKGCFG,cxxflags) -### Allow user defined options to overwrite defaults: +### The version number of VDR's plugin API: --include $(VDRDIR)/Make.config - -### The version number of VDR's plugin API (taken from VDR's "config.h"): - -APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h) +APIVERSION = $(call PKGCFG,apiversion) ### The name of the distribution archive: @@ -45,9 +40,9 @@ PACKAGE = vdr-$(ARCHIVE) ### Includes and Defines (add further entries here): -INCLUDES += -I$(VDRDIR)/include +INCLUDES += -I$(INCDIR) -DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' +DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"' ### The object files (add further files here): @@ -62,7 +57,7 @@ all: libvdr-$(PLUGIN1).so libvdr-$(PLUGIN2).so %.o: %.c $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< -# Dependencies: +### Dependencies: MAKEDEP = $(CXX) -MM -MG DEPFILE = .dependencies diff --git a/PLUGINS/src/skincurses/Makefile b/PLUGINS/src/skincurses/Makefile index 256f8a5d..c809712b 100644 --- a/PLUGINS/src/skincurses/Makefile +++ b/PLUGINS/src/skincurses/Makefile @@ -1,42 +1,36 @@ # # Makefile for a Video Disk Recorder plugin # -# $Id: Makefile 2.10 2012/12/18 09:37:39 kls Exp $ +# $Id: Makefile 2.11 2012/12/19 12:10:28 kls Exp $ # The official name of this plugin. # This name will be used in the '-P...' option of VDR to load the plugin. # By default the main source file also carries this name. -# IMPORTANT: the presence of this macro is important for the Make.config -# file. So it must be defined, even if it is not used here! -# + PLUGIN = skincurses ### The version number of this plugin (taken from the main source file): VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') -### The C++ compiler and options: - -CXX ?= g++ -CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses - ### The directory environment: -VDRDIR ?= ../../.. -LIBDIR ?= ../../lib +# Use package data if installed...otherwise assume we're under the VDR source directory: +PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc)) +INCDIR ?= $(call PKGCFG,incdir) +LIBDIR ?= $(call PKGCFG,libdir) +LOCDIR ?= $(call PKGCFG,locdir) +# TMPDIR ?= /tmp -### Make sure that necessary options are included: +### The compiler options: -include $(VDRDIR)/Make.global +export CFLAGS ?= $(call PKGCFG,cflags) +export CXXFLAGS ?= $(call PKGCFG,cxxflags) -### Allow user defined options to overwrite defaults: +### The version number of VDR's plugin API: --include $(VDRDIR)/Make.config - -### The version number of VDR's plugin API (taken from VDR's "config.h"): - -APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h) +APIVERSION = $(call PKGCFG,apiversion) ### The name of the distribution archive: @@ -45,9 +39,9 @@ PACKAGE = vdr-$(ARCHIVE) ### Includes and Defines (add further entries here): -INCLUDES += -I$(VDRDIR)/include +INCLUDES += -I$(INCDIR) -DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' +DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"' ### The object files (add further files here): @@ -74,9 +68,8 @@ $(DEPFILE): Makefile ### Internationalization (I18N): PODIR = po -LOCALEDIR = $(VDRDIR)/locale I18Npo = $(wildcard $(PODIR)/*.po) -I18Nmsgs = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file)))))) +I18Nmsgs = $(addprefix $(LOCDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file)))))) I18Npot = $(PODIR)/$(PLUGIN).pot %.mo: %.po @@ -86,10 +79,10 @@ $(I18Npot): $(wildcard *.c) xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='' -o $@ `ls $^` %.po: $(I18Npot) - msgmerge -U --no-wrap --no-location --backup=none -q $@ $< + msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $< @touch $@ -$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo +$(I18Nmsgs): $(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo @mkdir -p $(dir $@) cp $< $@ diff --git a/PLUGINS/src/status/Makefile b/PLUGINS/src/status/Makefile index dd46ba69..5cfd1027 100644 --- a/PLUGINS/src/status/Makefile +++ b/PLUGINS/src/status/Makefile @@ -1,40 +1,36 @@ # # Makefile for a Video Disk Recorder plugin # -# $Id: Makefile 2.5 2012/03/11 15:34:20 kls Exp $ +# $Id: Makefile 2.6 2012/12/18 13:35:47 kls Exp $ # The official name of this plugin. # This name will be used in the '-P...' option of VDR to load the plugin. # By default the main source file also carries this name. -# + PLUGIN = status ### The version number of this plugin (taken from the main source file): VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') -### The C++ compiler and options: - -CXX ?= g++ -CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses - ### The directory environment: -VDRDIR ?= ../../.. -LIBDIR ?= ../../lib +# Use package data if installed...otherwise assume we're under the VDR source directory: +PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc)) +INCDIR ?= $(call PKGCFG,incdir) +LIBDIR ?= $(call PKGCFG,libdir) +LOCDIR ?= $(call PKGCFG,locdir) +# TMPDIR ?= /tmp -### Make sure that necessary options are included: +### The compiler options: -include $(VDRDIR)/Make.global +export CFLAGS ?= $(call PKGCFG,cflags) +export CXXFLAGS ?= $(call PKGCFG,cxxflags) -### Allow user defined options to overwrite defaults: +### The version number of VDR's plugin API: --include $(VDRDIR)/Make.config - -### The version number of VDR's plugin API (taken from VDR's "config.h"): - -APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h) +APIVERSION = $(call PKGCFG,apiversion) ### The name of the distribution archive: @@ -43,9 +39,9 @@ PACKAGE = vdr-$(ARCHIVE) ### Includes and Defines (add further entries here): -INCLUDES += -I$(VDRDIR)/include +INCLUDES += -I$(INCDIR) -DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' +DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"' ### The object files (add further files here): @@ -60,7 +56,7 @@ all: libvdr-$(PLUGIN).so %.o: %.c $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< -# Dependencies: +### Dependencies: MAKEDEP = $(CXX) -MM -MG DEPFILE = .dependencies diff --git a/PLUGINS/src/svdrpdemo/Makefile b/PLUGINS/src/svdrpdemo/Makefile index 5109b297..47a67b5d 100644 --- a/PLUGINS/src/svdrpdemo/Makefile +++ b/PLUGINS/src/svdrpdemo/Makefile @@ -1,40 +1,36 @@ # # Makefile for a Video Disk Recorder plugin # -# $Id: Makefile 2.5 2012/03/11 15:34:22 kls Exp $ +# $Id: Makefile 2.6 2012/12/18 13:35:51 kls Exp $ # The official name of this plugin. # This name will be used in the '-P...' option of VDR to load the plugin. # By default the main source file also carries this name. -# + PLUGIN = svdrpdemo ### The version number of this plugin (taken from the main source file): VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') -### The C++ compiler and options: - -CXX ?= g++ -CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses - ### The directory environment: -VDRDIR ?= ../../.. -LIBDIR ?= ../../lib +# Use package data if installed...otherwise assume we're under the VDR source directory: +PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc)) +INCDIR ?= $(call PKGCFG,incdir) +LIBDIR ?= $(call PKGCFG,libdir) +LOCDIR ?= $(call PKGCFG,locdir) +# TMPDIR ?= /tmp -### Make sure that necessary options are included: +### The compiler options: -include $(VDRDIR)/Make.global +export CFLAGS ?= $(call PKGCFG,cflags) +export CXXFLAGS ?= $(call PKGCFG,cxxflags) -### Allow user defined options to overwrite defaults: +### The version number of VDR's plugin API: --include $(VDRDIR)/Make.config - -### The version number of VDR's plugin API (taken from VDR's "config.h"): - -APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h) +APIVERSION = $(call PKGCFG,apiversion) ### The name of the distribution archive: @@ -43,9 +39,9 @@ PACKAGE = vdr-$(ARCHIVE) ### Includes and Defines (add further entries here): -INCLUDES += -I$(VDRDIR)/include +INCLUDES += -I$(INCDIR) -DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' +DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"' ### The object files (add further files here): @@ -60,7 +56,7 @@ all: libvdr-$(PLUGIN).so %.o: %.c $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< -# Dependencies: +### Dependencies: MAKEDEP = $(CXX) -MM -MG DEPFILE = .dependencies diff --git a/libsi/Makefile b/libsi/Makefile index 9d2d40dd..dff5ca9c 100644 --- a/libsi/Makefile +++ b/libsi/Makefile @@ -1,27 +1,16 @@ # # Makefile for a libsi # -# $Id: Makefile 2.3 2012/01/18 12:31:40 kls Exp $ +# $Id: Makefile 2.4 2012/12/18 13:35:54 kls Exp $ -### The C++ compiler and options: +### The archiver options: -CXX ?= g++ -CXXFLAGS ?= -O2 -g -Wall -Woverloaded-virtual AR ?= ar ARFLAGS ?= ru RANLIB ?= ranlib -include ../Make.global -include ../Make.config -### The directory environment: - -INCLUDES += - -DEFINES += - -LIBS += - ### The object files (add further files here): OBJS = util.o si.o section.o descriptor.o @@ -31,7 +20,7 @@ OBJS = util.o si.o section.o descriptor.o %.o: %.c $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< -# Dependencies: +### Dependencies: MAKEDEP = $(CXX) -MM -MG DEPFILE = .dependencies diff --git a/newplugin b/newplugin index a148190e..d5aa047b 100755 --- a/newplugin +++ b/newplugin @@ -12,7 +12,7 @@ # See the main source file 'vdr.c' for copyright information and # how to reach the author. # -# $Id: newplugin 2.9 2012/12/18 09:30:57 kls Exp $ +# $Id: newplugin 2.10 2012/12/19 11:03:28 kls Exp $ $PLUGIN_NAME = $ARGV[0] || die "Usage: newplugin \n"; @@ -65,37 +65,31 @@ $MAKEFILE = qq # The official name of this plugin. # This name will be used in the '-P...' option of VDR to load the plugin. # By default the main source file also carries this name. -# IMPORTANT: the presence of this macro is important for the Make.config -# file. So it must be defined, even if it is not used here! -# + PLUGIN = $PLUGIN_NAME ### The version number of this plugin (taken from the main source file): VERSION = \$(shell grep 'static const char \\*VERSION *=' \$(PLUGIN).c | awk '{ print \$\$6 }' | sed -e 's/[";]//g') -### The C++ compiler and options: - -CXX ?= g++ -CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses - ### The directory environment: -VDRDIR ?= ../../.. -LIBDIR ?= ../../lib +# Use package data if installed...otherwise assume we're under the VDR source directory: +PKGCFG = \$(if \$(VDRDIR),\$(shell pkg-config --variable=\$(1) \$(VDRDIR)/vdr.pc),\$(shell pkg-config --variable=\$(1) vdr || pkg-config --variable=\$(1) ../../../vdr.pc)) +INCDIR ?= \$(call PKGCFG,includedir) +LIBDIR ?= \$(call PKGCFG,libdir) +LOCDIR ?= \$(call PKGCFG,localedir) +# TMPDIR ?= /tmp -### Make sure that necessary options are included: +### The compiler options: -include \$(VDRDIR)/Make.global +export CFLAGS ?= \$(call PKGCFG,cflags) +export CXXFLAGS ?= \$(call PKGCFG,cxxflags) -### Allow user defined options to overwrite defaults: +### The version number of VDR's plugin API: --include \$(VDRDIR)/Make.config - -### The version number of VDR's plugin API (taken from VDR's "config.h"): - -APIVERSION = \$(shell sed -ne '/define APIVERSION/s/^.*"\\(.*\\)".*\$\$/\\1/p' \$(VDRDIR)/config.h) +APIVERSION = \$(call PKGCFG,apiversion) ### The name of the distribution archive: @@ -104,9 +98,9 @@ PACKAGE = vdr-\$(ARCHIVE) ### Includes and Defines (add further entries here): -INCLUDES += -I\$(VDRDIR)/include +INCLUDES += -I\$(INCDIR) -DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"\$(PLUGIN)"' +DEFINES += -DPLUGIN_NAME_I18N='"\$(PLUGIN)"' ### The object files (add further files here): @@ -133,9 +127,8 @@ DEPFILE = .dependencies ### Internationalization (I18N): PODIR = po -LOCALEDIR = \$(VDRDIR)/locale I18Npo = \$(wildcard \$(PODIR)/*.po) -I18Nmsgs = \$(addprefix \$(LOCALEDIR)/, \$(addsuffix /LC_MESSAGES/vdr-\$(PLUGIN).mo, \$(notdir \$(foreach file, \$(I18Npo), \$(basename \$(file)))))) +I18Nmsgs = \$(addprefix \$(LOCDIR)/, \$(addsuffix /LC_MESSAGES/vdr-\$(PLUGIN).mo, \$(notdir \$(foreach file, \$(I18Npo), \$(basename \$(file)))))) I18Npot = \$(PODIR)/\$(PLUGIN).pot %.mo: %.po @@ -145,10 +138,10 @@ I18Npot = \$(PODIR)/\$(PLUGIN).pot xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-\$(PLUGIN) --package-version=\$(VERSION) --msgid-bugs-address='' -o \$\@ `ls \$^` %.po: \$(I18Npot) - msgmerge -U --no-wrap --no-location --backup=none -q \$\@ \$< + msgmerge -U --no-wrap --no-location --backup=none -q -N \$\@ \$< \@touch \$\@ -\$(I18Nmsgs): \$(LOCALEDIR)/%/LC_MESSAGES/vdr-\$(PLUGIN).mo: \$(PODIR)/%.mo +\$(I18Nmsgs): \$(LOCDIR)/%/LC_MESSAGES/vdr-\$(PLUGIN).mo: \$(PODIR)/%.mo \@mkdir -p \$(dir \$@) cp \$< \$\@