1################################################################################
2#
3# libpjsip
4#
5################################################################################
6
7LIBPJSIP_VERSION = 2.14
8LIBPJSIP_SOURCE = pjproject-$(LIBPJSIP_VERSION).tar.gz
9LIBPJSIP_SITE = $(call github,pjsip,pjproject,$(LIBPJSIP_VERSION))
10
11LIBPJSIP_LICENSE = GPL-2.0+
12LIBPJSIP_LICENSE_FILES = COPYING
13LIBPJSIP_CPE_ID_VENDOR = teluu
14LIBPJSIP_CPE_ID_PRODUCT = pjsip
15LIBPJSIP_INSTALL_STAGING = YES
16LIBPJSIP_MAKE = $(MAKE1)
17
18LIBPJSIP_CFLAGS = $(TARGET_CFLAGS) -DPJ_HAS_IPV6=1
19
20# relocation truncated to fit: R_68K_GOT16O
21ifeq ($(BR2_m68k_cf),y)
22LIBPJSIP_CFLAGS += -mxgot
23endif
24
25LIBPJSIP_CONF_ENV = \
26	LD="$(TARGET_CC)" \
27	CFLAGS="$(LIBPJSIP_CFLAGS)"
28
29LIBPJSIP_CONF_OPTS = \
30	--disable-resample \
31	--disable-g7221-codec \
32	--disable-ilbc-codec \
33	--disable-libwebrtc \
34	--disable-ext-sound \
35	--disable-g711-codec \
36	--disable-l16-codec \
37	--disable-g722-codec \
38	--disable-ipp \
39	--disable-silk
40
41# Note: aconfigure.ac is broken: --enable-epoll or --disable-epoll will
42# both enable it. But that's OK, epoll is better than the alternative,
43# so we want to use it.
44LIBPJSIP_CONF_OPTS += --enable-epoll
45
46ifeq ($(BR2_PACKAGE_ALSA_LIB_MIXER),y)
47LIBPJSIP_DEPENDENCIES += alsa-lib
48LIBPJSIP_CONF_OPTS += --enable-sound
49else
50LIBPJSIP_CONF_OPTS += --disable-sound
51endif
52
53ifeq ($(BR2_PACKAGE_BCG729),y)
54LIBPJSIP_DEPENDENCIES += bcg729
55LIBPJSIP_CONF_OPTS += --with-bcg729=$(STAGING_DIR)/usr
56else
57LIBPJSIP_CONF_OPTS += --disable-bcg729
58endif
59
60ifeq ($(BR2_PACKAGE_FFMPEG),y)
61LIBPJSIP_DEPENDENCIES += ffmpeg
62LIBPJSIP_CONF_OPTS += --with-ffmpeg=$(STAGING_DIR)/usr
63else
64LIBPJSIP_CONF_OPTS += --disable-ffmpeg
65endif
66
67ifeq ($(BR2_PACKAGE_LIBGSM),y)
68LIBPJSIP_CONF_OPTS += \
69	--enable-gsm-codec \
70	--with-external-gsm
71LIBPJSIP_DEPENDENCIES += libgsm
72else
73LIBPJSIP_CONF_OPTS += \
74	--disable-gsm-codec
75endif
76
77ifeq ($(BR2_PACKAGE_LIBOPENH264),y)
78LIBPJSIP_DEPENDENCIES += libopenh264
79LIBPJSIP_CONF_OPTS += --with-openh264=$(STAGING_DIR)/usr
80else
81LIBPJSIP_CONF_OPTS += --disable-openh264
82endif
83
84ifeq ($(BR2_PACKAGE_LIBOPENSSL),y)
85LIBPJSIP_DEPENDENCIES += libopenssl
86LIBPJSIP_CONF_OPTS += --with-ssl=$(STAGING_DIR)/usr
87else ifeq ($(BR2_PACKAGE_GNUTLS),y)
88LIBPJSIP_DEPENDENCIES += gnutls
89LIBPJSIP_CONF_OPTS += --with-gnutls=$(STAGING_DIR)/usr
90else
91LIBPJSIP_CONF_OPTS += --disable-ssl
92endif
93
94ifeq ($(BR2_PACKAGE_LIBSAMPLERATE),y)
95LIBPJSIP_DEPENDENCIES += libsamplerate
96LIBPJSIP_CONF_OPTS += --enable-libsamplerate
97else
98LIBPJSIP_CONF_OPTS += --disable-libsamplerate
99endif
100
101ifeq ($(BR2_PACKAGE_LIBSRTP),y)
102LIBPJSIP_DEPENDENCIES += libsrtp
103LIBPJSIP_CONF_OPTS += \
104	--enable-libsrtp \
105	--with-external-srtp
106else
107LIBPJSIP_CONF_OPTS += --disable-libsrtp
108endif
109
110ifeq ($(BR2_PACKAGE_LIBUPNP),y)
111LIBPJSIP_DEPENDENCIES += libupnp
112LIBPJSIP_CONF_OPTS += --with-upnp=$(STAGING_DIR)/usr
113else
114LIBPJSIP_CONF_OPTS += --disable-upnp
115endif
116
117ifeq ($(BR2_PACKAGE_LIBV4L),y)
118# --enable-v4l2 is broken (check for libv4l2 will be omitted)
119LIBPJSIP_DEPENDENCIES += libv4l
120else
121LIBPJSIP_CONF_OPTS += --disable-v4l2
122endif
123
124ifeq ($(BR2_PACKAGE_LIBYUV),y)
125LIBPJSIP_DEPENDENCIES += libyuv
126LIBPJSIP_CONF_OPTS += \
127	--enable-libyuv \
128	--with-external-yuv
129else
130LIBPJSIP_CONF_OPTS += --disable-libyuv
131endif
132
133ifeq ($(BR2_PACKAGE_OPENCORE_AMR),y)
134LIBPJSIP_DEPENDENCIES += opencore-amr
135LIBPJSIP_CONF_OPTS += --with-opencore-amr=$(STAGING_DIR)/usr
136else
137LIBPJSIP_CONF_OPTS += --disable-opencore-amr
138endif
139
140ifeq ($(BR2_PACKAGE_OPUS),y)
141LIBPJSIP_DEPENDENCIES += opus
142LIBPJSIP_CONF_OPTS += --with-opus=$(STAGING_DIR)/usr
143else
144LIBPJSIP_CONF_OPTS += --disable-opus
145endif
146
147ifeq ($(BR2_PACKAGE_PORTAUDIO),y)
148LIBPJSIP_DEPENDENCIES += portaudio
149LIBPJSIP_CONF_OPTS += --with-external-pa
150else
151LIBPJSIP_CONF_OPTS += --without-external-pa
152endif
153
154ifeq ($(BR2_PACKAGE_SDL2),y)
155LIBPJSIP_DEPENDENCIES += sdl2
156LIBPJSIP_CONF_OPTS += --with-sdl=$(STAGING_DIR)/usr
157else
158LIBPJSIP_CONF_OPTS += --disable-sdl
159endif
160
161ifeq ($(BR2_PACKAGE_SPEEX)$(BR2_PACKAGE_SPEEXDSP),yy)
162LIBPJSIP_CONF_OPTS += \
163	--enable-speex-aec \
164	--enable-speex-codec \
165	--with-external-speex
166LIBPJSIP_DEPENDENCIES += speex speexdsp
167else
168LIBPJSIP_CONF_OPTS += \
169	--disable-speex-aec \
170	--disable-speex-codec
171endif
172
173ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBUUID),y)
174LIBPJSIP_DEPENDENCIES += util-linux
175LIBPJSIP_CONF_OPTS += --enable-libuuid
176else
177LIBPJSIP_CONF_OPTS += --disable-libuuid
178endif
179
180# disable build of test binaries
181LIBPJSIP_MAKE_OPTS = lib
182
183$(eval $(autotools-package))
184