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
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 <coca_cola1@gmx.de>
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
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).

View File

@ -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:

View File

@ -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

View File

@ -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='<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:
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)

View File

@ -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='<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:
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)

View File

@ -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='<see README>' -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 $< $@

View File

@ -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

View File

@ -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='<see README>' -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 $< $@

View File

@ -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='<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:
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)

View File

@ -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

View File

@ -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='<see README>' -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 $< $@

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 <name>\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='<see README>' -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 \$< \$\@