v2.6 changes
[rtmpdump.git] / librtmp / Makefile
blob568fc71709dd4207215bfd28f33f2f0c8a9333c1
1 VERSION=v2.4
3 prefix=/usr/local
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)
14 CC=$(CROSS_COMPILE)gcc
15 LD=$(CROSS_COMPILE)ld
16 AR=$(CROSS_COMPILE)ar
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))
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))
51 SODIR_posix=$(LIBDIR)
52 SODIR_darwin=$(LIBDIR)
53 SODIR_mingw=$(BINDIR)
54 SODIR=$(SODIR_$(SYS))
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))
62 INSTALL_IMPLIB_posix=
63 INSTALL_IMPLIB_darwin=
64 INSTALL_IMPLIB_mingw=cp librtmp.dll.a $(LIBDIR)
65 INSTALL_IMPLIB=$(INSTALL_IMPLIB_$(SYS))
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))
75 DEF=-DRTMPDUMP_VERSION=\"$(VERSION)\" $(CRYPTO_DEF) $(XDEF)
76 OPT=-O2
77 CFLAGS=-Wall $(XCFLAGS) $(INC) $(DEF) $(OPT) $(SO_DEF)
78 LDFLAGS=$(XLDFLAGS)
81 OBJS=rtmp.o log.o amf.o hashswf.o parseurl.o
83 all: librtmp.a $(SO_LIB)
85 clean:
86 rm -f *.o *.a *.$(SOX) *$(SO_EXT) librtmp.pc
88 librtmp.a: $(OBJS)
89 $(AR) rs $@ $?
91 librtmp$(SO_EXT): $(OBJS)
92 $(CC) $(SO_LDFLAGS) $(LDFLAGS) -o $@ $^ $> $(CRYPTO_LIB)
93 ln -sf $@ librtmp.$(SOX)
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
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 > $@
108 install: install_base $(SO_INST)
110 install_base: librtmp.a librtmp.pc
111 -mkdir -p $(INCDIR) $(LIBDIR)/pkgconfig $(MANDIR)/man3
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
117 install_so: librtmp$(SO_EXT)
118 -mkdir -p $(SODIR)
119 cp librtmp$(SO_EXT) $(SODIR)
120 $(INSTALL_IMPLIB)
121 cd $(SODIR); ln -sf librtmp$(SO_EXT) librtmp.$(SOX)