1VERSION=v2.4 2 3prefix=/usr/local 4 5incdir=$(prefix)/include/librtmp 6bindir=$(prefix)/bin 7libdir=$(prefix)/lib 8mandir=$(prefix)/man 9BINDIR=$(DESTDIR)$(bindir) 10INCDIR=$(DESTDIR)$(incdir) 11LIBDIR=$(DESTDIR)$(libdir) 12MANDIR=$(DESTDIR)$(mandir) 13 14CC=$(CROSS_COMPILE)gcc 15LD=$(CROSS_COMPILE)ld 16AR=$(CROSS_COMPILE)ar 17 18SYS=posix 19CRYPTO=OPENSSL 20#CRYPTO=GNUTLS 21DEF_POLARSSL=-DUSE_POLARSSL 22DEF_OPENSSL=-DUSE_OPENSSL 23DEF_GNUTLS=-DUSE_GNUTLS 24DEF_=-DNO_CRYPTO 25REQ_GNUTLS=gnutls,hogweed,nettle 26REQ_OPENSSL=libssl,libcrypto 27PUB_GNUTLS=-lgmp 28LIBZ=-lz 29LIBS_posix= 30LIBS_darwin= 31LIBS_mingw=-lws2_32 -lwinmm -lgdi32 32LIB_GNUTLS=-lgnutls -lhogweed -lnettle -lgmp $(LIBZ) 33LIB_OPENSSL=-lssl -lcrypto $(LIBZ) 34LIB_POLARSSL=-lpolarssl $(LIBZ) 35PRIVATE_LIBS=$(LIBS_$(SYS)) 36CRYPTO_LIB=$(LIB_$(CRYPTO)) $(PRIVATE_LIBS) 37CRYPTO_REQ=$(REQ_$(CRYPTO)) 38CRYPTO_DEF=$(DEF_$(CRYPTO)) 39PUBLIC_LIBS=$(PUB_$(CRYPTO)) 40 41SO_VERSION=1 42SOX_posix=so 43SOX_darwin=dylib 44SOX_mingw=dll 45SOX=$(SOX_$(SYS)) 46SO_posix=.$(SOX).$(SO_VERSION) 47SO_darwin=.$(SO_VERSION).$(SOX) 48SO_mingw=-$(SO_VERSION).$(SOX) 49SO_EXT=$(SO_$(SYS)) 50 51SODIR_posix=$(LIBDIR) 52SODIR_darwin=$(LIBDIR) 53SODIR_mingw=$(BINDIR) 54SODIR=$(SODIR_$(SYS)) 55 56SO_LDFLAGS_posix=-shared -Wl,-soname,$@ 57SO_LDFLAGS_darwin=-dynamiclib -twolevel_namespace -undefined dynamic_lookup \ 58 -fno-common -headerpad_max_install_names -install_name $(libdir)/$@ 59SO_LDFLAGS_mingw=-shared -Wl,--out-implib,librtmp.dll.a 60SO_LDFLAGS=$(SO_LDFLAGS_$(SYS)) 61 62INSTALL_IMPLIB_posix= 63INSTALL_IMPLIB_darwin= 64INSTALL_IMPLIB_mingw=cp librtmp.dll.a $(LIBDIR) 65INSTALL_IMPLIB=$(INSTALL_IMPLIB_$(SYS)) 66 67SHARED=yes 68SODEF_yes=-fPIC 69SOLIB_yes=librtmp$(SO_EXT) 70SOINST_yes=install_so 71SO_DEF=$(SODEF_$(SHARED)) 72SO_LIB=$(SOLIB_$(SHARED)) 73SO_INST=$(SOINST_$(SHARED)) 74 75DEF=-DRTMPDUMP_VERSION=\"$(VERSION)\" $(CRYPTO_DEF) $(XDEF) 76OPT=-O2 77CFLAGS=-Wall $(XCFLAGS) $(INC) $(DEF) $(OPT) $(SO_DEF) 78LDFLAGS=$(XLDFLAGS) 79 80 81OBJS=rtmp.o log.o amf.o hashswf.o parseurl.o 82 83all: librtmp.a $(SO_LIB) 84 85clean: 86 rm -f *.o *.a *.$(SOX) *$(SO_EXT) librtmp.pc 87 88librtmp.a: $(OBJS) 89 $(AR) rs $@ $? 90 91librtmp$(SO_EXT): $(OBJS) 92 $(CC) $(SO_LDFLAGS) $(LDFLAGS) -o $@ $^ $> $(CRYPTO_LIB) 93 ln -sf $@ librtmp.$(SOX) 94 95log.o: log.c log.h Makefile 96rtmp.o: rtmp.c rtmp.h rtmp_sys.h handshake.h dh.h log.h amf.h Makefile 97amf.o: amf.c amf.h bytes.h log.h Makefile 98hashswf.o: hashswf.c http.h rtmp.h rtmp_sys.h Makefile 99parseurl.o: parseurl.c rtmp.h rtmp_sys.h log.h Makefile 100 101librtmp.pc: librtmp.pc.in Makefile 102 sed -e "s;@prefix@;$(prefix);" -e "s;@libdir@;$(libdir);" \ 103 -e "s;@VERSION@;$(VERSION);" \ 104 -e "s;@CRYPTO_REQ@;$(CRYPTO_REQ);" \ 105 -e "s;@PUBLIC_LIBS@;$(PUBLIC_LIBS);" \ 106 -e "s;@PRIVATE_LIBS@;$(PRIVATE_LIBS);" librtmp.pc.in > $@ 107 108install: install_base $(SO_INST) 109 110install_base: librtmp.a librtmp.pc 111 -mkdir -p $(INCDIR) $(LIBDIR)/pkgconfig $(MANDIR)/man3 $(SODIR) 112 cp amf.h http.h log.h rtmp.h $(INCDIR) 113 cp librtmp.a $(LIBDIR) 114 cp librtmp.pc $(LIBDIR)/pkgconfig 115 cp librtmp.3 $(MANDIR)/man3 116 117install_so: librtmp$(SO_EXT) 118 cp librtmp$(SO_EXT) $(SODIR) 119 $(INSTALL_IMPLIB) 120 cd $(SODIR); ln -sf librtmp$(SO_EXT) librtmp.$(SOX) 121 122