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*)
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" |
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
$(AR) rc $@ $(OBJS) $(AMREXTRALIBS)
$(RANLIB) $@
-$(SLIB): $(OBJS)
+$(SLIBNAME): $(OBJS)
ifeq ($(CONFIG_PP),yes)
$(MAKE) -C libpostproc
endif
$(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
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/*~ \
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)
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)
.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
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)
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
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
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)
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
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
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
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
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
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
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