Removed some redundancy in the Makefile/Make.global/Make.config mechanism

This commit is contained in:
Klaus Schmidinger 2012-12-19 12:10:28 +01:00
parent 8e54caa205
commit 4132f5e745
16 changed files with 244 additions and 385 deletions

View File

@ -2809,6 +2809,8 @@ Christopher Reimer <reimer.christopher@freenet.de>
for reporting a problem with external Dolby Digital processing via the '-a' option for reporting a problem with external Dolby Digital processing via the '-a' option
in live mode and with TS recordings in live mode and with TS recordings
for contributing to a patch that implements FHS support 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 <coca_cola1@gmx.de> Stefan Huskamp <coca_cola1@gmx.de>
for suggesting to make entering characters via the number keys for suggesting to make entering characters via the number keys

View File

@ -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 plugins to display these items in a more elaborate way than just a simple line of
text. 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 - Changed the type of the TimerMatch parameter in cSkinDisplayMenu::SetItemEvent() from
'int' to 'eTimerEvent' (reported by Christoph Haubrich). 'int' to 'eTimerEvent' (reported by Christoph Haubrich).
@ -7429,3 +7429,10 @@ Video Disk Recorder Revision History
xgettext in several plugin Makefiles. xgettext in several plugin Makefiles.
- Added "-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE" to the - 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). 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).

View File

@ -6,20 +6,16 @@
# See the main source file 'vdr.c' for copyright information and # See the main source file 'vdr.c' for copyright information and
# how to reach the author. # 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: ### The C compiler and options:
CC = gcc CC = gcc
CFLAGS = -g -O3 -Wall CFLAGS = -g -O3 -Wall
CFLAGS += -fPIC
CXX = g++ CXX = g++
CXXFLAGS = -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses CXXFLAGS = $(CFLAGS) -Werror=overloaded-virtual -Wno-parentheses
ifdef PLUGIN
CFLAGS += -fPIC
CXXFLAGS += -fPIC
endif
# Use 'make M32=1 ...' to build a 32-bit version of VDR on a 64-bit machine: # Use 'make M32=1 ...' to build a 32-bit version of VDR on a 64-bit machine:
ifdef M32 ifdef M32
@ -35,9 +31,10 @@ MANDIR = $(PREFIX)/man
BINDIR = $(PREFIX)/bin BINDIR = $(PREFIX)/bin
# By default locale and plugin files are built under the source directory: # By default locale and plugin files are built under the source directory:
LOCDIR = ./locale INCDIR = $(CWD)/include
PLUGINDIR = ./PLUGINS LOCDIR = $(CWD)/locale
PLUGINLIBDIR = $(PLUGINDIR)/lib PLUGINDIR = $(CWD)/PLUGINS
LIBDIR = $(PLUGINDIR)/lib
# By default VDR requires only one single directory to operate: # By default VDR requires only one single directory to operate:
VIDEODIR = /video VIDEODIR = /video
# Activate the following line to build VDR according to the FHS ("File system Hierarchy Standard"): # 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 CONFDIR = /var/lib/vdr
CACHEDIR = /var/cache/vdr CACHEDIR = /var/cache/vdr
RESDIR = $(PREFIX)/share/vdr RESDIR = $(PREFIX)/share/vdr
INCDIR = $(PREFIX)/include
LOCDIR = $(PREFIX)/share/locale LOCDIR = $(PREFIX)/share/locale
PLUGINLIBDIR = $(PREFIX)/lib/vdr LIBDIR = $(PREFIX)/lib/vdr
endif endif
### The remote control: ### The remote control:

View File

