]> git.sesse.net Git - mlt/blob - src/mlt++/Makefile
Fix crash for mlt_audio_f32le and other formats that were not covered
[mlt] / src / mlt++ / Makefile
1 include ../../config.mak
2 include config.mak
3 INSTALL = install
4
5 ifeq ($(targetos), Darwin)
6 NAME = libmlt++$(LIBSUF)
7 TARGET = libmlt++.$(version)$(LIBSUF)
8 SONAME = libmlt++.$(soversion)$(LIBSUF)
9 LIBFLAGS += -install_name $(libdir)/$(SONAME) -current_version $(version) -compatibility_version $(soversion)
10 else ifeq ($(targetos), MinGW)
11 NAME = libmlt++$(LIBSUF)
12 TARGET = libmlt++-$(soversion)$(LIBSUF)
13 CXXFLAGS += -DMLTPP_EXPORTS
14 LIBFLAGS += -Wl,--output-def,libmlt++.def
15 else
16 NAME = libmlt++$(LIBSUF)
17 TARGET = $(NAME).$(version)
18 SONAME = $(NAME).$(soversion)
19 LIBFLAGS += -Wl,-soname,$(SONAME)
20 endif
21
22 CXXFLAGS += -I.. $(RDYNAMIC) -DVERSION=\"$(version)\" -fvisibility=hidden
23
24 LDFLAGS += -L../framework -lmlt
25 ifeq ($(targetos), Linux)
26 LDFLAGS += -Wl,--version-script=mlt++.vers
27 endif
28
29 OBJS = MltConsumer.o \
30            MltDeque.o \
31            MltEvent.o \
32            MltFactory.o \
33            MltField.o \
34            MltFilter.o \
35            MltFilteredConsumer.o \
36            MltFilteredProducer.o \
37            MltFrame.o \
38            MltGeometry.o \
39            MltMultitrack.o \
40            MltParser.o \
41            MltPlaylist.o \
42            MltProducer.o \
43            MltProfile.o \
44            MltProperties.o \
45            MltPushConsumer.o \
46            MltRepository.o \
47            MltService.o \
48            MltTokeniser.o \
49            MltTractor.o \
50            MltTransition.o
51
52 SRCS = $(OBJS:.o=.cpp)
53 HEADERS = config.h Mlt.h $(OBJS:.o=.h)
54
55 all:            $(TARGET)
56
57 $(TARGET):      $(OBJS)
58         $(CXX) $(LIBFLAGS) -o $@ $(OBJS) $(LDFLAGS)
59         ln -sf $(TARGET) $(NAME)
60         if [ "$(targetos)" != "MinGW" ]; then \
61                 ln -sf $(TARGET) $(SONAME) ; \
62         fi
63
64 depend: $(SRCS)
65         $(CXX) -MM $(CXXFLAGS) $^ 1>.depend
66
67 clean:
68         $(RM) $(OBJS) $(TARGET) $(NAME) $(SONAME)
69
70 distclean:      clean
71
72 install:
73         $(INSTALL) -d "$(DESTDIR)$(libdir)"
74         if [ "$(targetos)" = "MinGW" ]; then \
75                 $(INSTALL) -m 755 $(TARGET) $(DESTDIR)$(prefix) ; \
76                 $(INSTALL) -m 755 $(TARGET) $(DESTDIR)$(libdir)/libmlt++.dll ; \
77                 $(INSTALL) -m 644 libmlt++.def $(DESTDIR)$(libdir) ; \
78         else \
79                 $(INSTALL) -m 755 $(TARGET) $(DESTDIR)$(libdir) ; \
80                 ln -sf $(TARGET) $(DESTDIR)$(libdir)/$(SONAME) ; \
81                 ln -sf $(TARGET) $(DESTDIR)$(libdir)/$(NAME) ; \
82         fi
83         $(INSTALL) -d "$(DESTDIR)$(prefix)/include/mlt++"
84         $(INSTALL) -m 644 $(HEADERS) "$(DESTDIR)$(prefix)/include/mlt++"
85
86 uninstall:
87         rm -f "$(DESTDIR)$(libdir)/$(TARGET)"
88         if [ "$(targetos)" != "MinGW" ]; then \
89                 rm -f "$(DESTDIR)$(libdir)/$(NAME)" ; \
90                 rm -f "$(DESTDIR)$(libdir)/$(SONAME)" ; \
91         fi
92         rm -rf "$(DESTDIR)$(prefix)/include/mlt++"
93
94 ifneq ($(wildcard .depend),)
95 include .depend
96 endif