Add support for building with gnutls with nettle as backend
[rtmpdump.git] / librtmp / Makefile
blob353c6c86eef9118e336f7c8efb14bc8c3fb33d14
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_GNUTLS_NETTLE=-DUSE_GNUTLS_NETTLE
25 DEF_=-DNO_CRYPTO
26 REQ_GNUTLS=gnutls
27 REQ_GNUTLS_NETTLE=gnutls
28 REQ_OPENSSL=libssl,libcrypto
29 LIBZ=-lz
30 LIBS_posix=
31 LIBS_darwin=
32 LIBS_mingw=-lws2_32 -lwinmm -lgdi32
33 LIB_GNUTLS=-lgnutls -lgcrypt $(LIBZ)
34 LIB_GNUTLS_NETTLE=-lgnutls -lhogweed -lnettle -lgmp $(LIBZ)
35 LIB_OPENSSL=-lssl -lcrypto $(LIBZ)
36 LIB_POLARSSL=-lpolarssl $(LIBZ)
37 PRIVATE_LIBS=$(LIBS_$(SYS))
38 CRYPTO_LIB=$(LIB_$(CRYPTO)) $(PRIVATE_LIBS)
39 CRYPTO_REQ=$(REQ_$(CRYPTO))
40 CRYPTO_DEF=$(DEF_$(CRYPTO))
42 SO_VERSION=0
43 SOX_posix=so
44 SOX_darwin=dylib
45 SOX_mingw=so # useless
46 SOX=$(SOX_$(SYS))
47 SO_posix=$(SOX).$(SO_VERSION)
48 SO_darwin=$(SO_VERSION).$(SOX)
49 SO_mingw=dll
50 SO_EXT=$(SO_$(SYS))
52 SODIR_posix=$(LIBDIR)
53 SODIR_darwin=$(LIBDIR)
54 SODIR_mingw=$(BINDIR)
55 SODIR=$(SODIR_$(SYS))
57 SO_LDFLAGS_posix=-shared -Wl,-soname,$@
58 SO_LDFLAGS_darwin=-dynamiclib -twolevel_namespace -undefined dynamic_lookup \
59 -fno-common -headerpad_max_install_names -install_name $(libdir)/$@
60 SO_LDFLAGS_mingw=-shared -Wl,--out-implib,librtmp.dll.a
61 SO_LDFLAGS=$(SO_LDFLAGS_$(SYS))
63 INSTALL_IMPLIB_posix=
64 INSTALL_IMPLIB_darwin=
65 INSTALL_IMPLIB_mingw=cp librtmp.dll.a $(LIBDIR)
66 INSTALL_IMPLIB=$(INSTALL_IMPLIB_$(SYS))
68 SHARED=yes
69 SODEF_yes=-fPIC
70 SOLIB_yes=librtmp.$(SO_EXT)
71 SOINST_yes=install_so
72 SO_DEF=$(SODEF_$(SHARED))
73 SO_LIB=$(SOLIB_$(SHARED))
74 SO_INST=$(SOINST_$(SHARED))
76 DEF=-DRTMPDUMP_VERSION=\"$(VERSION)\" $(CRYPTO_DEF) $(XDEF)
77 OPT=-O2
78 CFLAGS=-Wall $(XCFLAGS) $(INC) $(DEF) $(OPT) $(SO_DEF)
79 LDFLAGS=$(XLDFLAGS)
82 OBJS=rtmp.o log.o amf.o hashswf.o parseurl.o
84 all: librtmp.a $(SO_LIB)
86 clean:
87 rm -f *.o *.a *.$(SOX) *.$(SO_EXT) librtmp.pc
89 librtmp.a: $(OBJS)
90 $(AR) rs $@ $?
92 librtmp.$(SO_EXT): $(OBJS)
93 $(CC) $(SO_LDFLAGS) $(LDFLAGS) -o $@ $^ $> $(CRYPTO_LIB)
94 ln -sf $@ librtmp.$(SOX)
96 log.o: log.c log.h Makefile
97 rtmp.o: rtmp.c rtmp.h rtmp_sys.h handshake.h dh.h log.h amf.h Makefile
98 amf.o: amf.c amf.h bytes.h log.h Makefile
99 hashswf.o: hashswf.c http.h rtmp.h rtmp_sys.h Makefile
100 parseurl.o: parseurl.c rtmp.h rtmp_sys.h log.h Makefile
102 librtmp.pc: librtmp.pc.in Makefile
103 sed -e "s;@prefix@;$(prefix);" -e "s;@libdir@;$(libdir);" \
104 -e "s;@VERSION@;$(VERSION);" \
105 -e "s;@CRYPTO_REQ@;$(CRYPTO_REQ);" \
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 $(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
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)