summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xconfigure7
-rw-r--r--libavcodec/Makefile21
-rw-r--r--libavcodec/libpostproc/Makefile32
-rw-r--r--libavformat/Makefile20
-rw-r--r--libavutil/Makefile19
-rw-r--r--vhook/Makefile22
6 files changed, 72 insertions, 49 deletions
diff --git a/configure b/configure
index 4f5a9835ec..a31fdc54f3 100755
--- a/configure
+++ b/configure
@@ -329,11 +329,12 @@ v4l="no"
audio_oss="no"
dv1394="no"
ffserver="no"
-SHFLAGS="-dynamiclib"
+SHFLAGS="-dynamiclib -Wl,-single_module,-undefined,dynamic_lookup"
extralibs=""
darwin="yes"
strip="strip -x"
-LDFLAGS="-Wl,-search_paths_first"
+LDFLAGS="-Wl,-dynamic,-search_paths_first"
+SLIBSUF=".dylib"
FFSLDFLAGS=-Wl,-bind_at_load
;;
MINGW32*)
@@ -1428,6 +1429,8 @@ fi
if test "$lshared" = "yes" ; then
echo "BUILD_SHARED=yes" >> config.mak
echo "PIC=-fPIC -DPIC" >> config.mak
+ echo "SPPMAJOR=0" >> config.mak
+ echo "SPPVERSION=0.0.1" >> config.mak
fi
echo "EXTRALIBS=$extralibs" >> config.mak
version=`grep '#define FFMPEG_VERSION ' "$source_path/libavcodec/avcodec.h" |
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index 3b60705636..9e643675b7 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -377,17 +377,22 @@ ifeq ($(TARGET_ARCH_SPARC64),yes)
CFLAGS+= -mcpu=ultrasparc -mtune=ultrasparc
endif
+# Darwin specific stuff
+ifeq ($(CONFIG_DARWIN),yes)
+SHFLAGS += -Wl,-install_name,$(libdir)/$(SLIBPREF)avcodec$(SLIBSUF),-current_version,$(SPPVERSION),-compatibility_version,$(SPPVERSION)
+endif
+
SRCS := $(OBJS:.o=.c) $(ASM_OBJS:.o=.S)
OBJS := $(OBJS) $(ASM_OBJS)
LIB= $(LIBPREF)avcodec$(LIBSUF)
LIBAVUTIL= $(SRC_PATH)/libavutil/$(LIBPREF)avutil$(LIBSUF)
ifeq ($(BUILD_SHARED),yes)
-SLIB= $(SLIBPREF)avcodec$(SLIBSUF)
+SLIBNAME= $(SLIBPREF)avcodec$(SLIBSUF)
endif
TESTS= imgresample-test dct-test motion-test fft-test
-all: $(LIB) $(SLIB)
+all: $(LIB) $(SLIBNAME)
amrlibs:
$(MAKE) -C amr spclib fipoplib
@@ -399,7 +404,7 @@ $(LIB): $(OBJS) $(AMRLIBS)
$(AR) rc $@ $(OBJS) $(AMREXTRALIBS)
$(RANLIB) $@
-$(SLIB): $(OBJS)
+$(SLIBNAME): $(OBJS)
ifeq ($(CONFIG_PP),yes)
$(MAKE) -C libpostproc
endif
@@ -407,7 +412,7 @@ ifeq ($(CONFIG_WIN32),yes)
$(CC) $(SHFLAGS) -Wl,--output-def,$(@:.dll=.def) -o $@ $(OBJS) $(EXTRALIBS) $(AMREXTRALIBS)
-lib /machine:i386 /def:$(@:.dll=.def)
else
- $(CC) $(SHFLAGS) -o $@ $(OBJS) $(EXTRALIBS) $(AMREXTRALIBS) $(LDFLAGS)
+ $(CC) $(SHFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(EXTRALIBS) $(AMREXTRALIBS)
endif
dsputil.o: dsputil.c dsputil.h
@@ -427,7 +432,7 @@ depend: $(SRCS)
dep: depend
clean: $(CLEANAMR)
- rm -f *.o *.d *~ .depend $(LIB) $(SLIB) *.so i386/*.o i386/*~ \
+ rm -f *.o *.d *~ .depend $(LIB) $(SLIBNAME) *$(SLIBSUF) i386/*.o i386/*~ \
armv4l/*.o armv4l/*~ \
mlib/*.o mlib/*~ \
alpha/*.o alpha/*~ \
@@ -476,11 +481,11 @@ fft-test: fft-test.o $(LIB)
ifeq ($(BUILD_SHARED),yes)
install: all install-headers
ifeq ($(CONFIG_WIN32),yes)
- install $(INSTALLSTRIP) -m 755 $(SLIB) "$(prefix)"
+ install $(INSTALLSTRIP) -m 755 $(SLIBNAME) "$(prefix)"
else
install -d $(libdir)
- install $(INSTALLSTRIP) -m 755 $(SLIB) $(libdir)/libavcodec-$(VERSION).so
- ln -sf libavcodec-$(VERSION).so $(libdir)/libavcodec.so
+ install $(INSTALLSTRIP) -m 755 $(SLIBNAME) $(libdir)/libavcodec-$(VERSION)$(SLIBSUF)
+ ln -sf libavcodec-$(VERSION)$(SLIBSUF) $(libdir)/libavcodec$(SLIBSUF)
$(LDCONFIG) || true
endif
ifeq ($(CONFIG_PP),yes)
diff --git a/libavcodec/libpostproc/Makefile b/libavcodec/libpostproc/Makefile
index a12bc721e1..d435444208 100644
--- a/libavcodec/libpostproc/Makefile
+++ b/libavcodec/libpostproc/Makefile
@@ -4,9 +4,16 @@ include ../../config.mak
VPATH=$(SRC_PATH)/libavcodec/libpostproc
ifeq ($(SHARED_PP),yes)
-SPPLIB = $(SLIBPREF)postproc$(SLIBSUF)
-SPPMAJOR = 0
-SPPVERSION = $(SPPMAJOR).0.1
+SPPLIBNAME = $(SLIBPREF)postproc$(SLIBSUF)
+ifeq ($(CONFIG_DARWIN),yes)
+SPPLIBMAJOR = $(SLIBPREF)postproc.$(SPPMAJOR)$(SLIBSUF)
+SPPLIB = $(SLIBPREF)postproc.$(SPPVERSION)$(SLIBSUF)
+SHFLAGS += -Wl,-install_name,$(libdir)/$(SPPLIBNAME),-current_version,$(SPPVERSION),-compatibility_version,$(SPPVERSION)
+else
+SPPLIBMAJOR = $(SPPLIBNAME).$(SPPMAJOR)
+SPPLIB = $(SPPLIBNAME).$(SPPVERSION)
+SHFLAGS = -shared -Wl,-soname,$(SPPLIB)
+endif
endif
PPLIB = $(LIBPREF)postproc$(LIBSUF)
@@ -23,13 +30,13 @@ CFLAGS = $(OPTFLAGS) $(MLIB_INC) -I. -I.. $(EXTRA_INC)
.c.o:
$(CC) -c $(CFLAGS) $(LIBOBJFLAGS) -I$(SRC_PATH)/libavcodec -I../.. -o $@ $<
-all: $(SWSLIB) $(PPLIB) $(SPPLIB)
+all: $(SWSLIB) $(PPLIB) $(SPPLIBNAME)
clean:
- rm -f *.o *.a *~ *.so $(PPLIB) $(SPPLIB)
+ rm -f *.o *.a *~ *$(SLIBSUF) $(PPLIB) $(SPPLIBNAME)
distclean:
- rm -f Makefile.bak *.o *.a *~ *.so .depend
+ rm -f Makefile.bak *.o *.a *~ *$(SLIBSUF) .depend
dep: depend
@@ -40,9 +47,8 @@ ifeq ($(SHARED_PP),yes)
postprocess_pic.o: postprocess.c
$(CC) -c $(CFLAGS) -fomit-frame-pointer -fPIC -DPIC -I.. -I../.. -o $@ $<
-$(SPPLIB): $(SPPOBJS)
- $(CC) -shared -Wl,-soname,$(SPPLIB).$(SPPMAJOR) \
- -o $(SPPLIB) $(SPPOBJS)
+$(SPPLIBNAME): $(SPPOBJS)
+ $(CC) $(SHFLAGS) -o $(SPPLIBNAME) $(SPPOBJS)
endif
$(PPLIB): $(PPOBJS)
@@ -53,12 +59,12 @@ $(PPLIB): $(PPOBJS)
install: all
ifeq ($(SHARED_PP),yes)
ifeq ($(CONFIG_WIN32),yes)
- install $(INSTALLSTRIP) -m 755 $(SPPLIB) "$(prefix)"
+ install $(INSTALLSTRIP) -m 755 $(SPPLIBNAME) "$(prefix)"
else
install -d $(libdir)
- install $(INSTALLSTRIP) -m 755 $(SPPLIB) $(libdir)/$(SPPLIB).$(SPPVERSION)
- ln -sf $(SPPLIB).$(SPPVERSION) $(libdir)/$(SPPLIB)
- ln -sf $(SPPLIB).$(SPPVERSION) $(libdir)/$(SPPLIB).$(SPPMAJOR)
+ install $(INSTALLSTRIP) -m 755 $(SPPLIBNAME) $(libdir)/$(SPPLIB)
+ ln -sf $(SPPLIB) $(libdir)/$(SPPLIBNAME)
+ ln -sf $(SPPLIB) $(libdir)/$(SPPLIBMAJOR)
install -d $(libdir)/pkgconfig
install -m 644 ../../libpostproc.pc $(libdir)/pkgconfig
$(LDCONFIG) || true
diff --git a/libavformat/Makefile b/libavformat/Makefile
index ea486a77db..5be994b30a 100644
--- a/libavformat/Makefile
+++ b/libavformat/Makefile
@@ -81,9 +81,11 @@ endif
LIB= $(LIBPREF)avformat$(LIBSUF)
ifeq ($(BUILD_SHARED),yes)
-SLIB= $(SLIBPREF)avformat$(SLIBSUF)
-
-AVCLIBS+=-lavcodec$(BUILDSUF) -L../libavcodec
+SLIBNAME= $(SLIBPREF)avformat$(SLIBSUF)
+AVCLIBS+=-lavcodec$(BUILDSUF) -L../libavcodec -lavutil$(BUILDSUF) -L../libavutil
+ifeq ($(CONFIG_DARWIN),yes)
+SHFLAGS += -Wl,-install_name,$(libdir)/$(SLIBNAME),-current_version,$(SPPVERSION),-compatibility_version,$(SPPVERSION)
+endif
ifeq ($(CONFIG_MP3LAME),yes)
AVCLIBS+=-lmp3lame
endif
@@ -91,14 +93,14 @@ endif
SRCS := $(OBJS:.o=.c) $(PPOBJS:.o=.cpp)
-all: $(LIB) $(SLIB)
+all: $(LIB) $(SLIBNAME)
$(LIB): $(OBJS) $(PPOBJS)
rm -f $@
$(AR) rc $@ $(OBJS) $(PPOBJS)
$(RANLIB) $@
-$(SLIB): $(OBJS)
+$(SLIBNAME): $(OBJS)
ifeq ($(CONFIG_WIN32),yes)
$(CC) $(SHFLAGS) -Wl,--output-def,$(@:.dll=.def) -o $@ $(OBJS) $(PPOBJS) $(AVCLIBS) $(EXTRALIBS)
-lib /machine:i386 /def:$(@:.dll=.def)
@@ -112,11 +114,11 @@ depend: $(SRCS)
ifeq ($(BUILD_SHARED),yes)
install: all install-headers
ifeq ($(CONFIG_WIN32),yes)
- install $(INSTALLSTRIP) -m 755 $(SLIB) "$(prefix)"
+ install $(INSTALLSTRIP) -m 755 $(SLIBNAME) "$(prefix)"
else
install -d $(libdir)
- install $(INSTALLSTRIP) -m 755 $(SLIB) $(libdir)/libavformat-$(VERSION).so
- ln -sf libavformat-$(VERSION).so $(libdir)/libavformat.so
+ install $(INSTALLSTRIP) -m 755 $(SLIBNAME) $(libdir)/$(SLIBPREF)avformat-$(VERSION)$(SLIBSUF)
+ ln -sf $(SLIBPREF)avformat-$(VERSION)$(SLIBSUF) $(libdir)/$(SLIBNAME)
$(LDCONFIG) || true
endif
else
@@ -143,7 +145,7 @@ install-headers:
g++ $(subst -Wall,,$(CFLAGS)) -c -o $@ $<
distclean clean:
- rm -f *.o *.d .depend *~ *.a *.so $(LIB)
+ rm -f *.o *.d .depend *~ *.a *$(SLIBSUF) $(LIB)
#
# include dependency files if they exist
diff --git a/libavutil/Makefile b/libavutil/Makefile
index 7594ab2c6b..6765cc7ea1 100644
--- a/libavutil/Makefile
+++ b/libavutil/Makefile
@@ -22,22 +22,25 @@ SRCS := $(OBJS:.o=.c)
LIB= $(LIBPREF)avutil$(LIBSUF)
ifeq ($(BUILD_SHARED),yes)
-SLIB= $(SLIBPREF)avutil$(SLIBSUF)
+SLIBNAME= $(SLIBPREF)avutil$(SLIBSUF)
+ifeq ($(CONFIG_DARWIN),yes)
+SHFLAGS += -Wl,-install_name,$(libdir)/$(SLIBNAME),-current_version,$(SPPVERSION),-compatibility_version,$(SPPVERSION)
+endif
endif
-all: $(LIB) $(SLIB)
+all: $(LIB) $(SLIBNAME)
$(LIB): $(OBJS)
rm -f $@
$(AR) rc $@ $(OBJS)
$(RANLIB) $@
-$(SLIB): $(OBJS)
+$(SLIBNAME): $(OBJS)
ifeq ($(CONFIG_WIN32),yes)
$(CC) $(SHFLAGS) -Wl,--output-def,$(@:.dll=.def) -o $@ $(OBJS) $(EXTRALIBS) $(AMREXTRALIBS)
-lib /machine:i386 /def:$(@:.dll=.def)
else
- $(CC) $(SHFLAGS) -o $@ $(OBJS) $(EXTRALIBS) $(AMREXTRALIBS) $(LDFLAGS)
+ $(CC) $(SHFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(EXTRALIBS) $(AMREXTRALIBS)
endif
%.o: %.c
@@ -49,7 +52,7 @@ depend: $(SRCS)
dep: depend
clean:
- rm -f *.o *.d *~ .depend $(LIB) $(SLIB) *.so
+ rm -f *.o *.d *~ .depend $(LIB) $(SLIBNAME) *$(SLIBSUF)
distclean: clean
rm -f Makefile.bak .depend
@@ -58,11 +61,11 @@ distclean: clean
ifeq ($(BUILD_SHARED),yes)
install: all install-headers
ifeq ($(CONFIG_WIN32),yes)
- install $(INSTALLSTRIP) -m 755 $(SLIB) "$(prefix)"
+ install $(INSTALLSTRIP) -m 755 $(SLIBNAME) "$(prefix)"
else
install -d $(libdir)
- install $(INSTALLSTRIP) -m 755 $(SLIB) $(libdir)/libavutil-$(VERSION).so
- ln -sf libavutil-$(VERSION).so $(libdir)/libavutil.so
+ install $(INSTALLSTRIP) -m 755 $(SLIBNAME) $(libdir)/libavutil-$(VERSION)$(SLIBSUF)
+ ln -sf libavutil-$(VERSION)$(SLIBSUF) $(libdir)/$(SLIBNAME)
$(LDCONFIG) || true
endif
else
diff --git a/vhook/Makefile b/vhook/Makefile
index cc001f5e24..d8c7655a30 100644
--- a/vhook/Makefile
+++ b/vhook/Makefile
@@ -5,22 +5,22 @@ VPATH=$(SRC_PATH)/vhook
CFLAGS=-fPIC $(SHCFLAGS) -I.. -I$(SRC_PATH) -I$(SRC_PATH)/libavformat -I$(SRC_PATH)/libavcodec -I$(SRC_PATH)/libavutil -DHAVE_AV_CONFIG_H
ifeq ($(CONFIG_DARWIN),yes)
-SHFLAGS+=-flat_namespace -undefined suppress
+ SHFLAGS += -flat_namespace
endif
-HOOKS=null.so fish.so ppm.so watermark.so
+HOOKS=null$(SLIBSUF) fish$(SLIBSUF) ppm$(SLIBSUF) watermark$(SLIBSUF)
ifeq ($(HAVE_IMLIB2),yes)
- HOOKS += imlib2.so
+ HOOKS += imlib2$(SLIBSUF)
endif
ifeq ($(HAVE_FREETYPE2),yes)
- HOOKS += drawtext.so
+ HOOKS += drawtext$(SLIBSUF)
CFLAGS += `freetype-config --cflags`
endif
all: $(HOOKS)
-SRCS := $(HOOKS:.so=.c)
+SRCS := $(HOOKS:$(SLIBSUF)=.c)
depend: $(SRCS)
$(CC) -MM $(CFLAGS) $^ 1>.depend
@@ -29,17 +29,21 @@ install:
install -d "$(libdir)/vhook"
install -m 755 $(HOOKS) "$(libdir)/vhook"
-imlib2.so: imlib2.o
+imlib2$(SLIBSUF): imlib2.o
$(CC) $(LDFLAGS) -g -o $@ $(SHFLAGS) $< -lImlib2
-drawtext.so: drawtext.o
+drawtext$(SLIBSUF): drawtext.o
$(CC) $(LDFLAGS) -g -o $@ $(SHFLAGS) $< `freetype-config --libs`
-%.so: %.o
+%$(SLIBSUF): %.o
+ifeq ($(CONFIG_DARWIN),yes)
+ $(CC) $(LDFLAGS) $(SHFLAGS) -Wl,-install_name,$(libdir)/vhoook/$@ -g -o $@ $<
+else
$(CC) $(LDFLAGS) -g -o $@ $(SHFLAGS) $<
+endif
clean:
- rm -f *.o *.d .depend *.so *~
+ rm -f *.o *.d .depend *$(SLIBSUF) *~
ifneq ($(wildcard .depend),)
include .depend