1VERSION=v2.4
2
3prefix=/usr/local
4
5CC=$(CROSS_COMPILE)gcc
6LD=$(CROSS_COMPILE)ld
7
8SYS=posix
9#SYS=mingw
10
11CRYPTO=OPENSSL
12#CRYPTO=POLARSSL
13#CRYPTO=GNUTLS
14LIBZ=-lz
15LIB_GNUTLS=-lgnutls -lhogweed -lnettle -lgmp $(LIBZ)
16LIB_OPENSSL=-lssl -lcrypto $(LIBZ)
17LIB_POLARSSL=-lpolarssl $(LIBZ)
18CRYPTO_LIB=$(LIB_$(CRYPTO))
19DEF_=-DNO_CRYPTO
20CRYPTO_DEF=$(DEF_$(CRYPTO))
21
22DEF=-DRTMPDUMP_VERSION=\"$(VERSION)\" $(CRYPTO_DEF) $(XDEF)
23OPT=-O2
24CFLAGS=-Wall $(XCFLAGS) $(INC) $(DEF) $(OPT)
25LDFLAGS=-Wall $(XLDFLAGS)
26
27bindir=$(prefix)/bin
28sbindir=$(prefix)/sbin
29mandir=$(prefix)/man
30
31BINDIR=$(DESTDIR)$(bindir)
32SBINDIR=$(DESTDIR)$(sbindir)
33MANDIR=$(DESTDIR)$(mandir)
34
35LIBS_posix=
36LIBS_darwin=
37LIBS_mingw=-lws2_32 -lwinmm -lgdi32
38LIB_RTMP=-Llibrtmp -lrtmp
39LIBS=$(LIB_RTMP) $(CRYPTO_LIB) $(LIBS_$(SYS)) $(XLIBS)
40
41THREADLIB_posix=-lpthread
42THREADLIB_darwin=-lpthread
43THREADLIB_mingw=
44THREADLIB=$(THREADLIB_$(SYS))
45SLIBS=$(THREADLIB) $(LIBS)
46
47LIBRTMP=librtmp/librtmp.a
48INCRTMP=librtmp/rtmp_sys.h librtmp/rtmp.h librtmp/log.h librtmp/amf.h
49
50EXT_posix=
51EXT_darwin=
52EXT_mingw=.exe
53EXT=$(EXT_$(SYS))
54
55PROGS=rtmpdump rtmpgw rtmpsrv rtmpsuck
56
57all:	$(LIBRTMP) $(PROGS)
58
59$(PROGS): $(LIBRTMP)
60
61install:	$(PROGS)
62	-mkdir -p $(BINDIR) $(SBINDIR) $(MANDIR)/man1 $(MANDIR)/man8
63	cp rtmpdump$(EXT) $(BINDIR)
64	cp rtmpgw$(EXT) rtmpsrv$(EXT) rtmpsuck$(EXT) $(SBINDIR)
65	cp rtmpdump.1 $(MANDIR)/man1
66	cp rtmpgw.8 $(MANDIR)/man8
67	@cd librtmp; $(MAKE) install
68
69clean:
70	rm -f *.o rtmpdump$(EXT) rtmpgw$(EXT) rtmpsrv$(EXT) rtmpsuck$(EXT)
71	@cd librtmp; $(MAKE) clean
72
73FORCE:
74
75$(LIBRTMP): FORCE
76	@cd librtmp; $(MAKE) all
77
78rtmpdump: rtmpdump.o
79	$(CC) $(LDFLAGS) -o $@$(EXT) $@.o $(LIBS)
80
81rtmpsrv: rtmpsrv.o thread.o
82	$(CC) $(LDFLAGS) -o $@$(EXT) $@.o thread.o $(SLIBS)
83
84rtmpsuck: rtmpsuck.o thread.o
85	$(CC) $(LDFLAGS) -o $@$(EXT) $@.o thread.o $(SLIBS)
86
87rtmpgw: rtmpgw.o thread.o
88	$(CC) $(LDFLAGS) -o $@$(EXT) $@.o thread.o $(SLIBS)
89
90rtmpgw.o: rtmpgw.c $(INCRTMP) Makefile
91rtmpdump.o: rtmpdump.c $(INCRTMP) Makefile
92rtmpsrv.o: rtmpsrv.c $(INCRTMP) Makefile
93rtmpsuck.o: rtmpsuck.c $(INCRTMP) Makefile
94thread.o: thread.c thread.h
95