@ -4,28 +4,33 @@
# See the main source file 'vdr.c' for copyright information and # See the main source file 'vdr.c' for copyright information and
# how to reach the author. # 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: .DELETE_ON_ERROR:
CC ?= gcc CC ?= gcc
CFLAGS ?= -g -O3 -Wall CFLAGS ?= -g -O3 -Wall -fPIC
CFLAGS += -fPIC
CXX ?= g++ 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 LSIDIR = ./libsi
DESTDIR ?= DESTDIR ?=
PREFIX ?= /usr/local PREFIX ?= /usr/local
MANDIR ?= $(PREFIX)/share/man MANDIR ?= $(PREFIX)/share/man
BINDIR ?= $(PREFIX)/bin BINDIR ?= $(PREFIX)/bin
INCDIR ?= $(PREFIX)/include INCDIR ?= $(CWD)/include
LOCDIR ?= ./locale LOCDIR ?= $(CWD)/locale
LIBS = -ljpeg -lpthread -ldl -lcap -lrt $(shell pkg-config --libs freetype2 fontconfig) LIBS = -ljpeg -lpthread -ldl -lcap -lrt $(shell pkg-config --libs freetype2 fontconfig)
INCLUDES ?= $(shell pkg-config --cflags freetype2 fontconfig) INCLUDES ?= $(shell pkg-config --cflags freetype2 fontconfig)
PLUGINDIR= ./PLUGINS PLUGINDIR= $(CWD)/PLUGINS
PLUGINLIBDIR= $(PLUGINDIR)/lib LIBDIR = $(PLUGINDIR)/lib
# By default VDR requires only one single directory to operate: # By default VDR requires only one single directory to operate:
VIDEODIR = /video 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)) PCDIR ?= $(firstword $(subst :, , ${PKG_CONFIG_PATH}:$(shell pkg-config --variable=pc_path pkg-config):$(PREFIX)/lib/pkgconfig))
include Make.global
-include Make.config -include Make.config
SILIB = $(LSIDIR)/libsi.a 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\ 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 timers.o tools.o transfer.o vdr.o videodir.o
DEFINES += $(CDEFINES)
ifndef NO_KBD ifndef NO_KBD
DEFINES += -DREMOTE_KBD DEFINES += -DREMOTE_KBD
endif endif
@ -66,15 +72,11 @@ endif
LIRC_DEVICE ?= /var/run/lirc/lircd LIRC_DEVICE ?= /var/run/lirc/lircd
DEFINES += -DLIRC_DEVICE=\"$(LIRC_DEVICE)\" 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 += -DVIDEODIR=\"$(VIDEODIR)\"
DEFINES += -DCONFDIR=\"$(CONFDIR)\" DEFINES += -DCONFDIR=\"$(CONFDIR)\"
DEFINES += -DCACHEDIR=\"$(CACHEDIR)\" DEFINES += -DCACHEDIR=\"$(CACHEDIR)\"
DEFINES += -DRESDIR=\"$(RESDIR)\" DEFINES += -DRESDIR=\"$(RESDIR)\"
DEFINES += -DPLUGINDIR=\"$(PLUGINLIBDIR)\" DEFINES += -DPLUGINDIR=\"$(LIBDIR)\"
DEFINES += -DLOCDIR=\"$(LOCDIR)\" DEFINES += -DLOCDIR=\"$(LOCDIR)\"
# Default values for directories: # Default values for directories:
@ -88,7 +90,7 @@ RESDIRDEF = $(firstword $(RESDIR) $(CONFDIRDEF))
VDRVERSION = $(shell sed -ne '/define VDRVERSION/s/^.*"\(.*\)".*$$/\1/p' config.h) VDRVERSION = $(shell sed -ne '/define VDRVERSION/s/^.*"\(.*\)".*$$/\1/p' config.h)
APIVERSION = $(shell sed -ne '/define APIVERSION/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: # Implicit rules:
@ -107,27 +109,28 @@ $(DEPFILE): Makefile
# The main program: # The main program:
vdr: $(OBJS) $(SILIB) 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: # The libsi library:
$(SILIB): $(SILIB):
$(MAKE) -C $(LSIDIR) all $(MAKE) -C $(LSIDIR) CXXFLAGS="$(CXXFLAGS)" DEFINES="$(CDEFINES)" all
# pkg-config file: # pkg-config file:
vdr.pc: Makefile Make.global .PHONY: vdr.pc
vdr.pc:
@echo "bindir=$(BINDIR)" > $@ @echo "bindir=$(BINDIR)" > $@
@echo "includedir=$(INCDIR)" >> $@ @echo "incdir=$(INCDIR)" >> $@
@echo "configdir=$(CONFDIRDEF)" >> $@ @echo "configdir=$(CONFDIRDEF)" >> $@
@echo "videodir=$(VIDEODIR)" >> $@ @echo "videodir=$(VIDEODIR)" >> $@
@echo "cachedir=$(CACHEDIRDEF)" >> $@ @echo "cachedir=$(CACHEDIRDEF)" >> $@
@echo "resdir=$(RESDIRDEF)" >> $@ @echo "resdir=$(RESDIRDEF)" >> $@
@echo "plugindir=$(PLUGINLIBDIR)" >> $@ @echo "libdir=$(LIBDIR)" >> $@
@echo "localedir=$(LOCDIR)" >> $@ @echo "locdir=$(LOCDIR)" >> $@
@echo "apiversion=$(APIVERSION)" >> $@ @echo "apiversion=$(APIVERSION)" >> $@
@echo "cflags=$(CXXFLAGS) $(DEFINES) -I\$${includedir}" >> $@ @echo "cflags=$(CFLAGS) $(CDEFINES)" >> $@
@echo "plugincflags=\$${cflags} -fPIC" >> $@ @echo "cxxflags=$(CXXFLAGS) $(CDEFINES)" >> $@
@echo "" >> $@ @echo "" >> $@
@echo "Name: VDR" >> $@ @echo "Name: VDR" >> $@
@echo "Description: Video Disk Recorder" >> $@ @echo "Description: Video Disk Recorder" >> $@
@ -158,7 +161,7 @@ $(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr.mo: $(PODIR)/%.mo
cp $< $@ cp $< $@
.PHONY: i18n .PHONY: i18n
i18n: $(I18Nmsgs) i18n: $(I18Nmsgs) $(I18Npot)
install-i18n: install-i18n:
@mkdir -p $(DESTDIR)$(LOCDIR) @mkdir -p $(DESTDIR)$(LOCDIR)
@ -174,7 +177,7 @@ include-dir:
# Plugins: # Plugins:
plugins: include-dir plugins: include-dir vdr.pc
@failed="";\ @failed="";\
noapiv="";\ noapiv="";\
for i in `ls $(PLUGINDIR)/src | grep -v '[^a-z0-9]'`; do\ for i in `ls $(PLUGINDIR)/src | grep -v '[^a-z0-9]'`; do\
@ -184,7 +187,7 @@ plugins: include-dir
noapiv="$$noapiv $$i";\ noapiv="$$noapiv $$i";\
continue;\ continue;\
fi;\ fi;\
$(MAKE) -C "$(PLUGINDIR)/src/$$i" all || failed="$$failed $$i";\ $(MAKE) -C "$(PLUGINDIR)/src/$$i" VDRDIR=$(CWD) all || failed="$$failed $$i";\
done;\ done;\
if [ -n "$$noapiv" ] ; then echo; echo "*** plugins without APIVERSION:$$noapiv"; echo; fi;\ 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 if [ -n "$$failed" ] ; then echo; echo "*** failed plugins:$$failed"; echo; exit 1; fi
@ -226,8 +229,8 @@ install-doc:
# Plugins: # Plugins:
install-plugins: plugins install-plugins: plugins
@mkdir -p $(DESTDIR)$(PLUGINLIBDIR) @mkdir -p $(DESTDIR)$(LIBDIR)
@cp --remove-destination $(PLUGINDIR)/lib/lib*-*.so.$(APIVERSION) $(DESTDIR)$(PLUGINLIBDIR) @cp --remove-destination $(PLUGINDIR)/lib/lib*-*.so.$(APIVERSION) $(DESTDIR)$(LIBDIR)
# Includes: # Includes:
@ -254,9 +257,9 @@ srcdoc:
# Housekeeping: # Housekeeping:
clean: clean:
$(MAKE) -C $(LSIDIR) clean @$(MAKE) -C $(LSIDIR) clean
-rm -f $(OBJS) $(DEPFILE) vdr vdr.pc core* *~ @-rm -f $(OBJS) $(DEPFILE) vdr vdr.pc core* *~
-rm -rf $(LOCALEDIR) $(PODIR)/*.mo $(PODIR)/*.pot @-rm -rf $(LOCALEDIR) $(PODIR)/*.mo $(PODIR)/*.pot
-rm -rf include @-rm -rf include
-rm -rf srcdoc @-rm -rf srcdoc
CLEAN: clean CLEAN: clean

View File

@ -1,42 +1,36 @@
# #
# Makefile for a Video Disk Recorder plugin # 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. # The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the 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. # 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 PLUGIN = dvbsddevice
### The version number of this plugin (taken from the main source file): ### 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') 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: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib 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 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 APIVERSION = $(call PKGCFG,apiversion)
### 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)
### The name of the distribution archive: ### The name of the distribution archive:
@ -45,9 +39,9 @@ PACKAGE = vdr-$(ARCHIVE)
### Includes and Defines (add further entries here): ### 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): ### The object files (add further files here):
@ -55,7 +49,7 @@ OBJS = $(PLUGIN).o dvbsdffdevice.o dvbsdffosd.o
### The main target: ### The main target:
all: libvdr-$(PLUGIN).so i18n all: libvdr-$(PLUGIN).so
### Implicit rules: ### Implicit rules:
@ -71,38 +65,13 @@ $(DEPFILE): Makefile
-include $(DEPFILE) -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='<see README>' -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: ### Targets:
libvdr-$(PLUGIN).so: $(OBJS) libvdr-$(PLUGIN).so: $(OBJS)
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION) @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
dist: $(I18Npo) clean dist: clean
@-rm -rf $(TMPDIR)/$(ARCHIVE) @-rm -rf $(TMPDIR)/$(ARCHIVE)
@mkdir $(TMPDIR)/$(ARCHIVE) @mkdir $(TMPDIR)/$(ARCHIVE)
@cp -a * $(TMPDIR)/$(ARCHIVE) @cp -a * $(TMPDIR)/$(ARCHIVE)

View File

@ -1,42 +1,36 @@
# #
# Makefile for a Video Disk Recorder plugin # 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. # The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the 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. # 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 PLUGIN = epgtableid0
### The version number of this plugin (taken from the main source file): ### 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') 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: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib 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 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 APIVERSION = $(call PKGCFG,apiversion)
### 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)
### The name of the distribution archive: ### The name of the distribution archive:
@ -45,9 +39,9 @@ PACKAGE = vdr-$(ARCHIVE)
### Includes and Defines (add further entries here): ### 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): ### The object files (add further files here):
@ -55,7 +49,7 @@ OBJS = $(PLUGIN).o
### The main target: ### The main target:
all: libvdr-$(PLUGIN).so i18n all: libvdr-$(PLUGIN).so
### Implicit rules: ### Implicit rules:
@ -71,38 +65,13 @@ $(DEPFILE): Makefile
-include $(DEPFILE) -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='<see README>' -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: ### Targets:
libvdr-$(PLUGIN).so: $(OBJS) libvdr-$(PLUGIN).so: $(OBJS)
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION) @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
dist: $(I18Npo) clean dist: clean
@-rm -rf $(TMPDIR)/$(ARCHIVE) @-rm -rf $(TMPDIR)/$(ARCHIVE)
@mkdir $(TMPDIR)/$(ARCHIVE) @mkdir $(TMPDIR)/$(ARCHIVE)
@cp -a * $(TMPDIR)/$(ARCHIVE) @cp -a * $(TMPDIR)/$(ARCHIVE)

View File

@ -1,42 +1,36 @@
# #
# Makefile for a Video Disk Recorder plugin # 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. # The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the 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. # 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 PLUGIN = hello
### The version number of this plugin (taken from the main source file): ### 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') 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: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib 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 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 APIVERSION = $(call PKGCFG,apiversion)
### 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)
### The name of the distribution archive: ### The name of the distribution archive:
@ -45,9 +39,9 @@ PACKAGE = vdr-$(ARCHIVE)
### Includes and Defines (add further entries here): ### 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): ### The object files (add further files here):
@ -74,9 +68,8 @@ $(DEPFILE): Makefile
### Internationalization (I18N): ### Internationalization (I18N):
PODIR = po PODIR = po
LOCALEDIR = $(VDRDIR)/locale
I18Npo = $(wildcard $(PODIR)/*.po) 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 I18Npot = $(PODIR)/$(PLUGIN).pot
%.mo: %.po %.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='<see README>' -o $@ `ls $^` xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='<see README>' -o $@ `ls $^`
%.po: $(I18Npot) %.po: $(I18Npot)
msgmerge -U --no-wrap --no-location --backup=none -q $@ $< msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $<
@touch $@ @touch $@
$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo $(I18Nmsgs): $(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
@mkdir -p $(dir $@) @mkdir -p $(dir $@)
cp $< $@ cp $< $@

View File

@ -1,40 +1,34 @@
# #
# Makefile for a Video Disk Recorder plugin # 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. # 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 PLUGIN = osddemo
### The version number of this plugin (taken from the main source file): ### 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') 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: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib 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 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 APIVERSION = $(call PKGCFG,apiversion)
### 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)
### The name of the distribution archive: ### The name of the distribution archive:
@ -43,9 +37,9 @@ PACKAGE = vdr-$(ARCHIVE)
### Includes and Defines (add further entries here): ### 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): ### The object files (add further files here):
@ -60,7 +54,7 @@ all: libvdr-$(PLUGIN).so
%.o: %.c %.o: %.c
$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
# Dependencies: ### Dependencies:
MAKEDEP = $(CXX) -MM -MG MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies DEPFILE = .dependencies

View File

@ -1,42 +1,36 @@
# #
# Makefile for a Video Disk Recorder plugin # 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. # The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the 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. # 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 PLUGIN = pictures
### The version number of this plugin (taken from the main source file): ### 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') 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: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib 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 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 APIVERSION = $(call PKGCFG,apiversion)
### 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)
### The name of the distribution archive: ### The name of the distribution archive:
@ -45,9 +39,9 @@ PACKAGE = vdr-$(ARCHIVE)
### Includes and Defines (add further entries here): ### 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): ### The object files (add further files here):
@ -74,9 +68,8 @@ $(DEPFILE): Makefile
### Internationalization (I18N): ### Internationalization (I18N):
PODIR = po PODIR = po
LOCALEDIR = $(VDRDIR)/locale
I18Npo = $(wildcard $(PODIR)/*.po) 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 I18Npot = $(PODIR)/$(PLUGIN).pot
%.mo: %.po %.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='<see README>' -o $@ `ls $^` xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='<see README>' -o $@ `ls $^`
%.po: $(I18Npot) %.po: $(I18Npot)
msgmerge -U --no-wrap --no-location --backup=none -q $@ $< msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $<
@touch $@ @touch $@
$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo $(I18Nmsgs): $(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
@mkdir -p $(dir $@) @mkdir -p $(dir $@)
cp $< $@ cp $< $@

View File

@ -1,42 +1,36 @@
# #
# Makefile for a Video Disk Recorder plugin # 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. # The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the 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. # 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 PLUGIN = rcu
### The version number of this plugin (taken from the main source file): ### 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') 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: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib 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 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 APIVERSION = $(call PKGCFG,apiversion)
### 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)
### The name of the distribution archive: ### The name of the distribution archive:
@ -45,9 +39,9 @@ PACKAGE = vdr-$(ARCHIVE)
### Includes and Defines (add further entries here): ### 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): ### The object files (add further files here):
@ -55,7 +49,7 @@ OBJS = $(PLUGIN).o
### The main target: ### The main target:
all: libvdr-$(PLUGIN).so i18n all: libvdr-$(PLUGIN).so
### Implicit rules: ### Implicit rules:
@ -71,38 +65,13 @@ $(DEPFILE): Makefile
-include $(DEPFILE) -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='<see README>' -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: ### Targets:
libvdr-$(PLUGIN).so: $(OBJS) libvdr-$(PLUGIN).so: $(OBJS)
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION) @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
dist: $(I18Npo) clean dist: clean
@-rm -rf $(TMPDIR)/$(ARCHIVE) @-rm -rf $(TMPDIR)/$(ARCHIVE)
@mkdir $(TMPDIR)/$(ARCHIVE) @mkdir $(TMPDIR)/$(ARCHIVE)
@cp -a * $(TMPDIR)/$(ARCHIVE) @cp -a * $(TMPDIR)/$(ARCHIVE)

View File

@ -1,13 +1,12 @@
# #
# Makefile for a Video Disk Recorder plugin # 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. # The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the 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. # By default the main source file also carries this name.
#
PLUGIN = servicedemo # dummy name for Make.config
PLUGIN1 = svccli PLUGIN1 = svccli
PLUGIN2 = svcsvr PLUGIN2 = svcsvr
@ -15,28 +14,24 @@ PLUGIN2 = svcsvr
VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN1).c | awk '{ print $$6 }' | sed -e 's/[";]//g') 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: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib 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 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 APIVERSION = $(call PKGCFG,apiversion)
### 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)
### The name of the distribution archive: ### The name of the distribution archive:
@ -45,9 +40,9 @@ PACKAGE = vdr-$(ARCHIVE)
### Includes and Defines (add further entries here): ### 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): ### The object files (add further files here):
@ -62,7 +57,7 @@ all: libvdr-$(PLUGIN1).so libvdr-$(PLUGIN2).so
%.o: %.c %.o: %.c
$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
# Dependencies: ### Dependencies:
MAKEDEP = $(CXX) -MM -MG MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies DEPFILE = .dependencies

View File

@ -1,42 +1,36 @@
# #
# Makefile for a Video Disk Recorder plugin # 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. # The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the 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. # 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 PLUGIN = skincurses
### The version number of this plugin (taken from the main source file): ### 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') 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: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib 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 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 APIVERSION = $(call PKGCFG,apiversion)
### 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)
### The name of the distribution archive: ### The name of the distribution archive:
@ -45,9 +39,9 @@ PACKAGE = vdr-$(ARCHIVE)
### Includes and Defines (add further entries here): ### 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): ### The object files (add further files here):
@ -74,9 +68,8 @@ $(DEPFILE): Makefile
### Internationalization (I18N): ### Internationalization (I18N):
PODIR = po PODIR = po
LOCALEDIR = $(VDRDIR)/locale
I18Npo = $(wildcard $(PODIR)/*.po) 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 I18Npot = $(PODIR)/$(PLUGIN).pot
%.mo: %.po %.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='<see README>' -o $@ `ls $^` xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='<see README>' -o $@ `ls $^`
%.po: $(I18Npot) %.po: $(I18Npot)
msgmerge -U --no-wrap --no-location --backup=none -q $@ $< msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $<
@touch $@ @touch $@
$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo $(I18Nmsgs): $(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
@mkdir -p $(dir $@) @mkdir -p $(dir $@)
cp $< $@ cp $< $@

View File

@ -1,40 +1,36 @@
# #
# Makefile for a Video Disk Recorder plugin # 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. # The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the 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. # By default the main source file also carries this name.
#
PLUGIN = status PLUGIN = status
### The version number of this plugin (taken from the main source file): ### 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') 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: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib 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 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 APIVERSION = $(call PKGCFG,apiversion)
### 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)
### The name of the distribution archive: ### The name of the distribution archive:
@ -43,9 +39,9 @@ PACKAGE = vdr-$(ARCHIVE)
### Includes and Defines (add further entries here): ### 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): ### The object files (add further files here):
@ -60,7 +56,7 @@ all: libvdr-$(PLUGIN).so
%.o: %.c %.o: %.c
$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
# Dependencies: ### Dependencies:
MAKEDEP = $(CXX) -MM -MG MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies DEPFILE = .dependencies

View File

@ -1,40 +1,36 @@
# #
# Makefile for a Video Disk Recorder plugin # 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. # The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the 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. # By default the main source file also carries this name.
#
PLUGIN = svdrpdemo PLUGIN = svdrpdemo
### The version number of this plugin (taken from the main source file): ### 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') 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: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib 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 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 APIVERSION = $(call PKGCFG,apiversion)
### 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)
### The name of the distribution archive: ### The name of the distribution archive:
@ -43,9 +39,9 @@ PACKAGE = vdr-$(ARCHIVE)
### Includes and Defines (add further entries here): ### 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): ### The object files (add further files here):
@ -60,7 +56,7 @@ all: libvdr-$(PLUGIN).so
%.o: %.c %.o: %.c
$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
# Dependencies: ### Dependencies:
MAKEDEP = $(CXX) -MM -MG MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies DEPFILE = .dependencies

View File

@ -1,27 +1,16 @@
# #
# Makefile for a libsi # 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 AR ?= ar
ARFLAGS ?= ru ARFLAGS ?= ru
RANLIB ?= ranlib RANLIB ?= ranlib
include ../Make.global
-include ../Make.config -include ../Make.config
### The directory environment:
INCLUDES +=
DEFINES +=
LIBS +=
### The object files (add further files here): ### The object files (add further files here):
OBJS = util.o si.o section.o descriptor.o OBJS = util.o si.o section.o descriptor.o
@ -31,7 +20,7 @@ OBJS = util.o si.o section.o descriptor.o
%.o: %.c %.o: %.c
$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
# Dependencies: ### Dependencies:
MAKEDEP = $(CXX) -MM -MG MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies DEPFILE = .dependencies

View File

@ -12,7 +12,7 @@
# See the main source file 'vdr.c' for copyright information and # See the main source file 'vdr.c' for copyright information and
# how to reach the author. # 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 <name>\n"; $PLUGIN_NAME = $ARGV[0] || die "Usage: newplugin <name>\n";
@ -65,37 +65,31 @@ $MAKEFILE = qq
# The official name of this plugin. # The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the 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. # 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 PLUGIN = $PLUGIN_NAME
### The version number of this plugin (taken from the main source file): ### 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') 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: ### The directory environment:
VDRDIR ?= ../../.. # Use package data if installed...otherwise assume we're under the VDR source directory:
LIBDIR ?= ../../lib 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 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 APIVERSION = \$(call PKGCFG,apiversion)
### 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)
### The name of the distribution archive: ### The name of the distribution archive:
@ -104,9 +98,9 @@ PACKAGE = vdr-\$(ARCHIVE)
### Includes and Defines (add further entries here): ### 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): ### The object files (add further files here):
@ -133,9 +127,8 @@ DEPFILE = .dependencies
### Internationalization (I18N): ### Internationalization (I18N):
PODIR = po PODIR = po
LOCALEDIR = \$(VDRDIR)/locale
I18Npo = \$(wildcard \$(PODIR)/*.po) 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 I18Npot = \$(PODIR)/\$(PLUGIN).pot
%.mo: %.po %.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='<see README>' -o \$\@ `ls \$^` xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-\$(PLUGIN) --package-version=\$(VERSION) --msgid-bugs-address='<see README>' -o \$\@ `ls \$^`
%.po: \$(I18Npot) %.po: \$(I18Npot)
msgmerge -U --no-wrap --no-location --backup=none -q \$\@ \$< msgmerge -U --no-wrap --no-location --backup=none -q -N \$\@ \$<
\@touch \$\@ \@touch \$\@
\$(I18Nmsgs): \$(LOCALEDIR)/%/LC_MESSAGES/vdr-\$(PLUGIN).mo: \$(PODIR)/%.mo \$(I18Nmsgs): \$(LOCDIR)/%/LC_MESSAGES/vdr-\$(PLUGIN).mo: \$(PODIR)/%.mo
\@mkdir -p \$(dir \$@) \@mkdir -p \$(dir \$@)
cp \$< \$\@ cp \$< \$\@