Remove LiveTV menu.
[vuplus_xbmc] / lib / libdvd / libdvdnav / Makefile
1 include config.mak
2
3 .SUFFIXES: .so
4
5 AR=ar
6 LD=ld
7 RANLIB=ranlib
8
9 VPATH+= $(SRC_PATH_BARE)/src
10 SRCS = dvdnav.c highlight.c navigation.c read_cache.c remap.c searching.c settings.c
11
12 VPATH+= $(SRC_PATH_BARE)/src/vm
13 SRCS+= decoder.c vm.c vmcmd.c
14
15 HEADERS = src/dvdnav/dvd_types.h src/dvdnav/dvdnav.h src/dvdnav/dvdnav_events.h
16
17 CFLAGS += $(USEDEBUG) -Wall -funsigned-char
18 CFLAGS += -I$(CURDIR) -I$(SRC_PATH)/src -I$(SRC_PATH)/src/vm
19 CFLAGS += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
20 CFLAGS += -DHAVE_CONFIG_H -DHAVE_DLFCN_H
21
22 L=libdvdnav
23 MINI_L=libdvdnavmini
24 CFLAGS += $(DVDREAD_CFLAGS)
25
26 LIB = $(L).a
27 SHLIB = $(L).so
28 MINI_SHLIB = $(MINI_L).so
29
30 .OBJDIR=        obj
31 DEPFLAG = -M
32
33 OBJS = $(patsubst %.c,%.o, $(SRCS))
34 SHOBJS = $(patsubst %.c,%.so, $(SRCS))
35 DEPS= ${OBJS:%.o=%.d}
36
37 BUILDDEPS = Makefile config.mak
38
39 ifeq ($(BUILD_SHARED),yes)
40 all:    $(SHLIB) $(MINI_SHLIB) dvdnav-config pkgconfig
41 install: $(SHLIB) install-shared install-dvdnav-config install-pkgconfig
42 endif
43
44 ifeq ($(BUILD_STATIC),yes)
45 all:    $(LIB) dvdnav-config pkgconfig
46 install: $(LIB) install-static install-dvdnav-config install-pkgconfig
47 endif
48
49 install: install-headers
50
51 # Let version.sh create version.h
52
53 SVN_ENTRIES = $(SRC_PATH_BARE)/.svn/entries
54 ifeq ($(wildcard $(SVN_ENTRIES)),$(SVN_ENTRIES))
55 version.h: $(SVN_ENTRIES)
56 endif
57
58 version.h:
59         sh $(SRC_PATH)/version.sh $(SRC_PATH) "$(SHLIB_VERSION)"
60         
61 $(SRCS): version.h
62
63
64 # General targets
65
66 ${LIB}: version.h $(OBJS) $(BUILDDEPS)
67         cd $(.OBJDIR) && $(AR) rc $@ $(OBJS)
68         cd $(.OBJDIR) && $(RANLIB) $@
69
70 ${SHLIB}: version.h $(SHOBJS) $(BUILDDEPS)
71         cd $(.OBJDIR) && $(CC) $(SHLDFLAGS) -Wl,-soname=$(SHLIB).$(SHLIB_MAJOR) -o $@ $(SHOBJS) $(DVDREAD_LIBS) $(THREADLIB)
72 ${MINI_SHLIB}: version.h $(.OBJDIR) $(SHOBJS) $(BUILDDEPS)
73         cd $(.OBJDIR) && $(CC) $(SHLDFLAGS) -Wl,-soname=$(MINI_SHLIB).$(SHLIB_MAJOR) -o $@ $(SHOBJS) $(THREADLIB)
74
75 .c.so:  $(BUILDDEPS)
76         cd $(.OBJDIR) && $(CC) -fPIC -DPIC -MD $(CFLAGS) -c -o $@ $<
77
78 .c.o:   $(BUILDDEPS)
79         cd $(.OBJDIR) && $(CC) -MD $(CFLAGS) -c -o $@ $<
80
81
82 # Install targets
83
84 install-headers:
85         install -d $(DESTDIR)$(incdir)
86         install -m 644 $(HEADERS) $(DESTDIR)$(incdir)
87
88 install-shared: $(SHLIB)
89         install -d $(DESTDIR)$(shlibdir)
90
91         install $(INSTALLSTRIP) -m 755 $(.OBJDIR)/$(SHLIB) \
92                 $(DESTDIR)$(shlibdir)/$(SHLIB).$(SHLIB_VERSION)
93         install $(INSTALLSTRIP) -m 755 $(.OBJDIR)/$(MINI_SHLIB) \
94                 $(DESTDIR)$(shlibdir)/$(MINI_SHLIB).$(SHLIB_VERSION)
95
96         cd $(DESTDIR)$(shlibdir) && \
97                 ln -sf $(SHLIB).$(SHLIB_VERSION) $(SHLIB).$(SHLIB_MAJOR)
98         cd $(DESTDIR)$(shlibdir) && \
99                 ln -sf $(MINI_SHLIB).$(SHLIB_VERSION) $(MINI_SHLIB).$(SHLIB_MAJOR)
100         cd $(DESTDIR)$(shlibdir) && \
101                 ln -sf $(SHLIB).$(SHLIB_MAJOR) $(SHLIB)
102         cd $(DESTDIR)$(shlibdir) && \
103                 ln -sf $(MINI_SHLIB).$(SHLIB_MAJOR) $(MINI_SHLIB)
104
105
106 install-static: $(LIB)
107         install -d $(DESTDIR)$(libdir)
108
109         install $(INSTALLSTRIP) -m 755 $(.OBJDIR)/$(LIB) $(DESTDIR)$(libdir)/$(LIB)
110
111
112 # Clean targets
113
114 clean:
115         rm -rf  *~ $(.OBJDIR)/* 
116
117 pcedit = sed \
118         -e 's,@prefix@,$(PREFIX),' \
119         -e 's,@exec_prefix@,$(PREFIX),' \
120         -e 's,@libdir@,$(shlibdir),' \
121         -e 's,@includedir@,$(PREFIX)/include,' \
122         -e 's,@VERSION@,$(SHLIB_VERSION),' \
123         -e 's,@THREAD_CFLAGS@,,' \
124         -e 's,@THREAD_LIBS@,$(THREADLIB),' \
125         -e 's,@DVDREAD_CFLAGS@,$(DVDREAD_CFLAGS),'
126
127 pkgconfig: $(.OBJDIR)/dvdnav.pc $(.OBJDIR)/dvdnavmini.pc
128 $(.OBJDIR)/dvdnav.pc: misc/dvdnav.pc.in $(BUILDDEPS)
129         $(pcedit) $< > $@
130 $(.OBJDIR)/dvdnavmini.pc: misc/dvdnavmini.pc.in $(BUILDDEPS)
131         $(pcedit) $< > $@
132
133 install-pkgconfig: $(.OBJDIR)/dvdnav.pc $(.OBJDIR)/dvdnavmini.pc
134         install -d $(DESTDIR)$(libdir)/pkgconfig
135         install -m 0644 $(.OBJDIR)/dvdnav.pc $(DESTDIR)$(libdir)/pkgconfig
136         install -m 0644 $(.OBJDIR)/dvdnavmini.pc \
137           $(DESTDIR)$(libdir)/pkgconfig
138
139 distclean: clean
140         find . -name "*~" | xargs rm -rf
141         rm -rf config.mak $(.OBJDIR)
142
143 dvdnav-config: $(.OBJDIR)/dvdnav-config
144 $(.OBJDIR)/dvdnav-config: $(BUILDDEPS)
145         @echo '#!/bin/sh' > $(.OBJDIR)/dvdnav-config
146         @echo 'prefix='$(PREFIX) >> $(.OBJDIR)/dvdnav-config
147         @echo 'libdir='$(shlibdir) >> $(.OBJDIR)/dvdnav-config
148         @echo 'version='$(SHLIB_VERSION) >> $(.OBJDIR)/dvdnav-config
149         @echo 'dvdread_cflags="'$(DVDREAD_CFLAGS)'"' >> $(.OBJDIR)/dvdnav-config
150         @echo 'dvdread_libs="'$(DVDREAD_LIBS)'"' >> $(.OBJDIR)/dvdnav-config
151         @echo 'threadlib='$(THREADLIB) >> $(.OBJDIR)/dvdnav-config
152         @echo >> $(.OBJDIR)/dvdnav-config
153         cat $(SRC_PATH_BARE)/misc/dvdnav-config2.sh >> $(.OBJDIR)/dvdnav-config
154         chmod 0755 $(.OBJDIR)/dvdnav-config
155
156 install-dvdnav-config: dvdnav-config
157         install -d $(DESTDIR)$(PREFIX)/bin
158         install -m 0755 $(.OBJDIR)/dvdnav-config $(DESTDIR)$(PREFIX)/bin/dvdnav-config
159
160 vpath %.so ${.OBJDIR}
161 vpath %.o ${.OBJDIR}
162 vpath ${LIB} ${.OBJDIR}
163
164 # include dependency files if they exist
165 $(addprefix ${.OBJDIR}/, ${DEPS}): ;
166 -include $(addprefix ${.OBJDIR}/, ${DEPS})