Include the nettle/hogweed crypto libraries in the pkg-config file
[rtmpdump.git] / librtmp / Makefile
blob8e7c8a1b410e3c69fa00ea7736a89e6b082c826f
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 LIBZ=-lz
28 LIBS_posix=
29 LIBS_darwin=
30 LIBS_mingw=-lws2_32 -lwinmm -lgdi32
31 LIB_GNUTLS=-lgnutls -lhogweed -lnettle -lgmp $(LIBZ)
32 LIB_OPENSSL=-lssl -lcrypto $(LIBZ)
33 LIB_POLARSSL=-lpolarssl $(LIBZ)
34 PRIVATE_LIBS=$(LIBS_$(SYS))
35 CRYPTO_LIB=$(LIB_$(CRYPTO)) $(PRIVATE_LIBS)
36 CRYPTO_REQ=$(REQ_$(CRYPTO))
37 CRYPTO_DEF=$(DEF_$(CRYPTO))
39 SO_VERSION=0
40 SOX_posix=so
41 SOX_darwin=dylib
42 SOX_mingw=dll
43 SOX=$(SOX_$(SYS))
44 SO_posix=.$(SOX).$(SO_VERSION)
45 SO_darwin=.$(SO_VERSION).$(SOX)
46 SO_mingw=-$(SO_VERSION).$(SOX)
47 SO_EXT=$(SO_$(SYS))
49 SODIR_posix=$(LIBDIR)
50 SODIR_darwin=$(LIBDIR)
51 SODIR_mingw=$(BINDIR)
52 SODIR=$(SODIR_$(SYS))
54 SO_LDFLAGS_posix=-shared -Wl,-soname,$@
55 SO_LDFLAGS_darwin=-dynamiclib -twolevel_namespace -undefined dynamic_lookup \
56 -fno-common -headerpad_max_install_names -install_name $(libdir)/$@
57 SO_LDFLAGS_mingw=-shared -Wl,--out-implib,librtmp.dll.a
58 SO_LDFLAGS=$(SO_LDFLAGS_$(SYS))
60 INSTALL_IMPLIB_posix=
61 INSTALL_IMPLIB_darwin=
62 INSTALL_IMPLIB_mingw=cp librtmp.dll.a $(LIBDIR)
63 INSTALL_IMPLIB=$(INSTALL_IMPLIB_$(SYS))
65 SHARED=yes
66 SODEF_yes=-fPIC
67 SOLIB_yes=librtmp$(SO_EXT)
68 SOINST_yes=install_so
69 SO_DEF=$(SODEF_$(SHARED))
70 SO_LIB=$(SOLIB_$(SHARED))
71 SO_INST=$(SOINST_$(SHARED))
73 DEF=-DRTMPDUMP_VERSION=\"$(VERSION)\" $(CRYPTO_DEF) $(XDEF)
74 OPT=-O2
75 CFLAGS=-Wall $(XCFLAGS) $(INC) $(DEF) $(OPT) $(SO_DEF)
76 LDFLAGS=$(XLDFLAGS)
79 OBJS=rtmp.o log.o amf.o hashswf.o parseurl.o
81 all: librtmp.a $(SO_LIB)
83 clean:
84 rm -f *.o *.a *.$(SOX) *$(SO_EXT) librtmp.pc
86 librtmp.a: $(OBJS)
87 $(AR) rs $@ $?
89 librtmp$(SO_EXT): $(OBJS)
90 $(CC) $(SO_LDFLAGS) $(LDFLAGS) -o $@ $^ $> $(CRYPTO_LIB)
91 ln -sf $@ librtmp.$(SOX)
93 log.o: log.c log.h Makefile
94 rtmp.o: rtmp.c rtmp.h rtmp_sys.h handshake.h dh.h log.h amf.h Makefile
95 amf.o: amf.c amf.h bytes.h log.h Makefile
96 hashswf.o: hashswf.c http.h rtmp.h rtmp_sys.h Makefile
97 parseurl.o: parseurl.c rtmp.h rtmp_sys.h log.h Makefile
99 librtmp.pc: librtmp.pc.in Makefile
100 sed -e "s;@prefix@;$(prefix);" -e "s;@libdir@;$(libdir);" \
101 -e "s;@VERSION@;$(VERSION);" \
102 -e "s;@CRYPTO_REQ@;$(CRYPTO_REQ);" \
103 -e "s;@PRIVATE_LIBS@;$(PRIVATE_LIBS);" librtmp.pc.in > $@
105 install: install_base $(SO_INST)
107 install_base: librtmp.a librtmp.pc
108 -mkdir -p $(INCDIR) $(LIBDIR)/pkgconfig $(MANDIR)/man3 $(SODIR)
109 cp amf.h http.h log.h rtmp.h $(INCDIR)
110 cp librtmp.a $(LIBDIR)
111 cp librtmp.pc $(LIBDIR)/pkgconfig
112 cp librtmp.3 $(MANDIR)/man3
114 install_so: librtmp$(SO_EXT)
115 cp librtmp$(SO_EXT) $(SODIR)
116 $(INSTALL_IMPLIB)
117 cd $(SODIR); ln -sf librtmp$(SO_EXT) librtmp.$(SOX)