1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
TARGET= rtpengine
export top_srcdir = ..
include ../lib/deps.Makefile
with_iptables_option ?= yes
with_transcoding ?= yes
ifeq ($(origin CFLAGS),undefined)
CFLAGS:= -g -Wall -Wextra -Wno-sign-compare -Wno-unused-parameter -Wstrict-prototypes -Werror=return-type \
-Wshadow
else
CFLAGS:= $(CFLAGS)
endif
CFLAGS+= -pthread
CFLAGS+= -std=c11
CFLAGS+= -I. -I../kernel-module/ -I../lib/ -I../include/
CFLAGS+= -Iprivate
CFLAGS+= -D_GNU_SOURCE
CFLAGS+= $(CFLAGS_GLIB)
CFLAGS+= $(CFLAGS_GTHREAD)
CFLAGS+= $(CFLAGS_LIBZ)
CFLAGS+= $(CFLAGS_OPENSSL)
CFLAGS+= $(CFLAGS_LIBEVENT)
CFLAGS+= $(CFLAGS_LIBPCRE)
CFLAGS+= $(CFLAGS_LIBCURL)
CFLAGS+= $(CFLAGS_JSON_GLIB)
CFLAGS+= $(CFLAGS_LIBWEBSOCKETS)
CFLAGS+= $(CFLAGS_LIBNFTNL)
CFLAGS+= $(CFLAGS_LIBMNL)
ifeq ($(with_iptables_option),yes)
CFLAGS+= $(CFLAGS_LIBIPTC)
CFLAGS+= -DWITH_IPTABLES_OPTION
endif
ifeq ($(with_transcoding),yes)
CFLAGS+= $(CFLAGS_LIBAVCODEC)
CFLAGS+= $(CFLAGS_LIBAVFORMAT)
CFLAGS+= $(CFLAGS_LIBAVUTIL)
CFLAGS+= $(CFLAGS_LIBSWRESAMPLE)
CFLAGS+= $(CFLAGS_LIBAVFILTER)
CFLAGS+= $(CFLAGS_SPANDSP)
CFLAGS+= $(CFLAGS_OPUS)
CFLAGS+= -DWITH_TRANSCODING
CFLAGS+= $(CFLAGS_MYSQL)
else
CFLAGS+= -DWITHOUT_CODECLIB
endif
ifeq ($(without_nftables),yes)
CFLAGS+= -DWITHOUT_NFTABLES
endif
### compile time options:
#CFLAGS+= -DSRTCP_KEY_DERIVATION_RFC_COMPLIANCE
#CFLAGS+= -DSTRICT_SDES_KEY_LIFETIME
LDLIBS:= -lm -ldl
LDLIBS+= $(LDLIBS_GLIB)
LDLIBS+= $(LDLIBS_GTHREAD)
LDLIBS+= $(LDLIBS_LIBZ)
LDLIBS+= $(LDLIBS_LIBPCRE)
LDLIBS+= $(LDLIBS_LIBCURL)
LDLIBS+= $(LDLIBS_LIBCRYPTO)
LDLIBS+= $(LDLIBS_OPENSSL)
LDLIBS+= $(LDLIBS_LIBEVENT)
LDLIBS+= $(LDLIBS_LIBPCAP)
LDLIBS+= $(LDLIBS_LIBHIREDIS)
LDLIBS+= $(LDLIBS_JSON_GLIB)
LDLIBS+= $(LDLIBS_LIBWEBSOCKETS)
LDLIBS+= $(LDLIBS_LIBNFTNL)
LDLIBS+= $(LDLIBS_LIBMNL)
ifeq ($(with_iptables_option),yes)
LDLIBS+= $(LDLIBS_LIBIPTC)
endif
ifeq ($(with_transcoding),yes)
LDLIBS+= $(LDLIBS_LIBAVCODEC)
LDLIBS+= $(LDLIBS_LIBAVFORMAT)
LDLIBS+= $(LDLIBS_LIBAVUTIL)
LDLIBS+= $(LDLIBS_LIBSWRESAMPLE)
LDLIBS+= $(LDLIBS_LIBAVFILTER)
LDLIBS+= $(LDLIBS_SPANDSP)
LDLIBS+= $(LDLIBS_OPUS)
LDLIBS+= $(LDLIBS_MYSQL)
endif
ifeq ($(with_transcoding),yes)
CFLAGS+= $(CFLAGS_BCG729)
LDLIBS+= $(LDLIBS_BCG729)
CFLAGS+= $(CFLAGS_CODEC_CHAIN)
LDLIBS+= $(LDLIBS_CODEC_CHAIN)
endif
CFLAGS+= $(CFLAGS_MQTT)
LDLIBS+= $(LDLIBS_MQTT)
SRCS= main.c kernel.c helpers.c control_tcp.c call.c control_udp.c redis.c \
cookie_cache.c udp_listener.c control_ng_flags_parser.c control_ng.strhash.c sdp.strhash.c stun.c rtcp.c \
crypto.c rtp.c call_interfaces.strhash.c dtls.c log.c cli.strhash.c graphite.c ice.c \
media_socket.c homer.c recording.c statistics.c cdr.c ssrc.c iptables.c tcp_listener.c \
codec.c load.c dtmf.c timerthread.c media_player.c jitter_buffer.c t38.c websocket.c \
mqtt.c janus.strhash.c audio_player.c arena.c ng_client.c
ifneq ($(without_nftables),yes)
SRCS+= nftables.c
endif
LIBSRCS= loglib.c auxlib.c rtplib.c str.c socket.c streambuf.c ssllib.c dtmflib.c mix_buffer.c poller.c \
bufferpool.c bencode.c
ifeq ($(with_transcoding),yes)
LIBSRCS+= codeclib.strhash.c resample.c
LIBASM= mvr2s_x64_avx2.S mvr2s_x64_avx512.S mix_in_x64_avx2.S mix_in_x64_avx512bw.S mix_in_x64_sse2.S
endif
ifneq ($(have_liburing),yes)
LIBSRCS+= uring.c
endif
MDS= rtpengine.ronn
MANS= $(MDS:.ronn=.8)
include ../lib/common.Makefile
install: $(TARGET) $(MANS)
install -m 0755 -D $(TARGET) $(DESTDIR)/usr/bin/$(TARGET)
install -m 0644 -D $(TARGET).8 $(DESTDIR)/usr/share/man/man8/$(TARGET).8
|