nathan@0
|
1 |
#
|
nathan@0
|
2 |
# PremiereEpg plugin to VDR
|
nathan@0
|
3 |
#
|
nathan@14
|
4 |
# (C) 2005-2007 Stefan Huelswitt <s.huelswitt@gmx.de>
|
nathan@0
|
5 |
#
|
nathan@0
|
6 |
# This code is free software; you can redistribute it and/or
|
nathan@0
|
7 |
# modify it under the terms of the GNU General Public License
|
nathan@0
|
8 |
# as published by the Free Software Foundation; either version 2
|
nathan@0
|
9 |
# of the License, or (at your option) any later version.
|
nathan@0
|
10 |
#
|
nathan@0
|
11 |
# This code is distributed in the hope that it will be useful,
|
nathan@0
|
12 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
nathan@0
|
13 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
nathan@0
|
14 |
# GNU General Public License for more details.
|
nathan@0
|
15 |
#
|
nathan@0
|
16 |
# You should have received a copy of the GNU General Public License
|
nathan@0
|
17 |
# along with this program; if not, write to the Free Software
|
nathan@0
|
18 |
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
nathan@0
|
19 |
# Or, point your browser to http://www.gnu.org/copyleft/gpl.html
|
nathan@0
|
20 |
|
nathan@0
|
21 |
# The official name of this plugin.
|
nathan@0
|
22 |
# This name will be used in the '-P...' option of VDR to load the plugin.
|
nathan@0
|
23 |
# By default the main source file also carries this name.
|
nathan@0
|
24 |
#
|
nathan@0
|
25 |
PLUGIN = premiereepg
|
nathan@0
|
26 |
|
nathan@20
|
27 |
### The version number of this plugin:
|
nathan@0
|
28 |
|
nathan@20
|
29 |
RELEASE := $(shell grep 'define PLUGIN_RELEASE' version.h | awk '{ print $$3 }' | sed -e 's/[";]//g')
|
nathan@20
|
30 |
VERSION := $(shell if test -d .hg; then echo -n '$(RELEASE)-'; (hg identify 2>/dev/null || echo -n Unknown) | sed -e 's/ .*//'; else echo -n '$(RELEASE)'; fi)
|
nathan@0
|
31 |
|
nathan@0
|
32 |
### The C++ compiler and options:
|
nathan@0
|
33 |
|
nathan@0
|
34 |
CXX ?= g++
|
nathan@8
|
35 |
CXXFLAGS ?= -O2 -fPIC -Wall -Woverloaded-virtual
|
nathan@0
|
36 |
|
nathan@0
|
37 |
### The directory environment:
|
nathan@0
|
38 |
|
nathan@0
|
39 |
VDRDIR = ../../..
|
nathan@0
|
40 |
LIBDIR = ../../lib
|
nathan@0
|
41 |
TMPDIR = /tmp
|
nathan@0
|
42 |
|
nathan@0
|
43 |
### Allow user defined options to overwrite defaults:
|
nathan@0
|
44 |
|
nathan@0
|
45 |
-include $(VDRDIR)/Make.config
|
nathan@20
|
46 |
-include Make.config
|
nathan@0
|
47 |
|
nathan@0
|
48 |
### The version number of VDR (taken from VDR's "config.h"):
|
nathan@0
|
49 |
|
nathan@20
|
50 |
VDRVERSION := $(shell sed -ne '/define VDRVERSION/ s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
|
nathan@20
|
51 |
APIVERSION := $(shell sed -ne '/define APIVERSION/ s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
|
nathan@10
|
52 |
ifeq ($(strip $(APIVERSION)),)
|
nathan@10
|
53 |
APIVERSION = $(VDRVERSION)
|
nathan@10
|
54 |
endif
|
nathan@0
|
55 |
|
nathan@0
|
56 |
### The name of the distribution archive:
|
nathan@0
|
57 |
|
nathan@0
|
58 |
ARCHIVE = $(PLUGIN)-$(VERSION)
|
nathan@0
|
59 |
PACKAGE = vdr-$(ARCHIVE)
|
nathan@0
|
60 |
|
nathan@0
|
61 |
### Includes and Defines (add further entries here):
|
nathan@0
|
62 |
|
nathan@10
|
63 |
INCLUDES += -I$(VDRDIR)/include
|
nathan@0
|
64 |
|
nathan@0
|
65 |
DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
|
nathan@0
|
66 |
|
nathan@0
|
67 |
### The object files (add further files here):
|
nathan@0
|
68 |
|
nathan@20
|
69 |
OBJS = $(PLUGIN).o version.o
|
nathan@0
|
70 |
|
nathan@2
|
71 |
ifdef DBG
|
nathan@2
|
72 |
CXXFLAGS += -g
|
nathan@2
|
73 |
endif
|
nathan@2
|
74 |
|
nathan@14
|
75 |
### Internationalization (I18N):
|
nathan@0
|
76 |
|
nathan@14
|
77 |
PODIR = po
|
nathan@14
|
78 |
I18Npot = $(PODIR)/$(PLUGIN).pot
|
nathan@14
|
79 |
I18Nmsgs = $(addprefix $(LOCALEDIR)/,$(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo,$(notdir $(foreach file, $(wildcard $(PODIR)/*.po), $(basename $(file))))))
|
nathan@14
|
80 |
LOCALEDIR = $(VDRDIR)/locale
|
nathan@0
|
81 |
|
nathan@0
|
82 |
# Dependencies:
|
nathan@0
|
83 |
|
nathan@0
|
84 |
MAKEDEP = $(CXX) -MM -MG
|
nathan@0
|
85 |
DEPFILE = .dependencies
|
nathan@20
|
86 |
DEPFILES = $(subst version.c,,$(OBJS:%.o=%.c) $(OBJS2:%.o=%.c))
|
nathan@20
|
87 |
$(DEPFILE): Makefile $(DEPFILES) $(wildcard *.h)
|
nathan@20
|
88 |
@$(MAKEDEP) $(DEFINES) $(INCLUDES) $(DEPFILES) > $@
|
nathan@0
|
89 |
|
nathan@0
|
90 |
-include $(DEPFILE)
|
nathan@0
|
91 |
|
nathan@0
|
92 |
### Targets:
|
nathan@0
|
93 |
|
nathan@14
|
94 |
TARGETS = libvdr-$(PLUGIN).so
|
nathan@14
|
95 |
ifneq ($(shell grep -l 'Phrases' $(VDRDIR)/i18n.c),$(VDRDIR)/i18n.c)
|
nathan@14
|
96 |
TARGETS += i18n
|
nathan@14
|
97 |
endif
|
nathan@14
|
98 |
|
nathan@14
|
99 |
all: $(TARGETS)
|
nathan@14
|
100 |
.PHONY: i18n
|
nathan@14
|
101 |
|
nathan@14
|
102 |
%.o: %.c
|
nathan@14
|
103 |
$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
|
nathan@0
|
104 |
|
nathan@0
|
105 |
libvdr-$(PLUGIN).so: $(OBJS)
|
nathan@0
|
106 |
$(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@
|
nathan@10
|
107 |
@cp $@ $(LIBDIR)/$@.$(APIVERSION)
|
nathan@0
|
108 |
|
nathan@14
|
109 |
$(I18Npot): $(shell grep -rl '\(tr\|trNOOP\)(\".*\")' *.c $(SYSDIR))
|
nathan@19
|
110 |
xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --msgid-bugs-address='<s.huelswitt@gmx.de>' -o $@ $^
|
nathan@14
|
111 |
|
nathan@14
|
112 |
%.po: $(I18Npot)
|
nathan@19
|
113 |
msgmerge -U --no-wrap --no-location --backup=none -q $@ $<
|
nathan@14
|
114 |
@touch $@
|
nathan@14
|
115 |
|
nathan@14
|
116 |
%.mo: %.po
|
nathan@14
|
117 |
msgfmt -c -o $@ $<
|
nathan@14
|
118 |
|
nathan@14
|
119 |
$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
|
nathan@14
|
120 |
@mkdir -p $(dir $@)
|
nathan@14
|
121 |
cp $< $@
|
nathan@14
|
122 |
|
nathan@14
|
123 |
i18n: $(I18Nmsgs)
|
nathan@14
|
124 |
|
nathan@20
|
125 |
version.c: FORCE
|
nathan@20
|
126 |
@echo >$@.new "/* this file will be overwritten without warning */"; \
|
nathan@20
|
127 |
echo >>$@.new 'const char *PluginVersion =' '"'$(VERSION)'";'; \
|
nathan@20
|
128 |
diff $@.new $@ >$@.diff 2>&1; \
|
nathan@20
|
129 |
if test -s $@.diff; then mv -f $@.new $@; fi; \
|
nathan@20
|
130 |
rm -f $@.new $@.diff;
|
nathan@20
|
131 |
|
nathan@0
|
132 |
dist: clean
|
nathan@0
|
133 |
@-rm -rf $(TMPDIR)/$(ARCHIVE)
|
nathan@0
|
134 |
@mkdir $(TMPDIR)/$(ARCHIVE)
|
nathan@0
|
135 |
@cp -a * $(TMPDIR)/$(ARCHIVE)
|
nathan@4
|
136 |
@tar czf $(PACKAGE).tar.gz -C $(TMPDIR) $(ARCHIVE)
|
nathan@0
|
137 |
@-rm -rf $(TMPDIR)/$(ARCHIVE)
|
nathan@2
|
138 |
@echo Distribution package created as $(PACKAGE).tar.gz
|
nathan@0
|
139 |
|
nathan@0
|
140 |
clean:
|
nathan@2
|
141 |
@-rm -f $(OBJS) $(DEPFILE) *.so *.tar.gz core* *~
|
nathan@20
|
142 |
@-rm -f version.c
|
nathan@20
|
143 |
@-rm -f $(PODIR)/*.mo
|
nathan@20
|
144 |
|
nathan@20
|
145 |
FORCE:
|