As promised, build fixes for darwin platform. Darwin supports two types of shared libs, bundles (similar to Linux .so files) and dylibs. The main difference is bundles can be unloaded, dylibs cannot, so we build librtmp as a bundle so we can unload it. Note that in the lib Makefile, darwin needs XLDFLAGS ref'ed as also on darwin, we can build against various SDKs (10.4/10.5/10.6). This would get set via some external Makefile for building on a newer OSX version to be runtime compatible under an older OSX. See http://trac.xbmc.org/browser/trunk/lib/librtmp/Makefile for how we use it to build librtmp for XBMC for Mac. diff -uNrp librtmp-org/Makefile librtmp-mod/Makefile --- librtmp-org/Makefile 2010-07-01 08:00:43.000000000 -0400 +++ librtmp-mod/Makefile 2010-07-07 15:43:03.000000000 -0400 @@ -34,10 +34,12 @@ MANDIR=$(DESTDIR)$(mandir) LIBS_posix= LIBS_mingw=-lws2_32 -lwinmm -lgdi32 +LIBS_darwin= LIBS=$(CRYPTO_LIB) $(LIBS_$(SYS)) $(XLIBS) THREADLIB_posix=-lpthread THREADLIB_mingw= +THREADLIB_darwin=-lpthread THREADLIB=$(THREADLIB_$(SYS)) SLIBS=$(THREADLIB) $(LIBS) @@ -46,6 +48,7 @@ INCRTMP=librtmp/rtmp_sys.h librtmp/rtmp. EXT_posix= EXT_mingw=.exe +EXT_posix= EXT=$(EXT_$(SYS)) all: $(LIBRTMP) progs diff -uNrp librtmp-org/librtmp/Makefile librtmp-mod/librtmp/Makefile --- librtmp-org/librtmp/Makefile 2010-06-30 16:01:12.000000000 -0400 +++ librtmp-mod/librtmp/Makefile 2010-07-07 15:44:25.000000000 -0400 @@ -27,8 +27,15 @@ CRYPTO_DEF=$(DEF_$(CRYPTO)) SO_posix=so.0 SO_mingw=dll +SO_darwin=so.0 SO_EXT=$(SO_$(SYS)) +SO_LDFLAGS_posix=-shared -Wl,-soname,$@ +SO_LDFLAGS_mingw= +SO_LDFLAGS_darwin=-bundle -flat_namespace -undefined suppress -fno-common \ + -headerpad_max_install_names $(XLDFLAGS) +SO_LDFLAGS=$(SO_LDFLAGS_$(SYS)) + SHARED=yes SODEF_yes=-fPIC SOLIB_yes=librtmp.$(SO_EXT) @@ -61,7 +68,7 @@ librtmp.a: $(OBJS) $(AR) rs $@ $? librtmp.$(SO_EXT): $(OBJS) - $(CC) -shared -Wl,-soname,$@ $(LDFLAGS) -o $@ $^ $> $(CRYPTO_LIB) + $(CC) $(SO_LDFLAGS) $(LDFLAGS) -o $@ $^ $> $(CRYPTO_LIB) ln -sf $@ librtmp.so log.o: log.c log.h Makefile
participants (1)
-
Scott D. Davilla