Create the SODIR, too
[rtmpdump.git] / librtmp / Makefile
blobaa4a339d9fd5fc0764dd603c581ad06f7b86140f
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
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 -lgcrypt $(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=so # useless
43 SOX=$(SOX_$(SYS))
44 SO_posix=$(SOX).$(SO_VERSION)
45 SO_darwin=$(SO_VERSION).$(SOX)
46 SO_mingw=dll
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 -flat_namespace -undefined suppress -fno-common \
56 -headerpad_max_install_names
57 SO_LDFLAGS_mingw=-shared
58 SO_LDFLAGS=$(SO_LDFLAGS_$(SYS))
60 SHARED=yes
61 SODEF_yes=-fPIC
62 SOLIB_yes=librtmp.$(SO_EXT)
63 SOINST_yes=install_so
64 SO_DEF=$(SODEF_$(SHARED))
65 SO_LIB=$(SOLIB_$(SHARED))
66 SO_INST=$(SOINST_$(SHARED))
68 DEF=-DRTMPDUMP_VERSION=\"$(VERSION)\" $(CRYPTO_DEF) $(XDEF)
69 OPT=-O2
70 CFLAGS=-Wall $(XCFLAGS) $(INC) $(DEF) $(OPT) $(SO_DEF)
71 LDFLAGS=$(XLDFLAGS)
74 OBJS=rtmp.o log.o amf.o hashswf.o parseurl.o
76 all: librtmp.a $(SO_LIB)
78 clean:
79 rm -f *.o *.a *.$(SOX) *.$(SO_EXT) librtmp.pc
81 librtmp.a: $(OBJS)
82 $(AR) rs $@ $?
84 librtmp.$(SO_EXT): $(OBJS)
85 $(CC) $(SO_LDFLAGS) $(LDFLAGS) -o $@ $^ $> $(CRYPTO_LIB)
86 ln -sf $@ librtmp.$(SOX)
88 log.o: log.c log.h Makefile
89 rtmp.o: rtmp.c rtmp.h rtmp_sys.h handshake.h dh.h log.h amf.h Makefile
90 amf.o: amf.c amf.h bytes.h log.h Makefile
91 hashswf.o: hashswf.c http.h rtmp.h rtmp_sys.h Makefile
92 parseurl.o: parseurl.c rtmp.h rtmp_sys.h log.h Makefile
94 librtmp.pc: librtmp.pc.in Makefile
95 sed -e "s;@prefix@;$(prefix);" -e "s;@libdir@;$(libdir);" \
96 -e "s;@VERSION@;$(VERSION);" \
97 -e "s;@CRYPTO_REQ@;$(CRYPTO_REQ);" \
98 -e "s;@PRIVATE_LIBS@;$(PRIVATE_LIBS);" librtmp.pc.in > $@
100 install: install_base $(SO_INST)
102 install_base: librtmp.a librtmp.pc
103 -mkdir -p $(INCDIR) $(LIBDIR)/pkgconfig $(MANDIR)/man3 $(SODIR)
104 cp amf.h http.h log.h rtmp.h $(INCDIR)
105 cp librtmp.a $(LIBDIR)
106 cp librtmp.pc $(LIBDIR)/pkgconfig
107 cp librtmp.3 $(MANDIR)/man3
109 install_so: librtmp.$(SO_EXT)
110 cp librtmp.$(SO_EXT) $(SODIR)
111 cd $(SODIR); ln -sf librtmp.$(SO_EXT) librtmp.$(SOX)