nathan@0
|
1 |
#
|
nathan@0
|
2 |
# MP3/MPlayer plugin to VDR
|
nathan@0
|
3 |
#
|
nathan@2
|
4 |
# (C) 2001-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 |
# You can change the compile options here or create a Make.config
|
nathan@0
|
22 |
# in the VDR directory an set them there.
|
nathan@0
|
23 |
|
nathan@0
|
24 |
### uncomment one of these lines, if you don't want one of the plugins
|
nathan@0
|
25 |
#WITHOUT_MP3=1
|
nathan@0
|
26 |
#WITHOUT_MPLAYER=1
|
nathan@0
|
27 |
|
nathan@0
|
28 |
### uncomment the following line, if you don't have libsndfile installed
|
nathan@0
|
29 |
#WITHOUT_LIBSNDFILE=1
|
nathan@0
|
30 |
|
nathan@0
|
31 |
### uncomment the following line, if you don't have libvorbisfile installed
|
nathan@0
|
32 |
#WITHOUT_LIBVORBISFILE=1
|
nathan@0
|
33 |
|
nathan@0
|
34 |
### uncomment the following line, if you want OSS sound output
|
nathan@0
|
35 |
#WITH_OSS_OUTPUT=1
|
nathan@0
|
36 |
|
nathan@0
|
37 |
### uncomment the following line, if you want to include debug symbols
|
nathan@0
|
38 |
#DBG=1
|
nathan@0
|
39 |
|
nathan@0
|
40 |
### The C++ compiler and options:
|
nathan@0
|
41 |
CXX ?= g++
|
nathan@0
|
42 |
CXXFLAGS ?= -O2 -fPIC -Wall -Woverloaded-virtual
|
nathan@0
|
43 |
|
nathan@0
|
44 |
###############################################
|
nathan@0
|
45 |
###############################################
|
nathan@0
|
46 |
#
|
nathan@0
|
47 |
# no user configurable options below this point
|
nathan@0
|
48 |
#
|
nathan@0
|
49 |
###############################################
|
nathan@0
|
50 |
###############################################
|
nathan@0
|
51 |
|
nathan@0
|
52 |
### The directory environment:
|
nathan@0
|
53 |
|
nathan@0
|
54 |
VDRDIR = ../../..
|
nathan@0
|
55 |
LIBDIR = ../../lib
|
nathan@0
|
56 |
TMPDIR = /tmp
|
nathan@0
|
57 |
|
nathan@0
|
58 |
# The official name of this plugin.
|
nathan@0
|
59 |
# This name will be used in the '-P...' option of VDR to load the plugin.
|
nathan@0
|
60 |
# By default the main source file also carries this name.
|
nathan@0
|
61 |
#
|
nathan@0
|
62 |
PLUGIN = mp3
|
nathan@0
|
63 |
PLUGIN2 = mplayer
|
nathan@0
|
64 |
|
nathan@0
|
65 |
### Allow user defined options to overwrite defaults:
|
nathan@0
|
66 |
|
nathan@0
|
67 |
-include $(VDRDIR)/Make.config
|
nathan@0
|
68 |
|
nathan@0
|
69 |
### The version number of this plugin (taken from the main source file):
|
nathan@0
|
70 |
|
nathan@0
|
71 |
VERSION = $(shell grep 'define PLUGIN_VERSION' version.h | awk '{ print $$3 }' | sed -e 's/[";]//g')
|
nathan@0
|
72 |
|
nathan@0
|
73 |
### The version number of VDR (taken from VDR's "config.h"):
|
nathan@0
|
74 |
|
nathan@0
|
75 |
VDRVERSION = $(shell sed -ne '/define VDRVERSION/ s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
|
nathan@0
|
76 |
APIVERSION = $(shell sed -ne '/define APIVERSION/ s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
|
nathan@0
|
77 |
ifeq ($(strip $(APIVERSION)),)
|
nathan@0
|
78 |
APIVERSION = $(VDRVERSION)
|
nathan@0
|
79 |
endif
|
nathan@0
|
80 |
VDRVERSNUM = $(shell sed -ne '/define VDRVERSNUM/ s/^.[a-zA-Z ]*\([0-9]*\) .*$$/\1/p' $(VDRDIR)/config.h)
|
nathan@0
|
81 |
APIVERSNUM = $(shell sed -ne '/define APIVERSNUM/ s/^.[a-zA-Z ]*\([0-9]*\) .*$$/\1/p' $(VDRDIR)/config.h)
|
nathan@0
|
82 |
ifeq ($(strip $(APIVERSNUM)),)
|
nathan@0
|
83 |
APIVERSNUM = $(VDRVERSNUM)
|
nathan@0
|
84 |
endif
|
nathan@0
|
85 |
|
nathan@0
|
86 |
### The name of the distribution archive:
|
nathan@0
|
87 |
|
nathan@0
|
88 |
ARCHIVE = $(PLUGIN)-$(VERSION)
|
nathan@0
|
89 |
PACKAGE = vdr-$(ARCHIVE)
|
nathan@0
|
90 |
|
nathan@0
|
91 |
### Includes and Defines (add further entries here):
|
nathan@0
|
92 |
|
nathan@0
|
93 |
INCLUDES += -I$(VDRDIR)/include
|
nathan@0
|
94 |
DEFINES += -D_GNU_SOURCE -DAPIVERSNUM=$(APIVERSNUM)
|
nathan@0
|
95 |
|
nathan@0
|
96 |
### The object files (add further files here):
|
nathan@0
|
97 |
|
nathan@0
|
98 |
ifndef WITHOUT_MP3
|
nathan@0
|
99 |
ALL += libvdr-$(PLUGIN).so
|
nathan@2
|
100 |
ifneq ($(shell grep -l 'Phrases' $(VDRDIR)/i18n.c),$(VDRDIR)/i18n.c)
|
nathan@2
|
101 |
ALL += i18n-$(PLUGIN)
|
nathan@2
|
102 |
endif
|
nathan@0
|
103 |
endif
|
nathan@0
|
104 |
ifndef WITHOUT_MPLAYER
|
nathan@0
|
105 |
ALL += libvdr-$(PLUGIN2).so
|
nathan@2
|
106 |
ifneq ($(shell grep -l 'Phrases' $(VDRDIR)/i18n.c),$(VDRDIR)/i18n.c)
|
nathan@2
|
107 |
ALL += i18n-$(PLUGIN2)
|
nathan@2
|
108 |
endif
|
nathan@0
|
109 |
endif
|
nathan@0
|
110 |
|
nathan@0
|
111 |
COM_OBJS = i18n.o data.o menu.o
|
nathan@0
|
112 |
|
nathan@0
|
113 |
OBJS = $(PLUGIN).o $(COM_OBJS)\
|
nathan@0
|
114 |
data-mp3.o setup-mp3.o player-mp3.o stream.o network.o\
|
nathan@0
|
115 |
decoder.o decoder-mp3.o decoder-mp3-stream.o decoder-snd.o \
|
nathan@0
|
116 |
decoder-ogg.o
|
nathan@0
|
117 |
LIBS = -lmad -lid3tag
|
nathan@0
|
118 |
|
nathan@0
|
119 |
ifndef WITHOUT_LIBSNDFILE
|
nathan@0
|
120 |
LIBS += -lsndfile
|
nathan@0
|
121 |
DEFINES += -DHAVE_SNDFILE
|
nathan@0
|
122 |
endif
|
nathan@0
|
123 |
ifndef WITHOUT_LIBVORBISFILE
|
nathan@0
|
124 |
LIBS += -lvorbisfile -lvorbis
|
nathan@0
|
125 |
DEFINES += -DHAVE_VORBISFILE
|
nathan@0
|
126 |
endif
|
nathan@0
|
127 |
ifdef WITH_OSS_OUTPUT
|
nathan@0
|
128 |
DEFINES += -DWITH_OSS
|
nathan@0
|
129 |
endif
|
nathan@0
|
130 |
ifdef BROKEN_PCM
|
nathan@0
|
131 |
DEFINES += -DBROKEN_PCM
|
nathan@0
|
132 |
endif
|
nathan@0
|
133 |
|
nathan@0
|
134 |
OBJS2 = $(PLUGIN2).o $(COM_OBJS)\
|
nathan@0
|
135 |
setup-mplayer.o player-mplayer.o
|
nathan@0
|
136 |
LIBS2 =
|
nathan@0
|
137 |
|
nathan@0
|
138 |
ifeq ($(shell test -f $(VDRDIR)/fontsym.h ; echo $$?),0)
|
nathan@0
|
139 |
DEFINES += -DHAVE_BEAUTYPATCH
|
nathan@0
|
140 |
endif
|
nathan@0
|
141 |
|
nathan@0
|
142 |
ifdef DBG
|
nathan@2
|
143 |
CXXFLAGS += -g
|
nathan@2
|
144 |
endif
|
nathan@2
|
145 |
|
nathan@2
|
146 |
### Internationalization (I18N):
|
nathan@2
|
147 |
|
nathan@2
|
148 |
PODIR = po
|
nathan@2
|
149 |
I18Npot = $(PODIR)/mp3-mplayer.pot
|
nathan@2
|
150 |
I18Npots = $(notdir $(foreach file, $(wildcard $(PODIR)/*.po), $(basename $(file))))
|
nathan@2
|
151 |
I18Nmsgs = $(addprefix $(LOCALEDIR)/,$(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo,$(I18Npots)))
|
nathan@2
|
152 |
I18Nmsgs2 = $(addprefix $(LOCALEDIR)/,$(addsuffix /LC_MESSAGES/vdr-$(PLUGIN2).mo,$(I18Npots)))
|
nathan@2
|
153 |
LOCALEDIR = $(VDRDIR)/locale
|
nathan@0
|
154 |
|
nathan@0
|
155 |
# Dependencies:
|
nathan@0
|
156 |
|
nathan@0
|
157 |
MAKEDEP = g++ -MM -MG
|
nathan@0
|
158 |
DEPFILE = .dependencies
|
nathan@0
|
159 |
$(DEPFILE): Makefile
|
nathan@0
|
160 |
@$(MAKEDEP) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) $(OBJS2:%.o=%.c) > $@
|
nathan@0
|
161 |
|
nathan@0
|
162 |
-include $(DEPFILE)
|
nathan@0
|
163 |
|
nathan@0
|
164 |
### Targets:
|
nathan@0
|
165 |
|
nathan@0
|
166 |
all: $(ALL)
|
nathan@2
|
167 |
.PHONY: i18n-$(PLUGIN) i18n-$(PLUGIN2)
|
nathan@2
|
168 |
|
nathan@2
|
169 |
%.o: %.c
|
nathan@2
|
170 |
$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
|
nathan@0
|
171 |
|
nathan@0
|
172 |
libvdr-$(PLUGIN).so: $(OBJS)
|
nathan@0
|
173 |
$(CXX) $(CXXFLAGS) -shared $(OBJS) $(LIBS) -o $@
|
nathan@0
|
174 |
@cp $@ $(LIBDIR)/$@.$(APIVERSION)
|
nathan@0
|
175 |
|
nathan@0
|
176 |
libvdr-$(PLUGIN2).so: $(OBJS2)
|
nathan@0
|
177 |
$(CXX) $(CXXFLAGS) -shared $(OBJS2) $(LIBS2) -o $@
|
nathan@0
|
178 |
@cp $@ $(LIBDIR)/$@.$(APIVERSION)
|
nathan@0
|
179 |
|
nathan@2
|
180 |
$(I18Npot): $(shell grep -rl '\(tr\|trNOOP\)(\".*\")' *.c $(SYSDIR))
|
nathan@2
|
181 |
xgettext -C -cTRANSLATORS --no-wrap -F -k -ktr -ktrNOOP --msgid-bugs-address='<s.huelswitt@gmx.de>' -o $@ $^
|
nathan@2
|
182 |
|
nathan@2
|
183 |
%.po: $(I18Npot)
|
nathan@2
|
184 |
msgmerge -U --no-wrap -F --backup=none -q $@ $<
|
nathan@2
|
185 |
@touch $@
|
nathan@2
|
186 |
|
nathan@2
|
187 |
%.mo: %.po
|
nathan@2
|
188 |
msgfmt -c -o $@ $<
|
nathan@2
|
189 |
|
nathan@2
|
190 |
$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
|
nathan@2
|
191 |
@mkdir -p $(dir $@)
|
nathan@2
|
192 |
cp $< $@
|
nathan@2
|
193 |
|
nathan@2
|
194 |
i18n-$(PLUGIN): $(I18Nmsgs)
|
nathan@2
|
195 |
|
nathan@2
|
196 |
$(I18Nmsgs2): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN2).mo: $(PODIR)/%.mo
|
nathan@2
|
197 |
@mkdir -p $(dir $@)
|
nathan@2
|
198 |
cp $< $@
|
nathan@2
|
199 |
|
nathan@2
|
200 |
i18n-$(PLUGIN2): $(I18Nmsgs2)
|
nathan@0
|
201 |
|
nathan@0
|
202 |
dist: clean
|
nathan@0
|
203 |
@-rm -rf $(TMPDIR)/$(ARCHIVE)
|
nathan@0
|
204 |
@mkdir $(TMPDIR)/$(ARCHIVE)
|
nathan@0
|
205 |
@cp -a * $(TMPDIR)/$(ARCHIVE)
|
nathan@0
|
206 |
@tar czf $(PACKAGE).tar.gz -C $(TMPDIR) $(ARCHIVE)
|
nathan@0
|
207 |
@-rm -rf $(TMPDIR)/$(ARCHIVE)
|
nathan@0
|
208 |
@echo Distribution package created as $(PACKAGE).tar.gz
|
nathan@0
|
209 |
|
nathan@0
|
210 |
clean:
|
nathan@2
|
211 |
@-rm -f $(OBJS) $(OBJS2) $(DEPFILE) libvdr-*.so $(PACKAGE).tar.gz core* *~
|
nathan@2
|
212 |
@-rm -f $(PODIR)/*.mo $(PODIR)/*.pot
|