]> git.vomp.tv Git - vompserver.git/blob - Makefile
Initial import
[vompserver.git] / Makefile
1 #
2 # Makefile for a Video Disk Recorder plugin
3 #
4 # $Id$
5
6 # The official name of this plugin.
7 # This name will be used in the '-P...' option of VDR to load the plugin.
8 # By default the main source file also carries this name.
9 #
10 PLUGIN = vompserver
11
12 ### The version number of this plugin (taken from the main source file):
13
14 VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
15
16 ### The C++ compiler and options:
17
18 CXX      ?= g++
19 CXXFLAGS ?= -O2 -Wall -Woverloaded-virtual -Werror
20
21 ### The directory environment:
22
23 DVBDIR = ../../../../DVB
24 VDRDIR = ../../..
25 LIBDIR = ../../lib
26 TMPDIR = /tmp
27
28 ### Allow user defined options to overwrite defaults:
29
30 -include $(VDRDIR)/Make.config
31
32 ### The version number of VDR (taken from VDR's "config.h"):
33
34 VDRVERSION = $(shell grep 'define VDRVERSION ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g')
35
36 ### The name of the distribution archive:
37
38 ARCHIVE = $(PLUGIN)-$(VERSION)
39 PACKAGE = vdr-$(ARCHIVE)
40
41 ### Includes and Defines (add further entries here):
42
43 INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR)/include -Iremux -Ilibdvbmpeg
44
45 DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
46
47 ### The object files (add further files here):
48
49 OBJS = $(PLUGIN).o dsock.o mvpserver.o udpreplier.o mvpclient.o tcp.o \
50                    transceiver.o remux/ts2ps.o remux/ts2es.o remux/tsremux.o ringbuffer.o \
51                    recplayer.o config.o
52
53
54 libdvbmpeg/libdvbmpegtools.a: libdvbmpeg/*.c libdvbmpeg/*.cc libdvbmpeg/*.h libdvbmpeg/*.hh
55         make -C ./libdvbmpeg libdvbmpegtools.a
56
57
58 ### Implicit rules:
59
60 %.o: %.c
61         $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $<
62         
63 # Dependencies:
64
65 MAKEDEP = g++ -MM -MG
66 DEPFILE = .dependencies
67 $(DEPFILE): Makefile
68         @$(MAKEDEP) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@
69
70 -include $(DEPFILE)
71
72 ### Targets:
73
74 all: libvdr-$(PLUGIN).so
75
76 libvdr-$(PLUGIN).so: $(OBJS) libdvbmpeg/libdvbmpegtools.a
77         $(CXX) $(CXXFLAGS) -shared $(OBJS) libdvbmpeg/libdvbmpegtools.a -o $@
78         @cp $@ $(LIBDIR)/$@.$(VDRVERSION)
79
80 dist: clean
81         @-rm -rf $(TMPDIR)/$(ARCHIVE)
82         @mkdir $(TMPDIR)/$(ARCHIVE)
83         @cp -a * $(TMPDIR)/$(ARCHIVE)
84         @tar czf $(PACKAGE).tgz -C $(TMPDIR) $(ARCHIVE)
85         @-rm -rf $(TMPDIR)/$(ARCHIVE)
86         @echo Distribution package created as $(PACKAGE).tgz
87
88 clean:
89         make -C libdvbmpeg clean
90         rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~ remux/*.o