Merge branch 'org.openembedded.dev' of git@git.openembedded.net:/openembedded into...
[vuplus_openembedded] / packages / libmatroska / Makefile
1 # libmatroska core Makefile (used in cygwin)
2 # $Id: Makefile 1254 2006-06-02 14:32:52Z mosu $
3 # Author: Steve Lhomme <robux4 @ users.sf.net>
4 # Author: Moritz Bunkus <moritz @ bunkus.org>
5
6 #
7 # The library is built without debug information. If you want
8 # debug information to be included then compile with
9 # 'make DEBUG=yes'.
10 #
11
12 # Paths
13 libdir=$(LIBDIR)
14 includedir=$(INCDIR)/matroska
15
16 # Programs
17 CXX=g++
18 LD=$(CXX)
19 AR = ar rcvu
20 RANLIB = ranlib
21 INSTALL = install
22 INSTALL_OPTS = -m 644
23 INSTALL_OPTS_LIB = -m 644
24 INSTALL_DIR_OPTS = -m 755
25
26 ifneq (,$(shell $(CXX) -v 2>&1 | tail -n 1 | grep -i mingw))
27 $(error Please use the Makefile in ../mingw32)
28 endif
29
30 CWD=$(shell pwd)
31
32 # Options
33 LIBEBML_INCLUDE_DIR=$(INCDIR)/ebml
34 LIBEBML_LIB_DIR=$(LIBDIR)
35 EXTENSION=.cpp
36
37
38 ifeq (yes,$(DEBUG))
39 DEBUGFLAGS=-g -DDEBUG
40 endif
41
42 SRC_DIR=$(CWD)/src/
43 INCLUDE_DIR=$(CWD)/matroska
44 MUX_SRC_DIR=$(CWD)/test/mux/
45 TAG_SRC_DIR=$(CWD)/test/tags/
46
47 # Librarires
48 INCLUDE=-I$(CWD)/. -I$(LIBEBML_INCLUDE_DIR)
49 LIBS=
50 MUX_LIBS=-lmatroska -lebml $(LIBICONV)
51
52 # Names
53 LIBRARY=libmatroska.a
54 LIBRARY_SO=libmatroska.so
55 LIBRARY_SO_VER=libmatroska.so.0
56
57 # source-files
58 sources:=$(wildcard ${SRC_DIR}*$(EXTENSION))
59
60 # header files; replace .cxx extension with .h
61 headers:=$(patsubst %$(EXTENSION),%.h,$(sources))
62
63 # object files; replace .cxx extension with .o
64 objects:=$(patsubst %$(EXTENSION),%.o,$(sources))
65
66 objects_so:=$(patsubst %$(EXTENSION),%.lo,$(sources))
67
68 WARNINGFLAGS=-Wall -Wno-unknown-pragmas -ansi -fno-gnu-keywords -D_GNU_SOURCE \
69                 -Wshadow
70 COMPILEFLAGS=$(DEBUGFLAGS) $(CXXFLAGS) $(CPPFLAGS) $(WARNINGFLAGS) $(INCLUDE)
71 LINKFLAGS=-L. -L$(LIBEBML_LIB_DIR) $(LDFLAGS)
72 DEPENDFLAGS  = $(CXXFLAGS) $(INCLUDE)
73
74 ifeq (Darwin,$(shell uname -s))
75 all: staticlib
76 else
77 all: staticlib sharedlib
78 endif
79
80 staticlib: $(LIBRARY)
81
82 sharedlib: $(LIBRARY_SO)
83
84 lib:
85         @echo "Use the 'staticlib', 'sharedlib' or 'all' targets."
86         @false
87
88 # Build rules
89 %.o: %$(EXTENSION)
90         $(CXX) -c $(COMPILEFLAGS) -o $@ $<
91
92 %.lo: %$(EXTENSION)
93         $(CXX) -c $(COMPILEFLAGS) -fPIC -o $@ $<
94
95 $(LIBRARY): $(objects)
96         $(AR) $@ $(objects)
97         $(RANLIB) $@
98
99 $(LIBRARY_SO): $(objects_so)
100         $(CXX) -shared -Wl,-soname,$(LIBRARY_SO_VER) -o $(LIBRARY_SO_VER) $(objects_so) -L$(LIBEBML_LIB_DIR) -lebml
101         rm -f $(LIBRARY_SO)
102         ln -s $(LIBRARY_SO_VER) $(LIBRARY_SO)
103
104 clean:  cleantest
105         rm -f $(objects) $(objects_so)
106         rm -f $(LIBRARY)
107         rm -f $(LIBRARY_SO)
108         rm -f $(LIBRARY_SO_VER)
109         rm -f CORE
110
111 cleantest:
112         rm -f test6 test8 test9 test6.o test8.o test9.o
113
114 distclean dist-clean: clean
115         rm -f .depend
116
117 depend:
118         @echo Calculating dependecies:
119         @rm -f .depend
120         @touch .depend
121         @for i in $(sources); do \
122                 o="`echo $$i | sed -e 's/\.c$$/.o/' -e 's/\.cpp$$/.o/'`" ; \
123                 echo '  ' $$i: $$o ; \
124                 $(CXX) $(DEPENDFLAGS) -MM -MT $$o $$i >> .depend ; \
125         done
126
127 test: test6 test9
128
129 test6:  test6.o $(LIBRARY) $(LIBRARY_SO)
130         $(LD) -o $@ $(LINKFLAGS) $< $(MUX_LIBS)
131
132 test6.o: $(MUX_SRC_DIR)test6.cpp
133         $(CXX) -c $(COMPILEFLAGS) -o $@ $<
134
135 test8:  test8.o $(LIBRARY) $(LIBRARY_SO)
136         $(LD) -o $@ $(LINKFLAGS) $< $(MUX_LIBS)
137
138 test8.o: $(MUX_SRC_DIR)test8.cpp
139         $(CXX) -c $(COMPILEFLAGS) -o $@ $<
140
141 test9:  test9.o $(LIBRARY) $(LIBRARY_SO)
142         $(LD) -o $@ $(LINKFLAGS) $< $(MUX_LIBS)
143
144 test9.o: $(TAG_SRC_DIR)test9.cpp
145         $(CXX) -c $(COMPILEFLAGS) -o $@ $<
146
147 ifeq (Darwin,$(shell uname -s))
148 install: install_staticlib install_headers
149 else
150 install: install_staticlib install_sharedlib install_headers
151 endif
152
153 install_headers:
154         $(INSTALL) $(INSTALL_DIR_OPTS) -d $(includedir)
155         for i in $(INCLUDE_DIR)/*.h; do \
156                 $(INSTALL) $(INSTALL_OPTS) $$i $(includedir) ; \
157         done
158         $(INSTALL) $(INSTALL_DIR_OPTS) -d $(includedir)/c
159         for i in $(INCLUDE_DIR)/c/*.h; do \
160                 $(INSTALL) $(INSTALL_OPTS) $$i $(includedir)/c ; \
161         done
162
163 install_staticlib: $(LIBRARY)
164         $(INSTALL) $(INSTALL_DIR_OPTS) -d $(libdir)
165         $(INSTALL) $(INSTALL_OPTS_LIB) $(LIBRARY) $(libdir)
166
167 install_sharedlib: $(LIBRARY_SO)
168         $(INSTALL) $(INSTALL_DIR_OPTS) -d $(libdir)
169         $(INSTALL) $(INSTALL_OPTS_LIB) $(LIBRARY_SO_VER) $(libdir)
170         ln -fs $(LIBRARY_SO_VER) $(libdir)/$(LIBRARY_SO)
171
172 ifneq ($(wildcard .depend),)
173 include .depend
174 endif
175
176 # DO NOT DELETE