+ Fix for Darwin and soname logic
[melted] / mlt++ / src / Makefile
index a52bde9..eb7e69e 100644 (file)
@@ -1,35 +1,57 @@
-prefix = /usr/local
-CXXFLAGS = -Wall -pthread `mlt-config --cflags`
-LDFLAGS = `mlt-config --libs`
+include ../config.mak
 INSTALL = install
 
-TARGET = libmlt++.so
+ifneq ($(targetos), Darwin)
+NAME = libmlt++$(LIBSUF)
+TARGET = $(NAME).$(version)
+LIBFLAGS += -Wl,-soname,$(TARGET)
+else
+NAME = libmlt++$(LIBSUF)
+TARGET = libmlt++.$(version)$(LIBSUF)
+LIBFLAGS += -install_name $(libdir)/$(TARGET)
+endif
 
 OBJS = MltConsumer.o \
+          MltDeque.o \
+          MltEvent.o \
           MltFactory.o \
+          MltField.o \
           MltFilter.o \
+          MltFilteredConsumer.o \
           MltFrame.o \
+          MltGeometry.o \
+          MltMiracle.o \
+          MltMultitrack.o \
+          MltParser.o \
           MltPlaylist.o \
           MltProducer.o \
           MltProperties.o \
+          MltPushConsumer.o \
+          MltResponse.o \
           MltService.o \
+          MltTokeniser.o \
+          MltTractor.o \
           MltTransition.o
 
 SRCS = $(OBJS:.o=.cpp)
-
-HEADERS = $(OBJS:.o=.h)
-
-CC=g++
+HEADERS = Mlt.h $(OBJS:.o=.h)
 
 all:           $(TARGET)
 
 $(TARGET):     $(OBJS)
-       $(CC) -shared -o $@ $(OBJS) $(LDFLAGS)
+       $(CXX) $(LIBFLAGS) -o $@ $(OBJS) $(LDFLAGS)
+       ln -sf $(TARGET) $(NAME)
 
 clean:
-       $(RM) $(OBJS) $(TARGET)
+       $(RM) $(OBJS) $(TARGET) $(NAME)
+
+distclean:     clean
 
 install:
-       $(INSTALL) -m 755 $(TARGET) $(prefix)/lib
-       $(INSTALL) -d "$(prefix)/include/mlt++"
-       $(INSTALL) -m 644 $(HEADERS) "$(prefix)/include/mlt++"
+       $(INSTALL) -d "$(DESTDIR)$(libdir)"
+       $(INSTALL) -m 755 $(TARGET) $(DESTDIR)$(libdir)
+       ln -sf $(TARGET) $(DESTDIR)$(libdir)/$(NAME)
+       $(INSTALL) -d "$(DESTDIR)$(prefix)/include/mlt++"
+       $(INSTALL) -m 644 $(HEADERS) "$(DESTDIR)$(prefix)/include/mlt++"
+       /sbin/ldconfig || true
+