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