Compare commits
No commits in common. "master-old" and "master" have entirely different histories.
master-old
...
master
2454 changed files with 748 additions and 1331604 deletions
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
[submodule "pjproject"]
|
||||||
|
path = pjproject
|
||||||
|
url = https://github.com/pjsip/pjproject
|
19
Makefile
19
Makefile
|
@ -1,21 +1,28 @@
|
||||||
PJSIP_DIR=pjproject-2.11.1
|
PJSIP_DIR=pjproject
|
||||||
PKG_CONFIG_PATH=pjsip.install/lib/pkgconfig
|
PKG_CONFIG_PATH=pjsip.install/lib/pkgconfig
|
||||||
|
|
||||||
all: d-modem slmodemd
|
ifndef NO_PULSE
|
||||||
|
DM_LDFLAGS += -l pulse -l pulse-simple
|
||||||
|
DM_CFLAGS += -DHAS_PULSE
|
||||||
|
endif
|
||||||
|
|
||||||
|
all: d-modem slmodemd $(if $(NO_PULSE),,d-modem.nopulse)
|
||||||
|
|
||||||
$(PKG_CONFIG_PATH)/libpjproject.pc:
|
$(PKG_CONFIG_PATH)/libpjproject.pc:
|
||||||
(cd $(PJSIP_DIR); [ -f ./config.status ] || ./configure --prefix=`pwd`/../pjsip.install --disable-video)
|
(cd $(PJSIP_DIR); [ -f ./config.status ] || ./configure --prefix=`pwd`/../pjsip.install --disable-video --disable-sound --enable-ext-sound --disable-speex-aec --enable-g711-codec --disable-l16-codec --disable-gsm-codec --disable-g722-codec --disable-g7221-codec --disable-speex-codec --disable-ilbc-codec --disable-sdl --disable-ffmpeg --disable-v4l2 --disable-openh264 --disable-vpx --disable-android-mediacodec --disable-darwin-ssl --disable-ssl --disable-opencore-amr --disable-silk --disable-opus --disable-bcg729 --disable-libyuv --disable-libwebrtc)
|
||||||
$(MAKE) -C $(PJSIP_DIR) && \
|
$(MAKE) -C $(PJSIP_DIR) && \
|
||||||
$(MAKE) -C $(PJSIP_DIR) install
|
$(MAKE) -C $(PJSIP_DIR) install
|
||||||
|
|
||||||
d-modem: d-modem.c $(PKG_CONFIG_PATH)/libpjproject.pc
|
d-modem d-modem.nopulse : d-modem.c $(PKG_CONFIG_PATH)/libpjproject.pc
|
||||||
$(CC) -o $@ $< `PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" pkg-config --static --cflags --libs libpjproject` -lpulse -lpulse-simple
|
$(CC) $(if $(findstring nopulse,$@),,$(DM_CFLAGS) $(DM_LDFLAGS)) -o $@ $< \
|
||||||
|
`PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" pkg-config --static --cflags --libs libpjproject` \
|
||||||
|
-O2 -s
|
||||||
|
|
||||||
slmodemd:
|
slmodemd:
|
||||||
$(MAKE) -C slmodemd
|
$(MAKE) -C slmodemd
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f d-modem.o d-modem
|
rm -f d-modem.o d-modem d-modem.nopulse
|
||||||
$(MAKE) -C slmodemd clean
|
$(MAKE) -C slmodemd clean
|
||||||
|
|
||||||
realclean: clean
|
realclean: clean
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
# D-Modem
|
# D-Modem
|
||||||
Software modem with **sound**
|
Software modem with **sound**
|
||||||
For burble's retro voip modem https://burble.dn42/retro/modem/
|
For burble's retro voip modem https://burble.dn42/retro/modem/
|
||||||
|
Now also for JerryXiao's own software voip modems!
|
||||||
|
|
||||||
Fortunately this old proprietary software modem still works :)
|
Fortunately this old proprietary software modem still works :)
|
||||||
|
|
||||||
## Prerequisite
|
## Prerequisite
|
||||||
|
@ -21,15 +23,26 @@ screen /tmp/ttySL0 115200
|
||||||
Inside the serial console, use the following at commands:
|
Inside the serial console, use the following at commands:
|
||||||
|
|
||||||
```
|
```
|
||||||
>atx3
|
ATX3
|
||||||
OK
|
> OK
|
||||||
>at+ms=22,0,1200,1200
|
AT+MS=22,1
|
||||||
OK
|
> OK
|
||||||
>atd424026019@voip.burble.dn42
|
ATD424026019@voip.burble.dn42
|
||||||
...
|
> CONNECT 1200
|
||||||
```
|
```
|
||||||
|
|
||||||
Now you should be connected. See https://burble.dn42/retro/modem/ for login username and password. Once logged in, close out of screen and execute pppd like this:
|
You can also connect to:
|
||||||
|
| number | AT+MS | ATD | Modulation |
|
||||||
|
| ------------ | ------------ | ------------ | ------------ |
|
||||||
|
| (42403618)361800 | AT+MS=90,1 | ATD361800@pbx.jerry.dn42 | V.90 |
|
||||||
|
| (42403618)361801 | AT+MS=34,1 | ATD361801@pbx.jerry.dn42 | V.34 |
|
||||||
|
| (42403618)361802 | AT+MS=32,1 | ATD361802@pbx.jerry.dn42 | V.32 |
|
||||||
|
| (42403618)361803 | AT+MS=22,1 | ATD361803@pbx.jerry.dn42 | V.22 |
|
||||||
|
| (42403618)361804 | AT+MS=22,1 | ATD361804@pbx.jerry.dn42 | V.22 |
|
||||||
|
| (42403618)361805 | AT+MS=23,1 | ATD361805@pbx.jerry.dn42 | V.23 |
|
||||||
|
| (42403618)361806 | AT+MS=23,1 | ATD361806@pbx.jerry.dn42 | V.23 |
|
||||||
|
|
||||||
|
Now you should be connected. If you see a login prompt, go to https://burble.dn42/retro/modem/ for login username and password. Once logged in, close out of GUN Screen and execute pppd like this:
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo pppd $(readlink /tmp/ttySL0) 1200 user dn42 noauth nodefaultroute nodetach
|
sudo pppd $(readlink /tmp/ttySL0) 1200 user dn42 noauth nodefaultroute nodetach
|
||||||
|
@ -42,7 +55,7 @@ If you would like a full dialup dn42 experience, try using netns:
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo ip netns add modem
|
sudo ip netns add modem
|
||||||
sudo ip netns exec modem pppd $(readlink /tmp/ttySL0) 1200 user dn42 noauth nodefaultroute nodetatch
|
sudo ip netns exec modem pppd $(readlink /tmp/ttySL0) 1200 noauth nodefaultroute nodetach
|
||||||
```
|
```
|
||||||
|
|
||||||
Start a new terminal and
|
Start a new terminal and
|
||||||
|
@ -55,3 +68,8 @@ ping burble.dn42
|
||||||
```
|
```
|
||||||
|
|
||||||
Have fun!
|
Have fun!
|
||||||
|
|
||||||
|
|
||||||
|
## Server
|
||||||
|
This code can also work as a server, no docs available though ;)
|
||||||
|
Just type ATA in the modem console and try it out first.
|
||||||
|
|
288
d-modem.c
288
d-modem.c
|
@ -23,23 +23,41 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
// test
|
||||||
#include <pjsua-lib/pjsua.h>
|
#include <pjsua-lib/pjsua.h>
|
||||||
#include <pjsua-lib/pjsua_internal.h>
|
#include <pjsua-lib/pjsua_internal.h>
|
||||||
|
|
||||||
|
#ifdef HAS_PULSE
|
||||||
#include <pulse/simple.h>
|
#include <pulse/simple.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
pa_simple *pa_s1;
|
#define PCM_FILE "dmodem.%s.s16le.9600hz.pcm"
|
||||||
pa_simple *pa_s2;
|
#undef PCM_FILE
|
||||||
|
//#define HAS_PULSE
|
||||||
|
|
||||||
|
#ifdef HAS_PULSE
|
||||||
|
pa_simple *pa_s1 = NULL;
|
||||||
|
pa_simple *pa_s2 = NULL;
|
||||||
const pa_sample_spec pa_ss = {
|
const pa_sample_spec pa_ss = {
|
||||||
.format = PA_SAMPLE_S16LE,
|
.format = PA_SAMPLE_S16LE,
|
||||||
.rate = 9600,
|
.rate = 9600,
|
||||||
.channels = 1
|
.channels = 1
|
||||||
};
|
};
|
||||||
int wave_recv;
|
#endif
|
||||||
int wave_transmit;
|
#ifdef PCM_FILE
|
||||||
|
int wave_recv = -1;
|
||||||
|
int wave_transmit = -1;
|
||||||
|
#endif
|
||||||
|
|
||||||
#define SIGNATURE PJMEDIA_SIG_CLASS_PORT_AUD('D','M')
|
#define SIGNATURE PJMEDIA_SIG_CLASS_PORT_AUD('D','M')
|
||||||
|
#define DMODEM_DIAL_MODE 0
|
||||||
|
#define DMODEM_ANSWER_MODE 1
|
||||||
|
|
||||||
|
uint8_t mode = DMODEM_DIAL_MODE;
|
||||||
|
uint8_t ringing = 0;
|
||||||
|
uint8_t answered = 0;
|
||||||
|
int ppid;
|
||||||
|
pjsua_call_id incoming;
|
||||||
|
|
||||||
struct dmodem {
|
struct dmodem {
|
||||||
pjmedia_port base;
|
pjmedia_port base;
|
||||||
|
@ -51,22 +69,85 @@ static struct dmodem port;
|
||||||
static bool destroying = false;
|
static bool destroying = false;
|
||||||
static pj_pool_t *pool;
|
static pj_pool_t *pool;
|
||||||
|
|
||||||
|
void stop_pa();
|
||||||
static void error_exit(const char *title, pj_status_t status) {
|
static void error_exit(const char *title, pj_status_t status) {
|
||||||
pjsua_perror(__FILE__, title, status);
|
pjsua_perror(__FILE__, title, status);
|
||||||
if (!destroying) {
|
if (!destroying) {
|
||||||
destroying = true;
|
destroying = true;
|
||||||
pjsua_destroy();
|
pjsua_destroy();
|
||||||
|
stop_pa();
|
||||||
|
if (answered)
|
||||||
|
kill(ppid, SIGINT);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void start_pa() {
|
||||||
|
#ifdef PCM_FILE
|
||||||
|
char _wavbuf[50];
|
||||||
|
sprintf(_wavbuf, PCM_FILE, "recv");
|
||||||
|
wave_recv = open(_wavbuf, O_WRONLY | O_CREAT, 00644);
|
||||||
|
sprintf(_wavbuf, PCM_FILE, "transmit");
|
||||||
|
wave_recv = open(_wavbuf, O_WRONLY | O_CREAT, 00644);
|
||||||
|
if (wave_recv <= 0 || wave_transmit <= 0)
|
||||||
|
error_exit("open wave files", 1);
|
||||||
|
#endif
|
||||||
|
#ifdef HAS_PULSE
|
||||||
|
pa_s1 = pa_simple_new(NULL, // Use the default server.
|
||||||
|
"dmodem", // Our application's name.
|
||||||
|
PA_STREAM_PLAYBACK,
|
||||||
|
NULL, // Use the default device.
|
||||||
|
"recv", // Description of our stream.
|
||||||
|
&pa_ss, // Our sample format.
|
||||||
|
NULL, // Use default channel map
|
||||||
|
NULL, // Use default buffering attributes.
|
||||||
|
NULL // Ignore error code.
|
||||||
|
);
|
||||||
|
pa_s2 = pa_simple_new(NULL, // Use the default server.
|
||||||
|
"dmodem", // Our application's name.
|
||||||
|
PA_STREAM_PLAYBACK,
|
||||||
|
NULL, // Use the default device.
|
||||||
|
"transmit", // Description of our stream.
|
||||||
|
&pa_ss, // Our sample format.
|
||||||
|
NULL, // Use default channel map
|
||||||
|
NULL, // Use default buffering attributes.
|
||||||
|
NULL // Ignore error code.
|
||||||
|
);
|
||||||
|
if (!pa_s1 || !pa_s2)
|
||||||
|
error_exit("pulseaudio", 1);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void stop_pa() {
|
||||||
|
#ifdef HAS_PULSE
|
||||||
|
if(pa_s1)
|
||||||
|
pa_simple_free(pa_s1);
|
||||||
|
if(pa_s2)
|
||||||
|
pa_simple_free(pa_s2);
|
||||||
|
pa_s1 = 0;
|
||||||
|
pa_s1 = 0;
|
||||||
|
#endif
|
||||||
|
#ifdef PCM_FILE
|
||||||
|
if (wave_recv >= 0)
|
||||||
|
close(wave_recv);
|
||||||
|
if (wave_transmit >= 0)
|
||||||
|
close(wave_transmit);
|
||||||
|
wave_recv = -1;
|
||||||
|
wave_transmit = -1;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
static pj_status_t dmodem_put_frame(pjmedia_port *this_port, pjmedia_frame *frame) {
|
static pj_status_t dmodem_put_frame(pjmedia_port *this_port, pjmedia_frame *frame) {
|
||||||
struct dmodem *sm = (struct dmodem *)this_port;
|
struct dmodem *sm = (struct dmodem *)this_port;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
if (frame->type == PJMEDIA_FRAME_TYPE_AUDIO) {
|
if (frame->type == PJMEDIA_FRAME_TYPE_AUDIO) {
|
||||||
pa_simple_write(pa_s1, frame->buf, frame->size, NULL);
|
#ifdef HAS_PULSE
|
||||||
write(wave_recv, frame->buf, frame->size);
|
pa_simple_write(pa_s1, frame->buf, frame->size, NULL);
|
||||||
|
#endif
|
||||||
|
#ifdef PCM_FILE
|
||||||
|
write(wave_recv, frame->buf, frame->size);
|
||||||
|
#endif
|
||||||
if ((len=write(sm->sock, frame->buf, frame->size)) != frame->size) {
|
if ((len=write(sm->sock, frame->buf, frame->size)) != frame->size) {
|
||||||
error_exit("error writing frame",0);
|
error_exit("error writing frame",0);
|
||||||
}
|
}
|
||||||
|
@ -87,14 +168,20 @@ static pj_status_t dmodem_get_frame(pjmedia_port *this_port, pjmedia_frame *fram
|
||||||
frame->timestamp.u64 = sm->timestamp.u64;
|
frame->timestamp.u64 = sm->timestamp.u64;
|
||||||
frame->type = PJMEDIA_FRAME_TYPE_AUDIO;
|
frame->type = PJMEDIA_FRAME_TYPE_AUDIO;
|
||||||
sm->timestamp.u64 += PJMEDIA_PIA_SPF(&this_port->info);
|
sm->timestamp.u64 += PJMEDIA_PIA_SPF(&this_port->info);
|
||||||
pa_simple_write(pa_s2, frame->buf, frame->size, NULL);
|
#ifdef HAS_PULSE
|
||||||
write(wave_transmit, frame->buf, frame->size);
|
pa_simple_write(pa_s2, frame->buf, frame->size, NULL);
|
||||||
|
#endif
|
||||||
|
#ifdef PCM_FILE
|
||||||
|
write(wave_transmit, frame->buf, frame->size);
|
||||||
|
#endif
|
||||||
|
|
||||||
return PJ_SUCCESS;
|
return PJ_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static pj_status_t dmodem_on_destroy(pjmedia_port *this_port) {
|
static pj_status_t dmodem_on_destroy(pjmedia_port *this_port) {
|
||||||
printf("destroy\n");
|
printf("destroy\n");
|
||||||
|
if (answered)
|
||||||
|
kill(ppid, SIGINT);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,11 +201,31 @@ static void on_call_state(pjsua_call_id call_id, pjsip_event *e) {
|
||||||
if (!destroying) {
|
if (!destroying) {
|
||||||
destroying = true;
|
destroying = true;
|
||||||
pjsua_destroy();
|
pjsua_destroy();
|
||||||
|
stop_pa();
|
||||||
|
if (answered)
|
||||||
|
kill(ppid, SIGINT);
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void on_incoming_call(pjsua_acc_id acc_id, pjsua_call_id call_id, pjsip_rx_data *rdata) {
|
||||||
|
pjsua_call_info ci;
|
||||||
|
pjsua_call_get_info(call_id, &ci);
|
||||||
|
char* tmp = malloc(pj_strlen(&ci.remote_contact)+1);
|
||||||
|
strcpy(tmp, ci.remote_contact.ptr);
|
||||||
|
tmp[pj_strlen(&ci.remote_contact)] = '\0';
|
||||||
|
if (answered) {
|
||||||
|
PJ_LOG(2,(__FILE__, "Incoming call rejected from: %s", tmp));
|
||||||
|
pjsua_call_hangup(call_id, 0u, NULL, NULL);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
PJ_LOG(2,(__FILE__, "Incoming call from: %s", tmp));
|
||||||
|
free(tmp);
|
||||||
|
incoming = call_id;
|
||||||
|
ringing = 1;
|
||||||
|
}
|
||||||
|
|
||||||
/* Callback called by the library when call's media state has changed */
|
/* Callback called by the library when call's media state has changed */
|
||||||
static void on_call_media_state(pjsua_call_id call_id) {
|
static void on_call_media_state(pjsua_call_id call_id) {
|
||||||
pjsua_call_info ci;
|
pjsua_call_info ci;
|
||||||
|
@ -140,65 +247,39 @@ static void on_call_media_state(pjsua_call_id call_id) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void start_pa() {
|
|
||||||
wave_recv = open("/tmp/dmodem.recv.s16le.9600hz.pcm", O_WRONLY | O_CREAT, 00644);
|
|
||||||
wave_transmit = open("/tmp/dmodem.transmit.s16le.9600hz.pcm", O_WRONLY | O_CREAT, 00644);
|
|
||||||
if (wave_recv <= 0 || wave_transmit <= 0)
|
|
||||||
error_exit("open wave files", 1);
|
|
||||||
pa_s1 = pa_simple_new(NULL, // Use the default server.
|
|
||||||
"dmodem", // Our application's name.
|
|
||||||
PA_STREAM_PLAYBACK,
|
|
||||||
NULL, // Use the default device.
|
|
||||||
"recv", // Description of our stream.
|
|
||||||
&pa_ss, // Our sample format.
|
|
||||||
NULL, // Use default channel map
|
|
||||||
NULL, // Use default buffering attributes.
|
|
||||||
NULL // Ignore error code.
|
|
||||||
);
|
|
||||||
pa_s2 = pa_simple_new(NULL, // Use the default server.
|
|
||||||
"dmodem", // Our application's name.
|
|
||||||
PA_STREAM_PLAYBACK,
|
|
||||||
NULL, // Use the default device.
|
|
||||||
"transmit", // Description of our stream.
|
|
||||||
&pa_ss, // Our sample format.
|
|
||||||
NULL, // Use default channel map
|
|
||||||
NULL, // Use default buffering attributes.
|
|
||||||
NULL // Ignore error code.
|
|
||||||
);
|
|
||||||
if (!pa_s1 || !pa_s2)
|
|
||||||
error_exit("pulseaudio", 1);
|
|
||||||
}
|
|
||||||
void stop_pa() {
|
|
||||||
pa_simple_free(pa_s1);
|
|
||||||
pa_simple_free(pa_s2);
|
|
||||||
close(wave_recv);
|
|
||||||
close(wave_transmit);
|
|
||||||
}
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
pjsua_acc_id acc_id;
|
pjsua_acc_id acc_id;
|
||||||
pj_status_t status;
|
pj_status_t status;
|
||||||
|
if (argc != 5) {
|
||||||
if (argc != 3) {
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
ppid = atoi(argv[3]);
|
||||||
|
char* _modemid_tmp = argv[4];
|
||||||
|
for (size_t i = strlen(_modemid_tmp) - 1 ; ; i--) {
|
||||||
|
if (i < 0 || _modemid_tmp[i] < '0' || _modemid_tmp[i] > '9') {
|
||||||
|
_modemid_tmp += i+1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int sip_port = atoi(_modemid_tmp);
|
||||||
|
sip_port = sip_port >= 0 ? sip_port : 0;
|
||||||
|
sip_port += 5060;
|
||||||
|
sip_port = sip_port <= 65535 ? sip_port : 65535;
|
||||||
|
if(!strncmp(argv[1], "rr", 2)) {
|
||||||
|
mode = DMODEM_ANSWER_MODE;
|
||||||
|
}
|
||||||
signal(SIGPIPE,SIG_IGN);
|
signal(SIGPIPE,SIG_IGN);
|
||||||
|
|
||||||
char *dialstr = argv[1];
|
char *dialstr = argv[1];
|
||||||
|
|
||||||
int has_sip_user = 1;
|
int has_sip_user = 1;
|
||||||
char *sip_user = getenv("SIP_LOGIN");
|
const char *_sip_user = getenv("SIP_LOGIN");
|
||||||
if (!sip_user) {
|
char *sip_user = NULL;
|
||||||
has_sip_user = 0;
|
if (!_sip_user) {
|
||||||
printf("[!] SIP_LOGIN is empty, no registration will be attempted\n");
|
has_sip_user = 0;
|
||||||
char sip_user_buf[40];
|
_sip_user = "placeholder:placeholder@placeholder";
|
||||||
strcpy(sip_user_buf, "placeholder:placeholder@placeholder");
|
|
||||||
sip_user = sip_user_buf;
|
|
||||||
}
|
|
||||||
if (!sip_user) {
|
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
|
sip_user = malloc(strlen(_sip_user) + 1);
|
||||||
|
strcpy(sip_user, _sip_user);
|
||||||
char *sip_domain = strchr(sip_user,'@');
|
char *sip_domain = strchr(sip_user,'@');
|
||||||
if (!sip_domain) {
|
if (!sip_domain) {
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -212,6 +293,8 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
status = pjsua_create();
|
status = pjsua_create();
|
||||||
if (status != PJ_SUCCESS) error_exit("Error in pjsua_create()", status);
|
if (status != PJ_SUCCESS) error_exit("Error in pjsua_create()", status);
|
||||||
|
if (!has_sip_user)
|
||||||
|
PJ_LOG(2,(__FILE__, "SIP_LOGIN is empty, no registration will be attempted"));
|
||||||
|
|
||||||
/* Init pjsua */
|
/* Init pjsua */
|
||||||
{
|
{
|
||||||
|
@ -223,18 +306,23 @@ int main(int argc, char *argv[]) {
|
||||||
cfg.cb.on_call_media_state = &on_call_media_state;
|
cfg.cb.on_call_media_state = &on_call_media_state;
|
||||||
cfg.cb.on_call_state = &on_call_state;
|
cfg.cb.on_call_state = &on_call_state;
|
||||||
|
|
||||||
|
if(mode == DMODEM_ANSWER_MODE) {
|
||||||
|
cfg.cb.on_incoming_call = &on_incoming_call;
|
||||||
|
}
|
||||||
|
|
||||||
pjsua_logging_config_default(&log_cfg);
|
pjsua_logging_config_default(&log_cfg);
|
||||||
log_cfg.console_level = 4;
|
// log_cfg.console_level = 4;
|
||||||
|
log_cfg.console_level = 2;
|
||||||
|
|
||||||
pjsua_media_config_default(&med_cfg);
|
pjsua_media_config_default(&med_cfg);
|
||||||
med_cfg.no_vad = true;
|
med_cfg.no_vad = true;
|
||||||
med_cfg.ec_tail_len = 0;
|
med_cfg.ec_tail_len = 0;
|
||||||
med_cfg.jb_max = 2000;
|
med_cfg.jb_max = -1;
|
||||||
// med_cfg.jb_init = 200;
|
med_cfg.jb_init = -1;
|
||||||
/* // med_cfg.jb_init = 200 */
|
|
||||||
med_cfg.jb_init = 100;
|
|
||||||
/* med_cfg.audio_frame_ptime = 5; */
|
|
||||||
med_cfg.audio_frame_ptime = 10;
|
med_cfg.audio_frame_ptime = 10;
|
||||||
|
med_cfg.quality = 10;
|
||||||
|
med_cfg.enable_ice = PJ_FALSE;
|
||||||
|
med_cfg.enable_turn = PJ_FALSE;
|
||||||
|
|
||||||
status = pjsua_init(&cfg, &log_cfg, &med_cfg);
|
status = pjsua_init(&cfg, &log_cfg, &med_cfg);
|
||||||
if (status != PJ_SUCCESS) error_exit("Error in pjsua_init()", status);
|
if (status != PJ_SUCCESS) error_exit("Error in pjsua_init()", status);
|
||||||
|
@ -249,29 +337,31 @@ int main(int argc, char *argv[]) {
|
||||||
pjsua_enum_codecs(codecs,&count);
|
pjsua_enum_codecs(codecs,&count);
|
||||||
for (int i=0; i<count; i++) {
|
for (int i=0; i<count; i++) {
|
||||||
int pri = 0;
|
int pri = 0;
|
||||||
if (pj_strcmp2(&codecs[i].codec_id,"PCMU/8000/1") == 0) {
|
if (pj_strcmp2(&codecs[i].codec_id,"PCMA/8000/1") == 0) {
|
||||||
pri = 0;
|
pri = 1;
|
||||||
} else if (pj_strcmp2(&codecs[i].codec_id,"PCMA/8000/1") == 0) {
|
} else if (pj_strcmp2(&codecs[i].codec_id,"PCMU/8000/1") == 0) {
|
||||||
pri = 2;
|
pri = 2;
|
||||||
}
|
}
|
||||||
pjsua_codec_set_priority(&codecs[i].codec_id, pri);
|
pjsua_codec_set_priority(&codecs[i].codec_id, pri);
|
||||||
// printf("codec: %s %d\n",pj_strbuf(&codecs[i].codec_id),pri);
|
// printf("codec: %s %d\n",pj_strbuf(&codecs[i].codec_id),pri);
|
||||||
}
|
}
|
||||||
|
|
||||||
pjsua_transport_id transport_id;
|
pjsua_transport_id transport_id;
|
||||||
/* Add UDP transport. */
|
/* Add UDP transport. */
|
||||||
{
|
{
|
||||||
pjsua_transport_config cfg;
|
pjsua_transport_config cfg;
|
||||||
|
|
||||||
pjsua_transport_config_default(&cfg);
|
pjsua_transport_config_default(&cfg);
|
||||||
// cfg.port = 5060;
|
if (mode)
|
||||||
if (getenv("PJSIP_IPV6"))
|
cfg.port = sip_port;
|
||||||
|
if (getenv("PJSIP_IPV6"))
|
||||||
status = pjsua_transport_create(PJSIP_TRANSPORT_UDP6, &cfg, &transport_id);
|
status = pjsua_transport_create(PJSIP_TRANSPORT_UDP6, &cfg, &transport_id);
|
||||||
else
|
else
|
||||||
status = pjsua_transport_create(PJSIP_TRANSPORT_UDP, &cfg, &transport_id);
|
status = pjsua_transport_create(PJSIP_TRANSPORT_UDP, &cfg, &transport_id);
|
||||||
if (status != PJ_SUCCESS) error_exit("Error creating transport", status);
|
if (status != PJ_SUCCESS) error_exit("Error creating transport", status);
|
||||||
}
|
}
|
||||||
|
char buf[384];
|
||||||
|
//printf("Initializing pool\n");
|
||||||
pj_caching_pool cp;
|
pj_caching_pool cp;
|
||||||
pj_caching_pool_init(&cp, NULL, 1024*1024);
|
pj_caching_pool_init(&cp, NULL, 1024*1024);
|
||||||
pool = pj_pool_create(&cp.factory, "pool1", 4000, 4000, NULL);
|
pool = pj_pool_create(&cp.factory, "pool1", 4000, 4000, NULL);
|
||||||
|
@ -285,15 +375,13 @@ int main(int argc, char *argv[]) {
|
||||||
port.base.get_frame = dmodem_get_frame;
|
port.base.get_frame = dmodem_get_frame;
|
||||||
port.base.on_destroy = dmodem_on_destroy;
|
port.base.on_destroy = dmodem_on_destroy;
|
||||||
|
|
||||||
char buf[384];
|
|
||||||
memset(buf,0,sizeof(buf));
|
memset(buf,0,sizeof(buf));
|
||||||
write(port.sock, buf, sizeof(buf));
|
write(port.sock, buf, sizeof(buf));
|
||||||
|
|
||||||
/* Initialization is done, now start pjsua */
|
/* Initialization is done, now start pjsua */
|
||||||
status = pjsua_start();
|
status = pjsua_start();
|
||||||
if (status != PJ_SUCCESS) error_exit("Error starting pjsua", status);
|
if (status != PJ_SUCCESS) error_exit("Error starting pjsua", status);
|
||||||
|
|
||||||
if (has_sip_user)
|
if (has_sip_user)
|
||||||
{
|
{
|
||||||
pjsua_acc_config cfg;
|
pjsua_acc_config cfg;
|
||||||
pjsua_acc_config_default(&cfg);
|
pjsua_acc_config_default(&cfg);
|
||||||
|
@ -301,7 +389,7 @@ int main(int argc, char *argv[]) {
|
||||||
pj_strdup2(pool,&cfg.id,buf);
|
pj_strdup2(pool,&cfg.id,buf);
|
||||||
snprintf(buf,sizeof(buf),"sip:%s",sip_domain);
|
snprintf(buf,sizeof(buf),"sip:%s",sip_domain);
|
||||||
pj_strdup2(pool,&cfg.reg_uri,buf);
|
pj_strdup2(pool,&cfg.reg_uri,buf);
|
||||||
cfg.register_on_acc_add = true;
|
cfg.register_on_acc_add = mode ? true : false;
|
||||||
cfg.cred_count = 1;
|
cfg.cred_count = 1;
|
||||||
cfg.cred_info[0].realm = pj_str("*");
|
cfg.cred_info[0].realm = pj_str("*");
|
||||||
cfg.cred_info[0].scheme = pj_str("digest");
|
cfg.cred_info[0].scheme = pj_str("digest");
|
||||||
|
@ -314,30 +402,38 @@ int main(int argc, char *argv[]) {
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("acc add local\n");
|
status == pjsua_acc_add_local(transport_id, 1, &acc_id);
|
||||||
status == pjsua_acc_add_local(transport_id, 1, &acc_id);
|
|
||||||
if (status != PJ_SUCCESS) error_exit("Error adding local account", status);
|
if (status != PJ_SUCCESS) error_exit("Error adding local account", status);
|
||||||
}
|
}
|
||||||
pjsua_get_var()->tpdata[transport_id].has_bound_addr = PJ_TRUE;
|
pjsua_get_var()->tpdata[transport_id].has_bound_addr = PJ_TRUE;
|
||||||
if (getenv("PJSIP_IPV6"))
|
if (getenv("PJSIP_IPV6"))
|
||||||
pjsua_get_var()->acc[acc_id].cfg.ipv6_media_use = PJSUA_IPV6_ENABLED;
|
pjsua_get_var()->acc[acc_id].cfg.ipv6_media_use = PJSUA_IPV6_ENABLED;
|
||||||
|
|
||||||
if (has_sip_user)
|
start_pa();
|
||||||
snprintf(buf,sizeof(buf),"sip:%s@%s",dialstr,sip_domain);
|
if(mode == DMODEM_DIAL_MODE) {
|
||||||
else
|
if (has_sip_user)
|
||||||
snprintf(buf,sizeof(buf),"sip:%s",dialstr);
|
snprintf(buf,sizeof(buf),"sip:%s@%s",dialstr,sip_domain);
|
||||||
printf("calling %s\n",buf);
|
else
|
||||||
pj_str_t uri = pj_str(buf);
|
snprintf(buf,sizeof(buf),"sip:%s",dialstr);
|
||||||
start_pa();
|
PJ_LOG(2,(__FILE__, "calling %s\n",buf));
|
||||||
pjsua_call_id callid;
|
pj_str_t uri = pj_str(buf);
|
||||||
status = pjsua_call_make_call(acc_id, &uri, 0, NULL, NULL, &callid);
|
pjsua_call_id callid;
|
||||||
if (status != PJ_SUCCESS) error_exit("Error making call", status);
|
status = pjsua_call_make_call(acc_id, &uri, 0, NULL, NULL, &callid);
|
||||||
|
if (status != PJ_SUCCESS) error_exit("Error making call", status);
|
||||||
|
}
|
||||||
|
|
||||||
struct timespec ts = {100, 0};
|
struct timespec ts = {1, 0};
|
||||||
while(1) {
|
while(1) {
|
||||||
|
if(mode == DMODEM_ANSWER_MODE) {
|
||||||
|
if(ringing) {
|
||||||
|
status = pjsua_call_answer(incoming, 200, NULL, NULL);
|
||||||
|
if (status != PJ_SUCCESS) error_exit("Error answering call", status);
|
||||||
|
ringing = 0;
|
||||||
|
answered = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
nanosleep(&ts,NULL);
|
nanosleep(&ts,NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
stop_pa();
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
419
mm.py
Normal file
419
mm.py
Normal file
|
@ -0,0 +1,419 @@
|
||||||
|
import subprocess
|
||||||
|
import threading
|
||||||
|
import select
|
||||||
|
import time
|
||||||
|
import tty
|
||||||
|
import pathlib
|
||||||
|
import re
|
||||||
|
import os
|
||||||
|
import signal
|
||||||
|
import ipaddress
|
||||||
|
import io
|
||||||
|
import pty
|
||||||
|
import logging
|
||||||
|
import pwd
|
||||||
|
import ctypes
|
||||||
|
import argparse
|
||||||
|
from typing import Union, Dict, List, Tuple, Callable, Any
|
||||||
|
|
||||||
|
logging.basicConfig(level=logging.DEBUG,format='%(threadName)-5s - %(levelname)s - %(message)s')
|
||||||
|
logger = logging.getLogger()
|
||||||
|
|
||||||
|
PJSIP_V6 = False
|
||||||
|
# exports PJSIP_IPV6=1 to d-modem
|
||||||
|
# uses ipv6 sip transport to preserve address space
|
||||||
|
# utilize ipv4 over v6 next hop so that no v4 is required in the container
|
||||||
|
|
||||||
|
PTY_LOC = pathlib.Path("/tmp")
|
||||||
|
RUN_AS = "nobody"
|
||||||
|
get_pty = lambda n: PTY_LOC / f"ttySL{n}"
|
||||||
|
|
||||||
|
MODEMD = "./slmodemd/slmodemd"
|
||||||
|
D_MODEM = './d-modem.nopulse'
|
||||||
|
|
||||||
|
IP4RANGE = ipaddress.ip_network("10.0.0.0/27")
|
||||||
|
IP6RANGE = ipaddress.ip_network("fd00::/64")
|
||||||
|
|
||||||
|
PRODUCTION = False
|
||||||
|
|
||||||
|
# Do we really need that many?
|
||||||
|
# modem_configs: Dict[int, List[str]] = {
|
||||||
|
# **{i: (["AT+MS=92,1" ], lambda: PPPProc) for i in range(00, 05)},
|
||||||
|
# **{i: (["AT+MS=90,1" ], lambda: PPPProc) for i in range(05, 10)},
|
||||||
|
# **{i: (["AT+MS=34,1" ], lambda: PPPProc) for i in range(10, 15)},
|
||||||
|
# **{i: (["AT+MS=132,1"], lambda: PPPProc) for i in range(15, 20)},
|
||||||
|
# **{i: (["AT+MS=32,1" ], lambda: PPPProc) for i in range(20, 25)}, # broken?
|
||||||
|
# **{i: (["AT+MS=122,1"], lambda: PPPProc) for i in range(25, 30)},
|
||||||
|
# **{i: (["AT+MS=22,1" ], lambda: PPPProc) for i in range(30, 35)},
|
||||||
|
# **{i: (["AT+MS=212,1"], lambda: PPPProc) for i in range(35, 40)},
|
||||||
|
# **{i: (["AT+MS=23,1" ], lambda: PPPProc) for i in range(40, 45)},
|
||||||
|
# **{i: (["AT+MS=21,1" ], lambda: PPPProc) for i in range(45, 50)}, # broken?
|
||||||
|
# **{i: (["AT+MS=103,1"], lambda: PPPProc) for i in range(50, 55)},
|
||||||
|
# }
|
||||||
|
|
||||||
|
modem_configs: Dict[int, Tuple[List[str], Callable]] = {
|
||||||
|
**{i: (["AT+MS=90,1"], lambda: PPPProc) for i in range(0, 1)},
|
||||||
|
**{i: (["AT+MS=34,1"], lambda: PPPProc) for i in range(1, 2)},
|
||||||
|
**{i: (["AT+MS=32,1"], lambda: PPPProc) for i in range(2, 3)},
|
||||||
|
**{i: (["AT+MS=22,1"], lambda: PPPProc) for i in range(3, 5)},
|
||||||
|
**{i: (["AT+MS=23,1"], lambda: PPPProc) for i in range(5, 7)},
|
||||||
|
}
|
||||||
|
|
||||||
|
assert all(i >= 0 for i in modem_configs)
|
||||||
|
|
||||||
|
class BaseProc:
|
||||||
|
def __init__(self) -> None:
|
||||||
|
self.proc: subprocess.Popen = None
|
||||||
|
def proc(self) -> subprocess.Popen:
|
||||||
|
return self.proc
|
||||||
|
def terminate(self, *args, **kwargs):
|
||||||
|
return self.proc.terminate(*args, **kwargs)
|
||||||
|
def wait(self, *args, **kwargs):
|
||||||
|
return self.proc.wait(*args, **kwargs)
|
||||||
|
def poll(self, *args, **kwargs):
|
||||||
|
return self.proc.poll(*args, **kwargs)
|
||||||
|
def send_signal(self, *args, **kwargs):
|
||||||
|
return self.proc.send_signal(*args, **kwargs)
|
||||||
|
|
||||||
|
class ShellProc(BaseProc):
|
||||||
|
''' danger! '''
|
||||||
|
def __init__(self, ptyr: io.BufferedReader, ptyw: io.BufferedWriter, speed: int, no: int,
|
||||||
|
pty_path: pathlib.Path, ip: Tuple[ipaddress.IPv4Address, ipaddress.IPv6Address]) -> None:
|
||||||
|
assert not PRODUCTION
|
||||||
|
self.proc = subprocess.Popen(
|
||||||
|
['bash', '-c', 'stty sane;exec bash'],
|
||||||
|
stdin=ptyr,
|
||||||
|
stdout=ptyw,
|
||||||
|
stderr=ptyw,
|
||||||
|
preexec_fn=os.setsid,
|
||||||
|
env=dict(os.environ, TERM='vt100')
|
||||||
|
)
|
||||||
|
|
||||||
|
class PPPProc(BaseProc):
|
||||||
|
def __init__(self, ptyr: io.BufferedReader, ptyw: io.BufferedWriter, speed: int, no: int,
|
||||||
|
pty_path: pathlib.Path, ip: Tuple[ipaddress.IPv4Address, ipaddress.IPv6Address]) -> None:
|
||||||
|
self.no = no
|
||||||
|
self.ip = ip
|
||||||
|
ptyw.write((
|
||||||
|
f"Welcome to D-Modem\r\nExample pppd launch options:\r\n"
|
||||||
|
f" pppd /dev/ttyACM0 {speed} defaultroute persist noproxyarp noauth modem nodetach\r\n"
|
||||||
|
f"Your ipv6 address is {ip[1]}.\r\n"
|
||||||
|
f"Please add Address={ip[1]}/{IP6RANGE.prefixlen} Gateway={IP6RANGE[1]}\r\n"
|
||||||
|
"to your ppp network device.\r\n"
|
||||||
|
"Enjoy!\r\n\r\n\r\n"
|
||||||
|
).encode('utf-8'))
|
||||||
|
ll_ident = lambda x: ipaddress.IPv6Address(int(x) & int(ipaddress.IPv6Address(2**(128-IP6RANGE.prefixlen)-1)))
|
||||||
|
self.proc = PopenComm(
|
||||||
|
[
|
||||||
|
'pppd', str(pty_path.resolve()), str(speed), 'noproxyarp', 'passive', 'noauth',
|
||||||
|
'unit', str(no), 'modem', 'nodefaultroute', 'nodetach', f"{IP4RANGE[0]}:{ip[0]}",
|
||||||
|
'+ipv6', 'ipv6', f"{ll_ident(IP6RANGE[1])},{ll_ident(ip[1])}",
|
||||||
|
'ipcp-max-configure', '100', 'ipcp-max-failure', '100', 'ipcp-restart', '15',
|
||||||
|
'ipv6cp-max-configure', '100', 'ipv6cp-max-failure', '100', 'ipv6cp-restart', '15'
|
||||||
|
]
|
||||||
|
)
|
||||||
|
def wait(self, *args, **kwargs):
|
||||||
|
while (lines := self.proc.readline()) is not None:
|
||||||
|
for line in lines:
|
||||||
|
logger.info(f"pppd: {line}")
|
||||||
|
if 'remote LL address' in line:
|
||||||
|
try:
|
||||||
|
subprocess.run(
|
||||||
|
[
|
||||||
|
'ip', '-6', 'a', 'replace', 'dev', f"ppp{self.no}",
|
||||||
|
f"{IP6RANGE[1]}/128", 'peer', f"{self.ip[1]}/128"
|
||||||
|
],
|
||||||
|
stdin=subprocess.DEVNULL,
|
||||||
|
stdout=subprocess.DEVNULL,
|
||||||
|
stderr=subprocess.DEVNULL
|
||||||
|
)
|
||||||
|
logger.info(f"added v6 route to ppp{self.no}")
|
||||||
|
except Exception:
|
||||||
|
logger.exception(f"adding v6 route to ppp{self.no}")
|
||||||
|
super().wait(*args, **kwargs)
|
||||||
|
|
||||||
|
class ModemManagerError(Exception):
|
||||||
|
pass
|
||||||
|
class ReadLineException(ModemManagerError):
|
||||||
|
pass
|
||||||
|
class PPPDDead(ModemManagerError):
|
||||||
|
pass
|
||||||
|
class CarrierLost(ModemManagerError):
|
||||||
|
pass
|
||||||
|
class ModemManager:
|
||||||
|
terminating = False
|
||||||
|
''' lol not that modem_manager '''
|
||||||
|
def __init__(self):
|
||||||
|
self.modems = {no: Modem(no, config) for no, config in modem_configs.items()}
|
||||||
|
self.ip_used4 = {IP4RANGE[0]}
|
||||||
|
self.ip_used6 = {IP6RANGE[0], IP6RANGE[1]}
|
||||||
|
|
||||||
|
class PopenComm(subprocess.Popen):
|
||||||
|
def __init__(self, *args, **kwargs) -> None:
|
||||||
|
try:
|
||||||
|
self._popen_comm_master, self._popen_comm_slave = pty.openpty()
|
||||||
|
os.set_blocking(self._popen_comm_master, False)
|
||||||
|
self._popen_comm_r = open(self._popen_comm_master, "rb", buffering=0)
|
||||||
|
kwargs['stdin'] = kwargs['stdout'] = kwargs['stderr'] = self._popen_comm_master
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
except Exception:
|
||||||
|
self._popen_comm_cleanup()
|
||||||
|
raise
|
||||||
|
def w(self):
|
||||||
|
try:
|
||||||
|
super().wait(timeout=None)
|
||||||
|
except Exception:
|
||||||
|
logger.exception("Popen wait")
|
||||||
|
self._popen_comm_cleanup()
|
||||||
|
self.wtr = threading.Thread(target=w, args=(self,))
|
||||||
|
self.wtr.start()
|
||||||
|
|
||||||
|
def wait(self, timeout=None) -> int:
|
||||||
|
if timeout is not None:
|
||||||
|
return super().wait(timeout=timeout)
|
||||||
|
self.wtr.join()
|
||||||
|
if self.poll() is None:
|
||||||
|
return super().wait(timeout=None)
|
||||||
|
return self.returncode
|
||||||
|
|
||||||
|
def _popen_comm_cleanup(self) -> None:
|
||||||
|
try:
|
||||||
|
os.close(self._popen_comm_slave)
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
try:
|
||||||
|
self._popen_comm_r.close()
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
try:
|
||||||
|
os.close(self._popen_comm_master)
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
logger.info(f"{self} pty pair closed")
|
||||||
|
|
||||||
|
def readline(self) -> Union[List[str], None]:
|
||||||
|
''' blocks '''
|
||||||
|
try:
|
||||||
|
select.select([self._popen_comm_master], list(), list())
|
||||||
|
read = self._popen_comm_r.read().decode('utf-8', errors='replace')
|
||||||
|
except (OSError, ValueError):
|
||||||
|
return None
|
||||||
|
except Exception:
|
||||||
|
logger.exception("readline")
|
||||||
|
return None
|
||||||
|
if not read:
|
||||||
|
return None
|
||||||
|
got = read.split('\n')
|
||||||
|
if not got[-1]:
|
||||||
|
got.pop(-1)
|
||||||
|
return got
|
||||||
|
|
||||||
|
class IP_Request:
|
||||||
|
lock = {4: threading.Lock(), 6: threading.Lock()}
|
||||||
|
def __init__(self, version: int) -> None:
|
||||||
|
assert version in {4, 6}
|
||||||
|
self.v = version
|
||||||
|
self.addr = None
|
||||||
|
self.used = modem_manger.ip_used4 if self.v == 4 else modem_manger.ip_used6
|
||||||
|
def __enter__(self):
|
||||||
|
with self.lock[self.v]:
|
||||||
|
for address in (IP4RANGE if self.v == 4 else IP6RANGE):
|
||||||
|
if address in self.used:
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
self.addr = address
|
||||||
|
self.used.add(address)
|
||||||
|
logger.info(f"ipv{self.v} lease: {str(self.addr)}")
|
||||||
|
return address
|
||||||
|
raise RuntimeError(f"error: ipv{self.v} address exhausted")
|
||||||
|
def __exit__(self, *_):
|
||||||
|
if self.addr:
|
||||||
|
with self.lock[self.v]:
|
||||||
|
self.used.remove(self.addr)
|
||||||
|
logger.info(f"ipv{self.v} return: {str(self.addr)}")
|
||||||
|
|
||||||
|
class Modem:
|
||||||
|
def __init__(self, no: int, config: Tuple[List[str], Callable]):
|
||||||
|
self.no = no
|
||||||
|
self.readline_quit = False
|
||||||
|
self.readlinebuf = []
|
||||||
|
self.modem_proc: Union[subprocess.Popen, None] = None
|
||||||
|
self.ppp_proc: Union[subprocess.Popen, None] = None
|
||||||
|
self.modem_cmd, get_ppp_func = config
|
||||||
|
self.ppp_func = get_ppp_func()
|
||||||
|
self.modem_cmd = [*self.modem_cmd, "ATA"]
|
||||||
|
self.pty_path = get_pty(self.no)
|
||||||
|
if os.path.exists(self.pty_path):
|
||||||
|
logger.warning(f"pty link exists {str(self.pty_path)}")
|
||||||
|
self.pty_path.unlink()
|
||||||
|
self.modem_ctl: threading.Thread = threading.Thread(target=self._start_modem_ctl, name=f"md{no:03d}")
|
||||||
|
self.ppp_ctl: threading.Thread = threading.Thread(target=self._start_ppp_ctl, name=f"pp{no:03d}")
|
||||||
|
self.modem_ctl.start()
|
||||||
|
self.ppp_ctl.start()
|
||||||
|
|
||||||
|
def _util_readline(self, dev: io.BufferedReader, timeout: float) -> bytes:
|
||||||
|
readlinebuf = self.readlinebuf
|
||||||
|
readlinebuf.clear()
|
||||||
|
time_remaining = timeout
|
||||||
|
while True:
|
||||||
|
read_ready, _, _ = select.select([dev], list(), list(), 0.1)
|
||||||
|
if self.readline_quit:
|
||||||
|
self.readline_quit = False
|
||||||
|
raise ReadLineException("process exit")
|
||||||
|
if not read_ready:
|
||||||
|
time_remaining -= 0.1
|
||||||
|
if time_remaining < 0:
|
||||||
|
break
|
||||||
|
continue
|
||||||
|
readlinebuf.append(dev.read(1))
|
||||||
|
if readlinebuf[-1] == b'\n':
|
||||||
|
return b''.join(readlinebuf)
|
||||||
|
return b''.join(readlinebuf)
|
||||||
|
|
||||||
|
def _start_modem_ctl(self) -> None:
|
||||||
|
while not ModemManager.terminating:
|
||||||
|
try:
|
||||||
|
if os.geteuid() == 0:
|
||||||
|
pw_record = pwd.getpwnam(RUN_AS)
|
||||||
|
uid, gid = pw_record.pw_uid, pw_record.pw_gid
|
||||||
|
def demote():
|
||||||
|
PR_SET_NO_NEW_PRIVS = 38
|
||||||
|
PR_CAP_AMBIENT = 47
|
||||||
|
PR_CAP_AMBIENT_CLEAR_ALL = 4
|
||||||
|
PR_GET_SECUREBITS = 27
|
||||||
|
PR_SET_SECUREBITS = 28
|
||||||
|
libc = ctypes.CDLL('libc.so.6')
|
||||||
|
libc.prctl.restype = ctypes.c_int
|
||||||
|
assert libc.prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0) == 0
|
||||||
|
assert libc.prctl(PR_CAP_AMBIENT, PR_CAP_AMBIENT_CLEAR_ALL, 0, 0, 0) == 0
|
||||||
|
assert libc.prctl(PR_SET_SECUREBITS, 0x2f) == 0
|
||||||
|
# SECBIT_KEEP_CAPS_LOCKED | SECBIT_NO_SETUID_FIXUP | SECBIT_NO_SETUID_FIXUP_LOCKED | SECBIT_NOROOT | SECBIT_NOROOT_LOCKED
|
||||||
|
assert libc.prctl(PR_GET_SECUREBITS) == 0x2f
|
||||||
|
os.setgroups([])
|
||||||
|
os.setresgid(gid, gid, gid)
|
||||||
|
os.setresuid(uid, uid, uid)
|
||||||
|
os.chdir(os.getcwd())
|
||||||
|
preexec_func = demote
|
||||||
|
env = {
|
||||||
|
'USER': pw_record.pw_name,
|
||||||
|
'LOGNAME': pw_record.pw_name,
|
||||||
|
'HOME': '/',
|
||||||
|
'PATH': os.environ['PATH'],
|
||||||
|
}
|
||||||
|
else:
|
||||||
|
preexec_func = lambda: None
|
||||||
|
env = dict(os.environ)
|
||||||
|
logger.warning("d-modem is running as current user")
|
||||||
|
assert not PRODUCTION
|
||||||
|
if PJSIP_V6:
|
||||||
|
env['PJSIP_IPV6'] = '1'
|
||||||
|
else:
|
||||||
|
if 'PJSIP_IPV6' in env:
|
||||||
|
env.pop('PJSIP_IPV6')
|
||||||
|
self.modem_proc = PopenComm(
|
||||||
|
[MODEMD, '-e', D_MODEM, str(self.pty_path)],
|
||||||
|
preexec_fn=preexec_func,
|
||||||
|
env = env
|
||||||
|
)
|
||||||
|
while (lines := self.modem_proc.readline()) is not None:
|
||||||
|
for line in lines:
|
||||||
|
logger.info(f"slmodemd: {line}")
|
||||||
|
self.modem_proc.wait()
|
||||||
|
except Exception:
|
||||||
|
logger.exception("unknown error")
|
||||||
|
try:
|
||||||
|
self.readline_quit = True
|
||||||
|
if self.ppp_proc:
|
||||||
|
self.ppp_proc.terminate()
|
||||||
|
self.ppp_proc.wait()
|
||||||
|
self.ppp_proc = None
|
||||||
|
except Exception as err:
|
||||||
|
logger.exception("unknown error")
|
||||||
|
self.ppp_ctl.join()
|
||||||
|
|
||||||
|
def _start_ppp_ctl(self) -> None:
|
||||||
|
time.sleep(1)
|
||||||
|
while not ModemManager.terminating:
|
||||||
|
commands = self.modem_cmd.copy()
|
||||||
|
try:
|
||||||
|
with open(self.pty_path.resolve(), "rb", buffering=0) as ptyr, open(self.pty_path.resolve(), "wb", buffering=0) as ptyw:
|
||||||
|
tty.setraw(ptyr)
|
||||||
|
tty.setraw(ptyw)
|
||||||
|
while True:
|
||||||
|
while (got := self._util_readline(ptyr, 0.3).decode('utf-8', errors='replace')):
|
||||||
|
logger.debug(f"from pty: {got=}")
|
||||||
|
if got:
|
||||||
|
if (match := re.match(r'CONNECT ([0-9]+)', got)) and not self.ppp_proc:
|
||||||
|
speed = int(match.groups()[0])
|
||||||
|
assert speed > 0
|
||||||
|
logger.info(f"connection {speed=}, start subprocess")
|
||||||
|
ptyw.write(f"Remote speed {speed}\r\n".encode('utf-8'))
|
||||||
|
try:
|
||||||
|
with IP_Request(4) as ip4, IP_Request(6) as ip6:
|
||||||
|
self.ppp_proc = self.ppp_func(ptyr, ptyw, speed, self.no, self.pty_path, (ip4, ip6))
|
||||||
|
self.ppp_proc.wait()
|
||||||
|
except Exception:
|
||||||
|
logger.exception("unknown subprocess error")
|
||||||
|
self.modem_proc.send_signal(signal.SIGINT)
|
||||||
|
self.modem_proc.wait()
|
||||||
|
raise PPPDDead
|
||||||
|
elif got == 'NO CARRIER\r\n':
|
||||||
|
self._util_readline(ptyr, 2)
|
||||||
|
raise CarrierLost
|
||||||
|
if commands:
|
||||||
|
cmd = commands.pop(0)
|
||||||
|
ptyw.write(f"{cmd}\n\r".encode('ascii'))
|
||||||
|
logger.info(f"command: {cmd}")
|
||||||
|
ptyw.flush()
|
||||||
|
time.sleep(0.1)
|
||||||
|
except ModemManagerError as err:
|
||||||
|
logger.info(f"pty detach: {repr(err)}")
|
||||||
|
time.sleep(0.1)
|
||||||
|
except Exception:
|
||||||
|
logger.exception("unknown error")
|
||||||
|
time.sleep(2)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
abspath=os.path.abspath(__file__)
|
||||||
|
abspath=os.path.dirname(abspath)
|
||||||
|
os.chdir(abspath)
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser(description='ModemManager.py')
|
||||||
|
parser.add_argument('-4', '--ipv4', type=str, default=str(IP4RANGE), help='ipv4 subnet')
|
||||||
|
parser.add_argument('-6', '--ipv6', type=str, default=str(IP6RANGE), help='ipv6 subnet')
|
||||||
|
parser.add_argument('-m', '--modemd', type=str, default=str(MODEMD), help='modemd location')
|
||||||
|
parser.add_argument('-d', '--dmodem', type=str, default=str(D_MODEM), help='d-modem location')
|
||||||
|
parser.add_argument('-p', '--pty', type=str, default=str(PTY_LOC), help='pty link location')
|
||||||
|
parser.add_argument('-u', '--user', type=str, default=str(RUN_AS), help='run as user')
|
||||||
|
parser.add_argument('-s', '--production', action='store_true', help='enable strict checks')
|
||||||
|
parser.add_argument('--pjsip6', action='store_true', help='pjsip force v6')
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
def g(x: str, y: Any) -> None:
|
||||||
|
globals()[x] = y
|
||||||
|
g('IP4RANGE', ipaddress.ip_network(args.ipv4))
|
||||||
|
g('IP6RANGE', ipaddress.ip_network(args.ipv6))
|
||||||
|
g('MODEMD', args.modemd)
|
||||||
|
g('D_MODEM', args.dmodem)
|
||||||
|
g('PTY_LOC', pathlib.Path(args.pty))
|
||||||
|
g('RUN_AS', args.user)
|
||||||
|
g('PRODUCTION', args.production)
|
||||||
|
g('PJSIP_V6', args.pjsip6)
|
||||||
|
if args.production:
|
||||||
|
logger.setLevel(logging.INFO)
|
||||||
|
|
||||||
|
modem_manger = ModemManager()
|
||||||
|
|
||||||
|
def sighandler(signum, _frame):
|
||||||
|
if ModemManager.terminating:
|
||||||
|
logger.error(f"received signal {signum} while terminating")
|
||||||
|
else:
|
||||||
|
ModemManager.terminating = True
|
||||||
|
logger.warning(f"terminate on signal {signum}")
|
||||||
|
for modem in modem_manger.modems.values():
|
||||||
|
modem.modem_proc.terminate()
|
||||||
|
for sig in (signal.SIGTERM, signal.SIGHUP, signal.SIGINT, signal.SIGABRT):
|
||||||
|
signal.signal(sig, sighandler)
|
||||||
|
|
||||||
|
for modem in modem_manger.modems.values():
|
||||||
|
modem.modem_ctl.join()
|
1
pjproject
Submodule
1
pjproject
Submodule
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 43c745789d291496fe1c3ed8a2c0dd6305260b32
|
|
@ -1,42 +0,0 @@
|
||||||
---
|
|
||||||
name: Bug report
|
|
||||||
about: Create a report to help us improve
|
|
||||||
title: ''
|
|
||||||
labels: 'type: bug'
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Describe the bug**
|
|
||||||
A clear and concise description of what the bug is.
|
|
||||||
|
|
||||||
**To Reproduce**
|
|
||||||
Steps to reproduce the behavior:
|
|
||||||
|
|
||||||
1. run pjsua app with parameter: `--video --registrar sip:some.sip.registrar ...`
|
|
||||||
1. make two video calls to: `sip:abc` and `sip:xyz`1
|
|
||||||
1. setup video conference: `vid conf cc ...`
|
|
||||||
1. assertion occurs!
|
|
||||||
|
|
||||||
**Expected behavior**
|
|
||||||
A clear and concise description of what you expected to happen.
|
|
||||||
|
|
||||||
**Logs/Screenshots**
|
|
||||||
If applicable, add screenshots PJSIP logs with verbosity level 5, packet capture (e.g: using Wireshark), audio/video recording, screenshot, etc.
|
|
||||||
|
|
||||||
**Desktop/Smartphone (please complete the following information):**
|
|
||||||
|
|
||||||
- OS, Distribution & Version: [e.g. MacOS Mojave, Ubuntu 16.04, iOS 13]
|
|
||||||
- PJSIP
|
|
||||||
- version: ...
|
|
||||||
- applied patch(es): [e.g: patches from issue/PR xyz]
|
|
||||||
- `configure` script params: ...
|
|
||||||
- `config_site.h` contents: ...
|
|
||||||
- related third party libraries & versions: [e.g: OpenSSL 1.1.1b]
|
|
||||||
|
|
||||||
**Smartphone (please also complete the following information):**
|
|
||||||
|
|
||||||
- Device: [e.g. iPhone 6]
|
|
||||||
|
|
||||||
**Additional context**
|
|
||||||
Add any other context about the problem here.
|
|
|
@ -1,4 +0,0 @@
|
||||||
blank_issues_enabled: false
|
|
||||||
contact_links:
|
|
||||||
- name: PJSIP tag on Stack Overflow
|
|
||||||
url: https://stackoverflow.com/questions/tagged/pjsip
|
|
|
@ -1,20 +0,0 @@
|
||||||
---
|
|
||||||
name: Feature request
|
|
||||||
about: Suggest an idea for this project
|
|
||||||
title: ''
|
|
||||||
labels: 'type: enhancement'
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Is your feature request related to a problem? Please describe.**
|
|
||||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
||||||
|
|
||||||
**Describe the solution you'd like**
|
|
||||||
A clear and concise description of what you want to happen.
|
|
||||||
|
|
||||||
**Describe alternatives you've considered**
|
|
||||||
A clear and concise description of any alternative solutions or features you've considered.
|
|
||||||
|
|
||||||
**Additional context**
|
|
||||||
Add any other context or screenshots about the feature request here.
|
|
|
@ -1,31 +0,0 @@
|
||||||
<!--- Provide a general summary of your changes in the Title above -->
|
|
||||||
|
|
||||||
## Description
|
|
||||||
<!--- Describe your changes in detail -->
|
|
||||||
|
|
||||||
## Motivation and Context
|
|
||||||
<!--- Why is this change required? What problem does it solve? -->
|
|
||||||
<!--- If it fixes an open issue, please link to the issue here. -->
|
|
||||||
|
|
||||||
## How Has This Been Tested?
|
|
||||||
<!--- Please describe in detail how you tested your changes. -->
|
|
||||||
<!--- Include details of your testing environment, and the tests you ran to -->
|
|
||||||
<!--- see how your change affects other areas of the code, etc. -->
|
|
||||||
|
|
||||||
## Screenshots (if appropriate):
|
|
||||||
|
|
||||||
## Types of changes
|
|
||||||
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
|
|
||||||
- [ ] Bug fix (non-breaking change which fixes an issue)
|
|
||||||
- [ ] New feature (non-breaking change which adds functionality)
|
|
||||||
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
|
|
||||||
|
|
||||||
## Checklist:
|
|
||||||
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
|
|
||||||
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
|
|
||||||
- [ ] My code follows the code style of this project.
|
|
||||||
- [ ] My change requires a change to the documentation.
|
|
||||||
- [ ] I have updated the documentation accordingly.
|
|
||||||
- [ ] I have read the **CONTRIBUTING** document.
|
|
||||||
- [ ] I have added tests to cover my changes.
|
|
||||||
- [ ] All new and existing tests passed.
|
|
703
pjproject-2.11.1/.github/workflows/ccpp.yml
vendored
703
pjproject-2.11.1/.github/workflows/ccpp.yml
vendored
|
@ -1,703 +0,0 @@
|
||||||
name: C/C++ CI
|
|
||||||
on: [push, pull_request]
|
|
||||||
jobs:
|
|
||||||
build-ubuntu-default:
|
|
||||||
# checking pure lib source distribution with plain configure & make
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: configure
|
|
||||||
run: ./configure
|
|
||||||
- name: make
|
|
||||||
run: make
|
|
||||||
|
|
||||||
build-ubuntu-default-full-bundle-1:
|
|
||||||
# full bundle: enable all codecs + AEC + DTLS
|
|
||||||
# full bundle 1: running pjlib, pjlib-util, pjmedia, and pjsua tests
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: install dependencies
|
|
||||||
run: sudo apt-get install -y swig sip-tester libopencore-amrnb-dev
|
|
||||||
- name: config site
|
|
||||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
|
|
||||||
- name: configure
|
|
||||||
run: CFLAGS="-g -fPIC" CXXFLAGS="-g -fPIC" LDFLAGS="-rdynamic" ./configure
|
|
||||||
- name: make
|
|
||||||
run: make
|
|
||||||
- name: swig bindings
|
|
||||||
run: cd pjsip-apps/src/swig && make
|
|
||||||
- name: set up Python 2.7 for pjsua test
|
|
||||||
uses: actions/setup-python@v2
|
|
||||||
with:
|
|
||||||
python-version: 2.7
|
|
||||||
- name: unit tests
|
|
||||||
run: make pjlib-test pjlib-util-test pjmedia-test pjsua-test
|
|
||||||
|
|
||||||
build-ubuntu-default-full-bundle-2:
|
|
||||||
# full bundle 2: running pjnath test
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: install dependencies
|
|
||||||
run: sudo apt-get install -y libopencore-amrnb-dev
|
|
||||||
- name: config site
|
|
||||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
|
|
||||||
- name: configure
|
|
||||||
run: CFLAGS="-g" LDFLAGS="-rdynamic" ./configure
|
|
||||||
- name: make
|
|
||||||
run: make
|
|
||||||
- name: unit tests
|
|
||||||
run: make pjnath-test
|
|
||||||
|
|
||||||
build-ubuntu-default-full-bundle-3:
|
|
||||||
# full bundle 3: running pjsip test
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: install dependencies
|
|
||||||
run: sudo apt-get install -y libopencore-amrnb-dev
|
|
||||||
- name: config site
|
|
||||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
|
|
||||||
- name: configure
|
|
||||||
run: CFLAGS="-g" LDFLAGS="-rdynamic" ./configure
|
|
||||||
- name: make
|
|
||||||
run: make
|
|
||||||
- name: unit tests
|
|
||||||
run: make pjsip-test
|
|
||||||
|
|
||||||
build-ubuntu-no-tls:
|
|
||||||
# no TLS
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: install dependencies
|
|
||||||
run: sudo apt-get install -y swig
|
|
||||||
- name: configure
|
|
||||||
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure --disable-ssl
|
|
||||||
- name: make
|
|
||||||
run: make
|
|
||||||
- name: swig bindings
|
|
||||||
run: cd pjsip-apps/src/swig && make
|
|
||||||
|
|
||||||
# build-ubuntu-openssl
|
|
||||||
# TLS: with OpenSSL (same as build-ubuntu-default)
|
|
||||||
|
|
||||||
build-ubuntu-gnu-tls:
|
|
||||||
# TLS: with GnuTLS
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: install dependencies
|
|
||||||
run: sudo apt-get update && sudo apt-get install -y --fix-missing swig libgnutls28-dev
|
|
||||||
- name: configure
|
|
||||||
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure --with-gnutls=/usr/
|
|
||||||
- name: make
|
|
||||||
run: make
|
|
||||||
- name: swig bindings
|
|
||||||
run: cd pjsip-apps/src/swig && make
|
|
||||||
|
|
||||||
build-ubuntu-video-openh264-1:
|
|
||||||
# video: video enabled with vpx and openh264
|
|
||||||
# video 1: running pjlib, pjlib-util, pjmedia, and pjsua tests
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: install dependencies
|
|
||||||
run: sudo apt-get install -y swig nasm sip-tester libvpx-dev libopencore-amrnb-dev
|
|
||||||
- name: get openh264
|
|
||||||
run: git clone --single-branch --branch openh264v2.1.0 https://github.com/cisco/openh264.git
|
|
||||||
- name: build openh264
|
|
||||||
run: cd openh264 && make && sudo make install && sudo ldconfig
|
|
||||||
- name: config site
|
|
||||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
|
|
||||||
- name: configure
|
|
||||||
run: CFLAGS="-g -fPIC -DHAS_VID_CODEC_TEST=0" CXXFLAGS="-g -fPIC" LDFLAGS="-rdynamic" ./configure
|
|
||||||
- name: make
|
|
||||||
run: make
|
|
||||||
- name: swig bindings
|
|
||||||
run: cd pjsip-apps/src/swig && make
|
|
||||||
- name: set up Python 2.7 for pjsua test
|
|
||||||
uses: actions/setup-python@v2
|
|
||||||
with:
|
|
||||||
python-version: 2.7
|
|
||||||
- name: unit tests
|
|
||||||
run: make pjlib-test pjlib-util-test pjmedia-test pjsua-test
|
|
||||||
|
|
||||||
build-ubuntu-video-openh264-2:
|
|
||||||
# video 2: running pjnath test
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: install dependencies
|
|
||||||
run: sudo apt-get install -y nasm libvpx-dev libopencore-amrnb-dev
|
|
||||||
- name: get openh264
|
|
||||||
run: git clone --single-branch --branch openh264v2.1.0 https://github.com/cisco/openh264.git
|
|
||||||
- name: build openh264
|
|
||||||
run: cd openh264 && make && sudo make install && sudo ldconfig
|
|
||||||
- name: config site
|
|
||||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
|
|
||||||
- name: configure
|
|
||||||
run: CFLAGS="-g" LDFLAGS="-rdynamic" ./configure
|
|
||||||
- name: make
|
|
||||||
run: make
|
|
||||||
- name: unit tests
|
|
||||||
run: make pjnath-test
|
|
||||||
|
|
||||||
build-ubuntu-video-openh264-3:
|
|
||||||
# video: 3: running pjsip test
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: install dependencies
|
|
||||||
run: sudo apt-get install -y nasm libvpx-dev libopencore-amrnb-dev
|
|
||||||
- name: get openh264
|
|
||||||
run: git clone --single-branch --branch openh264v2.1.0 https://github.com/cisco/openh264.git
|
|
||||||
- name: build openh264
|
|
||||||
run: cd openh264 && make && sudo make install && sudo ldconfig
|
|
||||||
- name: config site
|
|
||||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
|
|
||||||
- name: configure
|
|
||||||
run: CFLAGS="-g" LDFLAGS="-rdynamic" ./configure
|
|
||||||
- name: make
|
|
||||||
run: make
|
|
||||||
- name: unit tests
|
|
||||||
run: make pjsip-test
|
|
||||||
|
|
||||||
build-ubuntu-video-ffmpeg:
|
|
||||||
# video enabled with vpx and ffmpeg and x264
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: install dependencies
|
|
||||||
run: sudo apt-get install -y swig nasm libx264-dev libvpx-dev
|
|
||||||
- name: get ffmpeg
|
|
||||||
run: git clone --single-branch --branch release/4.2 https://github.com/FFmpeg/FFmpeg.git
|
|
||||||
- name: configure ffmpeg
|
|
||||||
run: cd FFmpeg && ./configure --enable-shared --disable-static --enable-gpl --enable-libx264
|
|
||||||
- name: build ffmpeg
|
|
||||||
run: cd FFmpeg && make -j10 && sudo make install
|
|
||||||
- name: config site
|
|
||||||
run: echo -e "#define PJMEDIA_HAS_VIDEO 1\n" > pjlib/include/pj/config_site.h
|
|
||||||
- name: configure
|
|
||||||
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure
|
|
||||||
- name: make
|
|
||||||
run: make
|
|
||||||
- name: swig bindings
|
|
||||||
run: cd pjsip-apps/src/swig && make
|
|
||||||
|
|
||||||
build-mac-default:
|
|
||||||
# checking pure lib source distribution with plain configure & make
|
|
||||||
runs-on: macos-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: configure
|
|
||||||
run: ./configure
|
|
||||||
- name: make
|
|
||||||
run: make
|
|
||||||
|
|
||||||
build-mac-default-full-bundle-1:
|
|
||||||
# full bundle: enable all codecs + AEC + DTLS
|
|
||||||
# full bundle 1: running pjlib, pjlib-util, pjmedia, and pjsua tests
|
|
||||||
runs-on: macos-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: install dependencies
|
|
||||||
run: brew install opencore-amr swig sipp
|
|
||||||
- name: config site
|
|
||||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
|
|
||||||
- name: configure
|
|
||||||
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" CXXFLAGS="-g -fPIC" ./configure
|
|
||||||
- name: make
|
|
||||||
run: make
|
|
||||||
- name: swig bindings
|
|
||||||
run: cd pjsip-apps/src/swig && make
|
|
||||||
- name: disable firewall
|
|
||||||
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
|
|
||||||
- name: set up Python 2.7 for pjsua test
|
|
||||||
uses: actions/setup-python@v2
|
|
||||||
with:
|
|
||||||
python-version: 2.7
|
|
||||||
- name: unit tests
|
|
||||||
run: make pjlib-test pjmedia-test pjlib-util-test pjsua-test
|
|
||||||
|
|
||||||
build-mac-default-full-bundle-2:
|
|
||||||
# full bundle 2: running pjnath test
|
|
||||||
runs-on: macos-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: install dependencies
|
|
||||||
run: brew install opencore-amr
|
|
||||||
- name: config site
|
|
||||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
|
|
||||||
- name: configure
|
|
||||||
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" ./configure
|
|
||||||
- name: make
|
|
||||||
run: make
|
|
||||||
- name: disable firewall
|
|
||||||
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
|
|
||||||
- name: unit tests
|
|
||||||
run: make pjnath-test
|
|
||||||
|
|
||||||
build-mac-default-full-bundle-3:
|
|
||||||
# full bundle 3: running pjsip test
|
|
||||||
runs-on: macos-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: install dependencies
|
|
||||||
run: brew install opencore-amr
|
|
||||||
- name: config site
|
|
||||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h
|
|
||||||
- name: configure
|
|
||||||
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" ./configure
|
|
||||||
- name: make
|
|
||||||
run: make
|
|
||||||
- name: disable firewall
|
|
||||||
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
|
|
||||||
- name: unit tests
|
|
||||||
run: make pjsip-test
|
|
||||||
|
|
||||||
# build-ubuntu-no-tls:
|
|
||||||
# no TLS (same as build-mac-default)
|
|
||||||
|
|
||||||
build-mac-openssl:
|
|
||||||
# TLS: with OpenSSL
|
|
||||||
runs-on: macos-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: install dependencies
|
|
||||||
run: brew install swig
|
|
||||||
- name: configure
|
|
||||||
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/openssl/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" CXXFLAGS="-fPIC" ./configure
|
|
||||||
- name: make
|
|
||||||
run: make
|
|
||||||
- name: swig bindings
|
|
||||||
run: cd pjsip-apps/src/swig && make
|
|
||||||
|
|
||||||
build-mac-gnu-tls:
|
|
||||||
# TLS: with GnuTLS
|
|
||||||
runs-on: macos-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: install dependencies
|
|
||||||
run: brew install swig
|
|
||||||
- name: configure
|
|
||||||
run: CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure --with-gnutls=/usr/local/
|
|
||||||
- name: make
|
|
||||||
run: make
|
|
||||||
- name: swig bindings
|
|
||||||
run: cd pjsip-apps/src/swig && make
|
|
||||||
|
|
||||||
build-mac-video-openh264-1:
|
|
||||||
# video: video enabled with vpx and openh264
|
|
||||||
# video 1: running pjlib, pjlib-util, pjmedia, and pjsua tests
|
|
||||||
runs-on: macos-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: install dependencies
|
|
||||||
run: brew install openh264 libvpx opencore-amr swig sipp
|
|
||||||
- name: config site
|
|
||||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
|
|
||||||
- name: configure
|
|
||||||
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl/include -DHAS_VID_CODEC_TEST=0 -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" CXXFLAGS="-g -fPIC" ./configure
|
|
||||||
- name: make
|
|
||||||
run: make
|
|
||||||
- name: swig bindings
|
|
||||||
run: cd pjsip-apps/src/swig && make
|
|
||||||
- name: disable firewall
|
|
||||||
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
|
|
||||||
- name: set up Python 2.7 for pjsua test
|
|
||||||
uses: actions/setup-python@v2
|
|
||||||
with:
|
|
||||||
python-version: 2.7
|
|
||||||
- name: unit tests
|
|
||||||
run: make pjlib-test pjmedia-test pjlib-util-test pjsua-test
|
|
||||||
|
|
||||||
build-mac-video-openh264-2:
|
|
||||||
# video 2: running pjnath test
|
|
||||||
runs-on: macos-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: install dependencies
|
|
||||||
run: brew install openh264 libvpx opencore-amr
|
|
||||||
- name: config site
|
|
||||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
|
|
||||||
- name: configure
|
|
||||||
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" ./configure
|
|
||||||
- name: make
|
|
||||||
run: make
|
|
||||||
- name: disable firewall
|
|
||||||
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
|
|
||||||
- name: unit tests
|
|
||||||
run: make pjnath-test
|
|
||||||
|
|
||||||
build-mac-video-openh264-3:
|
|
||||||
# video 3: running pjsip test
|
|
||||||
runs-on: macos-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: install dependencies
|
|
||||||
run: brew install openh264 libvpx opencore-amr
|
|
||||||
- name: config site
|
|
||||||
run: cd pjlib/include/pj && cp config_site_test.h config_site.h && echo "#define PJMEDIA_HAS_VIDEO 1" >> config_site.h
|
|
||||||
- name: configure
|
|
||||||
run: CFLAGS="-g -I/usr/local/include -I/usr/local/opt/openssl/include" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" ./configure
|
|
||||||
- name: make
|
|
||||||
run: make
|
|
||||||
- name: disable firewall
|
|
||||||
run: sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
|
|
||||||
- name: unit tests
|
|
||||||
run: make pjsip-test
|
|
||||||
|
|
||||||
build-mac-video-ffmpeg:
|
|
||||||
# video enabled with vpx and ffmpeg and x264
|
|
||||||
runs-on: macos-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: install dependencies
|
|
||||||
run: brew install x264 libvpx nasm swig
|
|
||||||
- name: get ffmpeg
|
|
||||||
run: git clone --single-branch --branch release/4.2 https://github.com/FFmpeg/FFmpeg.git
|
|
||||||
- name: configure ffmpeg
|
|
||||||
run: cd FFmpeg && ./configure --enable-shared --disable-static --enable-gpl --enable-libx264
|
|
||||||
- name: build ffmpeg
|
|
||||||
run: cd FFmpeg && make -j10 && sudo make install
|
|
||||||
- name: config site
|
|
||||||
run: echo -e "#define PJMEDIA_HAS_VIDEO 1\n" > pjlib/include/pj/config_site.h
|
|
||||||
- name: configure
|
|
||||||
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/openssl/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" CXXFLAGS="-fPIC" ./configure
|
|
||||||
- name: make
|
|
||||||
run: make
|
|
||||||
- name: swig bindings
|
|
||||||
run: cd pjsip-apps/src/swig && make
|
|
||||||
|
|
||||||
build-mac-video-vid-toolbox:
|
|
||||||
# video enabled with vpx and video toolbox
|
|
||||||
runs-on: macos-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: install dependencies
|
|
||||||
run: brew install libvpx swig
|
|
||||||
- name: config site
|
|
||||||
run: echo -e "#define PJMEDIA_HAS_VIDEO 1\n#define PJMEDIA_HAS_VID_TOOLBOX_CODEC 1\n" > pjlib/include/pj/config_site.h
|
|
||||||
- name: configure
|
|
||||||
run: CFLAGS="-I/usr/local/include -I/usr/local/opt/openssl/include -fPIC" LDFLAGS="-L/usr/local/lib -L/usr/local/opt/openssl/lib" CXXFLAGS="-fPIC" ./configure
|
|
||||||
- name: make
|
|
||||||
run: make
|
|
||||||
- name: swig bindings
|
|
||||||
run: cd pjsip-apps/src/swig && make
|
|
||||||
|
|
||||||
build-windows-default:
|
|
||||||
runs-on: windows-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@master
|
|
||||||
- name: get swig
|
|
||||||
run: Invoke-WebRequest -Uri "https://nchc.dl.sourceforge.net/project/swig/swigwin/swigwin-4.0.1/swigwin-4.0.1.zip" -OutFile ".\swigwin.zip"
|
|
||||||
shell: powershell
|
|
||||||
- name: expand swig
|
|
||||||
run: |
|
|
||||||
Expand-Archive -LiteralPath .\swigwin.zip -DestinationPath .\swigwin\; pwd
|
|
||||||
cd swigwin\swigwin-4.0.1
|
|
||||||
Add-Content ..\..\swig_path.txt $pwd.Path
|
|
||||||
shell: powershell
|
|
||||||
- name: config site
|
|
||||||
run:
|
|
||||||
type nul > pjlib/include/pj/config_site.h
|
|
||||||
shell: cmd
|
|
||||||
- name: MSBuild
|
|
||||||
run: |
|
|
||||||
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
||||||
msbuild pjproject-vs14.sln /p:PlatformToolset=v142 /p:Configuration=Debug /p:Platform=win32
|
|
||||||
shell: cmd
|
|
||||||
- name: build swig
|
|
||||||
run: |
|
|
||||||
set /P SWIG_PATH=<swig_path.txt
|
|
||||||
set PATH=%PATH%;%SWIG_PATH%
|
|
||||||
dir pjlib/include/pj/config_site.h
|
|
||||||
type pjlib/include/pj/config_site.h
|
|
||||||
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
||||||
set INCLUDE=%INCLUDE%;%JAVA_HOME%\include;%JAVA_HOME%\include\win32
|
|
||||||
cd pjsip-apps/build
|
|
||||||
msbuild swig_java_pjsua2.vcxproj /p:PlatformToolset=v142 /p:Configuration=Debug /p:Platform=win32 /p:UseEnv=true
|
|
||||||
shell: cmd
|
|
||||||
|
|
||||||
build-windows-with-openssl-unit-test-1:
|
|
||||||
runs-on: windows-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@master
|
|
||||||
- name: get openssl
|
|
||||||
run: Invoke-WebRequest -Uri "https://mirror.firedaemon.com/OpenSSL/openssl-1.1.1e-dev.zip" -OutFile ".\openssl.zip"
|
|
||||||
shell: powershell
|
|
||||||
- name: expand openssl
|
|
||||||
run: |
|
|
||||||
Expand-Archive -LiteralPath .\openssl.zip -DestinationPath .\openssl_build\;
|
|
||||||
cd openssl_build\openssl-1.1\x86
|
|
||||||
Add-Content ..\..\..\openssl_dir.txt $pwd.Path
|
|
||||||
shell: powershell
|
|
||||||
- name: check openssl folder
|
|
||||||
run: |
|
|
||||||
set /P OPENSSL_DIR=<openssl_dir.txt
|
|
||||||
dir %OPENSSL_DIR%\include
|
|
||||||
dir %OPENSSL_DIR%\lib
|
|
||||||
shell: cmd
|
|
||||||
- name: config site
|
|
||||||
run:
|
|
||||||
cd pjlib/include/pj; cp config_site_test.h config_site.h; Add-Content config_site.h "#define PJ_HAS_SSL_SOCK 1"
|
|
||||||
shell: powershell
|
|
||||||
- name: check VsDevCmd.bat
|
|
||||||
run: dir "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
||||||
shell: cmd
|
|
||||||
- name: MSBuild
|
|
||||||
working-directory: .
|
|
||||||
run: |
|
|
||||||
set /P OPENSSL_DIR=<openssl_dir.txt
|
|
||||||
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
||||||
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include
|
|
||||||
set LIB=%LIB%;%OPENSSL_DIR%\lib
|
|
||||||
msbuild pjproject-vs14.sln /p:PlatformToolset=v142 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
|
|
||||||
shell: cmd
|
|
||||||
- name: unit tests
|
|
||||||
run: |
|
|
||||||
$env:OPENSSL_DIR = Get-Content .\openssl_dir.txt
|
|
||||||
$env:PATH+=";$env:OPENSSL_DIR\bin"
|
|
||||||
cd pjlib/bin; ./pjlib-test-i386-Win32-vc14-Release.exe
|
|
||||||
cd ../../pjlib-util/bin; ./pjlib-util-test-i386-Win32-vc14-Release.exe
|
|
||||||
cd ../../pjmedia/bin/; ./pjmedia-test-i386-Win32-vc14-Release.exe
|
|
||||||
shell: powershell
|
|
||||||
|
|
||||||
build-windows-with-openssl-unit-test-2:
|
|
||||||
runs-on: windows-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@master
|
|
||||||
- name: get openssl
|
|
||||||
run: Invoke-WebRequest -Uri "https://mirror.firedaemon.com/OpenSSL/openssl-1.1.1e-dev.zip" -OutFile ".\openssl.zip"
|
|
||||||
shell: powershell
|
|
||||||
- name: expand openssl
|
|
||||||
run: |
|
|
||||||
Expand-Archive -LiteralPath .\openssl.zip -DestinationPath .\openssl_build\; pwd
|
|
||||||
cd openssl_build\openssl-1.1\x86
|
|
||||||
Add-Content ..\..\..\openssl_dir.txt $pwd.Path
|
|
||||||
shell: powershell
|
|
||||||
- name: check openssl folder
|
|
||||||
run: |
|
|
||||||
set /P OPENSSL_DIR=<openssl_dir.txt
|
|
||||||
dir "%OPENSSL_DIR%\include"
|
|
||||||
dir "%OPENSSL_DIR%\lib"
|
|
||||||
shell: cmd
|
|
||||||
- name: config site
|
|
||||||
run:
|
|
||||||
cd pjlib/include/pj; cp config_site_test.h config_site.h; Add-Content config_site.h "#define PJ_HAS_SSL_SOCK 1"
|
|
||||||
shell: powershell
|
|
||||||
- name: check VsDevCmd.bat
|
|
||||||
run: dir "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
||||||
shell: cmd
|
|
||||||
- name: MSBuild
|
|
||||||
working-directory: .
|
|
||||||
run: |
|
|
||||||
set /P OPENSSL_DIR=<openssl_dir.txt
|
|
||||||
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
||||||
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include
|
|
||||||
set LIB=%LIB%;%OPENSSL_DIR%\lib
|
|
||||||
msbuild pjproject-vs14.sln /p:PlatformToolset=v142 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
|
|
||||||
shell: cmd
|
|
||||||
- name: unit tests
|
|
||||||
run: |
|
|
||||||
$env:OPENSSL_DIR = Get-Content .\openssl_dir.txt
|
|
||||||
$env:PATH+=";$env:OPENSSL_DIR\bin"
|
|
||||||
cd pjsip/bin; ./pjsip-test-i386-Win32-vc14-Release.exe
|
|
||||||
shell: powershell
|
|
||||||
|
|
||||||
build-windows-gnu-tls:
|
|
||||||
runs-on: windows-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@master
|
|
||||||
- name: get gnutls
|
|
||||||
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/gnutls/releases/download/gnutls_3_6_11/libgnutls_gnutls_3_6_11_msvc14.zip" -Outfile ".\libgnutls.zip"
|
|
||||||
shell: powershell
|
|
||||||
- name: expand gnutls
|
|
||||||
run: |
|
|
||||||
Expand-Archive -LiteralPath .\libgnutls.zip -DestinationPath .\libgnutls_build\; pwd
|
|
||||||
cd libgnutls_build
|
|
||||||
Add-Content ..\libgnutls_dir.txt $pwd.Path
|
|
||||||
shell: powershell
|
|
||||||
- name: check gnutls folder
|
|
||||||
run: |
|
|
||||||
set /P LIBGNUTLS_DIR=<libgnutls_dir.txt
|
|
||||||
dir "%LIBGNUTLS_DIR%\include"
|
|
||||||
dir "%LIBGNUTLS_DIR%\lib\x86"
|
|
||||||
shell: cmd
|
|
||||||
- name: config site
|
|
||||||
run: |
|
|
||||||
echo "" > pjlib\include\pj\config_site.h
|
|
||||||
Add-Content config_site.h "#define PJ_HAS_SSL_SOCK 1"
|
|
||||||
Add-Content config_site.h "#define PJ_SSL_SOCK_IMP PJ_SSL_SOCK_IMP_GNUTLS"
|
|
||||||
shell: powershell
|
|
||||||
- name: check VsDevCmd.bat
|
|
||||||
run: dir "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
||||||
shell: cmd
|
|
||||||
- name: MSBuild
|
|
||||||
working-directory: .
|
|
||||||
run: |
|
|
||||||
set /P LIBGNUTLS_DIR=<gnutls_dir.txt
|
|
||||||
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
||||||
set INCLUDE=%INCLUDE%;%LIBGNUTLS_DIR%\include
|
|
||||||
set LIB=%LIB%;%LIBGNUTLS_DIR%\lib\x86
|
|
||||||
msbuild pjproject-vs14.sln /p:PlatformToolset=v142 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
|
|
||||||
shell: cmd
|
|
||||||
|
|
||||||
build-windows-with-video-libvpx-unit-test-1:
|
|
||||||
runs-on: windows-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@master
|
|
||||||
- name: get openssl
|
|
||||||
run: Invoke-WebRequest -Uri "https://mirror.firedaemon.com/OpenSSL/openssl-1.1.1e-dev.zip" -OutFile ".\openssl.zip"
|
|
||||||
shell: powershell
|
|
||||||
- name: expand openssl
|
|
||||||
run: |
|
|
||||||
Expand-Archive -LiteralPath .\openssl.zip -DestinationPath .\openssl_build\; pwd
|
|
||||||
cd openssl_build\openssl-1.1\x86
|
|
||||||
Add-Content ..\..\..\openssl_dir.txt $pwd.Path
|
|
||||||
shell: powershell
|
|
||||||
- name: check openssl folder
|
|
||||||
run: |
|
|
||||||
set /P OPENSSL_DIR=<openssl_dir.txt
|
|
||||||
dir "%OPENSSL_DIR%\include"
|
|
||||||
dir "%OPENSSL_DIR%\lib"
|
|
||||||
shell: cmd
|
|
||||||
- name: get libvpx
|
|
||||||
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/libvpx/releases/download/v1.8.2/libvpx_v1.8.2_msvc14.zip" -Outfile "libvpx.zip"
|
|
||||||
shell: powershell
|
|
||||||
- name: expand libvpx
|
|
||||||
run: |
|
|
||||||
Expand-Archive -LiteralPath .\libvpx.zip -DestinationPath .\libvpx_build\; pwd
|
|
||||||
cd libvpx_build
|
|
||||||
Add-Content ..\libvpx_dir.txt $pwd.Path
|
|
||||||
shell: powershell
|
|
||||||
- name: check libvpx folder
|
|
||||||
run: |
|
|
||||||
set /P LIBVPX_DIR=<libvpx_dir.txt
|
|
||||||
dir "%LIBVPX_DIR%\include"
|
|
||||||
dir "%LIBVPX_DIR%\lib\x86"
|
|
||||||
shell: cmd
|
|
||||||
- name: get libsdl
|
|
||||||
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/SDL/releases/download/release-2.0.9/libsdl_release-2.0.9_msvc14.zip" -Outfile ".\libsdl.zip"
|
|
||||||
shell: powershell
|
|
||||||
- name: expand libsdl
|
|
||||||
run: |
|
|
||||||
Expand-Archive -LiteralPath .\libsdl.zip -DestinationPath .\libsdl_build\; pwd
|
|
||||||
cd libsdl_build
|
|
||||||
Add-Content ..\libsdl_dir.txt $pwd.Path
|
|
||||||
shell: powershell
|
|
||||||
- name: check libsdl folder
|
|
||||||
run: |
|
|
||||||
set /P LIBSDL_DIR=<libsdl_dir.txt
|
|
||||||
dir "%LIBSDL_DIR%\include\SDL"
|
|
||||||
dir "%LIBSDL_DIR%\lib\x86"
|
|
||||||
shell: cmd
|
|
||||||
- name: config site
|
|
||||||
run: |
|
|
||||||
cd pjlib/include/pj; cp config_site_test.h config_site.h
|
|
||||||
Add-Content config_site.h "#define PJ_HAS_SSL_SOCK 1"
|
|
||||||
Add-Content config_site.h "#define PJMEDIA_HAS_VIDEO 1"
|
|
||||||
Add-Content config_site.h "#define PJMEDIA_VIDEO_DEV_HAS_DSHOW 1"
|
|
||||||
Add-Content config_site.h "#define PJMEDIA_HAS_LIBYUV 1"
|
|
||||||
Add-Content config_site.h "#define PJMEDIA_VIDEO_DEV_HAS_SDL 1"
|
|
||||||
Add-Content config_site.h "#define PJMEDIA_HAS_VPX_CODEC 1"
|
|
||||||
shell: powershell
|
|
||||||
- name: check VsDevCmd.bat
|
|
||||||
run: dir "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
||||||
shell: cmd
|
|
||||||
- name: MSBuild
|
|
||||||
working-directory: .
|
|
||||||
run: |
|
|
||||||
set /P OPENSSL_DIR=<openssl_dir.txt
|
|
||||||
set /P LIBVPX_DIR=<libvpx_dir.txt
|
|
||||||
set /P LIBSDL_DIR=<libsdl_dir.txt
|
|
||||||
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
||||||
set INCLUDE=%INCLUDE%;%OPENSSL_DIR%\include;%LIBVPX_DIR%\include;%LIBSDL_DIR%\include\SDL
|
|
||||||
set LIB=%LIB%;%OPENSSL_DIR%\lib;%LIBVPX_DIR%\lib\x86;%LIBSDL_DIR%\lib\x86
|
|
||||||
msbuild pjproject-vs14.sln /p:PlatformToolset=v142 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
|
|
||||||
shell: cmd
|
|
||||||
- name: unit tests
|
|
||||||
run: |
|
|
||||||
$env:OPENSSL_DIR = Get-Content .\openssl_dir.txt
|
|
||||||
$env:LIBVPX_DIR = Get-Content .\libvpx_dir.txt
|
|
||||||
$env:LIBSDL_DIR = Get-Content .\libsdl_dir.txt
|
|
||||||
$env:PATH+=";$env:OPENSSL_DIR\bin;$env:LIBVPX_DIR\bin\x86;$env:LIBSDL_DIR\bin\x86;"
|
|
||||||
cd pjlib/bin; ./pjlib-test-i386-Win32-vc14-Release.exe
|
|
||||||
cd ../../pjlib-util/bin; ./pjlib-util-test-i386-Win32-vc14-Release.exe
|
|
||||||
cd ../../pjmedia/bin/; ./pjmedia-test-i386-Win32-vc14-Release.exe
|
|
||||||
shell: powershell
|
|
||||||
|
|
||||||
build-windows-video-ffmpeg:
|
|
||||||
runs-on: windows-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@master
|
|
||||||
- name: get ffmpeg
|
|
||||||
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/FFmpeg/releases/download/4.3.r96746/libffmpeg_4.3.r96746_msvc14_x86.zip" -Outfile "libffmpeg.zip"
|
|
||||||
shell: powershell
|
|
||||||
- name: expand ffmpeg
|
|
||||||
run: |
|
|
||||||
Expand-Archive -LiteralPath .\libffmpeg.zip -DestinationPath .\libffmpeg_build\; pwd
|
|
||||||
cd libffmpeg_build
|
|
||||||
Add-Content ..\libffmpeg_dir.txt $pwd.Path
|
|
||||||
shell: powershell
|
|
||||||
- name: check ffmpeg folder
|
|
||||||
run: |
|
|
||||||
set /P LIBFFMPEG_DIR=<libffmpeg_dir.txt
|
|
||||||
dir "%LIBFFMPEG_DIR%\include"
|
|
||||||
dir "%LIBFFMPEG_DIR%\lib\x86"
|
|
||||||
shell: cmd
|
|
||||||
- name: get libx264
|
|
||||||
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/x264/releases/download/0.159.r2991/libx264_0.159.r2991_msvc14.zip" -Outfile ".\libx264.zip"
|
|
||||||
shell: powershell
|
|
||||||
- name: expand libx264
|
|
||||||
run: |
|
|
||||||
Expand-Archive -LiteralPath .\libx264.zip -DestinationPath .\libx264_build\; pwd
|
|
||||||
cd libx264_build
|
|
||||||
Add-Content ..\libx264_dir.txt $pwd.Path
|
|
||||||
shell: powershell
|
|
||||||
- name: check libx264 folder
|
|
||||||
run: |
|
|
||||||
set /P LIBX264_DIR=<libx264_dir.txt
|
|
||||||
dir "%LIBX264_DIR%\include"
|
|
||||||
dir "%LIBX264_DIR%\lib\x86"
|
|
||||||
shell: cmd
|
|
||||||
- name: get libsdl
|
|
||||||
run: Invoke-WebRequest -Uri "https://github.com/ShiftMediaProject/SDL/releases/download/release-2.0.9/libsdl_release-2.0.9_msvc14.zip" -Outfile ".\libsdl.zip"
|
|
||||||
shell: powershell
|
|
||||||
- name: expand libsdl
|
|
||||||
run: |
|
|
||||||
Expand-Archive -LiteralPath .\libsdl.zip -DestinationPath .\libsdl_build\; pwd
|
|
||||||
cd libsdl_build
|
|
||||||
Add-Content ..\libsdl_dir.txt $pwd.Path
|
|
||||||
shell: powershell
|
|
||||||
- name: check libsdl folder
|
|
||||||
run: |
|
|
||||||
set /P LIBSDL_DIR=<libsdl_dir.txt
|
|
||||||
dir "%LIBSDL_DIR%\include\SDL"
|
|
||||||
dir "%LIBSDL_DIR%\lib\x86"
|
|
||||||
shell: cmd
|
|
||||||
- name: config site
|
|
||||||
run: |
|
|
||||||
echo "" > pjlib\include\pj\config_site.h
|
|
||||||
Add-Content config_site.h "#define PJMEDIA_HAS_VIDEO 1"
|
|
||||||
Add-Content config_site.h "#define PJMEDIA_HAS_FFMPEG 1"
|
|
||||||
Add-Content config_site.h "#define PJMEDIA_HAS_FFMPEG_VID_CODEC 1"
|
|
||||||
Add-Content config_site.h "#define PJMEDIA_VIDEO_DEV_HAS_FFMPEG 1"
|
|
||||||
Add-Content config_site.h "#define PJMEDIA_VIDEO_DEV_HAS_SDL 1"
|
|
||||||
shell: powershell
|
|
||||||
- name: check VsDevCmd.bat
|
|
||||||
run: dir "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
||||||
shell: cmd
|
|
||||||
- name: MSBuild
|
|
||||||
working-directory: .
|
|
||||||
run: |
|
|
||||||
set /P LIBFFMPEG_DIR=<libffmpeg_dir.txt
|
|
||||||
set /P LIBX264_DIR=<libx264_dir.txt
|
|
||||||
set /P LIBSDL_DIR=<libsdl_dir.txt
|
|
||||||
call "%PROGRAMFILES(x86)%\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
|
|
||||||
set INCLUDE=%INCLUDE%;%LIBFFMPEG_DIR%\include;%LIBX264_DIR%\include;%LIBSDL_DIR%\include\SDL
|
|
||||||
set LIB=%LIB%;%LIBFFMPEG_DIR%\lib\x86;%LIBX264_DIR%\lib\x86;%LIBSDL_DIR%\lib\x86
|
|
||||||
msbuild pjproject-vs14.sln /p:PlatformToolset=v142 /p:Configuration=Release /p:Platform=win32 /p:UseEnv=true
|
|
||||||
shell: cmd
|
|
|
@ -1,66 +0,0 @@
|
||||||
name: "CodeQL"
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [master]
|
|
||||||
pull_request:
|
|
||||||
# The branches below must be a subset of the branches above
|
|
||||||
branches: [master]
|
|
||||||
schedule:
|
|
||||||
- cron: '0 22 * * 2'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
analyze:
|
|
||||||
name: Analyze
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
# Override automatic language detection by changing the below list
|
|
||||||
# Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
|
|
||||||
language: ['cpp', 'python']
|
|
||||||
# Learn more...
|
|
||||||
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
# We must fetch at least the immediate parents so that if this is
|
|
||||||
# a pull request then we can checkout the head.
|
|
||||||
fetch-depth: 2
|
|
||||||
|
|
||||||
# If this run was triggered by a pull request event, then checkout
|
|
||||||
# the head of the pull request instead of the merge commit.
|
|
||||||
- run: git checkout HEAD^2
|
|
||||||
if: ${{ github.event_name == 'pull_request' }}
|
|
||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
|
||||||
- name: Initialize CodeQL
|
|
||||||
uses: github/codeql-action/init@v1
|
|
||||||
with:
|
|
||||||
languages: ${{ matrix.language }}
|
|
||||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
|
||||||
# By default, queries listed here will override any specified in a config file.
|
|
||||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
|
||||||
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
|
||||||
|
|
||||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
|
||||||
# If this step fails, then you should remove it and run the build manually (see below)
|
|
||||||
# - name: Autobuild
|
|
||||||
# uses: github/codeql-action/autobuild@v1
|
|
||||||
|
|
||||||
# ℹ️ Command-line programs to run using the OS shell.
|
|
||||||
# 📚 https://git.io/JvXDl
|
|
||||||
|
|
||||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
|
||||||
# and modify them (or add more) to build your code if your project
|
|
||||||
# uses a compiled language
|
|
||||||
- run: |
|
|
||||||
./configure --disable-libyuv --disable-libwebrtc --disable-speex-codec --disable-speex-aec
|
|
||||||
make
|
|
||||||
mv tests/pjsua/inc_cfg.py tests/pjsua/inc_cfg.txt
|
|
||||||
|
|
||||||
- name: Perform CodeQL Analysis
|
|
||||||
uses: github/codeql-action/analyze@v1
|
|
69
pjproject-2.11.1/.gitignore
vendored
69
pjproject-2.11.1/.gitignore
vendored
|
@ -1,69 +0,0 @@
|
||||||
pjlib/include/pj/config_site.h
|
|
||||||
lib/
|
|
||||||
bin/
|
|
||||||
output/
|
|
||||||
|
|
||||||
# VS stuff
|
|
||||||
*.ncb
|
|
||||||
*.suo
|
|
||||||
*.cache
|
|
||||||
*.resw
|
|
||||||
.vs/
|
|
||||||
.vscode/
|
|
||||||
**/build/**/*.vcproj.*.user
|
|
||||||
**/build/**/*.vcxproj.*.user
|
|
||||||
**/build/**/*.vcproj.user
|
|
||||||
**/build/**/*.vcxproj.user
|
|
||||||
**/Win32/Debug
|
|
||||||
**/x64/Debug
|
|
||||||
**/x86/Debug
|
|
||||||
UpgradeLog*.htm
|
|
||||||
# VS 2015 stuff
|
|
||||||
*.pdb
|
|
||||||
*.db
|
|
||||||
*.opendb
|
|
||||||
samples.log
|
|
||||||
|
|
||||||
# GNU stuff
|
|
||||||
config.log
|
|
||||||
config.status
|
|
||||||
build.mak
|
|
||||||
user.mak
|
|
||||||
cc-auto.mak
|
|
||||||
os-auto.mak
|
|
||||||
m_auto.h
|
|
||||||
os_auto.h
|
|
||||||
config_auto.h
|
|
||||||
sip_autoconf.h
|
|
||||||
*.depend
|
|
||||||
|
|
||||||
# Apple stuff
|
|
||||||
*.DS_Store
|
|
||||||
autom4te.cache
|
|
||||||
xcuserdata
|
|
||||||
pjsip-apps/src/pjsua/ios*/lib*.a
|
|
||||||
pjsip-apps/src/pjsua/ios/ipjsua.xcodeproj/project.xcworkspace/
|
|
||||||
pjsip-apps/src/pjsua/ios/ipjsua.xcworkspace/xcshareddata
|
|
||||||
pjsip-apps/src/pjsua/ios-swift/Libraries/
|
|
||||||
|
|
||||||
# SWIG Java/Android stuff
|
|
||||||
pjsip-apps/src/swig/java/android/app/src/main/java/org/pjsip/pjsua2/*.java
|
|
||||||
pjsip-apps/src/swig/java/android/app/src/main/java/org/pjsip/PjCamera*.java
|
|
||||||
pjsip-apps/src/swig/java/android/app/src/main/jniLibs/
|
|
||||||
|
|
||||||
# SWIG CSharp/Xamarin stuff
|
|
||||||
pjsip-apps/src/swig/csharp/pjsua2xamarin/
|
|
||||||
|
|
||||||
# SWIG Python stuff
|
|
||||||
pjsip-apps/src/swig/python/build/
|
|
||||||
pjsip-apps/src/swig/python/pjsua2.py
|
|
||||||
pjsip-apps/src/swig/python/pjsua2_wrap.*
|
|
||||||
|
|
||||||
# unit tests files
|
|
||||||
tests/pjsua/*.pyc
|
|
||||||
tests/pjsua/scripts-*/*.pyc
|
|
||||||
tests/pjsua/*.log
|
|
||||||
tests/pjsua/wavs/tmp*.wav
|
|
||||||
tests/pjsua/tools/cmp_wav
|
|
||||||
tests/pjsua/tools/cmp_wav.dSYM
|
|
||||||
tests/pjsua/logs
|
|
|
@ -1,339 +0,0 @@
|
||||||
GNU GENERAL PUBLIC LICENSE
|
|
||||||
Version 2, June 1991
|
|
||||||
|
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
Preamble
|
|
||||||
|
|
||||||
The licenses for most software are designed to take away your
|
|
||||||
freedom to share and change it. By contrast, the GNU General Public
|
|
||||||
License is intended to guarantee your freedom to share and change free
|
|
||||||
software--to make sure the software is free for all its users. This
|
|
||||||
General Public License applies to most of the Free Software
|
|
||||||
Foundation's software and to any other program whose authors commit to
|
|
||||||
using it. (Some other Free Software Foundation software is covered by
|
|
||||||
the GNU Lesser General Public License instead.) You can apply it to
|
|
||||||
your programs, too.
|
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
|
||||||
price. Our General Public Licenses are designed to make sure that you
|
|
||||||
have the freedom to distribute copies of free software (and charge for
|
|
||||||
this service if you wish), that you receive source code or can get it
|
|
||||||
if you want it, that you can change the software or use pieces of it
|
|
||||||
in new free programs; and that you know you can do these things.
|
|
||||||
|
|
||||||
To protect your rights, we need to make restrictions that forbid
|
|
||||||
anyone to deny you these rights or to ask you to surrender the rights.
|
|
||||||
These restrictions translate to certain responsibilities for you if you
|
|
||||||
distribute copies of the software, or if you modify it.
|
|
||||||
|
|
||||||
For example, if you distribute copies of such a program, whether
|
|
||||||
gratis or for a fee, you must give the recipients all the rights that
|
|
||||||
you have. You must make sure that they, too, receive or can get the
|
|
||||||
source code. And you must show them these terms so they know their
|
|
||||||
rights.
|
|
||||||
|
|
||||||
We protect your rights with two steps: (1) copyright the software, and
|
|
||||||
(2) offer you this license which gives you legal permission to copy,
|
|
||||||
distribute and/or modify the software.
|
|
||||||
|
|
||||||
Also, for each author's protection and ours, we want to make certain
|
|
||||||
that everyone understands that there is no warranty for this free
|
|
||||||
software. If the software is modified by someone else and passed on, we
|
|
||||||
want its recipients to know that what they have is not the original, so
|
|
||||||
that any problems introduced by others will not reflect on the original
|
|
||||||
authors' reputations.
|
|
||||||
|
|
||||||
Finally, any free program is threatened constantly by software
|
|
||||||
patents. We wish to avoid the danger that redistributors of a free
|
|
||||||
program will individually obtain patent licenses, in effect making the
|
|
||||||
program proprietary. To prevent this, we have made it clear that any
|
|
||||||
patent must be licensed for everyone's free use or not licensed at all.
|
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
|
||||||
modification follow.
|
|
||||||
|
|
||||||
GNU GENERAL PUBLIC LICENSE
|
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
||||||
|
|
||||||
0. This License applies to any program or other work which contains
|
|
||||||
a notice placed by the copyright holder saying it may be distributed
|
|
||||||
under the terms of this General Public License. The "Program", below,
|
|
||||||
refers to any such program or work, and a "work based on the Program"
|
|
||||||
means either the Program or any derivative work under copyright law:
|
|
||||||
that is to say, a work containing the Program or a portion of it,
|
|
||||||
either verbatim or with modifications and/or translated into another
|
|
||||||
language. (Hereinafter, translation is included without limitation in
|
|
||||||
the term "modification".) Each licensee is addressed as "you".
|
|
||||||
|
|
||||||
Activities other than copying, distribution and modification are not
|
|
||||||
covered by this License; they are outside its scope. The act of
|
|
||||||
running the Program is not restricted, and the output from the Program
|
|
||||||
is covered only if its contents constitute a work based on the
|
|
||||||
Program (independent of having been made by running the Program).
|
|
||||||
Whether that is true depends on what the Program does.
|
|
||||||
|
|
||||||
1. You may copy and distribute verbatim copies of the Program's
|
|
||||||
source code as you receive it, in any medium, provided that you
|
|
||||||
conspicuously and appropriately publish on each copy an appropriate
|
|
||||||
copyright notice and disclaimer of warranty; keep intact all the
|
|
||||||
notices that refer to this License and to the absence of any warranty;
|
|
||||||
and give any other recipients of the Program a copy of this License
|
|
||||||
along with the Program.
|
|
||||||
|
|
||||||
You may charge a fee for the physical act of transferring a copy, and
|
|
||||||
you may at your option offer warranty protection in exchange for a fee.
|
|
||||||
|
|
||||||
2. You may modify your copy or copies of the Program or any portion
|
|
||||||
of it, thus forming a work based on the Program, and copy and
|
|
||||||
distribute such modifications or work under the terms of Section 1
|
|
||||||
above, provided that you also meet all of these conditions:
|
|
||||||
|
|
||||||
a) You must cause the modified files to carry prominent notices
|
|
||||||
stating that you changed the files and the date of any change.
|
|
||||||
|
|
||||||
b) You must cause any work that you distribute or publish, that in
|
|
||||||
whole or in part contains or is derived from the Program or any
|
|
||||||
part thereof, to be licensed as a whole at no charge to all third
|
|
||||||
parties under the terms of this License.
|
|
||||||
|
|
||||||
c) If the modified program normally reads commands interactively
|
|
||||||
when run, you must cause it, when started running for such
|
|
||||||
interactive use in the most ordinary way, to print or display an
|
|
||||||
announcement including an appropriate copyright notice and a
|
|
||||||
notice that there is no warranty (or else, saying that you provide
|
|
||||||
a warranty) and that users may redistribute the program under
|
|
||||||
these conditions, and telling the user how to view a copy of this
|
|
||||||
License. (Exception: if the Program itself is interactive but
|
|
||||||
does not normally print such an announcement, your work based on
|
|
||||||
the Program is not required to print an announcement.)
|
|
||||||
|
|
||||||
These requirements apply to the modified work as a whole. If
|
|
||||||
identifiable sections of that work are not derived from the Program,
|
|
||||||
and can be reasonably considered independent and separate works in
|
|
||||||
themselves, then this License, and its terms, do not apply to those
|
|
||||||
sections when you distribute them as separate works. But when you
|
|
||||||
distribute the same sections as part of a whole which is a work based
|
|
||||||
on the Program, the distribution of the whole must be on the terms of
|
|
||||||
this License, whose permissions for other licensees extend to the
|
|
||||||
entire whole, and thus to each and every part regardless of who wrote it.
|
|
||||||
|
|
||||||
Thus, it is not the intent of this section to claim rights or contest
|
|
||||||
your rights to work written entirely by you; rather, the intent is to
|
|
||||||
exercise the right to control the distribution of derivative or
|
|
||||||
collective works based on the Program.
|
|
||||||
|
|
||||||
In addition, mere aggregation of another work not based on the Program
|
|
||||||
with the Program (or with a work based on the Program) on a volume of
|
|
||||||
a storage or distribution medium does not bring the other work under
|
|
||||||
the scope of this License.
|
|
||||||
|
|
||||||
3. You may copy and distribute the Program (or a work based on it,
|
|
||||||
under Section 2) in object code or executable form under the terms of
|
|
||||||
Sections 1 and 2 above provided that you also do one of the following:
|
|
||||||
|
|
||||||
a) Accompany it with the complete corresponding machine-readable
|
|
||||||
source code, which must be distributed under the terms of Sections
|
|
||||||
1 and 2 above on a medium customarily used for software interchange; or,
|
|
||||||
|
|
||||||
b) Accompany it with a written offer, valid for at least three
|
|
||||||
years, to give any third party, for a charge no more than your
|
|
||||||
cost of physically performing source distribution, a complete
|
|
||||||
machine-readable copy of the corresponding source code, to be
|
|
||||||
distributed under the terms of Sections 1 and 2 above on a medium
|
|
||||||
customarily used for software interchange; or,
|
|
||||||
|
|
||||||
c) Accompany it with the information you received as to the offer
|
|
||||||
to distribute corresponding source code. (This alternative is
|
|
||||||
allowed only for noncommercial distribution and only if you
|
|
||||||
received the program in object code or executable form with such
|
|
||||||
an offer, in accord with Subsection b above.)
|
|
||||||
|
|
||||||
The source code for a work means the preferred form of the work for
|
|
||||||
making modifications to it. For an executable work, complete source
|
|
||||||
code means all the source code for all modules it contains, plus any
|
|
||||||
associated interface definition files, plus the scripts used to
|
|
||||||
control compilation and installation of the executable. However, as a
|
|
||||||
special exception, the source code distributed need not include
|
|
||||||
anything that is normally distributed (in either source or binary
|
|
||||||
form) with the major components (compiler, kernel, and so on) of the
|
|
||||||
operating system on which the executable runs, unless that component
|
|
||||||
itself accompanies the executable.
|
|
||||||
|
|
||||||
If distribution of executable or object code is made by offering
|
|
||||||
access to copy from a designated place, then offering equivalent
|
|
||||||
access to copy the source code from the same place counts as
|
|
||||||
distribution of the source code, even though third parties are not
|
|
||||||
compelled to copy the source along with the object code.
|
|
||||||
|
|
||||||
4. You may not copy, modify, sublicense, or distribute the Program
|
|
||||||
except as expressly provided under this License. Any attempt
|
|
||||||
otherwise to copy, modify, sublicense or distribute the Program is
|
|
||||||
void, and will automatically terminate your rights under this License.
|
|
||||||
However, parties who have received copies, or rights, from you under
|
|
||||||
this License will not have their licenses terminated so long as such
|
|
||||||
parties remain in full compliance.
|
|
||||||
|
|
||||||
5. You are not required to accept this License, since you have not
|
|
||||||
signed it. However, nothing else grants you permission to modify or
|
|
||||||
distribute the Program or its derivative works. These actions are
|
|
||||||
prohibited by law if you do not accept this License. Therefore, by
|
|
||||||
modifying or distributing the Program (or any work based on the
|
|
||||||
Program), you indicate your acceptance of this License to do so, and
|
|
||||||
all its terms and conditions for copying, distributing or modifying
|
|
||||||
the Program or works based on it.
|
|
||||||
|
|
||||||
6. Each time you redistribute the Program (or any work based on the
|
|
||||||
Program), the recipient automatically receives a license from the
|
|
||||||
original licensor to copy, distribute or modify the Program subject to
|
|
||||||
these terms and conditions. You may not impose any further
|
|
||||||
restrictions on the recipients' exercise of the rights granted herein.
|
|
||||||
You are not responsible for enforcing compliance by third parties to
|
|
||||||
this License.
|
|
||||||
|
|
||||||
7. If, as a consequence of a court judgment or allegation of patent
|
|
||||||
infringement or for any other reason (not limited to patent issues),
|
|
||||||
conditions are imposed on you (whether by court order, agreement or
|
|
||||||
otherwise) that contradict the conditions of this License, they do not
|
|
||||||
excuse you from the conditions of this License. If you cannot
|
|
||||||
distribute so as to satisfy simultaneously your obligations under this
|
|
||||||
License and any other pertinent obligations, then as a consequence you
|
|
||||||
may not distribute the Program at all. For example, if a patent
|
|
||||||
license would not permit royalty-free redistribution of the Program by
|
|
||||||
all those who receive copies directly or indirectly through you, then
|
|
||||||
the only way you could satisfy both it and this License would be to
|
|
||||||
refrain entirely from distribution of the Program.
|
|
||||||
|
|
||||||
If any portion of this section is held invalid or unenforceable under
|
|
||||||
any particular circumstance, the balance of the section is intended to
|
|
||||||
apply and the section as a whole is intended to apply in other
|
|
||||||
circumstances.
|
|
||||||
|
|
||||||
It is not the purpose of this section to induce you to infringe any
|
|
||||||
patents or other property right claims or to contest validity of any
|
|
||||||
such claims; this section has the sole purpose of protecting the
|
|
||||||
integrity of the free software distribution system, which is
|
|
||||||
implemented by public license practices. Many people have made
|
|
||||||
generous contributions to the wide range of software distributed
|
|
||||||
through that system in reliance on consistent application of that
|
|
||||||
system; it is up to the author/donor to decide if he or she is willing
|
|
||||||
to distribute software through any other system and a licensee cannot
|
|
||||||
impose that choice.
|
|
||||||
|
|
||||||
This section is intended to make thoroughly clear what is believed to
|
|
||||||
be a consequence of the rest of this License.
|
|
||||||
|
|
||||||
8. If the distribution and/or use of the Program is restricted in
|
|
||||||
certain countries either by patents or by copyrighted interfaces, the
|
|
||||||
original copyright holder who places the Program under this License
|
|
||||||
may add an explicit geographical distribution limitation excluding
|
|
||||||
those countries, so that distribution is permitted only in or among
|
|
||||||
countries not thus excluded. In such case, this License incorporates
|
|
||||||
the limitation as if written in the body of this License.
|
|
||||||
|
|
||||||
9. The Free Software Foundation may publish revised and/or new versions
|
|
||||||
of the General Public License from time to time. Such new versions will
|
|
||||||
be similar in spirit to the present version, but may differ in detail to
|
|
||||||
address new problems or concerns.
|
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the Program
|
|
||||||
specifies a version number of this License which applies to it and "any
|
|
||||||
later version", you have the option of following the terms and conditions
|
|
||||||
either of that version or of any later version published by the Free
|
|
||||||
Software Foundation. If the Program does not specify a version number of
|
|
||||||
this License, you may choose any version ever published by the Free Software
|
|
||||||
Foundation.
|
|
||||||
|
|
||||||
10. If you wish to incorporate parts of the Program into other free
|
|
||||||
programs whose distribution conditions are different, write to the author
|
|
||||||
to ask for permission. For software which is copyrighted by the Free
|
|
||||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
|
||||||
make exceptions for this. Our decision will be guided by the two goals
|
|
||||||
of preserving the free status of all derivatives of our free software and
|
|
||||||
of promoting the sharing and reuse of software generally.
|
|
||||||
|
|
||||||
NO WARRANTY
|
|
||||||
|
|
||||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
|
||||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
|
||||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
|
||||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
|
||||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
||||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
|
||||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
|
||||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
|
||||||
REPAIR OR CORRECTION.
|
|
||||||
|
|
||||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
|
||||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
|
||||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
|
||||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
|
||||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
|
||||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
|
||||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
|
||||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
|
||||||
POSSIBILITY OF SUCH DAMAGES.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
How to Apply These Terms to Your New Programs
|
|
||||||
|
|
||||||
If you develop a new program, and you want it to be of the greatest
|
|
||||||
possible use to the public, the best way to achieve this is to make it
|
|
||||||
free software which everyone can redistribute and change under these terms.
|
|
||||||
|
|
||||||
To do so, attach the following notices to the program. It is safest
|
|
||||||
to attach them to the start of each source file to most effectively
|
|
||||||
convey the exclusion of warranty; and each file should have at least
|
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
|
||||||
|
|
||||||
<one line to give the program's name and a brief idea of what it does.>
|
|
||||||
Copyright (C) <year> <name of author>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
|
||||||
|
|
||||||
If the program is interactive, make it output a short notice like this
|
|
||||||
when it starts in an interactive mode:
|
|
||||||
|
|
||||||
Gnomovision version 69, Copyright (C) year name of author
|
|
||||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
|
||||||
This is free software, and you are welcome to redistribute it
|
|
||||||
under certain conditions; type `show c' for details.
|
|
||||||
|
|
||||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
|
||||||
parts of the General Public License. Of course, the commands you use may
|
|
||||||
be called something other than `show w' and `show c'; they could even be
|
|
||||||
mouse-clicks or menu items--whatever suits your program.
|
|
||||||
|
|
||||||
You should also get your employer (if you work as a programmer) or your
|
|
||||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
|
||||||
necessary. Here is a sample; alter the names:
|
|
||||||
|
|
||||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
|
||||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
|
||||||
|
|
||||||
<signature of Ty Coon>, 1 April 1989
|
|
||||||
Ty Coon, President of Vice
|
|
||||||
|
|
||||||
This General Public License does not permit incorporating your program into
|
|
||||||
proprietary programs. If your program is a subroutine library, you may
|
|
||||||
consider it more useful to permit linking proprietary applications with the
|
|
||||||
library. If this is what you want to do, use the GNU Lesser General
|
|
||||||
Public License instead of this License.
|
|
|
@ -1,48 +0,0 @@
|
||||||
[Last update: 2007/02/18]
|
|
||||||
|
|
||||||
-= INTRO=-
|
|
||||||
|
|
||||||
This top level projects:
|
|
||||||
|
|
||||||
- pjlib: portability and basic framework library
|
|
||||||
- pjlib-util: lexical scanner, XML, STUN, MD5, DNS, etc.
|
|
||||||
- pjmedia: media framework and codecs
|
|
||||||
- pjsip: SIP stacks (core, UA layer, SIMPLE, etc.)
|
|
||||||
- pjsip-apps: SIP apps (pjsua, pjsip-perf)
|
|
||||||
|
|
||||||
|
|
||||||
-= COMPILING =-
|
|
||||||
|
|
||||||
On Windows:
|
|
||||||
- Visual Studio 6: open pjproject.dsw
|
|
||||||
- Visual Studio 8/2005: open pjproject-vs8.sln
|
|
||||||
- Embedded VisualC 4: open open pjsip-apps\build\wince-evc4\wince_demos.vcw
|
|
||||||
- Build pjsua
|
|
||||||
|
|
||||||
With Makefile:
|
|
||||||
- on top level dir (e.g. ~/pjproject)
|
|
||||||
- ./configure && make dep && make clean && make
|
|
||||||
|
|
||||||
Binaries will be in pjsip-apps/bin.
|
|
||||||
|
|
||||||
|
|
||||||
-= PYTHON MODULE =-
|
|
||||||
|
|
||||||
On Windows:
|
|
||||||
- Visual Studio 6: open pjsip-apps\build\pjsip_apps.dsw
|
|
||||||
- Build py_pjsua module
|
|
||||||
|
|
||||||
With GNU and Python:
|
|
||||||
- cd pjsip-apps/src/py_pjsua
|
|
||||||
- python setup.py install
|
|
||||||
|
|
||||||
One Python sample application is provided:
|
|
||||||
pjsip-apps/src/py_pjsua/pjsua_app.py
|
|
||||||
|
|
||||||
|
|
||||||
-= PORTING =-
|
|
||||||
|
|
||||||
- Just need to port pjlib.
|
|
||||||
- PJLIB doc has detailed info how to do this.
|
|
||||||
- Must pass pjlib-test!
|
|
||||||
|
|
|
@ -1,151 +0,0 @@
|
||||||
include build.mak
|
|
||||||
include build/host-$(HOST_NAME).mak
|
|
||||||
-include user.mak
|
|
||||||
include version.mak
|
|
||||||
|
|
||||||
LIB_DIRS = pjlib/build pjlib-util/build pjnath/build third_party/build pjmedia/build pjsip/build
|
|
||||||
DIRS = $(LIB_DIRS) pjsip-apps/build $(EXTRA_DIRS)
|
|
||||||
|
|
||||||
ifdef MINSIZE
|
|
||||||
MAKE_FLAGS := MINSIZE=1
|
|
||||||
endif
|
|
||||||
|
|
||||||
all clean dep depend print:
|
|
||||||
for dir in $(DIRS); do \
|
|
||||||
if $(MAKE) $(MAKE_FLAGS) -C $$dir $@; then \
|
|
||||||
true; \
|
|
||||||
else \
|
|
||||||
exit 1; \
|
|
||||||
fi; \
|
|
||||||
done
|
|
||||||
|
|
||||||
distclean realclean:
|
|
||||||
for dir in $(DIRS); do \
|
|
||||||
if $(MAKE) $(MAKE_FLAGS) -C $$dir $@; then \
|
|
||||||
true; \
|
|
||||||
else \
|
|
||||||
exit 1; \
|
|
||||||
fi; \
|
|
||||||
done
|
|
||||||
$(HOST_RM) config.log
|
|
||||||
$(HOST_RM) config.status
|
|
||||||
|
|
||||||
lib:
|
|
||||||
for dir in $(LIB_DIRS); do \
|
|
||||||
if $(MAKE) $(MAKE_FLAGS) -C $$dir lib; then \
|
|
||||||
true; \
|
|
||||||
else \
|
|
||||||
exit 1; \
|
|
||||||
fi; \
|
|
||||||
done; \
|
|
||||||
|
|
||||||
|
|
||||||
.PHONY: lib doc
|
|
||||||
|
|
||||||
doc:
|
|
||||||
@if test \( ! "$(WWWDIR)" == "" \) -a \( ! -d $(WWWDIR)/pjlib/docs/html \) ; then \
|
|
||||||
echo 'Directory "$(WWWDIR)" does not look like a valid pjsip web directory'; \
|
|
||||||
exit 1; \
|
|
||||||
fi
|
|
||||||
for dir in $(DIRS); do \
|
|
||||||
if $(MAKE) $(MAKE_FLAGS) -C $$dir $@; then \
|
|
||||||
true; \
|
|
||||||
else \
|
|
||||||
exit 1; \
|
|
||||||
fi; \
|
|
||||||
done
|
|
||||||
|
|
||||||
LIBS = pjlib/lib/libpj-$(TARGET_NAME).a \
|
|
||||||
pjlib-util/lib/libpjlib-util-$(TARGET_NAME).a \
|
|
||||||
pjnath/lib/libpjnath-$(TARGET_NAME).a \
|
|
||||||
pjmedia/lib/libpjmedia-$(TARGET_NAME).a \
|
|
||||||
pjmedia/lib/libpjmedia-audiodev-$(TARGET_NAME).a \
|
|
||||||
pjmedia/lib/libpjmedia-codec-$(TARGET_NAME).a \
|
|
||||||
pjsip/lib/libpjsip-$(TARGET_NAME).a \
|
|
||||||
pjsip/lib/libpjsip-ua-$(TARGET_NAME).a \
|
|
||||||
pjsip/lib/libpjsip-simple-$(TARGET_NAME).a \
|
|
||||||
pjsip/lib/libpjsua-$(TARGET_NAME).a
|
|
||||||
BINS = pjsip-apps/bin/pjsua-$(TARGET_NAME)$(HOST_EXE)
|
|
||||||
|
|
||||||
size:
|
|
||||||
@echo -n 'Date: '
|
|
||||||
@date
|
|
||||||
@echo
|
|
||||||
@for lib in $(LIBS); do \
|
|
||||||
echo "$$lib:"; \
|
|
||||||
size -t $$lib | awk '{print $$1 "\t" $$2 "\t" $$3 "\t" $$6}'; \
|
|
||||||
echo; \
|
|
||||||
done
|
|
||||||
@echo
|
|
||||||
@for bin in $(BINS); do \
|
|
||||||
echo "size $$bin:"; \
|
|
||||||
size $$bin; \
|
|
||||||
done
|
|
||||||
|
|
||||||
#dos2unix:
|
|
||||||
# for f in `find . | egrep '(mak|h|c|S|s|Makefile)$$'`; do \
|
|
||||||
# dos2unix "$$f" > dos2unix.tmp; \
|
|
||||||
# cp dos2unix.tmp "$$f"; \
|
|
||||||
# done
|
|
||||||
# rm -f dos2unix.tmp
|
|
||||||
|
|
||||||
xhdrid:
|
|
||||||
for f in `find . | egrep '\.(h|c|S|s|cpp|hpp)$$'`; do \
|
|
||||||
echo Processing $$f...; \
|
|
||||||
cat $$f | sed 's/.*\$$Author\$$/ */' > /tmp/id; \
|
|
||||||
cp /tmp/id $$f; \
|
|
||||||
done
|
|
||||||
|
|
||||||
selftest: pjlib-test pjlib-util-test pjnath-test pjmedia-test pjsip-test pjsua-test
|
|
||||||
|
|
||||||
pjlib-test: pjlib/bin/pjlib-test-$(TARGET_NAME)
|
|
||||||
cd pjlib/build && ../bin/pjlib-test-$(TARGET_NAME)
|
|
||||||
|
|
||||||
pjlib-util-test: pjlib-util/bin/pjlib-util-test-$(TARGET_NAME)
|
|
||||||
cd pjlib-util/build && ../bin/pjlib-util-test-$(TARGET_NAME)
|
|
||||||
|
|
||||||
pjnath-test: pjnath/bin/pjnath-test-$(TARGET_NAME)
|
|
||||||
cd pjnath/build && ../bin/pjnath-test-$(TARGET_NAME)
|
|
||||||
|
|
||||||
pjmedia-test: pjmedia/bin/pjmedia-test-$(TARGET_NAME)
|
|
||||||
cd pjmedia/build && ../bin/pjmedia-test-$(TARGET_NAME)
|
|
||||||
|
|
||||||
pjsip-test: pjsip/bin/pjsip-test-$(TARGET_NAME)
|
|
||||||
cd pjsip/build && ../bin/pjsip-test-$(TARGET_NAME)
|
|
||||||
|
|
||||||
pjsua-test: cmp_wav
|
|
||||||
cd tests/pjsua && python runall.py
|
|
||||||
|
|
||||||
cmp_wav:
|
|
||||||
cd tests/pjsua/tools && make
|
|
||||||
|
|
||||||
install:
|
|
||||||
mkdir -p $(DESTDIR)$(libdir)/
|
|
||||||
cp -af $(APP_LIB_FILES) $(DESTDIR)$(libdir)/
|
|
||||||
if [ "$(PJ_EXCLUDE_PJSUA2)x" = "x" ] ; then \
|
|
||||||
cp -af $(PJ_DIR)/pjsip/lib/libpjsua2-$(LIB_SUFFIX) $(DESTDIR)$(libdir)/; \
|
|
||||||
fi
|
|
||||||
mkdir -p $(DESTDIR)$(includedir)/
|
|
||||||
for d in pjlib pjlib-util pjnath pjmedia pjsip; do \
|
|
||||||
cp -RLf $$d/include/* $(DESTDIR)$(includedir)/; \
|
|
||||||
done
|
|
||||||
mkdir -p $(DESTDIR)$(libdir)/pkgconfig
|
|
||||||
sed -e "s!@PREFIX@!$(prefix)!" libpjproject.pc.in | \
|
|
||||||
sed -e "s!@INCLUDEDIR@!$(includedir)!" | \
|
|
||||||
sed -e "s!@LIBDIR@!$(libdir)!" | \
|
|
||||||
sed -e "s/@PJ_VERSION@/$(PJ_VERSION)/" | \
|
|
||||||
sed -e "s!@PJ_INSTALL_LDFLAGS@!$(PJ_INSTALL_LDFLAGS)!" | \
|
|
||||||
sed -e "s!@PJ_INSTALL_LDFLAGS_PRIVATE@!$(PJ_INSTALL_LDFLAGS_PRIVATE)!" | \
|
|
||||||
sed -e "s!@PJ_INSTALL_CFLAGS@!$(PJ_INSTALL_CFLAGS)!" > $(DESTDIR)$(libdir)/pkgconfig/libpjproject.pc
|
|
||||||
|
|
||||||
uninstall:
|
|
||||||
$(RM) $(DESTDIR)$(libdir)/pkgconfig/libpjproject.pc
|
|
||||||
rmdir $(DESTDIR)$(libdir)/pkgconfig 2> /dev/null || true
|
|
||||||
for d in pjlib pjlib-util pjnath pjmedia pjsip; do \
|
|
||||||
for f in $$d/include/*; do \
|
|
||||||
$(RM) -r "$(DESTDIR)$(includedir)/`basename $$f`"; \
|
|
||||||
done; \
|
|
||||||
done
|
|
||||||
rmdir $(DESTDIR)$(includedir) 2> /dev/null || true
|
|
||||||
$(RM) $(addprefix $(DESTDIR)$(libdir)/,$(notdir $(APP_LIBXX_FILES)))
|
|
||||||
rmdir $(DESTDIR)$(libdir) 2> /dev/null || true
|
|
|
@ -1,87 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Build Instructions for PJLIB/PJMEDIA/PJSIP RTEMS Port
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
The RTEMS port uses the POSIX abstraction layer at the moment, and has been
|
|
||||||
tested with RTEMS 4.6 on i386 target.
|
|
||||||
|
|
||||||
|
|
||||||
Building RTEMS
|
|
||||||
---------------
|
|
||||||
I use RTEMS 4.6 on a cygwin host with i386/pc386 as target, but I think it
|
|
||||||
should work with different RTEMS versions/hosts/targets.
|
|
||||||
|
|
||||||
RTEMS was built with the following commands:
|
|
||||||
|
|
||||||
$ /opt/src/rtems-4.6.6/configure --enable-cxx --enable-posix --enable-networking --enable-rdbg --enable-tests --enable-rtemsbsp=pc386 --target=i386-rtems
|
|
||||||
$ make
|
|
||||||
$ make install
|
|
||||||
|
|
||||||
|
|
||||||
Supported Targets
|
|
||||||
-----------------
|
|
||||||
At the moment, pjlib supports i386 and mpc860 CPU target. For other targets,
|
|
||||||
you would need to create/tweak the appropriate "m-xxx.mak" in "build" directory
|
|
||||||
and the corresponding "m_xxx.h" header file in "pj/compat" directory.
|
|
||||||
|
|
||||||
Please refer to pjlib porting guide about how to port PJLIB to new CPU target.
|
|
||||||
|
|
||||||
|
|
||||||
Building PJLIB/PJMEDIA/PJSIP
|
|
||||||
----------------------------
|
|
||||||
Use the following steps to build the libraries:
|
|
||||||
|
|
||||||
|
|
||||||
1. Set RTEMS_LIBRARY_PATH environment variable to point to your BSP directory
|
|
||||||
(which is <RTEMS INSTALLATION POINT>/<BOARD SUPPORT PACKAGE>).
|
|
||||||
|
|
||||||
For example (with sh):
|
|
||||||
|
|
||||||
$ export RTEMS_LIBRARY_PATH=/opt/rtems-4.6/i386-rtems/pc386
|
|
||||||
|
|
||||||
|
|
||||||
2. Unfortunately pjproject's configure script is unable to create "build.mak"
|
|
||||||
for cross compilation (but this may change in the future), so we need to
|
|
||||||
create "build.mak" manually.
|
|
||||||
|
|
||||||
The file "README-configure" has some info about the variables in "build.mak".
|
|
||||||
|
|
||||||
For example, the "build.mak" for i386 target:
|
|
||||||
|
|
||||||
export MACHINE_NAME := i386
|
|
||||||
export OS_NAME := rtems
|
|
||||||
export HOST_NAME := mingw
|
|
||||||
export CC_NAME := gcc
|
|
||||||
export TARGET_NAME := i386-rtems
|
|
||||||
export CROSS_COMPILE := i386-rtems-
|
|
||||||
|
|
||||||
|
|
||||||
3. Put additional CFLAGS or LDFLAGS that are specific to your target in
|
|
||||||
"user.mak".
|
|
||||||
|
|
||||||
For example, my "user.mak" looks like this:
|
|
||||||
|
|
||||||
export CFLAGS +=
|
|
||||||
export LDFLAGS += -Wl,-Ttext,0x00100000 -Wl,--defsym -Wl,HeapSize=0x400000
|
|
||||||
|
|
||||||
|
|
||||||
4. Build the libraries:
|
|
||||||
|
|
||||||
$ make dep && make distclean && make
|
|
||||||
|
|
||||||
|
|
||||||
5. That should be it. The libraries should be in "lib" directory and
|
|
||||||
applications in "bin" directory.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Acknowledgements
|
|
||||||
----------------
|
|
||||||
Many thanks for Phil Torre <ptorre at zetron dot com>, who did most of the
|
|
||||||
initial porting and testing with pjlib etc. All credits go to him.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,968 +0,0 @@
|
||||||
Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
|
|
||||||
Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU General Public License as published by the Free
|
|
||||||
Software Foundation, either version 2 of the License, or (at your option)
|
|
||||||
any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful, but
|
|
||||||
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program. If not, see http://www.gnu.org/licenses/.
|
|
||||||
|
|
||||||
|
|
||||||
Getting Started: Building and Using PJSIP and PJMEDIA
|
|
||||||
|
|
||||||
[Last Update: $Date: 2007-02-02 20:42:44 +0000 (Fri, 02 Feb 2007) $]
|
|
||||||
|
|
||||||
Print Friendly Page
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
This article describes how to download, customize, build, and use the open
|
|
||||||
source PJSIP and PJMEDIA SIP and media stack. The online (and HTML) version
|
|
||||||
of this file can be downloaded from http://www.pjsip.org/using.htm
|
|
||||||
|
|
||||||
|
|
||||||
Quick Info
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
Building with GNU tools (Linux, *BSD, MacOS X, mingw, etc.)
|
|
||||||
Generally these should be all that are needed to build the libraries,
|
|
||||||
applications, and samples:
|
|
||||||
|
|
||||||
$ ./configure
|
|
||||||
$ make dep && make clean && make
|
|
||||||
|
|
||||||
Building Win32 Target with Microsoft Visual Studio
|
|
||||||
Generally we can just do these steps:
|
|
||||||
|
|
||||||
1. Visual Studio 6: open pjproject.dsw workspace,
|
|
||||||
2. Visual Studio 2005: open pjproject-vs8.sln solution,
|
|
||||||
3. Create an empty pjlib/include/pj/config_site.h, and
|
|
||||||
4. build the pjsua application.
|
|
||||||
|
|
||||||
Building for Windows Mobile
|
|
||||||
Generally these are all that are needed:
|
|
||||||
|
|
||||||
1. Open pjsip-apps/build/wince-evc4/wince_demos.vcw EVC4 workspace,
|
|
||||||
2. Create an empty pjlib/include/pj/config_site.h, and
|
|
||||||
3. build the pjsua_wince application.
|
|
||||||
|
|
||||||
Invoking Older Build System (e.g. for RTEMS)
|
|
||||||
Generally these should be all that are needed to build the libraries,
|
|
||||||
applications, and samples:
|
|
||||||
|
|
||||||
$ ./configure-legacy
|
|
||||||
$ make dep && make clean && make
|
|
||||||
|
|
||||||
Locating Output Binaries/Libraries
|
|
||||||
Libraries will be put in lib directory, and binaries will be put in
|
|
||||||
bin directory, under each projects.
|
|
||||||
|
|
||||||
Running the Applications
|
|
||||||
After successful build, you can try running pjsua application on
|
|
||||||
pjsip-apps/bin directory. PJSUA manual can be found in
|
|
||||||
http://www.pjsip.org/pjsua.htm page.
|
|
||||||
|
|
||||||
|
|
||||||
Table of Contents:
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
1. Getting the Source Distribution
|
|
||||||
|
|
||||||
1.1 Getting the Release tarball
|
|
||||||
|
|
||||||
1.2 Getting from Subversion trunk
|
|
||||||
|
|
||||||
1.3 Source Directories Layout
|
|
||||||
|
|
||||||
2. Build Preparation
|
|
||||||
|
|
||||||
2.1 config_site.h file
|
|
||||||
|
|
||||||
2.2 Disk Space Requirements
|
|
||||||
|
|
||||||
3. Building Linux, *nix, *BSD, and MacOS X Targets with GNU Build
|
|
||||||
Systems
|
|
||||||
|
|
||||||
3.1 Supported Targets
|
|
||||||
|
|
||||||
3.2 Requirements
|
|
||||||
|
|
||||||
3.3 Running configure
|
|
||||||
|
|
||||||
3.4 Running make
|
|
||||||
|
|
||||||
3.5 Cross Compilation
|
|
||||||
|
|
||||||
3.6 Build Customizations
|
|
||||||
|
|
||||||
4. Building for Windows Targets with Microsoft Visual Studio
|
|
||||||
|
|
||||||
4.1 Requirements
|
|
||||||
|
|
||||||
4.2 Building the Projects
|
|
||||||
|
|
||||||
4.3 Debugging the Sample Application
|
|
||||||
|
|
||||||
5. Building for Windows Mobile Targets (Windows CE/WinCE/PDA/SmartPhone)
|
|
||||||
|
|
||||||
5.1 Requirements
|
|
||||||
|
|
||||||
5.2 Building the Projects
|
|
||||||
|
|
||||||
6. Older PJLIB Build System for Non-Autoconf Targets (e.g. RTEMS)
|
|
||||||
|
|
||||||
6.1 Supported Targets
|
|
||||||
|
|
||||||
6.2 Invoking the Build System
|
|
||||||
|
|
||||||
7. Running the Applications
|
|
||||||
|
|
||||||
7.1 pjsua
|
|
||||||
|
|
||||||
7.2 Sample Applications
|
|
||||||
|
|
||||||
7.3 pjlib-test
|
|
||||||
|
|
||||||
7.4 pjsip-test
|
|
||||||
|
|
||||||
8. Using PJPROJECT with Applications
|
|
||||||
|
|
||||||
|
|
||||||
Appendix I: Common Problems/Frequently Asked Question (FAQ)
|
|
||||||
|
|
||||||
I.1 fatal error C1083: Cannot open include file: 'pj/config_site.h':
|
|
||||||
No such file or directory
|
|
||||||
|
|
||||||
|
|
||||||
1. Getting the Source Code Distribution
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
All libraries (PJLIB, PJLIB-UTIL, PJSIP, PJMEDIA, and PJMEDIA-CODEC) are
|
|
||||||
currently distributed under a single source tree, collectively named as
|
|
||||||
PJPROJECT or just PJ libraries. These libraries can be obtained by either
|
|
||||||
downloading the release tarball or getting them from the Subversion trunk.
|
|
||||||
|
|
||||||
|
|
||||||
1.1 Getting the Release tarball
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
Getting the released tarball is a convenient way to obtain stable version of
|
|
||||||
PJPROJECT. The tarball may not contain the latest features or bug-fixes, but
|
|
||||||
normally it is considered more stable as each will be tested more rigorously
|
|
||||||
before released.
|
|
||||||
|
|
||||||
The latest released tarball can be downloaded from the
|
|
||||||
http://www.pjsip.org/download.htm.
|
|
||||||
|
|
||||||
|
|
||||||
1.2 Getting from Subversion trunk
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
PJPROJECT Subversion repository will always contain the latest/most
|
|
||||||
up-to-date version of the sources. Normally the Subversion repository is
|
|
||||||
always kept in a "good" state. However, there's always a chance that things
|
|
||||||
break and the tree doesn't build correctly (particularly for the
|
|
||||||
"not-so-popular" targets), so please consult the mailing list should there
|
|
||||||
be any problems.
|
|
||||||
|
|
||||||
Using Subversion also has benefits of keeping the local copy of the source
|
|
||||||
up to date with the main PJ source tree and to easily track the changes made
|
|
||||||
to the local copy, if any.
|
|
||||||
|
|
||||||
|
|
||||||
What is Subversion
|
|
||||||
|
|
||||||
Subversion (SVN) is Open Source version control system similar to CVS.
|
|
||||||
Subversion homepage is in http://subversion.tigris.org/
|
|
||||||
|
|
||||||
|
|
||||||
Getting Subversion Client
|
|
||||||
|
|
||||||
A Subversion (SVN) client is needed to download the PJ source files from
|
|
||||||
pjsip.org SVN tree. SVN client binaries can be downloaded from
|
|
||||||
http://subversion.tigris.org/, and the program should be available for
|
|
||||||
Windows, Linux, MacOS X, and many more platforms.
|
|
||||||
|
|
||||||
|
|
||||||
Getting the Source for The First Time
|
|
||||||
|
|
||||||
Once Subversion client is installed, we can use these commands to initially
|
|
||||||
retrieve the latest sources from the Subversion trunk:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$ svn co http://svn.pjproject.net/repos/pjproject/trunk pjproject
|
|
||||||
$ cd pjproject
|
|
||||||
|
|
||||||
|
|
||||||
Keeping The Local Copy Up-to-Date
|
|
||||||
|
|
||||||
Once sources have been downloaded, we can keep the local copy up to date by
|
|
||||||
periodically synchronizing the local source with the latest revision from
|
|
||||||
the PJ's Subversion trunk. The mailing list provides best source of
|
|
||||||
information about the availability of new updates in the trunk.
|
|
||||||
|
|
||||||
To update the local copy with the latest changes in the main PJ's
|
|
||||||
repository:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$ cd pjproject
|
|
||||||
$ svn update
|
|
||||||
|
|
||||||
|
|
||||||
Tracking Local and Remote Changes
|
|
||||||
|
|
||||||
To see what files have been changed locally:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$ cd pjproject
|
|
||||||
$ svn status
|
|
||||||
|
|
||||||
The above command only compares local file against the original local copy,
|
|
||||||
so it doesn't require Internet connection while performing the check.
|
|
||||||
|
|
||||||
To see both what files have been changed locally and what files have been
|
|
||||||
updated in the PJ's Subversion repository:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$ cd pjproject
|
|
||||||
$ svn status -u
|
|
||||||
|
|
||||||
Note that this command requires active Internet connection to query the
|
|
||||||
status of PJPROJECT's source repository.
|
|
||||||
|
|
||||||
|
|
||||||
1.3 Source Directories Layout
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
Top-Level Directory Layout
|
|
||||||
|
|
||||||
The top-level directories (denoted as $TOP here) in the source distribution
|
|
||||||
contains the following sub-directories:
|
|
||||||
|
|
||||||
$TOP/build
|
|
||||||
Contains makefiles that are common for all projects.
|
|
||||||
|
|
||||||
$TOP/pjlib
|
|
||||||
Contains header and source files of PJLIB. PJLIB is the base
|
|
||||||
portability and framework library which is used by all other
|
|
||||||
libraries
|
|
||||||
|
|
||||||
$TOP/pjlib-util
|
|
||||||
Contains PJLIB-UTIL header and source files. PJLIB-UTIL is an
|
|
||||||
auxiliary library that contains utility functions such as scanner,
|
|
||||||
XML, STUN, MD5 algorithm, getopt() implementation, etc.
|
|
||||||
|
|
||||||
$TOP/pjmedia
|
|
||||||
Contains PJMEDIA and PJMEDIA-CODEC header and source files. The
|
|
||||||
sources of various codecs (such as GSM, Speex, and iLBC) can be found
|
|
||||||
under this directory.
|
|
||||||
|
|
||||||
$TOP/pjsip
|
|
||||||
Contains PJSIP header and source files.
|
|
||||||
|
|
||||||
$TOP/pjsip-apps
|
|
||||||
Contains source code for PJSUA and various sample applications.
|
|
||||||
|
|
||||||
|
|
||||||
Individual Directory Inside Each Project
|
|
||||||
|
|
||||||
Each library directory further contains these sub-directories:
|
|
||||||
|
|
||||||
bin
|
|
||||||
Contains binaries produced by the build process.
|
|
||||||
|
|
||||||
build
|
|
||||||
Contains build scripts/makefiles, project files, project workspace,
|
|
||||||
etc. to build the project. In particular, it contains one Makefile
|
|
||||||
file to build the project with GNU build systems, and a *.dsw
|
|
||||||
workspace file to build the library with Microsoft Visual Studio 6 or
|
|
||||||
later.
|
|
||||||
|
|
||||||
build/output
|
|
||||||
The build/output directory contains the object files and other files
|
|
||||||
generated by the build process. To support building multiple targets
|
|
||||||
with a single source tree, each build target will occupy a different
|
|
||||||
subdirectory under this directory.
|
|
||||||
|
|
||||||
build/wince-evc4
|
|
||||||
This directory contains the project/workspace files to build Windows
|
|
||||||
CE/WinCE version of the project using Microsoft Embedded Visual C++
|
|
||||||
4.
|
|
||||||
|
|
||||||
build/wince-evc4/output
|
|
||||||
This directory contains the library, executable, and object files
|
|
||||||
generated by Windows Mobile build process.
|
|
||||||
|
|
||||||
docs
|
|
||||||
Contains Doxygen configuration file (doxygen.cfg) to generate online
|
|
||||||
documentation from the source files. The output documentation will be
|
|
||||||
put in this directory as well (for example, docs/html directory for
|
|
||||||
the HTML files).
|
|
||||||
|
|
||||||
(to generate Doxygen documentation from the source tree, just run
|
|
||||||
"doxygen docs/doxygen.cfg" in the individual project directory. The
|
|
||||||
generated files will reside in docs directory).
|
|
||||||
|
|
||||||
include
|
|
||||||
Contains the header files for the project.
|
|
||||||
|
|
||||||
lib
|
|
||||||
Contains libraries produced by the build process.
|
|
||||||
|
|
||||||
src
|
|
||||||
Contains the source files of the project.
|
|
||||||
|
|
||||||
|
|
||||||
2. Build Preparation
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
2.1 Create config_site.h file
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
Before source files can be built, the pjlib/include/pj/config_site.h file
|
|
||||||
must be created (it can just be an empty file).
|
|
||||||
|
|
||||||
Note:
|
|
||||||
When the Makefile based build system is used, this process is taken
|
|
||||||
care by the Makefiles. But when non-Makefile based build system (such
|
|
||||||
as Visual Studio) is used, the config_site.h file must be created
|
|
||||||
manually.
|
|
||||||
|
|
||||||
|
|
||||||
What is config_site.h File
|
|
||||||
|
|
||||||
The pjlib/include/pj/config_site.h contains local customizations to the
|
|
||||||
libraries.
|
|
||||||
|
|
||||||
All customizations should be put in this file instead of modifying PJ's
|
|
||||||
files, because if PJ's files get modified, then those modified files will
|
|
||||||
not be updated the next time the source is synchronized. Or in other case,
|
|
||||||
the local modification may be overwritten with the fresh copy from the SVN.
|
|
||||||
|
|
||||||
Putting the local customization to the config_site.h solves this problem,
|
|
||||||
because this file is not included in the version control, so it will never
|
|
||||||
be overwritten by "svn update" command.
|
|
||||||
|
|
||||||
Please find list of configuration macros that can be overriden from these
|
|
||||||
files:
|
|
||||||
* PJLIB Configuration (the pjlib/config.h file)
|
|
||||||
* PJLIB-UTIL Configuration (the pjlib-util/config.h file)
|
|
||||||
* PJMEDIA Configuration (the pjmedia/config.h file)
|
|
||||||
* PJSIP Configuration (the pjsip/sip_config.h file)
|
|
||||||
|
|
||||||
A sample config_site.h file is also available in
|
|
||||||
pjlib/include/config_site_sample.h.
|
|
||||||
|
|
||||||
|
|
||||||
Creating config_site.h file
|
|
||||||
|
|
||||||
The simplest way is just to create an empty file, to use whetever default
|
|
||||||
values set by the libraries.
|
|
||||||
|
|
||||||
Another way to create the config_site.h file is to write something like the
|
|
||||||
following:
|
|
||||||
|
|
||||||
|
|
||||||
// Uncomment to get minimum footprint (suitable for 1-2 concurrent calls
|
|
||||||
only)
|
|
||||||
//#define PJ_CONFIG_MINIMAL_SIZE
|
|
||||||
// Uncomment to get maximum performance
|
|
||||||
//#define PJ_CONFIG_MAXIMUM_SPEED
|
|
||||||
#include <pj/config_site_sample.h>
|
|
||||||
|
|
||||||
|
|
||||||
2.2 Disk Space Requirements
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
The building process needs:
|
|
||||||
about 50-60 MB of disk space to store the uncompressed source files, and
|
|
||||||
* about 30-50 MB of additional space for building each target
|
|
||||||
|
|
||||||
(Visual Studio Debug and Release are considered as separate targets)
|
|
||||||
|
|
||||||
|
|
||||||
3. Building Linux, *nix, *BSD, and MacOS X Targets with GNU Build Systems
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
3.1 Supported Targets
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
The new, autoconf based GNU build system can be used to build the
|
|
||||||
libraries/applications for the following targets:
|
|
||||||
* Linux/uC-Linux (i386, Opteron, Itanium, MIPS, PowerPC, etc.),
|
|
||||||
* MacOS X (PowerPC),
|
|
||||||
* mingw (i386),
|
|
||||||
* FreeBSD and maybe other BSD's (i386, Opteron, etc.),
|
|
||||||
* RTEMS with cross compilation (ARM, powerpc),
|
|
||||||
* Embox RTOS (i386, ARM including STM32),
|
|
||||||
* etc.
|
|
||||||
|
|
||||||
|
|
||||||
3.2 Requirements
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
In order to use PJ's GNU build system, these typical GNU tools are needed:
|
|
||||||
* GNU make (other make will not work),
|
|
||||||
* GNU binutils for the target, and
|
|
||||||
* GNU gcc for the target.
|
|
||||||
* OpenSSL header files/libraries (optional) if TLS support is wanted.
|
|
||||||
|
|
||||||
In addition, the appropriate "SDK" must be installed for the particular
|
|
||||||
target (this could just be a libc and the appropriate system abstraction
|
|
||||||
library such as Posix).
|
|
||||||
|
|
||||||
The build system is known to work on the following hosts:
|
|
||||||
* Linux, many types of distributions.
|
|
||||||
* MacOS X 10.2
|
|
||||||
* mingw (Win2K, XP)
|
|
||||||
* FreeBSD (must use gmake instead of make)
|
|
||||||
|
|
||||||
Building Win32 applications with Cygwin is currently not supported by the
|
|
||||||
autoconf script (there is some Windows header conflicts), but one can still
|
|
||||||
use the old configure script by calling ./configure-legacy. More over,
|
|
||||||
cross-compilations might also work with Cygwin.
|
|
||||||
|
|
||||||
|
|
||||||
3.3 Running configure
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
Using Default Settings
|
|
||||||
|
|
||||||
Run "./configure" without any options to let the script detect the
|
|
||||||
appropriate settings for the host:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$ cd pjproject
|
|
||||||
$ ./configure
|
|
||||||
...
|
|
||||||
|
|
||||||
Notes:
|
|
||||||
The default settings build the libraries in "debug" mode
|
|
||||||
(active assert()), with default CFLAGS set to "-O2". To change
|
|
||||||
the default CFLAGS, we can use the usual "./configure CFLAGS='-g'"
|
|
||||||
construct. To build in "release" mode, and deactivate assert(),
|
|
||||||
we can use "./configure CFLAGS='-DNDEBUG'".
|
|
||||||
|
|
||||||
Features Customization
|
|
||||||
|
|
||||||
With the new autoconf based build system, most configuration/customization
|
|
||||||
can be specified as configure arguments. The list of customizable features
|
|
||||||
can be viewed by running "./configure --help" command:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$ cd pjproject
|
|
||||||
$ ./configure --help
|
|
||||||
...
|
|
||||||
Optional Features:
|
|
||||||
--enable-epoll Use epoll on Linux instead of select
|
|
||||||
--disable-floating-point Disable floating point where possible
|
|
||||||
--disable-sound Exclude sound (i.e. use null sound)
|
|
||||||
--disable-small-filter Exclude small filter in resampling
|
|
||||||
--disable-large-filter Exclude large filter in resampling
|
|
||||||
--disable-g711-plc Exclude G.711 Annex A PLC
|
|
||||||
--disable-speex-aec Exclude Speex Acoustic Echo Canceller/AEC
|
|
||||||
--disable-g711-codec Exclude G.711 codecs from the build
|
|
||||||
--disable-l16-codec Exclude Linear/L16 codec family from the build
|
|
||||||
--disable-gsm-codec Exclude GSM codec in the build
|
|
||||||
--disable-speex-codec Exclude Speex codecs in the build
|
|
||||||
--disable-ilbc-codec Exclude iLBC codec in the build
|
|
||||||
--disable-tls Force excluding TLS support (default is autodetected based on
|
|
||||||
OpenSSL availability)
|
|
||||||
...
|
|
||||||
|
|
||||||
Configuring Debug Version and Other Customizations
|
|
||||||
|
|
||||||
The configure script accepts standard customization, which details can be
|
|
||||||
obtained by executing ./configure --help.
|
|
||||||
|
|
||||||
Below is an example of specifying CFLAGS in configure:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$ ./configure CFLAGS="-O3 -DNDEBUG -msoft-float -fno-builtin"
|
|
||||||
...
|
|
||||||
|
|
||||||
Configuring TLS Support
|
|
||||||
|
|
||||||
By default, TLS support is configured based on the availability of OpenSSL
|
|
||||||
header files and libraries. If OpenSSL is available at the default include
|
|
||||||
and library path locations, TLS will be enabled by the configure script.
|
|
||||||
|
|
||||||
You can explicitly disable TLS support by giving the configure script
|
|
||||||
--disable-tls option.
|
|
||||||
|
|
||||||
|
|
||||||
3.4 Cross Compilation
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
Cross compilation should be supported, using the usual autoconf syntax:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$ ./configure --host=arm-elf-linux
|
|
||||||
...
|
|
||||||
|
|
||||||
Since cross-compilation is not tested as often as the "normal" build, please
|
|
||||||
watch for the ./configure output for incorrect settings (well ideally this
|
|
||||||
should be done for normal build too).
|
|
||||||
|
|
||||||
Please refer to Porting Guide for further information about porting PJ
|
|
||||||
software.
|
|
||||||
|
|
||||||
|
|
||||||
3.5 Running make
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
Once the configure script completes successfully, start the build process by
|
|
||||||
invoking these commands:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$ cd pjproject
|
|
||||||
$ make dep
|
|
||||||
$ make
|
|
||||||
|
|
||||||
Note:
|
|
||||||
gmake may need to be specified instead of make for some hosts, to
|
|
||||||
invoke GNU make instead of the native make.
|
|
||||||
|
|
||||||
|
|
||||||
Description of all make targets supported by the Makefile's:
|
|
||||||
|
|
||||||
all
|
|
||||||
The default (or first) target to build the libraries/binaries.
|
|
||||||
|
|
||||||
dep, depend
|
|
||||||
Build dependencies rule from the source files.
|
|
||||||
|
|
||||||
clean
|
|
||||||
Clean the object files for current target, but keep the output
|
|
||||||
library/binary files intact.
|
|
||||||
|
|
||||||
distclean, realclean
|
|
||||||
Remove all generated files (object, libraries, binaries, and
|
|
||||||
dependency files) for current target.
|
|
||||||
|
|
||||||
|
|
||||||
Note:
|
|
||||||
make can be invoked either in the top-level PJ directory or in build
|
|
||||||
directory under each project to build only the particular project.
|
|
||||||
|
|
||||||
|
|
||||||
3.6 Build Customizations
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
Build features can be customized by specifying the options when running
|
|
||||||
./configure as described in Running Configure above.
|
|
||||||
|
|
||||||
In addition, additional CFLAGS and LDFLAGS options can be put in user.mak
|
|
||||||
file in PJ root directory (this file may need to be created if it doesn't
|
|
||||||
exist). Below is a sample of user.mak file contents:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export CFLAGS += -msoft-float -fno-builtin
|
|
||||||
export LDFLAGS +=
|
|
||||||
|
|
||||||
|
|
||||||
4. Building for Windows Targets with Microsoft Visual Studio
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
4.1 Requirements
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
The Microsoft Visual Studio based project files can be used with one of the
|
|
||||||
following:
|
|
||||||
|
|
||||||
* Microsoft Visual Studio 6,
|
|
||||||
* Microsoft Visual Studio .NET 2002,
|
|
||||||
* Microsoft Visual Studio .NET 2003,
|
|
||||||
* Microsoft Visual C++ 2005 (including Express edition),
|
|
||||||
|
|
||||||
In addition, the following SDK's are needed:
|
|
||||||
* Platform SDK, if you're using Visual Studio 2005 Express (tested with
|
|
||||||
Platform SDK for Windows Server 2003 SP1),
|
|
||||||
* DirectX SDK (tested with DirectX version 8 and 9),
|
|
||||||
* OpenSSL development kit would be needed if TLS support is wanted, or
|
|
||||||
otherwise this is optional.
|
|
||||||
|
|
||||||
For the host, the following are required:
|
|
||||||
* Windows NT, 2000, XP, 2003, or later ,
|
|
||||||
* Windows 95/98 should work too, but this has not been tested,
|
|
||||||
* Sufficient amount of RAM for the build process (at least 256MB).
|
|
||||||
|
|
||||||
|
|
||||||
Enabling TLS Support with OpenSSL
|
|
||||||
|
|
||||||
If TLS support is wanted, then OpenSSL SDK must be installed in the
|
|
||||||
development host.
|
|
||||||
|
|
||||||
To install OpenSSL SDK from the Win32 binary distribution:
|
|
||||||
1. Install OpenSSL SDK to any folder (e.g. C:\OpenSSL)
|
|
||||||
2. Add OpenSSL DLL location to the system PATH.
|
|
||||||
3. Add OpenSSL include path to Visual Studio includes search directory.
|
|
||||||
Make sure that OpenSSL header files can be accessed from the program
|
|
||||||
with #include <openssl/ssl.h> construct.
|
|
||||||
4. Add OpenSSL library path to Visual Studio library search directory. Make
|
|
||||||
sure the following libraries are accessible:
|
|
||||||
+ For Debug build: libeay32MTd and ssleay32MTd.
|
|
||||||
+ For Release build: libeay32MT and ssleay32MT.
|
|
||||||
|
|
||||||
Then to enable TLS transport support in PJSIP, just add
|
|
||||||
|
|
||||||
#define PJSIP_HAS_TLS_TRANSPORT 1
|
|
||||||
|
|
||||||
in your pj/config_site.h. When this macro is defined, OpenSSL libraries will
|
|
||||||
be automatically linked to the application via the #pragma construct in
|
|
||||||
sip_transport_tls_ossl.c file.
|
|
||||||
|
|
||||||
|
|
||||||
4.2 Building the Projects
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
Follow the steps below to build the libraries/application using Visual
|
|
||||||
Studio:
|
|
||||||
1. For Visual Studio 6: open pjproject.dsw workspace file.
|
|
||||||
2. For Visual Studio 8 (VS 2005): open pjproject-vs8.sln solution file.
|
|
||||||
3. Set pjsua as Active Project.
|
|
||||||
4. Select Debug or Release build as appropriate.
|
|
||||||
5. Build the project. This will build pjsua application and all libraries
|
|
||||||
needed by pjsua.
|
|
||||||
6. After successful build, the pjsua application will be placed in
|
|
||||||
pjsip-apps/bin directory, and the libraries in lib directory under each
|
|
||||||
projects.
|
|
||||||
|
|
||||||
To build the samples:
|
|
||||||
1. (Still using the same workspace)
|
|
||||||
2. Set samples project as Active Project
|
|
||||||
3. Select Debug or Release build as appropriate.
|
|
||||||
4. Build the project. This will build all sample applications and all
|
|
||||||
libraries needed.
|
|
||||||
5. After successful build, the sample applications will be placed in
|
|
||||||
pjsip-apps/bin/samples directory, and the libraries in lib directory
|
|
||||||
under each projects.
|
|
||||||
|
|
||||||
4.3 Debugging the Sample Application
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
The sample applications are build using Samples.mak makefile, therefore it
|
|
||||||
is difficult to setup debugging session in Visual Studio for these
|
|
||||||
applications. To solve this issue, the pjsip_apps workspace contain one
|
|
||||||
project called sample_debug which can be used to debug the sample
|
|
||||||
application.
|
|
||||||
|
|
||||||
To setup debugging using sample_debug project:
|
|
||||||
1. (Still using pjsip_apps workspace)
|
|
||||||
2. Set sample_debug project as Active Project
|
|
||||||
3. Edit debug.c file inside this project.
|
|
||||||
4. Modify the #include line to include the particular sample application to
|
|
||||||
debug
|
|
||||||
5. Select Debug build.
|
|
||||||
6. Build and debug the project.
|
|
||||||
|
|
||||||
|
|
||||||
5. Building for Windows Mobile Targets (Windows CE/WinCE/PDA/SmartPhone)
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
PJ supports building SIP and media stacks and applications for Windows
|
|
||||||
Mobile targets. A very simple WinCE SIP user agent (with media) application
|
|
||||||
is provided just as proof of concept that the port works.
|
|
||||||
|
|
||||||
5.1 Requirements
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
One of the following development tools is needed to build SIP and media
|
|
||||||
components for Windows Mobile:
|
|
||||||
* Microsoft Embedded Visual C++ 4 with appropriate SDKs, or
|
|
||||||
* Microsoft Visual Studio 2005 for Windows Mobile with appropriate SDKs.
|
|
||||||
|
|
||||||
Note that VS2005 is not directly supported (as I don't have the tools), but
|
|
||||||
it is reported to work (I assumed that VS2005 for Windows Mobile can import
|
|
||||||
EVC4 workspace file).
|
|
||||||
|
|
||||||
5.2 Building the Projects
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
The Windows Mobile port is included in the main source distribution. Please
|
|
||||||
follow the following steps to build the WinCE libraries and sample
|
|
||||||
application:
|
|
||||||
1. Open pjsip-apps/build/wince-evc4/wince_demos.vcw workspace file. If
|
|
||||||
later version of EVC4 is being used, this may cause the workspace file
|
|
||||||
to be converted to the appropriate format.
|
|
||||||
2. Select pjsua_wince project as the Active Project.
|
|
||||||
3. Select the appropriate SDK (for example Pocket PC 2003 SDK or SmartPhone
|
|
||||||
2003 SDK)
|
|
||||||
4. Select the appropriate configuration (for example, Win32 (WCE Emulator
|
|
||||||
Debug) to debug the program in emulator, or other configurations such as
|
|
||||||
ARMV4, MIPS, SH3, SH4, or whatever suitable for the device)
|
|
||||||
5. Select the appropriate device (Emulator or the actual Device).
|
|
||||||
6. Build the project. This will build the sample WinCE application and all
|
|
||||||
libraries (SIP, Media, etc.) needed by this application.
|
|
||||||
|
|
||||||
Notes
|
|
||||||
|
|
||||||
+ If the config_site.h includes config_site_sample.h file, then
|
|
||||||
there are certain configuration in config_site_sample.h that get
|
|
||||||
activated for Windows CE targets. Please make sure that these
|
|
||||||
configurations are suitable for the application.
|
|
||||||
+ The libraries, binaries and object files produced by the build
|
|
||||||
process are located under build/wince-evc4/output directory of each
|
|
||||||
projects.
|
|
||||||
|
|
||||||
|
|
||||||
6. Older PJLIB Build System for Non-Autoconf Targets (e.g. RTEMS)
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
The old PJLIB build system can still be used for building PJ libraries, for
|
|
||||||
example for RTEMS target. Please see the Porting PJLIB page in PJLIB
|
|
||||||
Reference documentation for information on how to support new target using
|
|
||||||
this build system.
|
|
||||||
|
|
||||||
6.1 Supported Targets
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
The older build system supports building PJ libraries for the following
|
|
||||||
operating systems:
|
|
||||||
* RTEMS
|
|
||||||
* Linux
|
|
||||||
* MacOS X
|
|
||||||
* Cygwin and Mingw
|
|
||||||
|
|
||||||
And it supports the following target architectures:
|
|
||||||
* i386, x86_64, itanium
|
|
||||||
* ARM
|
|
||||||
* mips
|
|
||||||
* powerpc
|
|
||||||
* mpc860
|
|
||||||
* etc.
|
|
||||||
|
|
||||||
For other targets, specific files need to be added to the build system,
|
|
||||||
please see the Porting PJLIB page in PJLIB Reference documentation for
|
|
||||||
details.
|
|
||||||
|
|
||||||
6.2 Invoking the Build System
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
To invoke the older build system, run the following:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$ cd pjproject
|
|
||||||
$ ./configure-legacy
|
|
||||||
$ make dep && make clean && make
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
7. Running the Applications
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
Upon successful build, the output libraries (PJLIB, PJLIB-UTIL, PJMEDIA,
|
|
||||||
PJSIP, etc.) are put under ./lib sub-directory under each project directory.
|
|
||||||
In addition, some applications may also be built, and such applications will
|
|
||||||
be put in ./bin sub-directory under each project directory.
|
|
||||||
|
|
||||||
|
|
||||||
7.1 pjsua
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
pjsua is the reference implementation for both PJSIP and PJMEDIA stack, and
|
|
||||||
is the main target of the build system. Upon successful build, pjsua
|
|
||||||
application will be put in pjsip-apps/bin directory.
|
|
||||||
|
|
||||||
pjsua manual can be found in pjsua Manual Page.
|
|
||||||
|
|
||||||
|
|
||||||
7.2 Sample Applications
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
Sample applications will be built with the Makefile build system. For Visual
|
|
||||||
Studio, you have to build the samples manually by selecting and building the
|
|
||||||
Samples project inside pjsip-apps/build/pjsip_apps.dsw project workspace.
|
|
||||||
|
|
||||||
Upon successful build, the sample applications are put in
|
|
||||||
pjsip-apps/bin/samples directory.
|
|
||||||
|
|
||||||
The sample applications are described in PJMEDIA Samples Page and
|
|
||||||
PJSIP Samples Page in the website.
|
|
||||||
|
|
||||||
|
|
||||||
7.3 pjlib-test
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
pjlib-test contains comprehensive tests for testing PJLIB functionality.
|
|
||||||
This application will only be built when the Makefile build system is used;
|
|
||||||
with Visual Studio, one has to open pjlib.dsw project in pjlib/build
|
|
||||||
directory to build this application.
|
|
||||||
|
|
||||||
If you're porting PJLIB to new target, it is recommended to run this
|
|
||||||
application to make sure that all functionalities works as expected.
|
|
||||||
|
|
||||||
|
|
||||||
7.4 pjsip-test
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
pjsip-test contains codes for testing various SIP functionalities in PJSIP
|
|
||||||
and also to benchmark static performance metrics such as message parsing per
|
|
||||||
second.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
8. Using PJPROJECT with Applications
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
Regardless of the build system being used, the following tasks are normally
|
|
||||||
needed to be done in order to build application to use PJSIP and PJMEDIA:
|
|
||||||
1. Put these include directories in the include search path:
|
|
||||||
+ pjlib/include
|
|
||||||
+ pjlib-util/include
|
|
||||||
+ pjmedia/include
|
|
||||||
+ pjsip/include
|
|
||||||
2. Put these library directories in the library search path:
|
|
||||||
+ pjlib/lib
|
|
||||||
+ pjlib-util/lib
|
|
||||||
+ pjmedia/lib
|
|
||||||
+ pjsip/lib
|
|
||||||
3. Include the relevant PJ header files in the application source file. For
|
|
||||||
example, using these would include ALL APIs exported by PJ:
|
|
||||||
|
|
||||||
#include <pjlib.h>
|
|
||||||
#include <pjlib-util.h>
|
|
||||||
#include <pjsip.h>
|
|
||||||
#include <pjsip_ua.h>
|
|
||||||
#include <pjsip_simple.h>
|
|
||||||
#include <pjsua.h>
|
|
||||||
#include <pjmedia.h>
|
|
||||||
#include <pjmedia-codec.h>
|
|
||||||
(Note: the documentation of the relevant libraries should say which
|
|
||||||
header files should be included to get the declaration of the APIs).
|
|
||||||
4. Declare the OS macros.
|
|
||||||
+ For Windows applications built with Visual Studio, we need to
|
|
||||||
declare PJ_WIN32=1 macro in the project settings (declaring the
|
|
||||||
macro in the source file may not be sufficient).
|
|
||||||
+ For Windows Mobile applications build with Visual C++, we need to
|
|
||||||
declare PJ_WIN32_WINCE=1 macro in the project settings.
|
|
||||||
+ For GNU build system/autoconf based build system, we need to
|
|
||||||
declare PJ_AUTOCONF=1 macro when compiling the applications.
|
|
||||||
(Note: the old PJ build system requires declaring the target processor
|
|
||||||
with PJ_M_XXX=1 macro, but this has been made obsolete. The target
|
|
||||||
processor will be detected from compiler's predefined macro by
|
|
||||||
pjlib/config.h file).
|
|
||||||
5. Link with the appropriate PJ libraries. The following libraries will
|
|
||||||
need to be included in the library link specifications:
|
|
||||||
|
|
||||||
pjlib
|
|
||||||
Base library used by all libraries.
|
|
||||||
|
|
||||||
pjlib-util
|
|
||||||
Auxiliary library containing scanner, XML, STUN, MD5, getopt,
|
|
||||||
etc, used by the SIP and media stack.
|
|
||||||
|
|
||||||
pjsip
|
|
||||||
SIP core stack library.
|
|
||||||
|
|
||||||
pjsip-ua
|
|
||||||
SIP user agent library containing INVITE session, call
|
|
||||||
transfer, client registration, etc.
|
|
||||||
|
|
||||||
pjsip-simple
|
|
||||||
SIP SIMPLE library for base event framework, presence, instant
|
|
||||||
messaging, etc.
|
|
||||||
|
|
||||||
pjsua
|
|
||||||
High level SIP UA library, combining SIP and media stack into
|
|
||||||
high-level easy to use API.
|
|
||||||
|
|
||||||
pjmedia
|
|
||||||
The media framework.
|
|
||||||
|
|
||||||
pjmedia-codec
|
|
||||||
Container library for various codecs such as GSM, Speex, and
|
|
||||||
iLBC.
|
|
||||||
|
|
||||||
|
|
||||||
Note: the actual library names will be appended with the target name and the
|
|
||||||
build configuration. For example:
|
|
||||||
|
|
||||||
For Visual Studio builds
|
|
||||||
The actual library names will look like
|
|
||||||
pjlib-i386-win32-vc6-debug.lib,
|
|
||||||
pjlib-i386-win32-vc6-release.lib, etc., depending on whether we
|
|
||||||
are building the Debug or Release version of the library.
|
|
||||||
|
|
||||||
An easier way to link with the libraries is to include PJ
|
|
||||||
project files in the workspace, and to configure project
|
|
||||||
dependencies so that the application depends on the PJ
|
|
||||||
libraries. This way, we don't need to manually add each PJ
|
|
||||||
libraries to the input library file specification, since VS
|
|
||||||
will automatically link the dependency libraries with the
|
|
||||||
application.
|
|
||||||
|
|
||||||
For Windows Mobile builds
|
|
||||||
Unfortunately the PJ libraries built for Windows Mobile will
|
|
||||||
not be placed in the usual lib directory, but rather under the
|
|
||||||
output directory under build/wince-evc4 project directory.
|
|
||||||
|
|
||||||
An easier way to link with the libraries is to include PJ
|
|
||||||
project files in the workspace, and to configure project
|
|
||||||
dependencies so that the application depends on the PJ
|
|
||||||
libraries. This way, we don't need to manually add each PJ
|
|
||||||
libraries to the input library file specification, since VS
|
|
||||||
will automatically link the dependency libraries with the
|
|
||||||
application.
|
|
||||||
|
|
||||||
For GNU builds
|
|
||||||
Application's Makefile can get the PJ library suffix by
|
|
||||||
including PJ's build.mak file from the root PJ directory (the
|
|
||||||
suffix is contained in TARGET_NAME variable). For example, to
|
|
||||||
link with PJLIB and PJMEDIA, we can use this syntax in the
|
|
||||||
LDFLAGS: "-lpj-$(TARGET_NAME) -lpjmedia-$(TARGET_NAME)"
|
|
||||||
|
|
||||||
|
|
||||||
6. Link with system spesific libraries:
|
|
||||||
|
|
||||||
Windows
|
|
||||||
Add (among other things): wsock32.lib, ws2_32.lib, ole32.lib,
|
|
||||||
dsound.lib
|
|
||||||
|
|
||||||
Linux, *nix, *BSD
|
|
||||||
Add (among other things): '-lpthread -lm' (at least).
|
|
||||||
|
|
||||||
MacOS X
|
|
||||||
Add (among other things): '-framework CoreAudio -lpthread -lm'.
|
|
||||||
|
|
||||||
|
|
||||||
Appendix I: Common Problems/Frequently Asked Question (FAQ)
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
I.1 fatal error C1083: Cannot open include file: 'pj/config_site.h': No such
|
|
||||||
file or directory
|
|
||||||
|
|
||||||
This error normally occurs when the config_site.h file has not been created.
|
|
||||||
This file needs to be created manually (an empty file is sufficient). Please
|
|
||||||
follow the Build Preparation instructions above to create this file.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
_________________________________________________________________
|
|
||||||
|
|
||||||
Feedback:
|
|
||||||
Thanks for using PJ libraries and for reading this document. Please
|
|
||||||
send feedbacks or general comments to <bennylp at pjsip dot org>.
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,44 +0,0 @@
|
||||||
#
|
|
||||||
# This is a utility make file that is used to generate BB10 config settings
|
|
||||||
# from current build settings. The stdout output of this make file can be
|
|
||||||
# saved to a .pri file which then can be included in app's .pro file.
|
|
||||||
#
|
|
||||||
# This make file is invoked by configure-bb10 script to generate pjsip.pri
|
|
||||||
# file.
|
|
||||||
#
|
|
||||||
include build.mak
|
|
||||||
|
|
||||||
# Generate library list (the "-lxxx" options) from list of linked libraries.
|
|
||||||
PJ_BB_LIBS = $(filter-out -lm -lsocket, $(APP_LDLIBS))
|
|
||||||
|
|
||||||
# This used to generate the library path list (the "-Lxxx" options)
|
|
||||||
# We replace the path with "$$PJ_DIR"
|
|
||||||
PJ_BB_LDFLAGS = $(subst $(PJDIR),\$$\$$PJ_DIR,$(APP_LDFLAGS))
|
|
||||||
|
|
||||||
all:
|
|
||||||
@echo PJ_DIR = $(PJDIR)
|
|
||||||
@echo
|
|
||||||
@echo 'DEFINES += PJ_AUTOCONF'
|
|
||||||
@echo
|
|
||||||
@echo 'PJ_INCLUDEPATH += $$$$quote($$$$PJ_DIR/pjlib/include)'
|
|
||||||
@echo 'PJ_INCLUDEPATH += $$$$quote($$$$PJ_DIR/pjmedia/include)'
|
|
||||||
@echo 'PJ_INCLUDEPATH += $$$$quote($$$$PJ_DIR/pjnath/include)'
|
|
||||||
@echo 'PJ_INCLUDEPATH += $$$$quote($$$$PJ_DIR/pjlib-util/include)'
|
|
||||||
@echo 'PJ_INCLUDEPATH += $$$$quote($$$$PJ_DIR/pjsip/include)'
|
|
||||||
@echo
|
|
||||||
@for token in $(PJ_BB_LDFLAGS); do \
|
|
||||||
if echo $$token | grep -- '-L' >> /dev/null; then \
|
|
||||||
echo "PJ_LIBPATH += \$$\$$quote($$token)"; \
|
|
||||||
fi; \
|
|
||||||
done
|
|
||||||
@echo
|
|
||||||
@for token in $(PJ_BB_LIBS); do \
|
|
||||||
echo PJ_LIBS += $$token; \
|
|
||||||
done
|
|
||||||
@echo
|
|
||||||
@echo 'INCLUDEPATH += $$$$PJ_INCLUDEPATH'
|
|
||||||
@echo 'LIBS += $$$$PJ_LIBPATH'
|
|
||||||
@echo 'LIBS += $$$$PJ_LIBS'
|
|
||||||
@echo 'LIBS += -lOpenAL -lalut -laudio_manager -lsocket -lasound -lbbsystem -lm'
|
|
||||||
|
|
||||||
|
|
|
@ -1,339 +0,0 @@
|
||||||
export PJDIR := @ac_pjdir@
|
|
||||||
include $(PJDIR)/version.mak
|
|
||||||
export PJ_DIR := $(PJDIR)
|
|
||||||
|
|
||||||
# @configure_input@
|
|
||||||
export MACHINE_NAME := auto
|
|
||||||
export OS_NAME := auto
|
|
||||||
export HOST_NAME := unix
|
|
||||||
export CC_NAME := gcc
|
|
||||||
export TARGET_ARCH := @ac_target_arch@
|
|
||||||
export TARGET_NAME := @target@
|
|
||||||
export CROSS_COMPILE := @ac_cross_compile@
|
|
||||||
export LINUX_POLL := @ac_linux_poll@
|
|
||||||
export SHLIB_SUFFIX := @ac_shlib_suffix@
|
|
||||||
|
|
||||||
export prefix := @prefix@
|
|
||||||
export exec_prefix := @exec_prefix@
|
|
||||||
export includedir := @includedir@
|
|
||||||
export libdir := @libdir@
|
|
||||||
|
|
||||||
LIB_SUFFIX := $(TARGET_NAME).a
|
|
||||||
|
|
||||||
ifeq (@ac_shared_libraries@,1)
|
|
||||||
export PJ_SHARED_LIBRARIES := 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq (@ac_no_pjsua2@,1)
|
|
||||||
export PJ_EXCLUDE_PJSUA2 := 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifndef EXCLUDE_APP
|
|
||||||
ifeq ($(findstring android,$(TARGET_NAME)),)
|
|
||||||
export EXCLUDE_APP := 0
|
|
||||||
else
|
|
||||||
export EXCLUDE_APP := 1
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Determine which party libraries to use
|
|
||||||
export APP_THIRD_PARTY_EXT :=
|
|
||||||
export APP_THIRD_PARTY_LIBS :=
|
|
||||||
export APP_THIRD_PARTY_LIB_FILES :=
|
|
||||||
|
|
||||||
ifneq (@ac_external_srtp@,0)
|
|
||||||
# External SRTP library
|
|
||||||
APP_THIRD_PARTY_EXT += -l@ac_external_srtp_lib@
|
|
||||||
else
|
|
||||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libsrtp-$(LIB_SUFFIX)
|
|
||||||
ifeq ($(PJ_SHARED_LIBRARIES),)
|
|
||||||
APP_THIRD_PARTY_LIBS += -lsrtp-$(TARGET_NAME)
|
|
||||||
else
|
|
||||||
APP_THIRD_PARTY_LIBS += -lsrtp
|
|
||||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libsrtp.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libsrtp.$(SHLIB_SUFFIX)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq (@ac_pjmedia_resample@,libresample)
|
|
||||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libresample-$(LIB_SUFFIX)
|
|
||||||
ifeq ($(PJ_SHARED_LIBRARIES),)
|
|
||||||
ifeq (@ac_resample_dll@,1)
|
|
||||||
export PJ_RESAMPLE_DLL := 1
|
|
||||||
APP_THIRD_PARTY_LIBS += -lresample
|
|
||||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libresample.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libresample.$(SHLIB_SUFFIX)
|
|
||||||
else
|
|
||||||
APP_THIRD_PARTY_LIBS += -lresample-$(TARGET_NAME)
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
APP_THIRD_PARTY_LIBS += -lresample
|
|
||||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libresample.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libresample.$(SHLIB_SUFFIX)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq (@ac_no_gsm_codec@,1)
|
|
||||||
ifeq (@ac_external_gsm@,1)
|
|
||||||
# External GSM library
|
|
||||||
APP_THIRD_PARTY_EXT += -lgsm
|
|
||||||
else
|
|
||||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libgsmcodec-$(LIB_SUFFIX)
|
|
||||||
ifeq ($(PJ_SHARED_LIBRARIES),)
|
|
||||||
APP_THIRD_PARTY_LIBS += -lgsmcodec-$(TARGET_NAME)
|
|
||||||
else
|
|
||||||
APP_THIRD_PARTY_LIBS += -lgsmcodec
|
|
||||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libgsmcodec.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libgsmcodec.$(SHLIB_SUFFIX)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq (@ac_no_speex_codec@,1)
|
|
||||||
ifeq (@ac_external_speex@,1)
|
|
||||||
APP_THIRD_PARTY_EXT += -lspeex -lspeexdsp
|
|
||||||
else
|
|
||||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libspeex-$(LIB_SUFFIX)
|
|
||||||
ifeq ($(PJ_SHARED_LIBRARIES),)
|
|
||||||
APP_THIRD_PARTY_LIBS += -lspeex-$(TARGET_NAME)
|
|
||||||
else
|
|
||||||
APP_THIRD_PARTY_LIBS += -lspeex
|
|
||||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libspeex.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libspeex.$(SHLIB_SUFFIX)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq (@ac_no_ilbc_codec@,1)
|
|
||||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libilbccodec-$(LIB_SUFFIX)
|
|
||||||
ifeq ($(PJ_SHARED_LIBRARIES),)
|
|
||||||
APP_THIRD_PARTY_LIBS += -lilbccodec-$(TARGET_NAME)
|
|
||||||
else
|
|
||||||
APP_THIRD_PARTY_LIBS += -lilbccodec
|
|
||||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libilbccodec.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libilbccodec.$(SHLIB_SUFFIX)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq (@ac_no_g7221_codec@,1)
|
|
||||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libg7221codec-$(LIB_SUFFIX)
|
|
||||||
ifeq ($(PJ_SHARED_LIBRARIES),)
|
|
||||||
APP_THIRD_PARTY_LIBS += -lg7221codec-$(TARGET_NAME)
|
|
||||||
else
|
|
||||||
APP_THIRD_PARTY_LIBS += -lg7221codec
|
|
||||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libg7221codec.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libg7221codec.$(SHLIB_SUFFIX)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq (@ac_external_pa@,1)
|
|
||||||
# External PA
|
|
||||||
APP_THIRD_PARTY_EXT += -lportaudio
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq (@ac_no_yuv@,1)
|
|
||||||
ifeq (@ac_external_yuv@,1)
|
|
||||||
APP_THIRD_PARTY_EXT += -lyuv
|
|
||||||
else
|
|
||||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libyuv-$(LIB_SUFFIX)
|
|
||||||
ifeq ($(PJ_SHARED_LIBRARIES),)
|
|
||||||
APP_THIRD_PARTY_LIBS += -lyuv-$(TARGET_NAME)
|
|
||||||
else
|
|
||||||
APP_THIRD_PARTY_LIBS += -lyuv
|
|
||||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libyuv.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libyuv.$(SHLIB_SUFFIX)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq (@ac_no_webrtc@,1)
|
|
||||||
ifeq (@ac_external_webrtc@,1)
|
|
||||||
APP_THIRD_PARTY_EXT += -lwebrtc
|
|
||||||
else
|
|
||||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libwebrtc-$(LIB_SUFFIX)
|
|
||||||
ifeq ($(PJ_SHARED_LIBRARIES),)
|
|
||||||
APP_THIRD_PARTY_LIBS += -lwebrtc-$(TARGET_NAME)
|
|
||||||
else
|
|
||||||
APP_THIRD_PARTY_LIBS += -lwebrtc
|
|
||||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libwebrtc.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/third_party/lib/libwebrtc.$(SHLIB_SUFFIX)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
# Additional flags
|
|
||||||
@ac_build_mak_vars@
|
|
||||||
|
|
||||||
#
|
|
||||||
# Video
|
|
||||||
# Note: there are duplicated macros in pjmedia/os-auto.mak.in (and that's not
|
|
||||||
# good!
|
|
||||||
|
|
||||||
# SDL flags
|
|
||||||
SDL_CFLAGS = @ac_sdl_cflags@
|
|
||||||
SDL_LDFLAGS = @ac_sdl_ldflags@
|
|
||||||
|
|
||||||
# FFMPEG flags
|
|
||||||
FFMPEG_CFLAGS = @ac_ffmpeg_cflags@
|
|
||||||
FFMPEG_LDFLAGS = @ac_ffmpeg_ldflags@
|
|
||||||
|
|
||||||
# Video4Linux2
|
|
||||||
V4L2_CFLAGS = @ac_v4l2_cflags@
|
|
||||||
V4L2_LDFLAGS = @ac_v4l2_ldflags@
|
|
||||||
|
|
||||||
# OPENH264 flags
|
|
||||||
OPENH264_CFLAGS = @ac_openh264_cflags@
|
|
||||||
OPENH264_LDFLAGS = @ac_openh264_ldflags@
|
|
||||||
|
|
||||||
# VPX flags
|
|
||||||
VPX_CFLAGS = @ac_vpx_cflags@
|
|
||||||
VPX_LDFLAGS = @ac_vpx_ldflags@
|
|
||||||
|
|
||||||
# QT
|
|
||||||
AC_PJMEDIA_VIDEO_HAS_QT = @ac_pjmedia_video_has_qt@
|
|
||||||
# QT_CFLAGS = @ac_qt_cflags@
|
|
||||||
|
|
||||||
# Darwin (Mac and iOS)
|
|
||||||
AC_PJMEDIA_VIDEO_HAS_DARWIN = @ac_pjmedia_video_has_darwin@
|
|
||||||
AC_PJMEDIA_VIDEO_HAS_VTOOLBOX = @ac_pjmedia_video_has_vtoolbox@
|
|
||||||
AC_PJMEDIA_VIDEO_HAS_IOS_OPENGL = @ac_pjmedia_video_has_ios_opengl@
|
|
||||||
DARWIN_CFLAGS = @ac_darwin_cflags@
|
|
||||||
|
|
||||||
# mingw
|
|
||||||
AC_PJMEDIA_VIDEO_DEV_HAS_DSHOW = @ac_pjmedia_video_dev_has_dshow@
|
|
||||||
ifeq (@ac_pjmedia_video_dev_has_dshow@,yes)
|
|
||||||
DSHOW_CFLAGS = @ac_dshow_cflags@
|
|
||||||
DSHOW_LDFLAGS = @ac_dshow_ldflags@
|
|
||||||
APP_THIRD_PARTY_LIB_FILES += $(PJ_DIR)/third_party/lib/libbaseclasses-$(LIB_SUFFIX)
|
|
||||||
APP_THIRD_PARTY_LIBS += -lbaseclasses-$(TARGET_NAME)
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Android
|
|
||||||
ANDROID_CFLAGS = @ac_android_cflags@
|
|
||||||
|
|
||||||
# PJMEDIA features exclusion
|
|
||||||
PJ_VIDEO_CFLAGS += $(SDL_CFLAGS) $(FFMPEG_CFLAGS) $(V4L2_CFLAGS) $(DSHOW_CFLAGS) $(QT_CFLAGS) \
|
|
||||||
$(OPENH264_CFLAGS) $(VPX_CFLAGS) $(DARWIN_CFLAGS)
|
|
||||||
PJ_VIDEO_LDFLAGS += $(SDL_LDFLAGS) $(FFMPEG_LDFLAGS) $(V4L2_LDFLAGS) $(DSHOW_LDFLAGS) \
|
|
||||||
$(OPENH264_LDFLAGS) $(VPX_LDFLAGS)
|
|
||||||
|
|
||||||
# CFLAGS, LDFLAGS, and LIBS to be used by applications
|
|
||||||
export APP_CC := @CC@
|
|
||||||
export APP_CXX := @CXX@
|
|
||||||
export APP_CFLAGS := -DPJ_AUTOCONF=1\
|
|
||||||
@CFLAGS@\
|
|
||||||
$(PJ_VIDEO_CFLAGS) \
|
|
||||||
-I$(PJDIR)/pjlib/include\
|
|
||||||
-I$(PJDIR)/pjlib-util/include\
|
|
||||||
-I$(PJDIR)/pjnath/include\
|
|
||||||
-I$(PJDIR)/pjmedia/include\
|
|
||||||
-I$(PJDIR)/pjsip/include
|
|
||||||
export APP_CXXFLAGS := @CXXFLAGS@ $(APP_CFLAGS)
|
|
||||||
export APP_LDFLAGS := -L$(PJDIR)/pjlib/lib\
|
|
||||||
-L$(PJDIR)/pjlib-util/lib\
|
|
||||||
-L$(PJDIR)/pjnath/lib\
|
|
||||||
-L$(PJDIR)/pjmedia/lib\
|
|
||||||
-L$(PJDIR)/pjsip/lib\
|
|
||||||
-L$(PJDIR)/third_party/lib\
|
|
||||||
$(PJ_VIDEO_LDFLAGS) \
|
|
||||||
@LDFLAGS@
|
|
||||||
export APP_LDXXFLAGS := $(APP_LDFLAGS)
|
|
||||||
|
|
||||||
export APP_LIB_FILES := \
|
|
||||||
$(PJ_DIR)/pjsip/lib/libpjsua-$(LIB_SUFFIX) \
|
|
||||||
$(PJ_DIR)/pjsip/lib/libpjsip-ua-$(LIB_SUFFIX) \
|
|
||||||
$(PJ_DIR)/pjsip/lib/libpjsip-simple-$(LIB_SUFFIX) \
|
|
||||||
$(PJ_DIR)/pjsip/lib/libpjsip-$(LIB_SUFFIX) \
|
|
||||||
$(PJ_DIR)/pjmedia/lib/libpjmedia-codec-$(LIB_SUFFIX) \
|
|
||||||
$(PJ_DIR)/pjmedia/lib/libpjmedia-videodev-$(LIB_SUFFIX) \
|
|
||||||
$(PJ_DIR)/pjmedia/lib/libpjmedia-$(LIB_SUFFIX) \
|
|
||||||
$(PJ_DIR)/pjmedia/lib/libpjmedia-audiodev-$(LIB_SUFFIX) \
|
|
||||||
$(PJ_DIR)/pjnath/lib/libpjnath-$(LIB_SUFFIX) \
|
|
||||||
$(PJ_DIR)/pjlib-util/lib/libpjlib-util-$(LIB_SUFFIX) \
|
|
||||||
$(APP_THIRD_PARTY_LIB_FILES) \
|
|
||||||
$(PJ_DIR)/pjlib/lib/libpj-$(LIB_SUFFIX)
|
|
||||||
export APP_LIBXX_FILES := \
|
|
||||||
$(PJ_DIR)/pjsip/lib/libpjsua2-$(LIB_SUFFIX) \
|
|
||||||
$(APP_LIB_FILES)
|
|
||||||
|
|
||||||
ifeq ($(PJ_SHARED_LIBRARIES),)
|
|
||||||
export PJLIB_LDLIB := -lpj-$(TARGET_NAME)
|
|
||||||
export PJLIB_UTIL_LDLIB := -lpjlib-util-$(TARGET_NAME)
|
|
||||||
export PJNATH_LDLIB := -lpjnath-$(TARGET_NAME)
|
|
||||||
export PJMEDIA_AUDIODEV_LDLIB := -lpjmedia-audiodev-$(TARGET_NAME)
|
|
||||||
export PJMEDIA_VIDEODEV_LDLIB := -lpjmedia-videodev-$(TARGET_NAME)
|
|
||||||
export PJMEDIA_LDLIB := -lpjmedia-$(TARGET_NAME)
|
|
||||||
export PJMEDIA_CODEC_LDLIB := -lpjmedia-codec-$(TARGET_NAME)
|
|
||||||
export PJSIP_LDLIB := -lpjsip-$(TARGET_NAME)
|
|
||||||
export PJSIP_SIMPLE_LDLIB := -lpjsip-simple-$(TARGET_NAME)
|
|
||||||
export PJSIP_UA_LDLIB := -lpjsip-ua-$(TARGET_NAME)
|
|
||||||
export PJSUA_LIB_LDLIB := -lpjsua-$(TARGET_NAME)
|
|
||||||
export PJSUA2_LIB_LDLIB := -lpjsua2-$(TARGET_NAME)
|
|
||||||
else
|
|
||||||
export PJLIB_LDLIB := -lpj
|
|
||||||
export PJLIB_UTIL_LDLIB := -lpjlib-util
|
|
||||||
export PJNATH_LDLIB := -lpjnath
|
|
||||||
export PJMEDIA_AUDIODEV_LDLIB := -lpjmedia-audiodev
|
|
||||||
export PJMEDIA_VIDEODEV_LDLIB := -lpjmedia-videodev
|
|
||||||
export PJMEDIA_LDLIB := -lpjmedia
|
|
||||||
export PJMEDIA_CODEC_LDLIB := -lpjmedia-codec
|
|
||||||
export PJSIP_LDLIB := -lpjsip
|
|
||||||
export PJSIP_SIMPLE_LDLIB := -lpjsip-simple
|
|
||||||
export PJSIP_UA_LDLIB := -lpjsip-ua
|
|
||||||
export PJSUA_LIB_LDLIB := -lpjsua
|
|
||||||
export PJSUA2_LIB_LDLIB := -lpjsua2
|
|
||||||
|
|
||||||
export ADD_LIB_FILES := $(PJ_DIR)/pjsip/lib/libpjsua.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjsip/lib/libpjsua.$(SHLIB_SUFFIX) \
|
|
||||||
$(PJ_DIR)/pjsip/lib/libpjsip-ua.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjsip/lib/libpjsip-ua.$(SHLIB_SUFFIX) \
|
|
||||||
$(PJ_DIR)/pjsip/lib/libpjsip-simple.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjsip/lib/libpjsip-simple.$(SHLIB_SUFFIX) \
|
|
||||||
$(PJ_DIR)/pjsip/lib/libpjsip.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjsip/lib/libpjsip.$(SHLIB_SUFFIX) \
|
|
||||||
$(PJ_DIR)/pjmedia/lib/libpjmedia-codec.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjmedia/lib/libpjmedia-codec.$(SHLIB_SUFFIX) \
|
|
||||||
$(PJ_DIR)/pjmedia/lib/libpjmedia-videodev.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjmedia/lib/libpjmedia-videodev.$(SHLIB_SUFFIX) \
|
|
||||||
$(PJ_DIR)/pjmedia/lib/libpjmedia.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjmedia/lib/libpjmedia.$(SHLIB_SUFFIX) \
|
|
||||||
$(PJ_DIR)/pjmedia/lib/libpjmedia-audiodev.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjmedia/lib/libpjmedia-audiodev.$(SHLIB_SUFFIX) \
|
|
||||||
$(PJ_DIR)/pjnath/lib/libpjnath.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjnath/lib/libpjnath.$(SHLIB_SUFFIX) \
|
|
||||||
$(PJ_DIR)/pjlib-util/lib/libpjlib-util.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjlib-util/lib/libpjlib-util.$(SHLIB_SUFFIX) \
|
|
||||||
$(PJ_DIR)/pjlib/lib/libpj.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjlib/lib/libpj.$(SHLIB_SUFFIX)
|
|
||||||
|
|
||||||
APP_LIB_FILES += $(ADD_LIB_FILES)
|
|
||||||
|
|
||||||
APP_LIBXX_FILES += $(PJ_DIR)/pjsip/lib/libpjsua2.$(SHLIB_SUFFIX).$(PJ_VERSION_MAJOR) $(PJ_DIR)/pjsip/lib/libpjsua2.$(SHLIB_SUFFIX) \
|
|
||||||
$(ADD_LIB_FILES)
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(PJ_EXCLUDE_PJSUA2),1)
|
|
||||||
export PJSUA2_LIB_LDLIB :=
|
|
||||||
endif
|
|
||||||
|
|
||||||
export APP_LDLIBS := $(PJSUA_LIB_LDLIB) \
|
|
||||||
$(PJSIP_UA_LDLIB) \
|
|
||||||
$(PJSIP_SIMPLE_LDLIB) \
|
|
||||||
$(PJSIP_LDLIB) \
|
|
||||||
$(PJMEDIA_CODEC_LDLIB) \
|
|
||||||
$(PJMEDIA_LDLIB) \
|
|
||||||
$(PJMEDIA_VIDEODEV_LDLIB) \
|
|
||||||
$(PJMEDIA_AUDIODEV_LDLIB) \
|
|
||||||
$(PJMEDIA_LDLIB) \
|
|
||||||
$(PJNATH_LDLIB) \
|
|
||||||
$(PJLIB_UTIL_LDLIB) \
|
|
||||||
$(APP_THIRD_PARTY_LIBS)\
|
|
||||||
$(APP_THIRD_PARTY_EXT)\
|
|
||||||
$(PJLIB_LDLIB) \
|
|
||||||
@LIBS@
|
|
||||||
export APP_LDXXLIBS := $(PJSUA2_LIB_LDLIB) \
|
|
||||||
-lstdc++ \
|
|
||||||
$(APP_LDLIBS)
|
|
||||||
|
|
||||||
# Here are the variables to use if application is using the library
|
|
||||||
# from within the source distribution
|
|
||||||
export PJ_CC := $(APP_CC)
|
|
||||||
export PJ_CXX := $(APP_CXX)
|
|
||||||
export PJ_CFLAGS := $(APP_CFLAGS)
|
|
||||||
export PJ_CXXFLAGS := $(APP_CXXFLAGS)
|
|
||||||
export PJ_LDFLAGS := $(APP_LDFLAGS)
|
|
||||||
export PJ_LDXXFLAGS := $(APP_LDXXFLAGS)
|
|
||||||
export PJ_LDLIBS := $(APP_LDLIBS)
|
|
||||||
export PJ_LDXXLIBS := $(APP_LDXXLIBS)
|
|
||||||
export PJ_LIB_FILES := $(APP_LIB_FILES)
|
|
||||||
export PJ_LIBXX_FILES := $(APP_LIBXX_FILES)
|
|
||||||
|
|
||||||
# And here are the variables to use if application is using the
|
|
||||||
# library from the install location (i.e. --prefix)
|
|
||||||
export PJ_INSTALL_DIR := @prefix@
|
|
||||||
export PJ_INSTALL_INC_DIR := @includedir@
|
|
||||||
export PJ_INSTALL_LIB_DIR := @libdir@
|
|
||||||
export PJ_INSTALL_CFLAGS := -I$(PJ_INSTALL_INC_DIR) -DPJ_AUTOCONF=1 @ac_cflags@
|
|
||||||
export PJ_INSTALL_LDFLAGS_PRIVATE := $(APP_THIRD_PARTY_LIBS) $(APP_THIRD_PARTY_EXT) @LIBS@
|
|
||||||
export PJ_INSTALL_LDFLAGS := -L$(PJ_INSTALL_LIB_DIR) $(filter-out $(PJ_INSTALL_LDFLAGS_PRIVATE),$(APP_LDXXLIBS))
|
|
|
@ -1,7 +0,0 @@
|
||||||
@rem set MWSym2Libraries=1
|
|
||||||
@rem set EPOCROOT=\Symbian\9.1\S60_3rd\
|
|
||||||
@rem set EPOCROOT=\Symbian\9.1\S60_3rd_MR_2\
|
|
||||||
@rem set EPOCROOT=\Symbian\UIQ3SDK\
|
|
||||||
@rem set EPOCROOT=\symbian\UIQ3.1\
|
|
||||||
@rem set EPOCROOT=\symbian\9.2\S60_3rd_FP1\
|
|
||||||
bldmake bldfiles
|
|
|
@ -1,7 +0,0 @@
|
||||||
@rem call abld build -v vs6 udeb
|
|
||||||
@rem call abld build -v gcce urel
|
|
||||||
@rem call abld build winscw udeb
|
|
||||||
call abld build %1 %2 %3 %4
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
prj_platforms
|
|
||||||
winscw
|
|
||||||
armv5
|
|
||||||
gcce
|
|
||||||
|
|
||||||
prj_mmpfiles
|
|
||||||
|
|
||||||
/* Libraries */
|
|
||||||
pjlib.mmp
|
|
||||||
pjlib_util.mmp
|
|
||||||
pjnath.mmp
|
|
||||||
pjsdp.mmp
|
|
||||||
pjmedia.mmp
|
|
||||||
pjsip.mmp
|
|
||||||
pjsip_simple.mmp
|
|
||||||
pjsip_ua.mmp
|
|
||||||
pjsua_lib.mmp
|
|
||||||
libsrtp.mmp
|
|
||||||
|
|
||||||
/* Codecs */
|
|
||||||
libgsmcodec.mmp
|
|
||||||
libspeexcodec.mmp
|
|
||||||
libg7221codec.mmp
|
|
||||||
libpassthroughcodec.mmp
|
|
||||||
|
|
||||||
/* Resample */
|
|
||||||
libresample.mmp
|
|
||||||
|
|
||||||
/* Audio device. */
|
|
||||||
pjmedia_audiodev.mmp
|
|
||||||
|
|
||||||
/* Applications */
|
|
||||||
//symsndtest.mmp
|
|
||||||
pjlib_test.mmp
|
|
||||||
../pjsip-apps/src/pjsua/symbian/group/pjsua.mmp
|
|
|
@ -1,56 +0,0 @@
|
||||||
TARGET libg7221codec.lib
|
|
||||||
TARGETTYPE lib
|
|
||||||
|
|
||||||
//OPTION CW -lang c++
|
|
||||||
OPTION GCCE -O2 -fno-unit-at-a-time
|
|
||||||
OPTION ARMCC --gnu
|
|
||||||
|
|
||||||
MACRO PJ_M_I386=1
|
|
||||||
MACRO PJ_SYMBIAN=1
|
|
||||||
|
|
||||||
//
|
|
||||||
// GSM codec third party source
|
|
||||||
//
|
|
||||||
|
|
||||||
SOURCEPATH ..\third_party\g7221\common
|
|
||||||
|
|
||||||
SOURCE basic_op.c
|
|
||||||
SOURCE common.c
|
|
||||||
SOURCE huff_tab.c
|
|
||||||
SOURCE tables.c
|
|
||||||
|
|
||||||
SOURCEPATH ..\third_party\g7221\decode
|
|
||||||
|
|
||||||
SOURCE coef2sam.c
|
|
||||||
SOURCE dct4_s.c
|
|
||||||
SOURCE decoder.c
|
|
||||||
|
|
||||||
SOURCEPATH ..\third_party\g7221\encode
|
|
||||||
|
|
||||||
SOURCE dct4_a.c
|
|
||||||
SOURCE encoder.c
|
|
||||||
SOURCE sam2coef.c
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// GSM codec wrapper for pjmedia-codec
|
|
||||||
//
|
|
||||||
|
|
||||||
SOURCEPATH ..\pjmedia\src\pjmedia-codec
|
|
||||||
SOURCE g7221.c
|
|
||||||
|
|
||||||
//
|
|
||||||
// Header files
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
SYSTEMINCLUDE ..\pjmedia\include
|
|
||||||
SYSTEMINCLUDE ..\pjlib\include
|
|
||||||
SYSTEMINCLUDE ..\third_party
|
|
||||||
SYSTEMINCLUDE ..\third_party\g7221\common
|
|
||||||
SYSTEMINCLUDE ..\third_party\g7221\decode
|
|
||||||
SYSTEMINCLUDE ..\third_party\g7221\encode
|
|
||||||
|
|
||||||
SYSTEMINCLUDE \epoc32\include
|
|
||||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
||||||
|
|
|
@ -1,72 +0,0 @@
|
||||||
#if defined(PJ_BUILD_DLL)
|
|
||||||
|
|
||||||
TARGET libgsmcodec.dll
|
|
||||||
TARGETTYPE dll
|
|
||||||
UID 0x0 0xA000000F
|
|
||||||
|
|
||||||
CAPABILITY None
|
|
||||||
LIBRARY pjlib.lib euser.lib estlib.lib
|
|
||||||
MACRO PJ_DLL
|
|
||||||
MACRO PJ_EXPORTING
|
|
||||||
|
|
||||||
DEFFILE .\libgsmcodec.def
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
TARGET libgsmcodec.lib
|
|
||||||
TARGETTYPE lib
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//OPTION CW -lang c++
|
|
||||||
OPTION ARMCC --gnu
|
|
||||||
|
|
||||||
MACRO PJ_M_I386=1
|
|
||||||
MACRO PJ_SYMBIAN=1
|
|
||||||
|
|
||||||
//
|
|
||||||
// GSM codec third party source
|
|
||||||
//
|
|
||||||
|
|
||||||
SOURCEPATH ..\third_party\gsm\src
|
|
||||||
|
|
||||||
SOURCE add.c
|
|
||||||
SOURCE code.c
|
|
||||||
SOURCE debug.c
|
|
||||||
SOURCE decode.c
|
|
||||||
SOURCE gsm_create.c
|
|
||||||
SOURCE gsm_decode.c
|
|
||||||
SOURCE gsm_destroy.c
|
|
||||||
SOURCE gsm_encode.c
|
|
||||||
SOURCE gsm_explode.c
|
|
||||||
SOURCE gsm_implode.c
|
|
||||||
SOURCE gsm_option.c
|
|
||||||
SOURCE gsm_print.c
|
|
||||||
SOURCE long_term.c
|
|
||||||
SOURCE lpc.c
|
|
||||||
SOURCE preprocess.c
|
|
||||||
SOURCE rpe.c
|
|
||||||
SOURCE short_term.c
|
|
||||||
SOURCE table.c
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// GSM codec wrapper for pjmedia-codec
|
|
||||||
//
|
|
||||||
|
|
||||||
SOURCEPATH ..\pjmedia\src\pjmedia-codec
|
|
||||||
SOURCE gsm.c
|
|
||||||
|
|
||||||
//
|
|
||||||
// Header files
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
SYSTEMINCLUDE ..\pjmedia\include
|
|
||||||
SYSTEMINCLUDE ..\pjlib\include
|
|
||||||
SYSTEMINCLUDE ..\third_party\build\gsm
|
|
||||||
SYSTEMINCLUDE ..\third_party\gsm\inc
|
|
||||||
|
|
||||||
SYSTEMINCLUDE \epoc32\include
|
|
||||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
TARGET libpassthroughcodec.lib
|
|
||||||
TARGETTYPE lib
|
|
||||||
|
|
||||||
MACRO HAVE_CONFIG_H
|
|
||||||
MACRO PJ_M_I386=1
|
|
||||||
MACRO PJ_SYMBIAN=1
|
|
||||||
|
|
||||||
//
|
|
||||||
// GCCE optimization setting
|
|
||||||
//
|
|
||||||
OPTION GCCE -O2 -fno-unit-at-a-time
|
|
||||||
OPTION ARMCC --gnu
|
|
||||||
|
|
||||||
//
|
|
||||||
// Passthrough codecs wrapper for pjmedia-codec
|
|
||||||
//
|
|
||||||
SOURCEPATH ..\pjmedia\src\pjmedia-codec
|
|
||||||
SOURCE passthrough.c
|
|
||||||
|
|
||||||
//
|
|
||||||
// Header files
|
|
||||||
//
|
|
||||||
SYSTEMINCLUDE ..\pjmedia\include
|
|
||||||
SYSTEMINCLUDE ..\pjlib\include
|
|
||||||
|
|
||||||
SYSTEMINCLUDE \epoc32\include
|
|
||||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
|
@ -1,26 +0,0 @@
|
||||||
TARGET libresample.lib
|
|
||||||
TARGETTYPE lib
|
|
||||||
|
|
||||||
SOURCEPATH ..\third_party\resample\src
|
|
||||||
|
|
||||||
//
|
|
||||||
// GCCE optimization setting
|
|
||||||
//
|
|
||||||
OPTION GCCE -O2 -fno-unit-at-a-time
|
|
||||||
OPTION ARMCC --gnu
|
|
||||||
|
|
||||||
MACRO PJ_M_I386=1
|
|
||||||
MACRO PJ_SYMBIAN=1
|
|
||||||
|
|
||||||
MACRO RESAMPLE_HAS_SMALL_FILTER=1
|
|
||||||
MACRO RESAMPLE_HAS_LARGE_FILTER=0
|
|
||||||
|
|
||||||
SOURCE resamplesubs.c
|
|
||||||
|
|
||||||
SYSTEMINCLUDE ..\third_party\resample\include
|
|
||||||
SYSTEMINCLUDE ..\third_party\build\resample
|
|
||||||
|
|
||||||
SYSTEMINCLUDE \epoc32\include
|
|
||||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
||||||
|
|
||||||
|
|
|
@ -1,74 +0,0 @@
|
||||||
TARGET libspeexcodec.lib
|
|
||||||
TARGETTYPE lib
|
|
||||||
|
|
||||||
MACRO HAVE_CONFIG_H
|
|
||||||
MACRO PJ_M_I386=1
|
|
||||||
MACRO PJ_SYMBIAN=1
|
|
||||||
|
|
||||||
//
|
|
||||||
// GCCE optimization setting
|
|
||||||
//
|
|
||||||
OPTION GCCE -O2 -fno-unit-at-a-time
|
|
||||||
OPTION ARMCC --gnu
|
|
||||||
|
|
||||||
//
|
|
||||||
// Speex files
|
|
||||||
//
|
|
||||||
SOURCEPATH ..\third_party\speex\libspeex
|
|
||||||
|
|
||||||
SOURCE bits.c
|
|
||||||
SOURCE cb_search.c
|
|
||||||
SOURCE exc_5_64_table.c
|
|
||||||
SOURCE exc_5_256_table.c
|
|
||||||
SOURCE exc_8_128_table.c
|
|
||||||
SOURCE exc_10_16_table.c
|
|
||||||
SOURCE exc_10_32_table.c
|
|
||||||
SOURCE exc_20_32_table.c
|
|
||||||
SOURCE fftwrap.c
|
|
||||||
SOURCE filterbank.c
|
|
||||||
SOURCE filters.c
|
|
||||||
SOURCE gain_table.c
|
|
||||||
SOURCE gain_table_lbr.c
|
|
||||||
SOURCE hexc_10_32_table.c
|
|
||||||
SOURCE hexc_table.c
|
|
||||||
SOURCE high_lsp_tables.c
|
|
||||||
SOURCE kiss_fft.c
|
|
||||||
SOURCE kiss_fftr.c
|
|
||||||
SOURCE lpc.c
|
|
||||||
SOURCE lsp.c
|
|
||||||
SOURCE lsp_tables_nb.c
|
|
||||||
SOURCE ltp.c
|
|
||||||
SOURCE mdf.c
|
|
||||||
SOURCE modes.c
|
|
||||||
SOURCE modes_wb.c
|
|
||||||
SOURCE nb_celp.c
|
|
||||||
SOURCE preprocess.c
|
|
||||||
SOURCE quant_lsp.c
|
|
||||||
SOURCE sb_celp.c
|
|
||||||
SOURCE smallft.c
|
|
||||||
SOURCE speex.c
|
|
||||||
SOURCE speex_callbacks.c
|
|
||||||
SOURCE speex_header.c
|
|
||||||
SOURCE stereo.c
|
|
||||||
SOURCE vbr.c
|
|
||||||
SOURCE vq.c
|
|
||||||
SOURCE window.c
|
|
||||||
|
|
||||||
//
|
|
||||||
// Speex codec wrapper for pjmedia-codec
|
|
||||||
//
|
|
||||||
SOURCEPATH ..\pjmedia\src\pjmedia-codec
|
|
||||||
SOURCE speex_codec.c
|
|
||||||
|
|
||||||
//
|
|
||||||
// Header files
|
|
||||||
//
|
|
||||||
SYSTEMINCLUDE ..\third_party\speex\include\speex
|
|
||||||
SYSTEMINCLUDE ..\third_party\speex\include
|
|
||||||
SYSTEMINCLUDE ..\third_party\speex\symbian
|
|
||||||
|
|
||||||
SYSTEMINCLUDE ..\pjmedia\include
|
|
||||||
SYSTEMINCLUDE ..\pjlib\include
|
|
||||||
|
|
||||||
SYSTEMINCLUDE \epoc32\include
|
|
||||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
|
@ -1,60 +0,0 @@
|
||||||
TARGET libsrtp.lib
|
|
||||||
TARGETTYPE lib
|
|
||||||
|
|
||||||
MACRO PJ_M_I386=1
|
|
||||||
MACRO PJ_SYMBIAN=1
|
|
||||||
|
|
||||||
//
|
|
||||||
// GCCE optimization setting
|
|
||||||
//
|
|
||||||
OPTION GCCE -O2 -fno-unit-at-a-time
|
|
||||||
OPTION ARMCC --gnu
|
|
||||||
|
|
||||||
//
|
|
||||||
// Speex files
|
|
||||||
//
|
|
||||||
SOURCEPATH ..\third_party\srtp
|
|
||||||
|
|
||||||
SOURCE crypto\ae_xfm\xfm.c
|
|
||||||
SOURCE crypto\cipher\aes.c
|
|
||||||
SOURCE crypto\cipher\aes_cbc.c
|
|
||||||
SOURCE crypto\cipher\aes_icm.c
|
|
||||||
SOURCE crypto\cipher\cipher.c
|
|
||||||
SOURCE crypto\cipher\null_cipher.c
|
|
||||||
SOURCE crypto\hash\auth.c
|
|
||||||
SOURCE crypto\hash\hmac.c
|
|
||||||
SOURCE crypto\hash\null_auth.c
|
|
||||||
SOURCE crypto\hash\sha1.c
|
|
||||||
SOURCE crypto\kernel\alloc.c
|
|
||||||
SOURCE crypto\kernel\crypto_kernel.c
|
|
||||||
//SOURCE crypto\kernel\err.c
|
|
||||||
SOURCE crypto\kernel\key.c
|
|
||||||
SOURCE crypto\math\datatypes.c
|
|
||||||
SOURCE crypto\math\gf2_8.c
|
|
||||||
//SOURCE crypto\math\math.c
|
|
||||||
SOURCE crypto\math\stat.c
|
|
||||||
SOURCE crypto\replay\rdb.c
|
|
||||||
SOURCE crypto\replay\rdbx.c
|
|
||||||
//SOURCE crypto\replay\ut_sim.c
|
|
||||||
SOURCE crypto\rng\ctr_prng.c
|
|
||||||
SOURCE crypto\rng\prng.c
|
|
||||||
//SOURCE crypto\rng\rand_linux_kernel.c
|
|
||||||
SOURCE crypto\rng\rand_source.c
|
|
||||||
SOURCE pjlib\srtp_err.c
|
|
||||||
SOURCE srtp\srtp.c
|
|
||||||
SOURCE tables\aes_tables.c
|
|
||||||
|
|
||||||
//SOURCEPATH ..\pjmedia\src\pjmedia
|
|
||||||
|
|
||||||
//SOURCE transport_srtp.c
|
|
||||||
|
|
||||||
//
|
|
||||||
// Header files
|
|
||||||
//
|
|
||||||
SYSTEMINCLUDE ..\third_party\srtp\include
|
|
||||||
SYSTEMINCLUDE ..\third_party\srtp\crypto\include
|
|
||||||
SYSTEMINCLUDE ..\third_party\build\srtp
|
|
||||||
SYSTEMINCLUDE ..\pjlib\include
|
|
||||||
|
|
||||||
SYSTEMINCLUDE \epoc32\include
|
|
||||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
|
@ -1,80 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
MMP=$1
|
|
||||||
if test "$MMP" == ""; then
|
|
||||||
echo "Usage: makedef.sh FILE.MMP"
|
|
||||||
echo " or makedef.sh all"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$MMP" == "all"; then
|
|
||||||
. $0 pjlib.mmp
|
|
||||||
. $0 pjlib_util.mmp
|
|
||||||
. $0 pjnath.mmp
|
|
||||||
. $0 pjmedia.mmp
|
|
||||||
. $0 pjsdp.mmp
|
|
||||||
. $0 pjsip.mmp
|
|
||||||
. $0 pjsip_simple.mmp
|
|
||||||
. $0 pjsip_ua.mmp
|
|
||||||
. $0 pjsua_lib.mmp
|
|
||||||
. $0 symbian_audio.mmp
|
|
||||||
. $0 null_audio.mmp
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -f $MMP; then
|
|
||||||
true
|
|
||||||
else
|
|
||||||
echo "Unable to open $MMP"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
TARGET=`grep -w '^TARGET' $MMP | awk '{print $2}' | awk -F '.' '{print $1}' | head -1`
|
|
||||||
DEFFILE="${TARGET}U.def"
|
|
||||||
SOURCES=`grep -w '^SOURCE' $MMP | awk '{print $2}' | tr '\\\\' '/'`
|
|
||||||
SOURCEPATH=`grep -w '^SOURCEPATH' $MMP | tr '\\\\' '/' | awk '{print $2}'`
|
|
||||||
INCPATH=`grep 'INCLUDE' $MMP | awk '{print $2}' | grep pj | tr '\\\\' '/'`
|
|
||||||
INCLUDE=""
|
|
||||||
for INC in $INCPATH; do
|
|
||||||
INCLUDE=`echo $INCLUDE -I$INC`
|
|
||||||
done
|
|
||||||
|
|
||||||
#-- debug --
|
|
||||||
#echo TARGET=$TARGET
|
|
||||||
#echo SOURCES=$SOURCES
|
|
||||||
#echo SOURCEPATH=$SOURCEPATH
|
|
||||||
#echo INCLUDE=$INCLUDE
|
|
||||||
#-- end --
|
|
||||||
|
|
||||||
echo > tmpnames.def
|
|
||||||
|
|
||||||
echo "${TARGET}:"
|
|
||||||
|
|
||||||
for file in $SOURCES; do
|
|
||||||
#SYMBOLS=`grep PJ_DEF ${SOURCEPATH}/$file | awk -F ')' '{print $2}' | awk -F '(' '{print $1}' | awk -F '=' '{print $1}' | tr -d '[:blank:]' | sort | uniq`
|
|
||||||
SYMBOLS=`
|
|
||||||
cpp -DPJ_SYMBIAN=1 -DPJ_DLL -DPJ_EXPORTING=1 $INCLUDE ${SOURCEPATH}/$file 2>&1 |
|
|
||||||
grep EXPORT_C |
|
|
||||||
sed 's/(/;/' |
|
|
||||||
sed 's/=/;/' |
|
|
||||||
awk -F ';' '{print $1}' |
|
|
||||||
awk '{print $NF}'`
|
|
||||||
echo Processing ${SOURCEPATH}/$file..
|
|
||||||
for SYM in $SYMBOLS; do
|
|
||||||
echo $SYM >> tmpnames.def
|
|
||||||
done
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "Writing $DEFFILE"
|
|
||||||
echo EXPORTS > $DEFFILE
|
|
||||||
i=0
|
|
||||||
for SYM in `cat tmpnames.def | sort | uniq`; do
|
|
||||||
echo " $SYM"
|
|
||||||
i=`expr $i + 1`
|
|
||||||
printf "\\t%-40s @ $i NONAME\\n" $SYM >> $DEFFILE
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "Done. Total $i symbols exported in $DEFFILE."
|
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
#if defined(PJ_BUILD_DLL)
|
|
||||||
|
|
||||||
TARGET null_audio.dll
|
|
||||||
TARGETTYPE dll
|
|
||||||
UID 0x0 0xA0000000
|
|
||||||
|
|
||||||
|
|
||||||
CAPABILITY None
|
|
||||||
LIBRARY pjlib.lib charconv.lib euser.lib estlib.lib
|
|
||||||
MACRO PJ_DLL
|
|
||||||
MACRO PJ_EXPORTING
|
|
||||||
|
|
||||||
DEFFILE .\null_audio.def
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
TARGET null_audio.lib
|
|
||||||
TARGETTYPE lib
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SOURCEPATH ..\pjmedia\src\pjmedia
|
|
||||||
|
|
||||||
OPTION CW -lang c++
|
|
||||||
OPTION ARMCC --gnu
|
|
||||||
|
|
||||||
MACRO PJ_M_I386=1
|
|
||||||
MACRO PJ_SYMBIAN=1
|
|
||||||
|
|
||||||
//
|
|
||||||
// Platform independent source
|
|
||||||
//
|
|
||||||
SOURCE nullsound.c
|
|
||||||
|
|
||||||
SYSTEMINCLUDE ..\pjlib\include
|
|
||||||
SYSTEMINCLUDE ..\pjmedia\include
|
|
||||||
|
|
||||||
SYSTEMINCLUDE \epoc32\include
|
|
||||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
EXPORTS
|
|
||||||
pjmedia_snd_deinit @ 1 NONAME
|
|
||||||
pjmedia_snd_get_dev_count @ 2 NONAME
|
|
||||||
pjmedia_snd_get_dev_info @ 3 NONAME
|
|
||||||
pjmedia_snd_init @ 4 NONAME
|
|
||||||
pjmedia_snd_open @ 5 NONAME
|
|
||||||
pjmedia_snd_open_player @ 6 NONAME
|
|
||||||
pjmedia_snd_open_rec @ 7 NONAME
|
|
||||||
pjmedia_snd_stream_close @ 8 NONAME
|
|
||||||
pjmedia_snd_stream_get_info @ 9 NONAME
|
|
||||||
pjmedia_snd_stream_start @ 10 NONAME
|
|
||||||
pjmedia_snd_stream_stop @ 11 NONAME
|
|
|
@ -1,122 +0,0 @@
|
||||||
#if defined(PJ_BUILD_DLL)
|
|
||||||
TARGET pjlib.dll
|
|
||||||
TARGETTYPE dll
|
|
||||||
UID 0x0 0xA0000001
|
|
||||||
|
|
||||||
CAPABILITY NONE
|
|
||||||
LIBRARY esock.lib insock.lib charconv.lib euser.lib estlib.lib
|
|
||||||
MACRO PJ_DLL
|
|
||||||
MACRO PJ_EXPORTING
|
|
||||||
|
|
||||||
DEFFILE .\pjlib.def
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
TARGET pjlib.lib
|
|
||||||
TARGETTYPE lib
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SOURCEPATH ..\pjlib\src\pj
|
|
||||||
|
|
||||||
MACRO PJ_M_I386=1
|
|
||||||
MACRO PJ_SYMBIAN=1
|
|
||||||
|
|
||||||
// Must compile as C++, otherwise exception would not work
|
|
||||||
OPTION CW -lang c++
|
|
||||||
OPTION ARMCC --cpp --gnu
|
|
||||||
OPTION GCC -x c++
|
|
||||||
OPTION GCCE -x c++
|
|
||||||
|
|
||||||
//
|
|
||||||
// Platform independent source
|
|
||||||
//
|
|
||||||
SOURCE activesock.c
|
|
||||||
SOURCE array.c
|
|
||||||
SOURCE config.c
|
|
||||||
SOURCE ctype.c
|
|
||||||
SOURCE errno.c
|
|
||||||
SOURCE fifobuf.c
|
|
||||||
SOURCE guid.c
|
|
||||||
SOURCE hash.c
|
|
||||||
SOURCE list.c
|
|
||||||
SOURCE lock.c
|
|
||||||
SOURCE string.c
|
|
||||||
SOURCE log.c
|
|
||||||
SOURCE os_info.c
|
|
||||||
SOURCE os_info_symbian.cpp
|
|
||||||
SOURCE os_time_common.c
|
|
||||||
SOURCE pool.c
|
|
||||||
SOURCE pool_buf.c
|
|
||||||
SOURCE pool_caching.c
|
|
||||||
SOURCE rand.c
|
|
||||||
SOURCE rbtree.c
|
|
||||||
SOURCE ssl_sock_common.c
|
|
||||||
SOURCE ssl_sock_dump.c
|
|
||||||
SOURCE sock_common.c
|
|
||||||
SOURCE sock_qos_common.c
|
|
||||||
SOURCE types.c
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// Platform dependent source
|
|
||||||
//
|
|
||||||
SOURCE compat\string_compat.c
|
|
||||||
SOURCE addr_resolv_symbian.cpp
|
|
||||||
SOURCE exception_symbian.cpp
|
|
||||||
SOURCE file_access_unistd.c
|
|
||||||
SOURCE file_io_ansi.c
|
|
||||||
SOURCE guid_simple.c
|
|
||||||
SOURCE ioqueue_symbian.cpp
|
|
||||||
SOURCE ip_helper_symbian.cpp
|
|
||||||
SOURCE log_writer_symbian_console.cpp
|
|
||||||
SOURCE os_core_symbian.cpp
|
|
||||||
SOURCE os_error_symbian.cpp
|
|
||||||
SOURCE os_timestamp_common.c
|
|
||||||
SOURCE os_time_unix.c
|
|
||||||
SOURCE os_timestamp_posix.c
|
|
||||||
SOURCE pool_policy_new.cpp
|
|
||||||
SOURCE ssl_sock_symbian.cpp
|
|
||||||
SOURCE sock_symbian.cpp
|
|
||||||
SOURCE sock_select_symbian.cpp
|
|
||||||
SOURCE sock_qos_symbian.cpp
|
|
||||||
SOURCE timer_symbian.cpp
|
|
||||||
SOURCE unicode_symbian.cpp
|
|
||||||
|
|
||||||
//DOCUMENT os_symbian.h
|
|
||||||
|
|
||||||
//DOCUMENT pj\addr_resolv.h
|
|
||||||
//DOCUMENT pj\array.h
|
|
||||||
//DOCUMENT pj\assert.h
|
|
||||||
//DOCUMENT pj\config.h
|
|
||||||
//DOCUMENT pj\config_site.h
|
|
||||||
//DOCUMENT pj\config_site_sample.h
|
|
||||||
//DOCUMENT pj\ctype.h
|
|
||||||
//DOCUMENT pj\errno.h
|
|
||||||
//DOCUMENT pj\except.h
|
|
||||||
//DOCUMENT pj\file_access.h
|
|
||||||
//DOCUMENT pj\file_io.h
|
|
||||||
//DOCUMENT pj\guid.h
|
|
||||||
//DOCUMENT pj\hash.h
|
|
||||||
//DOCUMENT pj\ioqueue.h
|
|
||||||
//DOCUMENT pj\ip_helper.h
|
|
||||||
//DOCUMENT pj\list.h
|
|
||||||
//DOCUMENT pj\lock.h
|
|
||||||
//DOCUMENT pj\log.h
|
|
||||||
//DOCUMENT pj\os.h
|
|
||||||
//DOCUMENT pj\\pool.h
|
|
||||||
//DOCUMENT pj\\pool_buf.h
|
|
||||||
//DOCUMENT pj\rand.h
|
|
||||||
//DOCUMENT pj\rbtree.h
|
|
||||||
//DOCUMENT pj\sock.h
|
|
||||||
//DOCUMENT pj\sock_select.h
|
|
||||||
//DOCUMENT pj\string.h
|
|
||||||
//DOCUMENT pj\timer.h
|
|
||||||
//DOCUMENT pj\types.h
|
|
||||||
//DOCUMENT pj\unicode.h
|
|
||||||
|
|
||||||
SYSTEMINCLUDE ..\pjlib\include
|
|
||||||
SYSTEMINCLUDE \epoc32\include
|
|
||||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
||||||
|
|
||||||
|
|
|
@ -1,326 +0,0 @@
|
||||||
EXPORTS
|
|
||||||
PJ_FD_CLR @ 1 NONAME
|
|
||||||
PJ_FD_COUNT @ 2 NONAME
|
|
||||||
PJ_FD_ISSET @ 3 NONAME
|
|
||||||
PJ_FD_SET @ 4 NONAME
|
|
||||||
PJ_FD_ZERO @ 5 NONAME
|
|
||||||
PJ_GUID_STRING_LENGTH @ 6 NONAME
|
|
||||||
PJ_NO_MEMORY_EXCEPTION @ 7 NONAME
|
|
||||||
PJ_VERSION @ 8 NONAME
|
|
||||||
pj_AF_INET @ 9 NONAME
|
|
||||||
pj_AF_INET6 @ 10 NONAME
|
|
||||||
pj_AF_IRDA @ 11 NONAME
|
|
||||||
pj_AF_PACKET @ 12 NONAME
|
|
||||||
pj_AF_UNIX @ 13 NONAME
|
|
||||||
pj_AF_UNSPEC @ 14 NONAME
|
|
||||||
pj_GUID_STRING_LENGTH @ 15 NONAME
|
|
||||||
pj_IPTOS_LOWDELAY @ 16 NONAME
|
|
||||||
pj_IPTOS_MINCOST @ 17 NONAME
|
|
||||||
pj_IPTOS_RELIABILITY @ 18 NONAME
|
|
||||||
pj_IPTOS_THROUGHPUT @ 19 NONAME
|
|
||||||
pj_IP_TOS @ 20 NONAME
|
|
||||||
pj_MSG_DONTROUTE @ 21 NONAME
|
|
||||||
pj_MSG_OOB @ 22 NONAME
|
|
||||||
pj_MSG_PEEK @ 23 NONAME
|
|
||||||
pj_NO_MEMORY_EXCEPTION @ 24 NONAME
|
|
||||||
pj_SOCK_DGRAM @ 25 NONAME
|
|
||||||
pj_SOCK_RAW @ 26 NONAME
|
|
||||||
pj_SOCK_RDM @ 27 NONAME
|
|
||||||
pj_SOCK_STREAM @ 28 NONAME
|
|
||||||
pj_SOL_IP @ 29 NONAME
|
|
||||||
pj_SOL_IPV6 @ 30 NONAME
|
|
||||||
pj_SOL_SOCKET @ 31 NONAME
|
|
||||||
pj_SOL_TCP @ 32 NONAME
|
|
||||||
pj_SOL_UDP @ 33 NONAME
|
|
||||||
pj_SO_RCVBUF @ 34 NONAME
|
|
||||||
pj_SO_SNDBUF @ 35 NONAME
|
|
||||||
pj_SO_TYPE @ 36 NONAME
|
|
||||||
pj_ansi_to_unicode @ 37 NONAME
|
|
||||||
pj_array_erase @ 38 NONAME
|
|
||||||
pj_array_find @ 39 NONAME
|
|
||||||
pj_array_insert @ 40 NONAME
|
|
||||||
pj_atexit @ 41 NONAME
|
|
||||||
pj_atomic_add @ 42 NONAME
|
|
||||||
pj_atomic_add_and_get @ 43 NONAME
|
|
||||||
pj_atomic_create @ 44 NONAME
|
|
||||||
pj_atomic_dec @ 45 NONAME
|
|
||||||
pj_atomic_dec_and_get @ 46 NONAME
|
|
||||||
pj_atomic_destroy @ 47 NONAME
|
|
||||||
pj_atomic_get @ 48 NONAME
|
|
||||||
pj_atomic_inc @ 49 NONAME
|
|
||||||
pj_atomic_inc_and_get @ 50 NONAME
|
|
||||||
pj_atomic_set @ 51 NONAME
|
|
||||||
pj_caching_pool_destroy @ 52 NONAME
|
|
||||||
pj_caching_pool_init @ 53 NONAME
|
|
||||||
pj_create_random_string @ 54 NONAME
|
|
||||||
pj_create_unique_string @ 55 NONAME
|
|
||||||
pj_dump_config @ 56 NONAME
|
|
||||||
pj_elapsed_cycle @ 57 NONAME
|
|
||||||
pj_elapsed_msec @ 58 NONAME
|
|
||||||
pj_elapsed_nanosec @ 59 NONAME
|
|
||||||
pj_elapsed_time @ 60 NONAME
|
|
||||||
pj_elapsed_usec @ 61 NONAME
|
|
||||||
pj_enter_critical_section @ 62 NONAME
|
|
||||||
pj_enum_ip_interface @ 63 NONAME
|
|
||||||
pj_enum_ip_route @ 64 NONAME
|
|
||||||
pj_exception_id_alloc @ 65 NONAME
|
|
||||||
pj_exception_id_free @ 66 NONAME
|
|
||||||
pj_exception_id_name @ 67 NONAME
|
|
||||||
pj_fifobuf_alloc @ 68 NONAME
|
|
||||||
pj_fifobuf_free @ 69 NONAME
|
|
||||||
pj_fifobuf_init @ 70 NONAME
|
|
||||||
pj_fifobuf_max_size @ 71 NONAME
|
|
||||||
pj_fifobuf_unalloc @ 72 NONAME
|
|
||||||
pj_file_close @ 73 NONAME
|
|
||||||
pj_file_delete @ 74 NONAME
|
|
||||||
pj_file_exists @ 75 NONAME
|
|
||||||
pj_file_flush @ 76 NONAME
|
|
||||||
pj_file_getpos @ 77 NONAME
|
|
||||||
pj_file_getstat @ 78 NONAME
|
|
||||||
pj_file_move @ 79 NONAME
|
|
||||||
pj_file_open @ 80 NONAME
|
|
||||||
pj_file_read @ 81 NONAME
|
|
||||||
pj_file_setpos @ 82 NONAME
|
|
||||||
pj_file_size @ 83 NONAME
|
|
||||||
pj_file_write @ 84 NONAME
|
|
||||||
pj_generate_unique_string @ 85 NONAME
|
|
||||||
pj_get_netos_error @ 86 NONAME
|
|
||||||
pj_get_os_error @ 87 NONAME
|
|
||||||
pj_get_timestamp @ 88 NONAME
|
|
||||||
pj_get_timestamp_freq @ 89 NONAME
|
|
||||||
pj_get_version @ 90 NONAME
|
|
||||||
pj_getaddrinfo @ 91 NONAME
|
|
||||||
pj_getdefaultipinterface @ 92 NONAME
|
|
||||||
pj_gethostaddr @ 93 NONAME
|
|
||||||
pj_gethostbyname @ 94 NONAME
|
|
||||||
pj_gethostip @ 95 NONAME
|
|
||||||
pj_gethostname @ 96 NONAME
|
|
||||||
pj_getpid @ 97 NONAME
|
|
||||||
pj_gettimeofday @ 98 NONAME
|
|
||||||
pj_hash_calc @ 99 NONAME
|
|
||||||
pj_hash_calc_tolower @ 100 NONAME
|
|
||||||
pj_hash_count @ 101 NONAME
|
|
||||||
pj_hash_create @ 102 NONAME
|
|
||||||
pj_hash_first @ 103 NONAME
|
|
||||||
pj_hash_get @ 104 NONAME
|
|
||||||
pj_hash_next @ 105 NONAME
|
|
||||||
pj_hash_set @ 106 NONAME
|
|
||||||
pj_hash_set_np @ 107 NONAME
|
|
||||||
pj_hash_this @ 108 NONAME
|
|
||||||
pj_htonl @ 109 NONAME
|
|
||||||
pj_htons @ 110 NONAME
|
|
||||||
pj_inet_addr @ 111 NONAME
|
|
||||||
pj_inet_addr2 @ 112 NONAME
|
|
||||||
pj_inet_aton @ 113 NONAME
|
|
||||||
pj_inet_ntoa @ 114 NONAME
|
|
||||||
pj_inet_ntop @ 115 NONAME
|
|
||||||
pj_inet_ntop2 @ 116 NONAME
|
|
||||||
pj_inet_pton @ 117 NONAME
|
|
||||||
pj_init @ 118 NONAME
|
|
||||||
pj_ioqueue_accept @ 119 NONAME
|
|
||||||
pj_ioqueue_connect @ 120 NONAME
|
|
||||||
pj_ioqueue_create @ 121 NONAME
|
|
||||||
pj_ioqueue_destroy @ 122 NONAME
|
|
||||||
pj_ioqueue_get_user_data @ 123 NONAME
|
|
||||||
pj_ioqueue_is_pending @ 124 NONAME
|
|
||||||
pj_ioqueue_name @ 125 NONAME
|
|
||||||
pj_ioqueue_op_key_init @ 126 NONAME
|
|
||||||
pj_ioqueue_poll @ 127 NONAME
|
|
||||||
pj_ioqueue_post_completion @ 128 NONAME
|
|
||||||
pj_ioqueue_recv @ 129 NONAME
|
|
||||||
pj_ioqueue_recvfrom @ 130 NONAME
|
|
||||||
pj_ioqueue_register_sock @ 131 NONAME
|
|
||||||
pj_ioqueue_register_sock2 @ 132 NONAME
|
|
||||||
pj_ioqueue_send @ 133 NONAME
|
|
||||||
pj_ioqueue_sendto @ 134 NONAME
|
|
||||||
pj_ioqueue_set_lock @ 135 NONAME
|
|
||||||
pj_ioqueue_set_user_data @ 136 NONAME
|
|
||||||
pj_ioqueue_unregister @ 137 NONAME
|
|
||||||
pj_leave_critical_section @ 138 NONAME
|
|
||||||
pj_list_erase @ 139 NONAME
|
|
||||||
pj_list_find_node @ 140 NONAME
|
|
||||||
pj_list_insert_after @ 141 NONAME
|
|
||||||
pj_list_insert_before @ 142 NONAME
|
|
||||||
pj_list_insert_nodes_after @ 143 NONAME
|
|
||||||
pj_list_insert_nodes_before @ 144 NONAME
|
|
||||||
pj_list_merge_first @ 145 NONAME
|
|
||||||
pj_list_merge_last @ 146 NONAME
|
|
||||||
pj_list_search @ 147 NONAME
|
|
||||||
pj_list_size @ 148 NONAME
|
|
||||||
pj_lock_acquire @ 149 NONAME
|
|
||||||
pj_lock_create_null_mutex @ 150 NONAME
|
|
||||||
pj_lock_create_recursive_mutex @ 151 NONAME
|
|
||||||
pj_lock_create_semaphore @ 152 NONAME
|
|
||||||
pj_lock_create_simple_mutex @ 153 NONAME
|
|
||||||
pj_lock_destroy @ 154 NONAME
|
|
||||||
pj_lock_release @ 155 NONAME
|
|
||||||
pj_lock_tryacquire @ 156 NONAME
|
|
||||||
pj_log @ 157 NONAME
|
|
||||||
pj_log_1 @ 158 NONAME
|
|
||||||
pj_log_2 @ 159 NONAME
|
|
||||||
pj_log_3 @ 160 NONAME
|
|
||||||
pj_log_4 @ 161 NONAME
|
|
||||||
pj_log_5 @ 162 NONAME
|
|
||||||
pj_log_get_decor @ 163 NONAME
|
|
||||||
pj_log_get_level @ 164 NONAME
|
|
||||||
pj_log_get_log_func @ 165 NONAME
|
|
||||||
pj_log_set_decor @ 166 NONAME
|
|
||||||
pj_log_set_level @ 167 NONAME
|
|
||||||
pj_log_set_log_func @ 168 NONAME
|
|
||||||
pj_log_write @ 169 NONAME
|
|
||||||
pj_mutex_create @ 170 NONAME
|
|
||||||
pj_mutex_create_recursive @ 171 NONAME
|
|
||||||
pj_mutex_create_simple @ 172 NONAME
|
|
||||||
pj_mutex_destroy @ 173 NONAME
|
|
||||||
pj_mutex_lock @ 174 NONAME
|
|
||||||
pj_mutex_trylock @ 175 NONAME
|
|
||||||
pj_mutex_unlock @ 176 NONAME
|
|
||||||
pj_ntohl @ 177 NONAME
|
|
||||||
pj_ntohs @ 178 NONAME
|
|
||||||
pj_pool_alloc @ 179 NONAME
|
|
||||||
pj_pool_alloc_from_block @ 180 NONAME
|
|
||||||
pj_pool_allocate_find @ 181 NONAME
|
|
||||||
pj_pool_calloc @ 182 NONAME
|
|
||||||
pj_pool_create @ 183 NONAME
|
|
||||||
pj_pool_create_int @ 184 NONAME
|
|
||||||
pj_pool_create_on_buf @ 185 NONAME
|
|
||||||
pj_pool_destroy_int @ 186 NONAME
|
|
||||||
pj_pool_factory_default_policy @ 187 NONAME
|
|
||||||
pj_pool_factory_get_default_policy @ 188 NONAME
|
|
||||||
pj_pool_get_capacity @ 189 NONAME
|
|
||||||
pj_pool_get_used_size @ 190 NONAME
|
|
||||||
pj_pool_getobjname @ 191 NONAME
|
|
||||||
pj_pool_init_int @ 192 NONAME
|
|
||||||
pj_pool_release @ 193 NONAME
|
|
||||||
pj_pool_reset @ 194 NONAME
|
|
||||||
pj_rand @ 195 NONAME
|
|
||||||
pj_rbtree_erase @ 196 NONAME
|
|
||||||
pj_rbtree_find @ 197 NONAME
|
|
||||||
pj_rbtree_first @ 198 NONAME
|
|
||||||
pj_rbtree_init @ 199 NONAME
|
|
||||||
pj_rbtree_insert @ 200 NONAME
|
|
||||||
pj_rbtree_last @ 201 NONAME
|
|
||||||
pj_rbtree_max_height @ 202 NONAME
|
|
||||||
pj_rbtree_min_height @ 203 NONAME
|
|
||||||
pj_rbtree_next @ 204 NONAME
|
|
||||||
pj_rbtree_prev @ 205 NONAME
|
|
||||||
pj_register_strerror @ 206 NONAME
|
|
||||||
pj_rwmutex_create @ 207 NONAME
|
|
||||||
pj_rwmutex_destroy @ 208 NONAME
|
|
||||||
pj_rwmutex_lock_read @ 209 NONAME
|
|
||||||
pj_rwmutex_lock_write @ 210 NONAME
|
|
||||||
pj_rwmutex_unlock_read @ 211 NONAME
|
|
||||||
pj_rwmutex_unlock_write @ 212 NONAME
|
|
||||||
pj_sem_create @ 213 NONAME
|
|
||||||
pj_sem_destroy @ 214 NONAME
|
|
||||||
pj_sem_post @ 215 NONAME
|
|
||||||
pj_sem_trywait @ 216 NONAME
|
|
||||||
pj_sem_wait @ 217 NONAME
|
|
||||||
pj_set_netos_error @ 218 NONAME
|
|
||||||
pj_set_os_error @ 219 NONAME
|
|
||||||
pj_shutdown @ 220 NONAME
|
|
||||||
pj_sock_accept @ 221 NONAME
|
|
||||||
pj_sock_bind @ 222 NONAME
|
|
||||||
pj_sock_bind_in @ 223 NONAME
|
|
||||||
pj_sock_close @ 224 NONAME
|
|
||||||
pj_sock_connect @ 225 NONAME
|
|
||||||
pj_sock_getpeername @ 226 NONAME
|
|
||||||
pj_sock_getsockname @ 227 NONAME
|
|
||||||
pj_sock_getsockopt @ 228 NONAME
|
|
||||||
pj_sock_listen @ 229 NONAME
|
|
||||||
pj_sock_recv @ 230 NONAME
|
|
||||||
pj_sock_recvfrom @ 231 NONAME
|
|
||||||
pj_sock_select @ 232 NONAME
|
|
||||||
pj_sock_send @ 233 NONAME
|
|
||||||
pj_sock_sendto @ 234 NONAME
|
|
||||||
pj_sock_setsockopt @ 235 NONAME
|
|
||||||
pj_sock_shutdown @ 236 NONAME
|
|
||||||
pj_sock_socket @ 237 NONAME
|
|
||||||
pj_sockaddr_cmp @ 238 NONAME
|
|
||||||
pj_sockaddr_copy_addr @ 239 NONAME
|
|
||||||
pj_sockaddr_get_addr @ 240 NONAME
|
|
||||||
pj_sockaddr_get_addr_len @ 241 NONAME
|
|
||||||
pj_sockaddr_get_len @ 242 NONAME
|
|
||||||
pj_sockaddr_get_port @ 243 NONAME
|
|
||||||
pj_sockaddr_has_addr @ 244 NONAME
|
|
||||||
pj_sockaddr_in_get_addr @ 245 NONAME
|
|
||||||
pj_sockaddr_in_get_port @ 246 NONAME
|
|
||||||
pj_sockaddr_in_init @ 247 NONAME
|
|
||||||
pj_sockaddr_in_set_addr @ 248 NONAME
|
|
||||||
pj_sockaddr_in_set_port @ 249 NONAME
|
|
||||||
pj_sockaddr_in_set_str_addr @ 250 NONAME
|
|
||||||
pj_sockaddr_init @ 251 NONAME
|
|
||||||
pj_sockaddr_print @ 252 NONAME
|
|
||||||
pj_sockaddr_set_port @ 253 NONAME
|
|
||||||
pj_sockaddr_set_str_addr @ 254 NONAME
|
|
||||||
pj_srand @ 255 NONAME
|
|
||||||
pj_str @ 256 NONAME
|
|
||||||
pj_strassign @ 257 NONAME
|
|
||||||
pj_strcat @ 258 NONAME
|
|
||||||
pj_strcat2 @ 259 NONAME
|
|
||||||
pj_strcmp @ 260 NONAME
|
|
||||||
pj_strcmp2 @ 261 NONAME
|
|
||||||
pj_strcpy @ 262 NONAME
|
|
||||||
pj_strcpy2 @ 263 NONAME
|
|
||||||
pj_strdup @ 264 NONAME
|
|
||||||
pj_strdup2 @ 265 NONAME
|
|
||||||
pj_strdup2_with_null @ 266 NONAME
|
|
||||||
pj_strdup3 @ 267 NONAME
|
|
||||||
pj_strdup_with_null @ 268 NONAME
|
|
||||||
pj_strerror @ 269 NONAME
|
|
||||||
pj_stricmp @ 270 NONAME
|
|
||||||
pj_stricmp2 @ 271 NONAME
|
|
||||||
pj_strltrim @ 272 NONAME
|
|
||||||
pj_strncmp @ 273 NONAME
|
|
||||||
pj_strncmp2 @ 274 NONAME
|
|
||||||
pj_strncpy @ 275 NONAME
|
|
||||||
pj_strncpy_with_null @ 276 NONAME
|
|
||||||
pj_strnicmp @ 277 NONAME
|
|
||||||
pj_strnicmp2 @ 278 NONAME
|
|
||||||
pj_strrtrim @ 279 NONAME
|
|
||||||
pj_strtoul @ 280 NONAME
|
|
||||||
pj_strtoul2 @ 281 NONAME
|
|
||||||
pj_strtrim @ 282 NONAME
|
|
||||||
pj_symbianos_poll @ 283 NONAME
|
|
||||||
pj_symbianos_set_params @ 284 NONAME
|
|
||||||
pj_thread_check_stack @ 285 NONAME
|
|
||||||
pj_thread_create @ 286 NONAME
|
|
||||||
pj_thread_destroy @ 287 NONAME
|
|
||||||
pj_thread_get_name @ 288 NONAME
|
|
||||||
pj_thread_get_os_handle @ 289 NONAME
|
|
||||||
pj_thread_get_stack_info @ 290 NONAME
|
|
||||||
pj_thread_get_stack_max_usage @ 291 NONAME
|
|
||||||
pj_thread_is_registered @ 292 NONAME
|
|
||||||
pj_thread_join @ 293 NONAME
|
|
||||||
pj_thread_local_alloc @ 294 NONAME
|
|
||||||
pj_thread_local_free @ 295 NONAME
|
|
||||||
pj_thread_local_get @ 296 NONAME
|
|
||||||
pj_thread_local_set @ 297 NONAME
|
|
||||||
pj_thread_register @ 298 NONAME
|
|
||||||
pj_thread_resume @ 299 NONAME
|
|
||||||
pj_thread_sleep @ 300 NONAME
|
|
||||||
pj_thread_this @ 301 NONAME
|
|
||||||
pj_time_decode @ 302 NONAME
|
|
||||||
pj_time_encode @ 303 NONAME
|
|
||||||
pj_time_gmt_to_local @ 304 NONAME
|
|
||||||
pj_time_local_to_gmt @ 305 NONAME
|
|
||||||
pj_time_val_normalize @ 306 NONAME
|
|
||||||
pj_timer_entry_init @ 307 NONAME
|
|
||||||
pj_timer_heap_cancel @ 308 NONAME
|
|
||||||
pj_timer_heap_cancel_if_active @ 309 NONAME
|
|
||||||
pj_timer_heap_count @ 310 NONAME
|
|
||||||
pj_timer_heap_create @ 311 NONAME
|
|
||||||
pj_timer_heap_destroy @ 312 NONAME
|
|
||||||
pj_timer_heap_earliest_time @ 313 NONAME
|
|
||||||
pj_timer_heap_mem_size @ 314 NONAME
|
|
||||||
pj_timer_heap_poll @ 315 NONAME
|
|
||||||
pj_timer_heap_schedule @ 316 NONAME
|
|
||||||
pj_timer_heap_schedule_w_grp_lock @ 317 NONAME
|
|
||||||
pj_timer_heap_set_lock @ 318 NONAME
|
|
||||||
pj_timer_heap_set_max_timed_out_per_poll @ 319 NONAME
|
|
||||||
pj_unicode_to_ansi @ 320 NONAME
|
|
||||||
pj_utoa @ 321 NONAME
|
|
||||||
pj_utoa_pad @ 322 NONAME
|
|
||||||
platform_strerror @ 323 NONAME
|
|
||||||
snprintf @ 324 NONAME
|
|
||||||
vsnprintf @ 325 NONAME
|
|
|
@ -1,83 +0,0 @@
|
||||||
TARGET pjlib_test.exe
|
|
||||||
TARGETTYPE exe
|
|
||||||
UID 0x0 0xA0000002
|
|
||||||
|
|
||||||
|
|
||||||
SOURCEPATH ..\pjlib\src\pjlib-test
|
|
||||||
|
|
||||||
MACRO PJ_M_I386=1
|
|
||||||
MACRO PJ_SYMBIAN=1
|
|
||||||
|
|
||||||
// Must compile as C++, otherwise exception would not work
|
|
||||||
OPTION CW -lang c++
|
|
||||||
OPTION ARMCC --cpp --gnu
|
|
||||||
OPTION GCC -x c++
|
|
||||||
OPTION GCCE -x c++
|
|
||||||
|
|
||||||
#if defined(PJ_BUILD_DLL)
|
|
||||||
MACRO PJ_DLL
|
|
||||||
LIBRARY pjlib.lib
|
|
||||||
#else
|
|
||||||
STATICLIBRARY pjlib.lib
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Test files
|
|
||||||
|
|
||||||
SOURCE activesock.c
|
|
||||||
SOURCE atomic.c
|
|
||||||
SOURCE echo_clt.c
|
|
||||||
SOURCE errno.c
|
|
||||||
SOURCE exception_wrap.cpp
|
|
||||||
SOURCE fifobuf.c
|
|
||||||
SOURCE file.c
|
|
||||||
SOURCE hash_test.c
|
|
||||||
SOURCE ioq_perf.c
|
|
||||||
SOURCE ioq_tcp.c
|
|
||||||
SOURCE ioq_udp.c
|
|
||||||
SOURCE ioq_unreg.c
|
|
||||||
SOURCE list.c
|
|
||||||
SOURCE mutex.c
|
|
||||||
SOURCE os.c
|
|
||||||
SOURCE pool_wrap.cpp
|
|
||||||
SOURCE pool_perf.c
|
|
||||||
SOURCE rand.c
|
|
||||||
SOURCE rbtree.c
|
|
||||||
SOURCE select.c
|
|
||||||
SOURCE sleep.c
|
|
||||||
SOURCE sock.c
|
|
||||||
SOURCE sock_perf.c
|
|
||||||
SOURCE ssl_sock.c
|
|
||||||
SOURCE string.c
|
|
||||||
SOURCE test_wrap.cpp
|
|
||||||
SOURCE thread.c
|
|
||||||
SOURCE timer.c
|
|
||||||
SOURCE timestamp.c
|
|
||||||
SOURCE udp_echo_srv_ioqueue.c
|
|
||||||
SOURCE udp_echo_srv_sync.c
|
|
||||||
SOURCE util.c
|
|
||||||
|
|
||||||
SOURCE main_symbian.cpp
|
|
||||||
|
|
||||||
DOCUMENT test.h
|
|
||||||
|
|
||||||
START RESOURCE pjlib_test_reg.rss
|
|
||||||
TARGETPATH \private\10003a3f\apps
|
|
||||||
END
|
|
||||||
|
|
||||||
SYSTEMINCLUDE ..\pjlib\include
|
|
||||||
|
|
||||||
SYSTEMINCLUDE \epoc32\include
|
|
||||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
||||||
|
|
||||||
LIBRARY esock.lib insock.lib charconv.lib euser.lib estlib.lib
|
|
||||||
LIBRARY securesocket.lib x509.lib crypto.lib x500.lib
|
|
||||||
LIBRARY hal.lib efsrv.lib
|
|
||||||
|
|
||||||
#ifdef WINSCW
|
|
||||||
STATICLIBRARY eexe.lib ecrt0.lib
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Need a bit of mem for logging in the app.
|
|
||||||
EPOCSTACKSIZE 32768
|
|
||||||
|
|
||||||
CAPABILITY NetworkServices LocalServices ReadUserData WriteUserData UserEnvironment
|
|
|
@ -1,19 +0,0 @@
|
||||||
; pjlib_test.pkg
|
|
||||||
|
|
||||||
; Languages
|
|
||||||
&EN
|
|
||||||
|
|
||||||
; Header
|
|
||||||
;#{"pjlib_test"},(0x200235D3), 0, 1, 1
|
|
||||||
#{"pjlib_test"},(0xA0000002), 0, 1, 1
|
|
||||||
|
|
||||||
; Platform compatibility
|
|
||||||
[0x101F7961], *, *, *,{"Series60ProductID"}
|
|
||||||
|
|
||||||
; vendor
|
|
||||||
%{"PJSIP"}
|
|
||||||
:"PJSIP"
|
|
||||||
|
|
||||||
; Target
|
|
||||||
"$(EPOCROOT)Epoc32\release\$(PLATFORM)\$(TARGET)\pjlib_test.exe"-"!:\sys\bin\pjlib_test.exe"
|
|
||||||
"$(EPOCROOT)Epoc32\data\z\private\10003a3f\apps\pjlib_test_reg.rSC"-"!:\private\10003a3f\import\apps\pjlib_test_reg.rSC"
|
|
|
@ -1,86 +0,0 @@
|
||||||
#if defined(PJ_BUILD_DLL)
|
|
||||||
TARGET pjlib_util.dll
|
|
||||||
TARGETTYPE dll
|
|
||||||
UID 0x0 0xA0000003
|
|
||||||
|
|
||||||
CAPABILITY NONE
|
|
||||||
LIBRARY pjlib.lib esock.lib insock.lib charconv.lib euser.lib estlib.lib
|
|
||||||
MACRO PJ_DLL
|
|
||||||
MACRO PJ_EXPORTING
|
|
||||||
|
|
||||||
DEFFILE .\pjlib_util.def
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
TARGET pjlib_util.lib
|
|
||||||
TARGETTYPE lib
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SOURCEPATH ..\pjlib-util\src\pjlib-util
|
|
||||||
|
|
||||||
MACRO PJ_M_I386=1
|
|
||||||
MACRO PJ_SYMBIAN=1
|
|
||||||
|
|
||||||
// Must compile as C++, otherwise exception would not work
|
|
||||||
OPTION CW -lang c++
|
|
||||||
OPTION ARMCC --cpp --gnu
|
|
||||||
OPTION GCC -x c++
|
|
||||||
OPTION GCCE -x c++
|
|
||||||
|
|
||||||
//
|
|
||||||
// PJLIB-UTIL files
|
|
||||||
//
|
|
||||||
SOURCE base64.c
|
|
||||||
SOURCE cli.c
|
|
||||||
SOURCE cli_console.c
|
|
||||||
SOURCE cli_telnet.c
|
|
||||||
SOURCE crc32.c
|
|
||||||
SOURCE dns.c
|
|
||||||
SOURCE dns_dump.c
|
|
||||||
SOURCE dns_server.c
|
|
||||||
SOURCE errno.c
|
|
||||||
SOURCE getopt.c
|
|
||||||
SOURCE hmac_md5.c
|
|
||||||
SOURCE hmac_sha1.c
|
|
||||||
SOURCE http_client.c
|
|
||||||
SOURCE md5.c
|
|
||||||
SOURCE pcap.c
|
|
||||||
SOURCE resolver_wrap.cpp
|
|
||||||
SOURCE scanner.c
|
|
||||||
SOURCE sha1.c
|
|
||||||
SOURCE srv_resolver.c
|
|
||||||
SOURCE string.c
|
|
||||||
SOURCE stun_simple.c
|
|
||||||
SOURCE stun_simple_client.c
|
|
||||||
SOURCE xml_wrap.cpp
|
|
||||||
|
|
||||||
//
|
|
||||||
// Header files
|
|
||||||
//
|
|
||||||
//DOCUMENT pjlib-util\\config.h
|
|
||||||
//DOCUMENT pjlib-util\\crc32.h
|
|
||||||
//DOCUMENT pjlib-util\\dns.h
|
|
||||||
//DOCUMENT pjlib-util\\errno.h
|
|
||||||
//DOCUMENT pjlib-util\\getopt.h
|
|
||||||
//DOCUMENT pjlib-util\\hmac_md5.h
|
|
||||||
//DOCUMENT pjlib-util\hmac_sha1.h
|
|
||||||
//DOCUMENT pjlib-util\http_client.h
|
|
||||||
//DOCUMENT pjlib-util\md5.h
|
|
||||||
//DOCUMENT pjlib-util\resolver.h
|
|
||||||
//DOCUMENT pjlib-util\scanner.h
|
|
||||||
//DOCUMENT pjlib-util\sha1.h
|
|
||||||
//DOCUMENT pjlib-util\srv_resolver.h
|
|
||||||
//DOCUMENT pjlib-util\string.h
|
|
||||||
//DOCUMENT pjlib-util\stun_simple.h
|
|
||||||
//DOCUMENT pjlib-util\types.h
|
|
||||||
//DOCUMENT pjlib-util\xml.h
|
|
||||||
|
|
||||||
|
|
||||||
SYSTEMINCLUDE ..\pjlib\include
|
|
||||||
SYSTEMINCLUDE ..\pjlib-util\include
|
|
||||||
|
|
||||||
SYSTEMINCLUDE \epoc32\include
|
|
||||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
||||||
|
|
||||||
|
|
|
@ -1,92 +0,0 @@
|
||||||
EXPORTS
|
|
||||||
pj_cis_add_alpha @ 1 NONAME
|
|
||||||
pj_cis_add_cis @ 2 NONAME
|
|
||||||
pj_cis_add_num @ 3 NONAME
|
|
||||||
pj_cis_add_range @ 4 NONAME
|
|
||||||
pj_cis_add_str @ 5 NONAME
|
|
||||||
pj_cis_buf_init @ 6 NONAME
|
|
||||||
pj_cis_del_range @ 7 NONAME
|
|
||||||
pj_cis_del_str @ 8 NONAME
|
|
||||||
pj_cis_dup @ 9 NONAME
|
|
||||||
pj_cis_init @ 10 NONAME
|
|
||||||
pj_cis_invert @ 11 NONAME
|
|
||||||
pj_crc32_calc @ 12 NONAME
|
|
||||||
pj_crc32_final @ 13 NONAME
|
|
||||||
pj_crc32_init @ 14 NONAME
|
|
||||||
pj_crc32_update @ 15 NONAME
|
|
||||||
pj_dns_dump_packet @ 16 NONAME
|
|
||||||
pj_dns_get_type_name @ 17 NONAME
|
|
||||||
pj_dns_make_query @ 18 NONAME
|
|
||||||
pj_dns_packet_dup @ 19 NONAME
|
|
||||||
pj_dns_parse_a_response @ 20 NONAME
|
|
||||||
pj_dns_parse_packet @ 21 NONAME
|
|
||||||
pj_dns_resolver_add_entry @ 22 NONAME
|
|
||||||
pj_dns_resolver_cancel_query @ 23 NONAME
|
|
||||||
pj_dns_resolver_create @ 24 NONAME
|
|
||||||
pj_dns_resolver_destroy @ 25 NONAME
|
|
||||||
pj_dns_resolver_dump @ 26 NONAME
|
|
||||||
pj_dns_resolver_get_cached_count @ 27 NONAME
|
|
||||||
pj_dns_resolver_get_settings @ 28 NONAME
|
|
||||||
pj_dns_resolver_handle_events @ 29 NONAME
|
|
||||||
pj_dns_resolver_set_ns @ 30 NONAME
|
|
||||||
pj_dns_resolver_set_settings @ 31 NONAME
|
|
||||||
pj_dns_resolver_start_query @ 32 NONAME
|
|
||||||
pj_dns_settings_default @ 33 NONAME
|
|
||||||
pj_dns_srv_resolve @ 34 NONAME
|
|
||||||
pj_hmac_md5 @ 35 NONAME
|
|
||||||
pj_hmac_md5_final @ 36 NONAME
|
|
||||||
pj_hmac_md5_init @ 37 NONAME
|
|
||||||
pj_hmac_md5_update @ 38 NONAME
|
|
||||||
pj_hmac_sha1 @ 39 NONAME
|
|
||||||
pj_hmac_sha1_final @ 40 NONAME
|
|
||||||
pj_hmac_sha1_init @ 41 NONAME
|
|
||||||
pj_hmac_sha1_update @ 42 NONAME
|
|
||||||
pj_md5_final @ 43 NONAME
|
|
||||||
pj_md5_init @ 44 NONAME
|
|
||||||
pj_md5_update @ 45 NONAME
|
|
||||||
pj_scan_advance_n @ 46 NONAME
|
|
||||||
pj_scan_fini @ 47 NONAME
|
|
||||||
pj_scan_get @ 48 NONAME
|
|
||||||
pj_scan_get_char @ 49 NONAME
|
|
||||||
pj_scan_get_n @ 50 NONAME
|
|
||||||
pj_scan_get_newline @ 51 NONAME
|
|
||||||
pj_scan_get_quote @ 52 NONAME
|
|
||||||
pj_scan_get_quotes @ 53 NONAME
|
|
||||||
pj_scan_get_unescape @ 54 NONAME
|
|
||||||
pj_scan_get_until @ 55 NONAME
|
|
||||||
pj_scan_get_until_ch @ 56 NONAME
|
|
||||||
pj_scan_get_until_chr @ 57 NONAME
|
|
||||||
pj_scan_init @ 58 NONAME
|
|
||||||
pj_scan_peek @ 59 NONAME
|
|
||||||
pj_scan_peek_n @ 60 NONAME
|
|
||||||
pj_scan_peek_until @ 61 NONAME
|
|
||||||
pj_scan_restore_state @ 62 NONAME
|
|
||||||
pj_scan_save_state @ 63 NONAME
|
|
||||||
pj_scan_skip_line @ 64 NONAME
|
|
||||||
pj_scan_skip_whitespace @ 65 NONAME
|
|
||||||
pj_scan_strcmp @ 66 NONAME
|
|
||||||
pj_scan_stricmp @ 67 NONAME
|
|
||||||
pj_scan_stricmp_alnum @ 68 NONAME
|
|
||||||
pj_sha1_final @ 69 NONAME
|
|
||||||
pj_sha1_init @ 70 NONAME
|
|
||||||
pj_sha1_update @ 71 NONAME
|
|
||||||
pj_str_unescape @ 72 NONAME
|
|
||||||
pj_strcpy_unescape @ 73 NONAME
|
|
||||||
pj_strncpy2_escape @ 74 NONAME
|
|
||||||
pj_strncpy_escape @ 75 NONAME
|
|
||||||
pj_xml_add_attr @ 76 NONAME
|
|
||||||
pj_xml_add_node @ 77 NONAME
|
|
||||||
pj_xml_attr_new @ 78 NONAME
|
|
||||||
pj_xml_clone @ 79 NONAME
|
|
||||||
pj_xml_find @ 80 NONAME
|
|
||||||
pj_xml_find_attr @ 81 NONAME
|
|
||||||
pj_xml_find_next_node @ 82 NONAME
|
|
||||||
pj_xml_find_node @ 83 NONAME
|
|
||||||
pj_xml_node_new @ 84 NONAME
|
|
||||||
pj_xml_parse @ 85 NONAME
|
|
||||||
pj_xml_print @ 86 NONAME
|
|
||||||
pjlib_util_init @ 87 NONAME
|
|
||||||
pjstun_create_bind_req @ 88 NONAME
|
|
||||||
pjstun_get_mapped_addr @ 89 NONAME
|
|
||||||
pjstun_msg_find_attr @ 90 NONAME
|
|
||||||
pjstun_parse_msg @ 91 NONAME
|
|
|
@ -1,136 +0,0 @@
|
||||||
#if defined(PJ_BUILD_DLL)
|
|
||||||
|
|
||||||
TARGET pjmedia.dll
|
|
||||||
TARGETTYPE dll
|
|
||||||
UID 0x0 0xA0000004
|
|
||||||
|
|
||||||
CAPABILITY None
|
|
||||||
LIBRARY null_audio.lib pjsdp.lib pjnath.lib pjlib_util.lib pjlib.lib esock.lib insock.lib charconv.lib euser.lib estlib.lib
|
|
||||||
MACRO PJ_DLL
|
|
||||||
MACRO PJ_EXPORTING
|
|
||||||
|
|
||||||
DEFFILE .\pjmedia.def
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
TARGET pjmedia.lib
|
|
||||||
TARGETTYPE lib
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SOURCEPATH ..\pjmedia\src\pjmedia
|
|
||||||
|
|
||||||
//
|
|
||||||
// GCCE optimization setting
|
|
||||||
//
|
|
||||||
OPTION GCCE -O2 -fno-unit-at-a-time
|
|
||||||
|
|
||||||
MACRO PJ_M_I386=1
|
|
||||||
MACRO PJ_SYMBIAN=1
|
|
||||||
|
|
||||||
// Must compile as C++, otherwise exception would not work
|
|
||||||
OPTION CW -lang c++
|
|
||||||
OPTION ARMCC --cpp --gnu
|
|
||||||
OPTION GCC -x c++
|
|
||||||
OPTION GCCE -x c++
|
|
||||||
|
|
||||||
//
|
|
||||||
// Platform independent source
|
|
||||||
//
|
|
||||||
|
|
||||||
SOURCE alaw_ulaw.c
|
|
||||||
SOURCE alaw_ulaw_table.c
|
|
||||||
SOURCE avi_player.c
|
|
||||||
SOURCE bidirectional.c
|
|
||||||
SOURCE clock_thread.c
|
|
||||||
SOURCE codec.c
|
|
||||||
SOURCE conf_switch.c
|
|
||||||
SOURCE conference.c
|
|
||||||
SOURCE converter.c
|
|
||||||
SOURCE converter_libswscale.c
|
|
||||||
SOURCE delaybuf.c
|
|
||||||
SOURCE echo_common.c
|
|
||||||
SOURCE echo_port.c
|
|
||||||
SOURCE echo_suppress.c
|
|
||||||
SOURCE endpoint.c
|
|
||||||
SOURCE errno.c
|
|
||||||
SOURCE event.c
|
|
||||||
SOURCE format.c
|
|
||||||
SOURCE g711.c
|
|
||||||
SOURCE jbuf.c
|
|
||||||
SOURCE master_port.c
|
|
||||||
SOURCE mem_capture.c
|
|
||||||
SOURCE mem_player.c
|
|
||||||
SOURCE null_port.c
|
|
||||||
SOURCE plc_common.c
|
|
||||||
SOURCE port.c
|
|
||||||
SOURCE resample_port.c
|
|
||||||
SOURCE resample_resample.c
|
|
||||||
SOURCE rtcp.c
|
|
||||||
SOURCE rtcp_xr.c
|
|
||||||
SOURCE rtp.c
|
|
||||||
//SDP files are in pjsdp.mmp: sdp.c, sdp_cmp.c, sdp_neg.c
|
|
||||||
//SOURCE session.c // deprecated
|
|
||||||
SOURCE silencedet.c
|
|
||||||
SOURCE sound_port.c
|
|
||||||
SOURCE splitcomb.c
|
|
||||||
SOURCE stereo_port.c
|
|
||||||
SOURCE stream.c
|
|
||||||
SOURCE stream_common.c
|
|
||||||
SOURCE stream_info.c
|
|
||||||
SOURCE tonegen.c
|
|
||||||
SOURCE transport_adapter_sample.c
|
|
||||||
SOURCE transport_ice.c
|
|
||||||
SOURCE transport_udp.c
|
|
||||||
SOURCE transport_srtp.c
|
|
||||||
SOURCE types.c
|
|
||||||
SOURCE vid_codec.c
|
|
||||||
SOURCE vid_codec_util.c
|
|
||||||
SOURCE vid_port.c
|
|
||||||
SOURCE vid_stream.c
|
|
||||||
SOURCE vid_stream_info.c
|
|
||||||
SOURCE vid_tee.c
|
|
||||||
SOURCE wav_player.c
|
|
||||||
SOURCE wav_playlist.c
|
|
||||||
SOURCE wav_writer.c
|
|
||||||
SOURCE wave.c
|
|
||||||
SOURCE wsola.c
|
|
||||||
|
|
||||||
//
|
|
||||||
// pjmedia-codec common files
|
|
||||||
//
|
|
||||||
SOURCEPATH ..\pjmedia\src\pjmedia-codec
|
|
||||||
SOURCE audio_codecs.c
|
|
||||||
SOURCE amr_sdp_match.c
|
|
||||||
SOURCE g7221_sdp_match.c
|
|
||||||
SOURCE h263_packetizer.c
|
|
||||||
SOURCE h264_packetizer.c
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// Symbian specific
|
|
||||||
// These are on separate project
|
|
||||||
//
|
|
||||||
//SOURCE symbian_sound.cpp
|
|
||||||
//SOURCE null_sound.c
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// Header files
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
SYSTEMINCLUDE ..\pjmedia\include
|
|
||||||
SYSTEMINCLUDE ..\pjlib\include
|
|
||||||
SYSTEMINCLUDE ..\pjlib-util\include
|
|
||||||
SYSTEMINCLUDE ..\pjnath\include
|
|
||||||
SYSTEMINCLUDE ..\third_party\srtp\include
|
|
||||||
SYSTEMINCLUDE ..\third_party\srtp\crypto\include
|
|
||||||
SYSTEMINCLUDE ..\third_party\build\srtp
|
|
||||||
SYSTEMINCLUDE ..
|
|
||||||
|
|
||||||
SYSTEMINCLUDE \epoc32\include
|
|
||||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
||||||
//SYSTEMINCLUDE \epoc32\include\mmf\plugin
|
|
||||||
|
|
||||||
|
|
|
@ -1,193 +0,0 @@
|
||||||
EXPORTS
|
|
||||||
echo_supp_cancel_echo @ 1 NONAME
|
|
||||||
echo_supp_capture @ 2 NONAME
|
|
||||||
echo_supp_create @ 3 NONAME
|
|
||||||
echo_supp_destroy @ 4 NONAME
|
|
||||||
echo_supp_playback @ 5 NONAME
|
|
||||||
pjmedia_bidirectional_port_create @ 6 NONAME
|
|
||||||
pjmedia_calc_avg_signal @ 7 NONAME
|
|
||||||
pjmedia_clock_create @ 8 NONAME
|
|
||||||
pjmedia_clock_destroy @ 9 NONAME
|
|
||||||
pjmedia_clock_start @ 10 NONAME
|
|
||||||
pjmedia_clock_stop @ 11 NONAME
|
|
||||||
pjmedia_clock_wait @ 12 NONAME
|
|
||||||
pjmedia_codec_g711_deinit @ 13 NONAME
|
|
||||||
pjmedia_codec_g711_init @ 14 NONAME
|
|
||||||
pjmedia_codec_info_to_id @ 15 NONAME
|
|
||||||
pjmedia_codec_mgr_alloc_codec @ 16 NONAME
|
|
||||||
pjmedia_codec_mgr_dealloc_codec @ 17 NONAME
|
|
||||||
pjmedia_codec_mgr_enum_codecs @ 18 NONAME
|
|
||||||
pjmedia_codec_mgr_find_codecs_by_id @ 19 NONAME
|
|
||||||
pjmedia_codec_mgr_get_codec_info @ 20 NONAME
|
|
||||||
pjmedia_codec_mgr_get_default_param @ 21 NONAME
|
|
||||||
pjmedia_codec_mgr_init @ 22 NONAME
|
|
||||||
pjmedia_codec_mgr_register_factory @ 23 NONAME
|
|
||||||
pjmedia_codec_mgr_set_codec_priority @ 24 NONAME
|
|
||||||
pjmedia_codec_mgr_unregister_factory @ 25 NONAME
|
|
||||||
pjmedia_conf_add_passive_port @ 26 NONAME
|
|
||||||
pjmedia_conf_add_port @ 27 NONAME
|
|
||||||
pjmedia_conf_adjust_rx_level @ 28 NONAME
|
|
||||||
pjmedia_conf_adjust_tx_level @ 29 NONAME
|
|
||||||
pjmedia_conf_configure_port @ 30 NONAME
|
|
||||||
pjmedia_conf_connect_port @ 31 NONAME
|
|
||||||
pjmedia_conf_create @ 32 NONAME
|
|
||||||
pjmedia_conf_destroy @ 33 NONAME
|
|
||||||
pjmedia_conf_disconnect_port @ 34 NONAME
|
|
||||||
pjmedia_conf_enum_ports @ 35 NONAME
|
|
||||||
pjmedia_conf_get_connect_count @ 36 NONAME
|
|
||||||
pjmedia_conf_get_master_port @ 37 NONAME
|
|
||||||
pjmedia_conf_get_port_count @ 38 NONAME
|
|
||||||
pjmedia_conf_get_port_info @ 39 NONAME
|
|
||||||
pjmedia_conf_get_ports_info @ 40 NONAME
|
|
||||||
pjmedia_conf_get_signal_level @ 41 NONAME
|
|
||||||
pjmedia_conf_remove_port @ 42 NONAME
|
|
||||||
pjmedia_conf_set_port0_name @ 43 NONAME
|
|
||||||
pjmedia_delay_buf_create @ 44 NONAME
|
|
||||||
pjmedia_delay_buf_get @ 45 NONAME
|
|
||||||
pjmedia_delay_buf_put @ 46 NONAME
|
|
||||||
pjmedia_echo_cancel @ 47 NONAME
|
|
||||||
pjmedia_echo_capture @ 48 NONAME
|
|
||||||
pjmedia_echo_create @ 49 NONAME
|
|
||||||
pjmedia_echo_destroy @ 50 NONAME
|
|
||||||
pjmedia_echo_playback @ 51 NONAME
|
|
||||||
pjmedia_echo_port_create @ 52 NONAME
|
|
||||||
pjmedia_endpt_create @ 53 NONAME
|
|
||||||
pjmedia_endpt_create_pool @ 54 NONAME
|
|
||||||
pjmedia_endpt_create_sdp @ 55 NONAME
|
|
||||||
pjmedia_endpt_destroy @ 56 NONAME
|
|
||||||
pjmedia_endpt_dump @ 57 NONAME
|
|
||||||
pjmedia_endpt_get_codec_mgr @ 58 NONAME
|
|
||||||
pjmedia_endpt_get_ioqueue @ 59 NONAME
|
|
||||||
pjmedia_endpt_get_thread @ 60 NONAME
|
|
||||||
pjmedia_endpt_get_thread_count @ 61 NONAME
|
|
||||||
pjmedia_ice_create @ 62 NONAME
|
|
||||||
pjmedia_ice_destroy @ 63 NONAME
|
|
||||||
pjmedia_ice_get_comp @ 64 NONAME
|
|
||||||
pjmedia_ice_get_init_status @ 65 NONAME
|
|
||||||
pjmedia_ice_init_ice @ 66 NONAME
|
|
||||||
pjmedia_ice_modify_sdp @ 67 NONAME
|
|
||||||
pjmedia_ice_simulate_lost @ 68 NONAME
|
|
||||||
pjmedia_ice_start_ice @ 69 NONAME
|
|
||||||
pjmedia_ice_start_init @ 70 NONAME
|
|
||||||
pjmedia_ice_stop_ice @ 71 NONAME
|
|
||||||
pjmedia_jbuf_create @ 72 NONAME
|
|
||||||
pjmedia_jbuf_destroy @ 73 NONAME
|
|
||||||
pjmedia_jbuf_get_frame @ 74 NONAME
|
|
||||||
pjmedia_jbuf_get_state @ 75 NONAME
|
|
||||||
pjmedia_jbuf_put_frame @ 76 NONAME
|
|
||||||
pjmedia_jbuf_reset @ 77 NONAME
|
|
||||||
pjmedia_jbuf_set_adaptive @ 78 NONAME
|
|
||||||
pjmedia_jbuf_set_fixed @ 79 NONAME
|
|
||||||
pjmedia_master_port_create @ 80 NONAME
|
|
||||||
pjmedia_master_port_destroy @ 81 NONAME
|
|
||||||
pjmedia_master_port_get_dport @ 82 NONAME
|
|
||||||
pjmedia_master_port_get_uport @ 83 NONAME
|
|
||||||
pjmedia_master_port_set_dport @ 84 NONAME
|
|
||||||
pjmedia_master_port_set_uport @ 85 NONAME
|
|
||||||
pjmedia_master_port_start @ 86 NONAME
|
|
||||||
pjmedia_master_port_stop @ 87 NONAME
|
|
||||||
pjmedia_mem_capture_create @ 88 NONAME
|
|
||||||
pjmedia_mem_capture_get_size @ 89 NONAME
|
|
||||||
pjmedia_mem_capture_set_eof_cb @ 90 NONAME
|
|
||||||
pjmedia_mem_player_create @ 91 NONAME
|
|
||||||
pjmedia_mem_player_set_eof_cb @ 92 NONAME
|
|
||||||
pjmedia_null_port_create @ 93 NONAME
|
|
||||||
pjmedia_plc_create @ 94 NONAME
|
|
||||||
pjmedia_plc_generate @ 95 NONAME
|
|
||||||
pjmedia_plc_save @ 96 NONAME
|
|
||||||
pjmedia_port_destroy @ 97 NONAME
|
|
||||||
pjmedia_port_get_frame @ 98 NONAME
|
|
||||||
pjmedia_port_info_init @ 99 NONAME
|
|
||||||
pjmedia_port_put_frame @ 100 NONAME
|
|
||||||
pjmedia_resample_create @ 101 NONAME
|
|
||||||
pjmedia_resample_destroy @ 102 NONAME
|
|
||||||
pjmedia_resample_get_input_size @ 103 NONAME
|
|
||||||
pjmedia_resample_port_create @ 104 NONAME
|
|
||||||
pjmedia_resample_run @ 105 NONAME
|
|
||||||
pjmedia_rtcp_build_rtcp @ 106 NONAME
|
|
||||||
pjmedia_rtcp_fini @ 107 NONAME
|
|
||||||
pjmedia_rtcp_get_ntp_time @ 108 NONAME
|
|
||||||
pjmedia_rtcp_init @ 109 NONAME
|
|
||||||
pjmedia_rtcp_rx_rtcp @ 110 NONAME
|
|
||||||
pjmedia_rtcp_rx_rtp @ 111 NONAME
|
|
||||||
pjmedia_rtcp_tx_rtp @ 112 NONAME
|
|
||||||
pjmedia_rtp_decode_rtp @ 113 NONAME
|
|
||||||
pjmedia_rtp_encode_rtp @ 114 NONAME
|
|
||||||
pjmedia_rtp_session_init @ 115 NONAME
|
|
||||||
pjmedia_rtp_session_update @ 116 NONAME
|
|
||||||
pjmedia_session_check_dtmf @ 117 NONAME
|
|
||||||
pjmedia_session_create @ 118 NONAME
|
|
||||||
pjmedia_session_destroy @ 119 NONAME
|
|
||||||
pjmedia_session_dial_dtmf @ 120 NONAME
|
|
||||||
pjmedia_session_enum_streams @ 121 NONAME
|
|
||||||
pjmedia_session_get_dtmf @ 122 NONAME
|
|
||||||
pjmedia_session_get_info @ 123 NONAME
|
|
||||||
pjmedia_session_get_port @ 124 NONAME
|
|
||||||
pjmedia_session_get_stream_stat @ 125 NONAME
|
|
||||||
pjmedia_session_info_from_sdp @ 126 NONAME
|
|
||||||
pjmedia_session_pause @ 127 NONAME
|
|
||||||
pjmedia_session_pause_stream @ 128 NONAME
|
|
||||||
pjmedia_session_resume @ 129 NONAME
|
|
||||||
pjmedia_session_resume_stream @ 130 NONAME
|
|
||||||
pjmedia_session_set_dtmf_callback @ 131 NONAME
|
|
||||||
pjmedia_silence_det_apply @ 132 NONAME
|
|
||||||
pjmedia_silence_det_create @ 133 NONAME
|
|
||||||
pjmedia_silence_det_detect @ 134 NONAME
|
|
||||||
pjmedia_silence_det_disable @ 135 NONAME
|
|
||||||
pjmedia_silence_det_set_adaptive @ 136 NONAME
|
|
||||||
pjmedia_silence_det_set_fixed @ 137 NONAME
|
|
||||||
pjmedia_silence_det_set_name @ 138 NONAME
|
|
||||||
pjmedia_silence_det_set_params @ 139 NONAME
|
|
||||||
pjmedia_snd_port_connect @ 140 NONAME
|
|
||||||
pjmedia_snd_port_create @ 141 NONAME
|
|
||||||
pjmedia_snd_port_create_player @ 142 NONAME
|
|
||||||
pjmedia_snd_port_create_rec @ 143 NONAME
|
|
||||||
pjmedia_snd_port_destroy @ 144 NONAME
|
|
||||||
pjmedia_snd_port_disconnect @ 145 NONAME
|
|
||||||
pjmedia_snd_port_get_ec_tail @ 146 NONAME
|
|
||||||
pjmedia_snd_port_get_port @ 147 NONAME
|
|
||||||
pjmedia_snd_port_get_snd_stream @ 148 NONAME
|
|
||||||
pjmedia_snd_port_set_ec @ 149 NONAME
|
|
||||||
pjmedia_splitcomb_create @ 150 NONAME
|
|
||||||
pjmedia_splitcomb_create_rev_channel @ 151 NONAME
|
|
||||||
pjmedia_splitcomb_set_channel @ 152 NONAME
|
|
||||||
pjmedia_stream_check_dtmf @ 153 NONAME
|
|
||||||
pjmedia_stream_create @ 154 NONAME
|
|
||||||
pjmedia_stream_destroy @ 155 NONAME
|
|
||||||
pjmedia_stream_dial_dtmf @ 156 NONAME
|
|
||||||
pjmedia_stream_get_dtmf @ 157 NONAME
|
|
||||||
pjmedia_stream_get_port @ 158 NONAME
|
|
||||||
pjmedia_stream_get_stat @ 159 NONAME
|
|
||||||
pjmedia_stream_get_transport @ 160 NONAME
|
|
||||||
pjmedia_stream_info_from_sdp @ 161 NONAME
|
|
||||||
pjmedia_stream_pause @ 162 NONAME
|
|
||||||
pjmedia_stream_resume @ 163 NONAME
|
|
||||||
pjmedia_stream_set_dtmf_callback @ 164 NONAME
|
|
||||||
pjmedia_stream_start @ 165 NONAME
|
|
||||||
pjmedia_strerror @ 166 NONAME
|
|
||||||
pjmedia_tonegen_create @ 167 NONAME
|
|
||||||
pjmedia_tonegen_create2 @ 168 NONAME
|
|
||||||
pjmedia_tonegen_get_digit_map @ 169 NONAME
|
|
||||||
pjmedia_tonegen_is_busy @ 170 NONAME
|
|
||||||
pjmedia_tonegen_play @ 171 NONAME
|
|
||||||
pjmedia_tonegen_play_digits @ 172 NONAME
|
|
||||||
pjmedia_tonegen_set_digit_map @ 173 NONAME
|
|
||||||
pjmedia_tonegen_stop @ 174 NONAME
|
|
||||||
pjmedia_transport_udp_attach @ 175 NONAME
|
|
||||||
pjmedia_transport_udp_close @ 176 NONAME
|
|
||||||
pjmedia_transport_udp_create @ 177 NONAME
|
|
||||||
pjmedia_transport_udp_create2 @ 178 NONAME
|
|
||||||
pjmedia_transport_udp_create3 @ 179 NONAME
|
|
||||||
pjmedia_transport_udp_get_info @ 180 NONAME
|
|
||||||
pjmedia_transport_udp_simulate_lost @ 181 NONAME
|
|
||||||
pjmedia_wav_player_port_create @ 182 NONAME
|
|
||||||
pjmedia_wav_player_port_get_pos @ 183 NONAME
|
|
||||||
pjmedia_wav_player_port_set_pos @ 184 NONAME
|
|
||||||
pjmedia_wav_player_set_eof_cb @ 185 NONAME
|
|
||||||
pjmedia_wav_playlist_create @ 186 NONAME
|
|
||||||
pjmedia_wav_playlist_set_eof_cb @ 187 NONAME
|
|
||||||
pjmedia_wav_writer_port_create @ 188 NONAME
|
|
||||||
pjmedia_wav_writer_port_get_pos @ 189 NONAME
|
|
||||||
pjmedia_wav_writer_port_set_cb @ 190 NONAME
|
|
||||||
pjmedia_wave_hdr_file_to_host @ 191 NONAME
|
|
||||||
pjmedia_wave_hdr_host_to_file @ 192 NONAME
|
|
|
@ -1,33 +0,0 @@
|
||||||
TARGET pjmedia_audiodev.lib
|
|
||||||
TARGETTYPE lib
|
|
||||||
|
|
||||||
SOURCEPATH ..\pjmedia\src\pjmedia-audiodev
|
|
||||||
|
|
||||||
//
|
|
||||||
// GCCE optimization setting
|
|
||||||
//
|
|
||||||
//OPTION GCCE -O2 -fno-unit-at-a-time
|
|
||||||
OPTION ARMCC --gnu
|
|
||||||
|
|
||||||
MACRO PJ_M_I386=1
|
|
||||||
MACRO PJ_SYMBIAN=1
|
|
||||||
|
|
||||||
SOURCE audiodev.c
|
|
||||||
SOURCE errno.c
|
|
||||||
SOURCE symb_aps_dev.cpp
|
|
||||||
SOURCE symb_mda_dev.cpp
|
|
||||||
SOURCE symb_vas_dev.cpp
|
|
||||||
SOURCE null_dev.c
|
|
||||||
|
|
||||||
SYSTEMINCLUDE ..\pjmedia\include
|
|
||||||
SYSTEMINCLUDE ..\pjlib\include
|
|
||||||
SYSTEMINCLUDE ..\pjlib-util\include
|
|
||||||
|
|
||||||
SYSTEMINCLUDE \epoc32\include
|
|
||||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
||||||
SYSTEMINCLUDE \epoc32\include\mmf\server
|
|
||||||
SYSTEMINCLUDE \epoc32\include\mmf\common
|
|
||||||
SYSTEMINCLUDE \epoc32\include\mda\common
|
|
||||||
SYSTEMINCLUDE \epoc32\include\mmf\plugin
|
|
||||||
|
|
||||||
|
|
|
@ -1,65 +0,0 @@
|
||||||
#if defined(PJ_BUILD_DLL)
|
|
||||||
TARGET pjnath.dll
|
|
||||||
TARGETTYPE dll
|
|
||||||
UID 0x0 0xA0000005
|
|
||||||
|
|
||||||
CAPABILITY None
|
|
||||||
LIBRARY pjlib_util.lib pjlib.lib esock.lib insock.lib charconv.lib euser.lib estlib.lib
|
|
||||||
MACRO PJ_DLL
|
|
||||||
MACRO PJ_EXPORTING
|
|
||||||
|
|
||||||
DEFFILE .\pjnath.def
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
TARGET pjnath.lib
|
|
||||||
TARGETTYPE lib
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
OPTION ARMCC --gnu
|
|
||||||
|
|
||||||
SOURCEPATH ..\pjnath\src\pjnath
|
|
||||||
|
|
||||||
MACRO PJ_M_I386=1
|
|
||||||
MACRO PJ_SYMBIAN=1
|
|
||||||
|
|
||||||
//
|
|
||||||
// PJNATH files
|
|
||||||
//
|
|
||||||
SOURCE errno.c
|
|
||||||
SOURCE ice_session.c
|
|
||||||
SOURCE ice_strans.c
|
|
||||||
SOURCE nat_detect.c
|
|
||||||
SOURCE stun_auth.c
|
|
||||||
SOURCE stun_msg.c
|
|
||||||
SOURCE stun_msg_dump.c
|
|
||||||
SOURCE stun_session.c
|
|
||||||
SOURCE stun_sock.c
|
|
||||||
SOURCE stun_transaction.c
|
|
||||||
SOURCE turn_session.c
|
|
||||||
SOURCE turn_sock.c
|
|
||||||
|
|
||||||
//
|
|
||||||
// Include files
|
|
||||||
//
|
|
||||||
//DOCUMENT pjnath\config.h
|
|
||||||
//DOCUMENT pjnath\\errno.h
|
|
||||||
//DOCUMENT pjnath\\ice_session.h
|
|
||||||
//DOCUMENT pjnath\\ice_strans.h
|
|
||||||
//DOCUMENT pjnath\\stun_auth.h
|
|
||||||
//DOCUMENT pjnath\\stun_config.h
|
|
||||||
//DOCUMENT pjnath\\stun_msg.h
|
|
||||||
//DOCUMENT pjnath\\stun_session.h
|
|
||||||
//DOCUMENT pjnath\\stun_transaction.h
|
|
||||||
//DOCUMENT pjnath\\types.h
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SYSTEMINCLUDE ..\pjlib\include
|
|
||||||
SYSTEMINCLUDE ..\pjlib-util\include
|
|
||||||
SYSTEMINCLUDE ..\pjnath\include
|
|
||||||
|
|
||||||
SYSTEMINCLUDE \epoc32\include
|
|
||||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
||||||
|
|
|
@ -1,88 +0,0 @@
|
||||||
EXPORTS
|
|
||||||
pj_ice_calc_foundation @ 1 NONAME
|
|
||||||
pj_ice_get_cand_type_name @ 2 NONAME
|
|
||||||
pj_ice_sess_add_cand @ 3 NONAME
|
|
||||||
pj_ice_sess_change_role @ 4 NONAME
|
|
||||||
pj_ice_sess_create @ 5 NONAME
|
|
||||||
pj_ice_sess_create_check_list @ 6 NONAME
|
|
||||||
pj_ice_sess_destroy @ 7 NONAME
|
|
||||||
pj_ice_sess_find_default_cand @ 8 NONAME
|
|
||||||
pj_ice_sess_on_rx_pkt @ 9 NONAME
|
|
||||||
pj_ice_sess_send_data @ 10 NONAME
|
|
||||||
pj_ice_sess_set_prefs @ 11 NONAME
|
|
||||||
pj_ice_sess_start_check @ 12 NONAME
|
|
||||||
pj_ice_strans_add_cand @ 13 NONAME
|
|
||||||
pj_ice_strans_create @ 14 NONAME
|
|
||||||
pj_ice_strans_create_comp @ 15 NONAME
|
|
||||||
pj_ice_strans_destroy @ 16 NONAME
|
|
||||||
pj_ice_strans_enum_cands @ 17 NONAME
|
|
||||||
pj_ice_strans_get_comps_status @ 18 NONAME
|
|
||||||
pj_ice_strans_init_ice @ 19 NONAME
|
|
||||||
pj_ice_strans_sendto @ 20 NONAME
|
|
||||||
pj_ice_strans_set_stun_domain @ 21 NONAME
|
|
||||||
pj_ice_strans_set_stun_srv @ 22 NONAME
|
|
||||||
pj_ice_strans_start_ice @ 23 NONAME
|
|
||||||
pj_ice_strans_stop_ice @ 24 NONAME
|
|
||||||
pj_stun_auth_cred_dup @ 25 NONAME
|
|
||||||
pj_stun_auth_valid_for_msg @ 26 NONAME
|
|
||||||
pj_stun_authenticate_request @ 27 NONAME
|
|
||||||
pj_stun_authenticate_response @ 28 NONAME
|
|
||||||
pj_stun_binary_attr_create @ 29 NONAME
|
|
||||||
pj_stun_client_tsx_create @ 30 NONAME
|
|
||||||
pj_stun_client_tsx_destroy @ 31 NONAME
|
|
||||||
pj_stun_client_tsx_get_data @ 32 NONAME
|
|
||||||
pj_stun_client_tsx_is_complete @ 33 NONAME
|
|
||||||
pj_stun_client_tsx_on_rx_msg @ 34 NONAME
|
|
||||||
pj_stun_client_tsx_retransmit @ 35 NONAME
|
|
||||||
pj_stun_client_tsx_schedule_destroy @ 36 NONAME
|
|
||||||
pj_stun_client_tsx_send_msg @ 37 NONAME
|
|
||||||
pj_stun_client_tsx_set_data @ 38 NONAME
|
|
||||||
pj_stun_create_key @ 39 NONAME
|
|
||||||
pj_stun_detect_nat_type @ 40 NONAME
|
|
||||||
pj_stun_empty_attr_create @ 41 NONAME
|
|
||||||
pj_stun_errcode_attr_create @ 42 NONAME
|
|
||||||
pj_stun_get_attr_name @ 43 NONAME
|
|
||||||
pj_stun_get_class_name @ 44 NONAME
|
|
||||||
pj_stun_get_err_reason @ 45 NONAME
|
|
||||||
pj_stun_get_method_name @ 46 NONAME
|
|
||||||
pj_stun_get_nat_name @ 47 NONAME
|
|
||||||
pj_stun_msg_add_attr @ 48 NONAME
|
|
||||||
pj_stun_msg_add_binary_attr @ 49 NONAME
|
|
||||||
pj_stun_msg_add_empty_attr @ 50 NONAME
|
|
||||||
pj_stun_msg_add_errcode_attr @ 51 NONAME
|
|
||||||
pj_stun_msg_add_msgint_attr @ 52 NONAME
|
|
||||||
pj_stun_msg_add_sockaddr_attr @ 53 NONAME
|
|
||||||
pj_stun_msg_add_string_attr @ 54 NONAME
|
|
||||||
pj_stun_msg_add_uint64_attr @ 55 NONAME
|
|
||||||
pj_stun_msg_add_uint_attr @ 56 NONAME
|
|
||||||
pj_stun_msg_add_unknown_attr @ 57 NONAME
|
|
||||||
pj_stun_msg_check @ 58 NONAME
|
|
||||||
pj_stun_msg_create @ 59 NONAME
|
|
||||||
pj_stun_msg_create_response @ 60 NONAME
|
|
||||||
pj_stun_msg_decode @ 61 NONAME
|
|
||||||
pj_stun_msg_destroy_tdata @ 62 NONAME
|
|
||||||
pj_stun_msg_dump @ 63 NONAME
|
|
||||||
pj_stun_msg_encode @ 64 NONAME
|
|
||||||
pj_stun_msg_find_attr @ 65 NONAME
|
|
||||||
pj_stun_msgint_attr_create @ 66 NONAME
|
|
||||||
pj_stun_session_cancel_req @ 67 NONAME
|
|
||||||
pj_stun_session_create @ 68 NONAME
|
|
||||||
pj_stun_session_create_ind @ 69 NONAME
|
|
||||||
pj_stun_session_create_req @ 70 NONAME
|
|
||||||
pj_stun_session_create_res @ 71 NONAME
|
|
||||||
pj_stun_session_destroy @ 72 NONAME
|
|
||||||
pj_stun_session_get_user_data @ 73 NONAME
|
|
||||||
pj_stun_session_on_rx_pkt @ 74 NONAME
|
|
||||||
pj_stun_session_retransmit_req @ 75 NONAME
|
|
||||||
pj_stun_session_send_msg @ 76 NONAME
|
|
||||||
pj_stun_session_set_credential @ 77 NONAME
|
|
||||||
pj_stun_session_set_server_name @ 78 NONAME
|
|
||||||
pj_stun_session_set_user_data @ 79 NONAME
|
|
||||||
pj_stun_set_padding_char @ 80 NONAME
|
|
||||||
pj_stun_sockaddr_attr_create @ 81 NONAME
|
|
||||||
pj_stun_string_attr_create @ 82 NONAME
|
|
||||||
pj_stun_uint64_attr_create @ 83 NONAME
|
|
||||||
pj_stun_uint_attr_create @ 84 NONAME
|
|
||||||
pj_stun_unknown_attr_create @ 85 NONAME
|
|
||||||
pjnath_init @ 86 NONAME
|
|
||||||
pjnath_perror @ 87 NONAME
|
|
|
@ -1,386 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
|
||||||
<?codewarrior exportversion="1.0" ideversion="5.5" success="y" ?>
|
|
||||||
|
|
||||||
<!DOCTYPE MWIDEWORKSPACE [
|
|
||||||
<!ELEMENT MWIDEWORKSPACE (WINDOW*, COMWINDOW*)>
|
|
||||||
<!ELEMENT WINDOW (SESSION, EDOCTYPE, PATH, FRAMELOC, FRAMESIZE, DOCKINFO)>
|
|
||||||
<!ELEMENT COMWINDOW (SESSION, CLSID, OWNERPROJECT, DATA, FRAMELOC, FRAMESIZE, DOCKINFO)>
|
|
||||||
<!ELEMENT SESSION (#PCDATA)>
|
|
||||||
<!ELEMENT EDOCTYPE (#PCDATA)>
|
|
||||||
<!ELEMENT DEFAULT (#PCDATA)>
|
|
||||||
<!ELEMENT MAXIMIZED (#PCDATA)>
|
|
||||||
<!ELEMENT PATH (#PCDATA)>
|
|
||||||
<!ATTLIST PATH USERELATIVEPATHS (true | false) "true">
|
|
||||||
<!ELEMENT FRAMELOC (X, Y)>
|
|
||||||
<!ELEMENT X (#PCDATA)>
|
|
||||||
<!ELEMENT Y (#PCDATA)>
|
|
||||||
<!ELEMENT FRAMESIZE (W, H)>
|
|
||||||
<!ELEMENT W (#PCDATA)>
|
|
||||||
<!ELEMENT H (#PCDATA)>
|
|
||||||
<!ELEMENT DOCKINFO (STATUS, ROW, COLUMN, DOCKBARID, PCTWIDTH, HGT, GROUPID)>
|
|
||||||
<!ELEMENT STATUS (#PCDATA)>
|
|
||||||
<!ELEMENT ROW (#PCDATA)>
|
|
||||||
<!ELEMENT COLUMN (#PCDATA)>
|
|
||||||
<!ELEMENT DOCKBARID (#PCDATA)>
|
|
||||||
<!ELEMENT PCTWIDTH (#PCDATA)>
|
|
||||||
<!ELEMENT HGT (#PCDATA)>
|
|
||||||
<!ELEMENT GROUPID (GIDHIGHPART, GIDLOWPART)>
|
|
||||||
<!ELEMENT GIDHIGHPART (#PCDATA)>
|
|
||||||
<!ELEMENT GIDLOWPART (#PCDATA)>
|
|
||||||
<!ELEMENT CLSID (#PCDATA)>
|
|
||||||
<!ELEMENT OWNERPROJECT (#PCDATA)>
|
|
||||||
<!ATTLIST OWNERPROJECT USERELATIVEPATHS (true | false) "true">
|
|
||||||
<!ELEMENT DATA (#PCDATA)>
|
|
||||||
<!ATTLIST DATA BINARYFORMAT (true | false) "true">
|
|
||||||
]>
|
|
||||||
|
|
||||||
<MWIDEWORKSPACE>
|
|
||||||
<WINDOW>
|
|
||||||
<SESSION>-1</SESSION>
|
|
||||||
<EDOCTYPE>0</EDOCTYPE>
|
|
||||||
<DEFAULT>true</DEFAULT>
|
|
||||||
<PATH USERELATIVEPATHS = "true">pjlib.mcp</PATH>
|
|
||||||
<FRAMELOC>
|
|
||||||
<X>0</X>
|
|
||||||
<Y>0</Y>
|
|
||||||
</FRAMELOC>
|
|
||||||
<FRAMESIZE>
|
|
||||||
<W>347</W>
|
|
||||||
<H>128</H>
|
|
||||||
</FRAMESIZE>
|
|
||||||
<DOCKINFO>
|
|
||||||
<STATUS>1</STATUS>
|
|
||||||
<ROW>0</ROW>
|
|
||||||
<COLUMN>0</COLUMN>
|
|
||||||
<DOCKBARID>59420</DOCKBARID>
|
|
||||||
<PCTWIDTH>1.000000</PCTWIDTH>
|
|
||||||
<HGT>350</HGT>
|
|
||||||
<GROUPID>
|
|
||||||
<GIDHIGHPART>4294967294</GIDHIGHPART>
|
|
||||||
<GIDLOWPART>4294967294</GIDLOWPART>
|
|
||||||
</GROUPID>
|
|
||||||
</DOCKINFO>
|
|
||||||
</WINDOW>
|
|
||||||
<WINDOW>
|
|
||||||
<SESSION>-1</SESSION>
|
|
||||||
<EDOCTYPE>0</EDOCTYPE>
|
|
||||||
<PATH USERELATIVEPATHS = "true">pjlib_util.mcp</PATH>
|
|
||||||
<FRAMELOC>
|
|
||||||
<X>0</X>
|
|
||||||
<Y>0</Y>
|
|
||||||
</FRAMELOC>
|
|
||||||
<FRAMESIZE>
|
|
||||||
<W>347</W>
|
|
||||||
<H>128</H>
|
|
||||||
</FRAMESIZE>
|
|
||||||
<DOCKINFO>
|
|
||||||
<STATUS>1</STATUS>
|
|
||||||
<ROW>0</ROW>
|
|
||||||
<COLUMN>0</COLUMN>
|
|
||||||
<DOCKBARID>59420</DOCKBARID>
|
|
||||||
<PCTWIDTH>1.000000</PCTWIDTH>
|
|
||||||
<HGT>350</HGT>
|
|
||||||
<GROUPID>
|
|
||||||
<GIDHIGHPART>4294967294</GIDHIGHPART>
|
|
||||||
<GIDLOWPART>4294967294</GIDLOWPART>
|
|
||||||
</GROUPID>
|
|
||||||
</DOCKINFO>
|
|
||||||
</WINDOW>
|
|
||||||
<WINDOW>
|
|
||||||
<SESSION>-1</SESSION>
|
|
||||||
<EDOCTYPE>0</EDOCTYPE>
|
|
||||||
<PATH USERELATIVEPATHS = "true">pjnath.mcp</PATH>
|
|
||||||
<FRAMELOC>
|
|
||||||
<X>0</X>
|
|
||||||
<Y>0</Y>
|
|
||||||
</FRAMELOC>
|
|
||||||
<FRAMESIZE>
|
|
||||||
<W>347</W>
|
|
||||||
<H>128</H>
|
|
||||||
</FRAMESIZE>
|
|
||||||
<DOCKINFO>
|
|
||||||
<STATUS>1</STATUS>
|
|
||||||
<ROW>0</ROW>
|
|
||||||
<COLUMN>0</COLUMN>
|
|
||||||
<DOCKBARID>59420</DOCKBARID>
|
|
||||||
<PCTWIDTH>1.000000</PCTWIDTH>
|
|
||||||
<HGT>350</HGT>
|
|
||||||
<GROUPID>
|
|
||||||
<GIDHIGHPART>4294967294</GIDHIGHPART>
|
|
||||||
<GIDLOWPART>4294967294</GIDLOWPART>
|
|
||||||
</GROUPID>
|
|
||||||
</DOCKINFO>
|
|
||||||
</WINDOW>
|
|
||||||
<WINDOW>
|
|
||||||
<SESSION>-1</SESSION>
|
|
||||||
<EDOCTYPE>0</EDOCTYPE>
|
|
||||||
<PATH USERELATIVEPATHS = "true">null_audio.mcp</PATH>
|
|
||||||
<FRAMELOC>
|
|
||||||
<X>0</X>
|
|
||||||
<Y>0</Y>
|
|
||||||
</FRAMELOC>
|
|
||||||
<FRAMESIZE>
|
|
||||||
<W>347</W>
|
|
||||||
<H>128</H>
|
|
||||||
</FRAMESIZE>
|
|
||||||
<DOCKINFO>
|
|
||||||
<STATUS>1</STATUS>
|
|
||||||
<ROW>0</ROW>
|
|
||||||
<COLUMN>0</COLUMN>
|
|
||||||
<DOCKBARID>59420</DOCKBARID>
|
|
||||||
<PCTWIDTH>1.000000</PCTWIDTH>
|
|
||||||
<HGT>350</HGT>
|
|
||||||
<GROUPID>
|
|
||||||
<GIDHIGHPART>4294967294</GIDHIGHPART>
|
|
||||||
<GIDLOWPART>4294967294</GIDLOWPART>
|
|
||||||
</GROUPID>
|
|
||||||
</DOCKINFO>
|
|
||||||
</WINDOW>
|
|
||||||
<WINDOW>
|
|
||||||
<SESSION>-1</SESSION>
|
|
||||||
<EDOCTYPE>0</EDOCTYPE>
|
|
||||||
<PATH USERELATIVEPATHS = "true">pjsdp.mcp</PATH>
|
|
||||||
<FRAMELOC>
|
|
||||||
<X>0</X>
|
|
||||||
<Y>0</Y>
|
|
||||||
</FRAMELOC>
|
|
||||||
<FRAMESIZE>
|
|
||||||
<W>347</W>
|
|
||||||
<H>128</H>
|
|
||||||
</FRAMESIZE>
|
|
||||||
<DOCKINFO>
|
|
||||||
<STATUS>1</STATUS>
|
|
||||||
<ROW>0</ROW>
|
|
||||||
<COLUMN>0</COLUMN>
|
|
||||||
<DOCKBARID>59420</DOCKBARID>
|
|
||||||
<PCTWIDTH>1.000000</PCTWIDTH>
|
|
||||||
<HGT>350</HGT>
|
|
||||||
<GROUPID>
|
|
||||||
<GIDHIGHPART>4294967294</GIDHIGHPART>
|
|
||||||
<GIDLOWPART>4294967294</GIDLOWPART>
|
|
||||||
</GROUPID>
|
|
||||||
</DOCKINFO>
|
|
||||||
</WINDOW>
|
|
||||||
<WINDOW>
|
|
||||||
<SESSION>-1</SESSION>
|
|
||||||
<EDOCTYPE>0</EDOCTYPE>
|
|
||||||
<PATH USERELATIVEPATHS = "true">pjmedia.mcp</PATH>
|
|
||||||
<FRAMELOC>
|
|
||||||
<X>0</X>
|
|
||||||
<Y>0</Y>
|
|
||||||
</FRAMELOC>
|
|
||||||
<FRAMESIZE>
|
|
||||||
<W>347</W>
|
|
||||||
<H>128</H>
|
|
||||||
</FRAMESIZE>
|
|
||||||
<DOCKINFO>
|
|
||||||
<STATUS>1</STATUS>
|
|
||||||
<ROW>0</ROW>
|
|
||||||
<COLUMN>0</COLUMN>
|
|
||||||
<DOCKBARID>59420</DOCKBARID>
|
|
||||||
<PCTWIDTH>1.000000</PCTWIDTH>
|
|
||||||
<HGT>350</HGT>
|
|
||||||
<GROUPID>
|
|
||||||
<GIDHIGHPART>4294967294</GIDHIGHPART>
|
|
||||||
<GIDLOWPART>4294967294</GIDLOWPART>
|
|
||||||
</GROUPID>
|
|
||||||
</DOCKINFO>
|
|
||||||
</WINDOW>
|
|
||||||
<WINDOW>
|
|
||||||
<SESSION>-1</SESSION>
|
|
||||||
<EDOCTYPE>0</EDOCTYPE>
|
|
||||||
<PATH USERELATIVEPATHS = "true">pjsip.mcp</PATH>
|
|
||||||
<FRAMELOC>
|
|
||||||
<X>0</X>
|
|
||||||
<Y>0</Y>
|
|
||||||
</FRAMELOC>
|
|
||||||
<FRAMESIZE>
|
|
||||||
<W>347</W>
|
|
||||||
<H>128</H>
|
|
||||||
</FRAMESIZE>
|
|
||||||
<DOCKINFO>
|
|
||||||
<STATUS>1</STATUS>
|
|
||||||
<ROW>0</ROW>
|
|
||||||
<COLUMN>0</COLUMN>
|
|
||||||
<DOCKBARID>59420</DOCKBARID>
|
|
||||||
<PCTWIDTH>1.000000</PCTWIDTH>
|
|
||||||
<HGT>350</HGT>
|
|
||||||
<GROUPID>
|
|
||||||
<GIDHIGHPART>4294967294</GIDHIGHPART>
|
|
||||||
<GIDLOWPART>4294967294</GIDLOWPART>
|
|
||||||
</GROUPID>
|
|
||||||
</DOCKINFO>
|
|
||||||
</WINDOW>
|
|
||||||
<WINDOW>
|
|
||||||
<SESSION>-1</SESSION>
|
|
||||||
<EDOCTYPE>0</EDOCTYPE>
|
|
||||||
<PATH USERELATIVEPATHS = "true">pjsip_simple.mcp</PATH>
|
|
||||||
<FRAMELOC>
|
|
||||||
<X>0</X>
|
|
||||||
<Y>0</Y>
|
|
||||||
</FRAMELOC>
|
|
||||||
<FRAMESIZE>
|
|
||||||
<W>347</W>
|
|
||||||
<H>128</H>
|
|
||||||
</FRAMESIZE>
|
|
||||||
<DOCKINFO>
|
|
||||||
<STATUS>1</STATUS>
|
|
||||||
<ROW>0</ROW>
|
|
||||||
<COLUMN>0</COLUMN>
|
|
||||||
<DOCKBARID>59420</DOCKBARID>
|
|
||||||
<PCTWIDTH>1.000000</PCTWIDTH>
|
|
||||||
<HGT>350</HGT>
|
|
||||||
<GROUPID>
|
|
||||||
<GIDHIGHPART>4294967294</GIDHIGHPART>
|
|
||||||
<GIDLOWPART>4294967294</GIDLOWPART>
|
|
||||||
</GROUPID>
|
|
||||||
</DOCKINFO>
|
|
||||||
</WINDOW>
|
|
||||||
<WINDOW>
|
|
||||||
<SESSION>-1</SESSION>
|
|
||||||
<EDOCTYPE>0</EDOCTYPE>
|
|
||||||
<PATH USERELATIVEPATHS = "true">pjsip_ua.mcp</PATH>
|
|
||||||
<FRAMELOC>
|
|
||||||
<X>0</X>
|
|
||||||
<Y>0</Y>
|
|
||||||
</FRAMELOC>
|
|
||||||
<FRAMESIZE>
|
|
||||||
<W>347</W>
|
|
||||||
<H>128</H>
|
|
||||||
</FRAMESIZE>
|
|
||||||
<DOCKINFO>
|
|
||||||
<STATUS>1</STATUS>
|
|
||||||
<ROW>0</ROW>
|
|
||||||
<COLUMN>0</COLUMN>
|
|
||||||
<DOCKBARID>59420</DOCKBARID>
|
|
||||||
<PCTWIDTH>1.000000</PCTWIDTH>
|
|
||||||
<HGT>350</HGT>
|
|
||||||
<GROUPID>
|
|
||||||
<GIDHIGHPART>4294967294</GIDHIGHPART>
|
|
||||||
<GIDLOWPART>4294967294</GIDLOWPART>
|
|
||||||
</GROUPID>
|
|
||||||
</DOCKINFO>
|
|
||||||
</WINDOW>
|
|
||||||
<WINDOW>
|
|
||||||
<SESSION>-1</SESSION>
|
|
||||||
<EDOCTYPE>0</EDOCTYPE>
|
|
||||||
<PATH USERELATIVEPATHS = "true">pjsua_lib.mcp</PATH>
|
|
||||||
<FRAMELOC>
|
|
||||||
<X>0</X>
|
|
||||||
<Y>0</Y>
|
|
||||||
</FRAMELOC>
|
|
||||||
<FRAMESIZE>
|
|
||||||
<W>347</W>
|
|
||||||
<H>128</H>
|
|
||||||
</FRAMESIZE>
|
|
||||||
<DOCKINFO>
|
|
||||||
<STATUS>1</STATUS>
|
|
||||||
<ROW>0</ROW>
|
|
||||||
<COLUMN>0</COLUMN>
|
|
||||||
<DOCKBARID>59420</DOCKBARID>
|
|
||||||
<PCTWIDTH>1.000000</PCTWIDTH>
|
|
||||||
<HGT>350</HGT>
|
|
||||||
<GROUPID>
|
|
||||||
<GIDHIGHPART>4294967294</GIDHIGHPART>
|
|
||||||
<GIDLOWPART>4294967294</GIDLOWPART>
|
|
||||||
</GROUPID>
|
|
||||||
</DOCKINFO>
|
|
||||||
</WINDOW>
|
|
||||||
<WINDOW>
|
|
||||||
<SESSION>-1</SESSION>
|
|
||||||
<EDOCTYPE>0</EDOCTYPE>
|
|
||||||
<PATH USERELATIVEPATHS = "true">symbian_ua.mcp</PATH>
|
|
||||||
<FRAMELOC>
|
|
||||||
<X>0</X>
|
|
||||||
<Y>0</Y>
|
|
||||||
</FRAMELOC>
|
|
||||||
<FRAMESIZE>
|
|
||||||
<W>347</W>
|
|
||||||
<H>128</H>
|
|
||||||
</FRAMESIZE>
|
|
||||||
<DOCKINFO>
|
|
||||||
<STATUS>1</STATUS>
|
|
||||||
<ROW>0</ROW>
|
|
||||||
<COLUMN>0</COLUMN>
|
|
||||||
<DOCKBARID>59420</DOCKBARID>
|
|
||||||
<PCTWIDTH>1.000000</PCTWIDTH>
|
|
||||||
<HGT>350</HGT>
|
|
||||||
<GROUPID>
|
|
||||||
<GIDHIGHPART>4294967294</GIDHIGHPART>
|
|
||||||
<GIDLOWPART>4294967294</GIDLOWPART>
|
|
||||||
</GROUPID>
|
|
||||||
</DOCKINFO>
|
|
||||||
</WINDOW>
|
|
||||||
<WINDOW>
|
|
||||||
<SESSION>-2147483648</SESSION>
|
|
||||||
<EDOCTYPE>20</EDOCTYPE>
|
|
||||||
<FRAMELOC>
|
|
||||||
<X>4</X>
|
|
||||||
<Y>23</Y>
|
|
||||||
</FRAMELOC>
|
|
||||||
<FRAMESIZE>
|
|
||||||
<W>1464</W>
|
|
||||||
<H>3681</H>
|
|
||||||
</FRAMESIZE>
|
|
||||||
<DOCKINFO>
|
|
||||||
<STATUS>0</STATUS>
|
|
||||||
<ROW></ROW>
|
|
||||||
<COLUMN></COLUMN>
|
|
||||||
<DOCKBARID></DOCKBARID>
|
|
||||||
<PCTWIDTH></PCTWIDTH>
|
|
||||||
<HGT></HGT>
|
|
||||||
<GROUPID>
|
|
||||||
<GIDHIGHPART></GIDHIGHPART>
|
|
||||||
<GIDLOWPART></GIDLOWPART>
|
|
||||||
</GROUPID>
|
|
||||||
</DOCKINFO>
|
|
||||||
</WINDOW>
|
|
||||||
<WINDOW>
|
|
||||||
<SESSION>-2147483648</SESSION>
|
|
||||||
<EDOCTYPE>36</EDOCTYPE>
|
|
||||||
<FRAMELOC>
|
|
||||||
<X>4</X>
|
|
||||||
<Y>23</Y>
|
|
||||||
</FRAMELOC>
|
|
||||||
<FRAMESIZE>
|
|
||||||
<W>366</W>
|
|
||||||
<H>354</H>
|
|
||||||
</FRAMESIZE>
|
|
||||||
<DOCKINFO>
|
|
||||||
<STATUS>0</STATUS>
|
|
||||||
<ROW></ROW>
|
|
||||||
<COLUMN></COLUMN>
|
|
||||||
<DOCKBARID></DOCKBARID>
|
|
||||||
<PCTWIDTH></PCTWIDTH>
|
|
||||||
<HGT></HGT>
|
|
||||||
<GROUPID>
|
|
||||||
<GIDHIGHPART></GIDHIGHPART>
|
|
||||||
<GIDLOWPART></GIDLOWPART>
|
|
||||||
</GROUPID>
|
|
||||||
</DOCKINFO>
|
|
||||||
</WINDOW>
|
|
||||||
<WINDOW>
|
|
||||||
<SESSION>-2147483648</SESSION>
|
|
||||||
<EDOCTYPE>23</EDOCTYPE>
|
|
||||||
<FRAMELOC>
|
|
||||||
<X>6</X>
|
|
||||||
<Y>81</Y>
|
|
||||||
</FRAMELOC>
|
|
||||||
<FRAMESIZE>
|
|
||||||
<W>566</W>
|
|
||||||
<H>477</H>
|
|
||||||
</FRAMESIZE>
|
|
||||||
<DOCKINFO>
|
|
||||||
<STATUS>0</STATUS>
|
|
||||||
<ROW></ROW>
|
|
||||||
<COLUMN></COLUMN>
|
|
||||||
<DOCKBARID></DOCKBARID>
|
|
||||||
<PCTWIDTH></PCTWIDTH>
|
|
||||||
<HGT></HGT>
|
|
||||||
<GROUPID>
|
|
||||||
<GIDHIGHPART></GIDHIGHPART>
|
|
||||||
<GIDLOWPART></GIDLOWPART>
|
|
||||||
</GROUPID>
|
|
||||||
</DOCKINFO>
|
|
||||||
</WINDOW>
|
|
||||||
</MWIDEWORKSPACE>
|
|
|
@ -1,46 +0,0 @@
|
||||||
#if defined(PJ_BUILD_DLL)
|
|
||||||
TARGET pjsdp.dll
|
|
||||||
TARGETTYPE dll
|
|
||||||
UID 0x0 0xA0000006
|
|
||||||
|
|
||||||
CAPABILITY None
|
|
||||||
LIBRARY pjlib_util.lib pjlib.lib charconv.lib euser.lib estlib.lib
|
|
||||||
MACRO PJ_DLL
|
|
||||||
MACRO PJ_EXPORTING
|
|
||||||
|
|
||||||
DEFFILE .\pjsdp.def
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
TARGET pjsdp.lib
|
|
||||||
TARGETTYPE lib
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SOURCEPATH ..\pjmedia\src\pjmedia
|
|
||||||
|
|
||||||
MACRO PJ_M_I386=1
|
|
||||||
MACRO PJ_SYMBIAN=1
|
|
||||||
|
|
||||||
// Must compile as C++, otherwise exception would not work
|
|
||||||
OPTION CW -lang c++
|
|
||||||
OPTION ARMCC --cpp --gnu
|
|
||||||
OPTION GCC -x c++
|
|
||||||
OPTION GCCE -x c++
|
|
||||||
|
|
||||||
//
|
|
||||||
// Platform independent source
|
|
||||||
//
|
|
||||||
SOURCE errno.c
|
|
||||||
SOURCE sdp_wrap.cpp
|
|
||||||
SOURCE sdp_cmp.c
|
|
||||||
SOURCE sdp_neg.c
|
|
||||||
|
|
||||||
|
|
||||||
SYSTEMINCLUDE ..\pjlib\include
|
|
||||||
SYSTEMINCLUDE ..\pjlib-util\include
|
|
||||||
SYSTEMINCLUDE ..\pjmedia\include
|
|
||||||
|
|
||||||
SYSTEMINCLUDE \epoc32\include
|
|
||||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
||||||
|
|
|
@ -1,45 +0,0 @@
|
||||||
EXPORTS
|
|
||||||
pjmedia_sdp_attr_add @ 1 NONAME
|
|
||||||
pjmedia_sdp_attr_clone @ 2 NONAME
|
|
||||||
pjmedia_sdp_attr_create @ 3 NONAME
|
|
||||||
pjmedia_sdp_attr_find @ 4 NONAME
|
|
||||||
pjmedia_sdp_attr_find2 @ 5 NONAME
|
|
||||||
pjmedia_sdp_attr_get_fmtp @ 6 NONAME
|
|
||||||
pjmedia_sdp_attr_get_rtcp @ 7 NONAME
|
|
||||||
pjmedia_sdp_attr_get_rtpmap @ 8 NONAME
|
|
||||||
pjmedia_sdp_attr_remove @ 9 NONAME
|
|
||||||
pjmedia_sdp_attr_remove_all @ 10 NONAME
|
|
||||||
pjmedia_sdp_attr_to_rtpmap @ 11 NONAME
|
|
||||||
pjmedia_sdp_conn_clone @ 12 NONAME
|
|
||||||
pjmedia_sdp_media_add_attr @ 13 NONAME
|
|
||||||
pjmedia_sdp_media_clone @ 14 NONAME
|
|
||||||
pjmedia_sdp_media_cmp @ 15 NONAME
|
|
||||||
pjmedia_sdp_media_find_attr @ 16 NONAME
|
|
||||||
pjmedia_sdp_media_find_attr2 @ 17 NONAME
|
|
||||||
pjmedia_sdp_media_remove_all_attr @ 18 NONAME
|
|
||||||
pjmedia_sdp_media_remove_attr @ 19 NONAME
|
|
||||||
pjmedia_sdp_neg_cancel_offer @ 20 NONAME
|
|
||||||
pjmedia_sdp_neg_create_w_local_offer @ 21 NONAME
|
|
||||||
pjmedia_sdp_neg_create_w_remote_offer @ 22 NONAME
|
|
||||||
pjmedia_sdp_neg_get_active_local @ 23 NONAME
|
|
||||||
pjmedia_sdp_neg_get_active_remote @ 24 NONAME
|
|
||||||
pjmedia_sdp_neg_get_neg_local @ 25 NONAME
|
|
||||||
pjmedia_sdp_neg_get_neg_remote @ 26 NONAME
|
|
||||||
pjmedia_sdp_neg_get_state @ 27 NONAME
|
|
||||||
pjmedia_sdp_neg_has_local_answer @ 28 NONAME
|
|
||||||
pjmedia_sdp_neg_modify_local_offer @ 29 NONAME
|
|
||||||
pjmedia_sdp_neg_negotiate @ 30 NONAME
|
|
||||||
pjmedia_sdp_neg_send_local_offer @ 31 NONAME
|
|
||||||
pjmedia_sdp_neg_set_local_answer @ 32 NONAME
|
|
||||||
pjmedia_sdp_neg_set_prefer_remote_codec_order @ 33 NONAME
|
|
||||||
pjmedia_sdp_neg_set_remote_answer @ 34 NONAME
|
|
||||||
pjmedia_sdp_neg_set_remote_offer @ 35 NONAME
|
|
||||||
pjmedia_sdp_neg_state_str @ 36 NONAME
|
|
||||||
pjmedia_sdp_neg_was_answer_remote @ 37 NONAME
|
|
||||||
pjmedia_sdp_parse @ 38 NONAME
|
|
||||||
pjmedia_sdp_print @ 39 NONAME
|
|
||||||
pjmedia_sdp_rtpmap_to_attr @ 40 NONAME
|
|
||||||
pjmedia_sdp_session_clone @ 41 NONAME
|
|
||||||
pjmedia_sdp_session_cmp @ 42 NONAME
|
|
||||||
pjmedia_sdp_validate @ 43 NONAME
|
|
||||||
pjmedia_strerror @ 44 NONAME
|
|
|
@ -1,69 +0,0 @@
|
||||||
#if defined(PJ_BUILD_DLL)
|
|
||||||
|
|
||||||
TARGET pjsip.dll
|
|
||||||
TARGETTYPE dll
|
|
||||||
|
|
||||||
UID 0x0 0xA0000007
|
|
||||||
|
|
||||||
|
|
||||||
CAPABILITY None
|
|
||||||
LIBRARY pjsdp.lib pjlib_util.lib pjlib.lib esock.lib insock.lib charconv.lib euser.lib estlib.lib
|
|
||||||
MACRO PJ_DLL
|
|
||||||
MACRO PJ_EXPORTING
|
|
||||||
|
|
||||||
DEFFILE .\pjsip.def
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
TARGET pjsip.lib
|
|
||||||
TARGETTYPE lib
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SOURCEPATH ..\pjsip\src\pjsip
|
|
||||||
|
|
||||||
MACRO PJ_M_I386=1
|
|
||||||
MACRO PJ_SYMBIAN=1
|
|
||||||
|
|
||||||
// Must compile as C++, otherwise exception would not work
|
|
||||||
OPTION CW -lang c++
|
|
||||||
OPTION ARMCC --cpp --gnu
|
|
||||||
OPTION GCC -x c++
|
|
||||||
OPTION GCCE -x c++
|
|
||||||
|
|
||||||
// PJSIP-CORE files
|
|
||||||
|
|
||||||
//SOURCE sip_auth_aka.c
|
|
||||||
SOURCE sip_auth_client.c
|
|
||||||
SOURCE sip_auth_msg.c
|
|
||||||
SOURCE sip_auth_parser_wrap.cpp
|
|
||||||
SOURCE sip_auth_server.c
|
|
||||||
SOURCE sip_config.c
|
|
||||||
SOURCE sip_dialog_wrap.cpp
|
|
||||||
SOURCE sip_endpoint_wrap.cpp
|
|
||||||
SOURCE sip_errno.c
|
|
||||||
SOURCE sip_msg.c
|
|
||||||
SOURCE sip_multipart.c
|
|
||||||
SOURCE sip_parser_wrap.cpp
|
|
||||||
SOURCE sip_resolve.c
|
|
||||||
SOURCE sip_tel_uri_wrap.cpp
|
|
||||||
SOURCE sip_transaction.c
|
|
||||||
SOURCE sip_transport_wrap.cpp
|
|
||||||
SOURCE sip_transport_loop.c
|
|
||||||
SOURCE sip_transport_tcp.c
|
|
||||||
SOURCE sip_transport_udp.c
|
|
||||||
SOURCE sip_transport_tls.c
|
|
||||||
SOURCE sip_ua_layer.c
|
|
||||||
SOURCE sip_uri.c
|
|
||||||
SOURCE sip_util_wrap.cpp
|
|
||||||
SOURCE sip_util_proxy_wrap.cpp
|
|
||||||
SOURCE sip_util_statefull.c
|
|
||||||
|
|
||||||
SYSTEMINCLUDE ..\pjlib\include
|
|
||||||
SYSTEMINCLUDE ..\pjlib-util\include
|
|
||||||
SYSTEMINCLUDE ..\pjsip\include
|
|
||||||
|
|
||||||
SYSTEMINCLUDE \epoc32\include
|
|
||||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
||||||
|
|
||||||
|
|
|
@ -1,280 +0,0 @@
|
||||||
EXPORTS
|
|
||||||
pjsip_accept_hdr_create @ 1 NONAME
|
|
||||||
pjsip_accept_hdr_init @ 2 NONAME
|
|
||||||
pjsip_ack_method @ 3 NONAME
|
|
||||||
pjsip_allow_hdr_create @ 4 NONAME
|
|
||||||
pjsip_allow_hdr_init @ 5 NONAME
|
|
||||||
pjsip_auth_clt_clone @ 6 NONAME
|
|
||||||
pjsip_auth_clt_get_prefs @ 7 NONAME
|
|
||||||
pjsip_auth_clt_init @ 8 NONAME
|
|
||||||
pjsip_auth_clt_init_req @ 9 NONAME
|
|
||||||
pjsip_auth_clt_reinit_req @ 10 NONAME
|
|
||||||
pjsip_auth_clt_set_credentials @ 11 NONAME
|
|
||||||
pjsip_auth_clt_set_prefs @ 12 NONAME
|
|
||||||
pjsip_auth_create_digest @ 13 NONAME
|
|
||||||
pjsip_auth_deinit_parser @ 14 NONAME
|
|
||||||
pjsip_auth_init_parser @ 15 NONAME
|
|
||||||
pjsip_auth_srv_challenge @ 16 NONAME
|
|
||||||
pjsip_auth_srv_init @ 17 NONAME
|
|
||||||
pjsip_auth_srv_verify @ 18 NONAME
|
|
||||||
pjsip_authorization_hdr_create @ 19 NONAME
|
|
||||||
pjsip_bye_method @ 20 NONAME
|
|
||||||
pjsip_calculate_branch_id @ 21 NONAME
|
|
||||||
pjsip_cancel_method @ 22 NONAME
|
|
||||||
pjsip_cid_hdr_create @ 23 NONAME
|
|
||||||
pjsip_cid_hdr_init @ 24 NONAME
|
|
||||||
pjsip_clen_hdr_create @ 25 NONAME
|
|
||||||
pjsip_clen_hdr_init @ 26 NONAME
|
|
||||||
pjsip_clone_text_data @ 27 NONAME
|
|
||||||
pjsip_concat_param_imp @ 28 NONAME
|
|
||||||
pjsip_contact_hdr_create @ 29 NONAME
|
|
||||||
pjsip_contact_hdr_init @ 30 NONAME
|
|
||||||
pjsip_cred_info_dup @ 31 NONAME
|
|
||||||
pjsip_cseq_hdr_create @ 32 NONAME
|
|
||||||
pjsip_cseq_hdr_init @ 33 NONAME
|
|
||||||
pjsip_ctype_hdr_create @ 34 NONAME
|
|
||||||
pjsip_ctype_hdr_init @ 35 NONAME
|
|
||||||
pjsip_dlg_add_usage @ 36 NONAME
|
|
||||||
pjsip_dlg_create_request @ 37 NONAME
|
|
||||||
pjsip_dlg_create_response @ 38 NONAME
|
|
||||||
pjsip_dlg_create_uac @ 39 NONAME
|
|
||||||
pjsip_dlg_create_uas @ 40 NONAME
|
|
||||||
pjsip_dlg_dec_lock @ 41 NONAME
|
|
||||||
pjsip_dlg_dec_session @ 42 NONAME
|
|
||||||
pjsip_dlg_fork @ 43 NONAME
|
|
||||||
pjsip_dlg_get_mod_data @ 44 NONAME
|
|
||||||
pjsip_dlg_inc_lock @ 45 NONAME
|
|
||||||
pjsip_dlg_inc_session @ 46 NONAME
|
|
||||||
pjsip_dlg_modify_response @ 47 NONAME
|
|
||||||
pjsip_dlg_respond @ 48 NONAME
|
|
||||||
pjsip_dlg_send_request @ 49 NONAME
|
|
||||||
pjsip_dlg_send_response @ 50 NONAME
|
|
||||||
pjsip_dlg_set_mod_data @ 51 NONAME
|
|
||||||
pjsip_dlg_set_route_set @ 52 NONAME
|
|
||||||
pjsip_dlg_set_transport @ 53 NONAME
|
|
||||||
pjsip_dlg_terminate @ 54 NONAME
|
|
||||||
pjsip_dlg_try_inc_lock @ 55 NONAME
|
|
||||||
pjsip_endpt_acquire_transport @ 56 NONAME
|
|
||||||
pjsip_endpt_add_capability @ 57 NONAME
|
|
||||||
pjsip_endpt_cancel_timer @ 58 NONAME
|
|
||||||
pjsip_endpt_create @ 59 NONAME
|
|
||||||
pjsip_endpt_create_ack @ 60 NONAME
|
|
||||||
pjsip_endpt_create_cancel @ 61 NONAME
|
|
||||||
pjsip_endpt_create_pool @ 62 NONAME
|
|
||||||
pjsip_endpt_create_request @ 63 NONAME
|
|
||||||
pjsip_endpt_create_request_from_hdr @ 64 NONAME
|
|
||||||
pjsip_endpt_create_request_fwd @ 65 NONAME
|
|
||||||
pjsip_endpt_create_resolver @ 66 NONAME
|
|
||||||
pjsip_endpt_create_response @ 67 NONAME
|
|
||||||
pjsip_endpt_create_response_fwd @ 68 NONAME
|
|
||||||
pjsip_endpt_create_tdata @ 69 NONAME
|
|
||||||
pjsip_endpt_destroy @ 70 NONAME
|
|
||||||
pjsip_endpt_dump @ 71 NONAME
|
|
||||||
pjsip_endpt_get_capability @ 72 NONAME
|
|
||||||
pjsip_endpt_get_ioqueue @ 73 NONAME
|
|
||||||
pjsip_endpt_get_request_headers @ 74 NONAME
|
|
||||||
pjsip_endpt_get_resolver @ 75 NONAME
|
|
||||||
pjsip_endpt_get_timer_heap @ 76 NONAME
|
|
||||||
pjsip_endpt_get_tpmgr @ 77 NONAME
|
|
||||||
pjsip_endpt_handle_events @ 78 NONAME
|
|
||||||
pjsip_endpt_handle_events2 @ 79 NONAME
|
|
||||||
pjsip_endpt_has_capability @ 80 NONAME
|
|
||||||
pjsip_endpt_log_error @ 81 NONAME
|
|
||||||
pjsip_endpt_name @ 82 NONAME
|
|
||||||
pjsip_endpt_register_module @ 83 NONAME
|
|
||||||
pjsip_endpt_release_pool @ 84 NONAME
|
|
||||||
pjsip_endpt_resolve @ 85 NONAME
|
|
||||||
pjsip_endpt_respond @ 86 NONAME
|
|
||||||
pjsip_endpt_respond_stateless @ 87 NONAME
|
|
||||||
pjsip_endpt_schedule_timer @ 88 NONAME
|
|
||||||
pjsip_endpt_send_raw @ 89 NONAME
|
|
||||||
pjsip_endpt_send_raw_to_uri @ 90 NONAME
|
|
||||||
pjsip_endpt_send_request @ 91 NONAME
|
|
||||||
pjsip_endpt_send_request_stateless @ 92 NONAME
|
|
||||||
pjsip_endpt_send_response @ 93 NONAME
|
|
||||||
pjsip_endpt_send_response2 @ 94 NONAME
|
|
||||||
pjsip_endpt_set_resolver @ 95 NONAME
|
|
||||||
pjsip_endpt_unregister_module @ 96 NONAME
|
|
||||||
pjsip_event_str @ 97 NONAME
|
|
||||||
pjsip_expires_hdr_create @ 98 NONAME
|
|
||||||
pjsip_expires_hdr_init @ 99 NONAME
|
|
||||||
pjsip_find_msg @ 100 NONAME
|
|
||||||
pjsip_from_hdr_create @ 101 NONAME
|
|
||||||
pjsip_from_hdr_init @ 102 NONAME
|
|
||||||
pjsip_fromto_hdr_set_from @ 103 NONAME
|
|
||||||
pjsip_fromto_hdr_set_to @ 104 NONAME
|
|
||||||
pjsip_generic_array_hdr_create @ 105 NONAME
|
|
||||||
pjsip_generic_array_hdr_init @ 106 NONAME
|
|
||||||
pjsip_generic_int_hdr_create @ 107 NONAME
|
|
||||||
pjsip_generic_int_hdr_init @ 108 NONAME
|
|
||||||
pjsip_generic_string_hdr_create @ 109 NONAME
|
|
||||||
pjsip_generic_string_hdr_init @ 110 NONAME
|
|
||||||
pjsip_generic_string_hdr_init2 @ 111 NONAME
|
|
||||||
pjsip_get_ack_method @ 112 NONAME
|
|
||||||
pjsip_get_bye_method @ 113 NONAME
|
|
||||||
pjsip_get_cancel_method @ 114 NONAME
|
|
||||||
pjsip_get_invite_method @ 115 NONAME
|
|
||||||
pjsip_get_options_method @ 116 NONAME
|
|
||||||
pjsip_get_register_method @ 117 NONAME
|
|
||||||
pjsip_get_request_dest @ 118 NONAME
|
|
||||||
pjsip_get_response_addr @ 119 NONAME
|
|
||||||
pjsip_get_status_text @ 120 NONAME
|
|
||||||
pjsip_hdr_clone @ 121 NONAME
|
|
||||||
pjsip_hdr_print_on @ 122 NONAME
|
|
||||||
pjsip_hdr_shallow_clone @ 123 NONAME
|
|
||||||
pjsip_invite_method @ 124 NONAME
|
|
||||||
pjsip_loop_set_delay @ 125 NONAME
|
|
||||||
pjsip_loop_set_discard @ 126 NONAME
|
|
||||||
pjsip_loop_set_failure @ 127 NONAME
|
|
||||||
pjsip_loop_set_recv_delay @ 128 NONAME
|
|
||||||
pjsip_loop_set_send_callback_delay @ 129 NONAME
|
|
||||||
pjsip_loop_start @ 130 NONAME
|
|
||||||
pjsip_max_fwd_hdr_create @ 131 NONAME
|
|
||||||
pjsip_max_fwd_hdr_init @ 132 NONAME
|
|
||||||
pjsip_method_cmp @ 133 NONAME
|
|
||||||
pjsip_method_copy @ 134 NONAME
|
|
||||||
pjsip_method_creates_dialog @ 135 NONAME
|
|
||||||
pjsip_method_init @ 136 NONAME
|
|
||||||
pjsip_method_init_np @ 137 NONAME
|
|
||||||
pjsip_method_set @ 138 NONAME
|
|
||||||
pjsip_min_expires_hdr_create @ 139 NONAME
|
|
||||||
pjsip_min_expires_hdr_init @ 140 NONAME
|
|
||||||
pjsip_msg_body_clone @ 141 NONAME
|
|
||||||
pjsip_msg_body_copy @ 142 NONAME
|
|
||||||
pjsip_msg_body_create @ 143 NONAME
|
|
||||||
pjsip_msg_clone @ 144 NONAME
|
|
||||||
pjsip_msg_create @ 145 NONAME
|
|
||||||
pjsip_msg_find_hdr @ 146 NONAME
|
|
||||||
pjsip_msg_find_hdr_by_name @ 147 NONAME
|
|
||||||
pjsip_msg_find_remove_hdr @ 148 NONAME
|
|
||||||
pjsip_msg_print @ 149 NONAME
|
|
||||||
pjsip_name_addr_assign @ 150 NONAME
|
|
||||||
pjsip_name_addr_create @ 151 NONAME
|
|
||||||
pjsip_name_addr_init @ 152 NONAME
|
|
||||||
pjsip_options_method @ 153 NONAME
|
|
||||||
pjsip_param_cfind @ 154 NONAME
|
|
||||||
pjsip_param_clone @ 155 NONAME
|
|
||||||
pjsip_param_find @ 156 NONAME
|
|
||||||
pjsip_param_print_on @ 157 NONAME
|
|
||||||
pjsip_param_shallow_clone @ 158 NONAME
|
|
||||||
pjsip_parse_end_hdr_imp @ 159 NONAME
|
|
||||||
pjsip_parse_hdr @ 160 NONAME
|
|
||||||
pjsip_parse_msg @ 161 NONAME
|
|
||||||
pjsip_parse_param_imp @ 162 NONAME
|
|
||||||
pjsip_parse_rdata @ 163 NONAME
|
|
||||||
pjsip_parse_status_line @ 164 NONAME
|
|
||||||
pjsip_parse_uri @ 165 NONAME
|
|
||||||
pjsip_parse_uri_param_imp @ 166 NONAME
|
|
||||||
pjsip_parser_const @ 167 NONAME
|
|
||||||
pjsip_print_text_body @ 168 NONAME
|
|
||||||
pjsip_process_route_set @ 169 NONAME
|
|
||||||
pjsip_proxy_authenticate_hdr_create @ 170 NONAME
|
|
||||||
pjsip_proxy_authorization_hdr_create @ 171 NONAME
|
|
||||||
pjsip_rdata_get_dlg @ 172 NONAME
|
|
||||||
pjsip_rdata_get_tsx @ 173 NONAME
|
|
||||||
pjsip_register_hdr_parser @ 174 NONAME
|
|
||||||
pjsip_register_method @ 175 NONAME
|
|
||||||
pjsip_register_uri_parser @ 176 NONAME
|
|
||||||
pjsip_require_hdr_create @ 177 NONAME
|
|
||||||
pjsip_require_hdr_init @ 178 NONAME
|
|
||||||
pjsip_resolve @ 179 NONAME
|
|
||||||
pjsip_resolver_create @ 180 NONAME
|
|
||||||
pjsip_resolver_destroy @ 181 NONAME
|
|
||||||
pjsip_resolver_get_resolver @ 182 NONAME
|
|
||||||
pjsip_resolver_set_resolver @ 183 NONAME
|
|
||||||
pjsip_retry_after_hdr_create @ 184 NONAME
|
|
||||||
pjsip_retry_after_hdr_init @ 185 NONAME
|
|
||||||
pjsip_role_name @ 186 NONAME
|
|
||||||
pjsip_route_hdr_create @ 187 NONAME
|
|
||||||
pjsip_route_hdr_init @ 188 NONAME
|
|
||||||
pjsip_routing_hdr_set_route @ 189 NONAME
|
|
||||||
pjsip_routing_hdr_set_rr @ 190 NONAME
|
|
||||||
pjsip_rr_hdr_create @ 191 NONAME
|
|
||||||
pjsip_rr_hdr_init @ 192 NONAME
|
|
||||||
pjsip_rx_data_get_info @ 193 NONAME
|
|
||||||
pjsip_sip_uri_assign @ 194 NONAME
|
|
||||||
pjsip_sip_uri_create @ 195 NONAME
|
|
||||||
pjsip_sip_uri_init @ 196 NONAME
|
|
||||||
pjsip_sip_uri_set_secure @ 197 NONAME
|
|
||||||
pjsip_strerror @ 198 NONAME
|
|
||||||
pjsip_supported_hdr_create @ 199 NONAME
|
|
||||||
pjsip_supported_hdr_init @ 200 NONAME
|
|
||||||
pjsip_tcp_transport_start @ 201 NONAME
|
|
||||||
pjsip_tcp_transport_start2 @ 202 NONAME
|
|
||||||
pjsip_tel_nb_cmp @ 203 NONAME
|
|
||||||
pjsip_tel_uri_create @ 204 NONAME
|
|
||||||
pjsip_to_hdr_create @ 205 NONAME
|
|
||||||
pjsip_to_hdr_init @ 206 NONAME
|
|
||||||
pjsip_tpmgr_acquire_transport @ 207 NONAME
|
|
||||||
pjsip_tpmgr_create @ 208 NONAME
|
|
||||||
pjsip_tpmgr_destroy @ 209 NONAME
|
|
||||||
pjsip_tpmgr_dump_transports @ 210 NONAME
|
|
||||||
pjsip_tpmgr_find_local_addr @ 211 NONAME
|
|
||||||
pjsip_tpmgr_get_transport_count @ 212 NONAME
|
|
||||||
pjsip_tpmgr_receive_packet @ 213 NONAME
|
|
||||||
pjsip_tpmgr_register_tpfactory @ 214 NONAME
|
|
||||||
pjsip_tpmgr_send_raw @ 215 NONAME
|
|
||||||
pjsip_tpmgr_unregister_tpfactory @ 216 NONAME
|
|
||||||
pjsip_tpselector_add_ref @ 217 NONAME
|
|
||||||
pjsip_tpselector_dec_ref @ 218 NONAME
|
|
||||||
pjsip_transport_add_ref @ 219 NONAME
|
|
||||||
pjsip_transport_dec_ref @ 220 NONAME
|
|
||||||
pjsip_transport_destroy @ 221 NONAME
|
|
||||||
pjsip_transport_get_default_port_for_type @ 222 NONAME
|
|
||||||
pjsip_transport_get_flag_from_type @ 223 NONAME
|
|
||||||
pjsip_transport_get_type_desc @ 224 NONAME
|
|
||||||
pjsip_transport_get_type_from_flag @ 225 NONAME
|
|
||||||
pjsip_transport_get_type_from_name @ 226 NONAME
|
|
||||||
pjsip_transport_get_type_name @ 227 NONAME
|
|
||||||
pjsip_transport_register @ 228 NONAME
|
|
||||||
pjsip_transport_register_type @ 229 NONAME
|
|
||||||
pjsip_transport_send @ 230 NONAME
|
|
||||||
pjsip_transport_shutdown @ 231 NONAME
|
|
||||||
pjsip_transport_type_get_af @ 232 NONAME
|
|
||||||
pjsip_tsx_create_key @ 233 NONAME
|
|
||||||
pjsip_tsx_create_uac @ 234 NONAME
|
|
||||||
pjsip_tsx_create_uas @ 235 NONAME
|
|
||||||
pjsip_tsx_get_dlg @ 236 NONAME
|
|
||||||
pjsip_tsx_layer_destroy @ 237 NONAME
|
|
||||||
pjsip_tsx_layer_dump @ 238 NONAME
|
|
||||||
pjsip_tsx_layer_find_tsx @ 239 NONAME
|
|
||||||
pjsip_tsx_layer_get_tsx_count @ 240 NONAME
|
|
||||||
pjsip_tsx_layer_init_module @ 241 NONAME
|
|
||||||
pjsip_tsx_layer_instance @ 242 NONAME
|
|
||||||
pjsip_tsx_recv_msg @ 243 NONAME
|
|
||||||
pjsip_tsx_retransmit_no_state @ 244 NONAME
|
|
||||||
pjsip_tsx_send_msg @ 245 NONAME
|
|
||||||
pjsip_tsx_set_transport @ 246 NONAME
|
|
||||||
pjsip_tsx_state_str @ 247 NONAME
|
|
||||||
pjsip_tsx_stop_retransmit @ 248 NONAME
|
|
||||||
pjsip_tsx_terminate @ 249 NONAME
|
|
||||||
pjsip_tx_data_add_ref @ 250 NONAME
|
|
||||||
pjsip_tx_data_create @ 251 NONAME
|
|
||||||
pjsip_tx_data_dec_ref @ 252 NONAME
|
|
||||||
pjsip_tx_data_get_info @ 253 NONAME
|
|
||||||
pjsip_tx_data_invalidate_msg @ 254 NONAME
|
|
||||||
pjsip_tx_data_is_valid @ 255 NONAME
|
|
||||||
pjsip_tx_data_set_transport @ 256 NONAME
|
|
||||||
pjsip_ua_destroy @ 257 NONAME
|
|
||||||
pjsip_ua_dump @ 258 NONAME
|
|
||||||
pjsip_ua_find_dialog @ 259 NONAME
|
|
||||||
pjsip_ua_get_dlg_set_count @ 260 NONAME
|
|
||||||
pjsip_ua_get_endpt @ 261 NONAME
|
|
||||||
pjsip_ua_init_module @ 262 NONAME
|
|
||||||
pjsip_ua_instance @ 263 NONAME
|
|
||||||
pjsip_ua_register_dlg @ 264 NONAME
|
|
||||||
pjsip_ua_unregister_dlg @ 265 NONAME
|
|
||||||
pjsip_udp_transport_attach @ 266 NONAME
|
|
||||||
pjsip_udp_transport_attach2 @ 267 NONAME
|
|
||||||
pjsip_udp_transport_get_socket @ 268 NONAME
|
|
||||||
pjsip_udp_transport_pause @ 269 NONAME
|
|
||||||
pjsip_udp_transport_restart @ 270 NONAME
|
|
||||||
pjsip_udp_transport_start @ 271 NONAME
|
|
||||||
pjsip_udp_transport_start6 @ 272 NONAME
|
|
||||||
pjsip_unsupported_hdr_create @ 273 NONAME
|
|
||||||
pjsip_unsupported_hdr_init @ 274 NONAME
|
|
||||||
pjsip_via_hdr_create @ 275 NONAME
|
|
||||||
pjsip_via_hdr_init @ 276 NONAME
|
|
||||||
pjsip_warning_hdr_create @ 277 NONAME
|
|
||||||
pjsip_warning_hdr_create_from_status @ 278 NONAME
|
|
||||||
pjsip_www_authenticate_hdr_create @ 279 NONAME
|
|
|
@ -1,54 +0,0 @@
|
||||||
#if defined(PJ_BUILD_DLL)
|
|
||||||
|
|
||||||
TARGET pjsip_simple.dll
|
|
||||||
TARGETTYPE dll
|
|
||||||
|
|
||||||
UID 0x0 0xA0000008
|
|
||||||
|
|
||||||
|
|
||||||
CAPABILITY None
|
|
||||||
LIBRARY pjsip.lib pjsdp.lib pjlib_util.lib pjlib.lib esock.lib insock.lib charconv.lib euser.lib estlib.lib
|
|
||||||
MACRO PJ_DLL
|
|
||||||
MACRO PJ_EXPORTING
|
|
||||||
|
|
||||||
DEFFILE .\pjsip_simple.def
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
TARGET pjsip_simple.lib
|
|
||||||
TARGETTYPE lib
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SOURCEPATH ..\pjsip\src\pjsip-simple
|
|
||||||
|
|
||||||
MACRO PJ_M_I386=1
|
|
||||||
MACRO PJ_SYMBIAN=1
|
|
||||||
|
|
||||||
// Must compile as C++, otherwise exception would not work
|
|
||||||
OPTION CW -lang c++
|
|
||||||
OPTION ARMCC --cpp --gnu
|
|
||||||
OPTION GCC -x c++
|
|
||||||
OPTION GCCE -x c++
|
|
||||||
|
|
||||||
// PJSIP-SIMPLE files
|
|
||||||
|
|
||||||
SOURCE errno.c
|
|
||||||
SOURCE evsub.c
|
|
||||||
SOURCE evsub_msg.c
|
|
||||||
SOURCE iscomposing.c
|
|
||||||
SOURCE mwi.c
|
|
||||||
SOURCE pidf.c
|
|
||||||
SOURCE presence.c
|
|
||||||
SOURCE presence_body.c
|
|
||||||
SOURCE publishc.c
|
|
||||||
SOURCE rpid.c
|
|
||||||
SOURCE xpidf.c
|
|
||||||
|
|
||||||
SYSTEMINCLUDE ..\pjlib\include
|
|
||||||
SYSTEMINCLUDE ..\pjlib-util\include
|
|
||||||
SYSTEMINCLUDE ..\pjsip\include
|
|
||||||
|
|
||||||
SYSTEMINCLUDE \epoc32\include
|
|
||||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
||||||
|
|
|
@ -1,96 +0,0 @@
|
||||||
EXPORTS
|
|
||||||
pjpidf_create @ 1 NONAME
|
|
||||||
pjpidf_parse @ 2 NONAME
|
|
||||||
pjpidf_pres_add_note @ 3 NONAME
|
|
||||||
pjpidf_pres_add_tuple @ 4 NONAME
|
|
||||||
pjpidf_pres_construct @ 5 NONAME
|
|
||||||
pjpidf_pres_find_tuple @ 6 NONAME
|
|
||||||
pjpidf_pres_get_first_note @ 7 NONAME
|
|
||||||
pjpidf_pres_get_first_tuple @ 8 NONAME
|
|
||||||
pjpidf_pres_get_next_note @ 9 NONAME
|
|
||||||
pjpidf_pres_get_next_tuple @ 10 NONAME
|
|
||||||
pjpidf_pres_remove_tuple @ 11 NONAME
|
|
||||||
pjpidf_print @ 12 NONAME
|
|
||||||
pjpidf_status_construct @ 13 NONAME
|
|
||||||
pjpidf_status_is_basic_open @ 14 NONAME
|
|
||||||
pjpidf_status_set_basic_open @ 15 NONAME
|
|
||||||
pjpidf_tuple_add_note @ 16 NONAME
|
|
||||||
pjpidf_tuple_construct @ 17 NONAME
|
|
||||||
pjpidf_tuple_get_contact @ 18 NONAME
|
|
||||||
pjpidf_tuple_get_contact_prio @ 19 NONAME
|
|
||||||
pjpidf_tuple_get_first_note @ 20 NONAME
|
|
||||||
pjpidf_tuple_get_id @ 21 NONAME
|
|
||||||
pjpidf_tuple_get_next_note @ 22 NONAME
|
|
||||||
pjpidf_tuple_get_status @ 23 NONAME
|
|
||||||
pjpidf_tuple_get_timestamp @ 24 NONAME
|
|
||||||
pjpidf_tuple_set_contact @ 25 NONAME
|
|
||||||
pjpidf_tuple_set_contact_prio @ 26 NONAME
|
|
||||||
pjpidf_tuple_set_id @ 27 NONAME
|
|
||||||
pjpidf_tuple_set_timestamp @ 28 NONAME
|
|
||||||
pjpidf_tuple_set_timestamp_np @ 29 NONAME
|
|
||||||
pjrpid_add_element @ 30 NONAME
|
|
||||||
pjrpid_element_dup @ 31 NONAME
|
|
||||||
pjrpid_get_element @ 32 NONAME
|
|
||||||
pjsip_allow_events_hdr_create @ 33 NONAME
|
|
||||||
pjsip_event_hdr_create @ 34 NONAME
|
|
||||||
pjsip_evsub_accept @ 35 NONAME
|
|
||||||
pjsip_evsub_create_uac @ 36 NONAME
|
|
||||||
pjsip_evsub_create_uas @ 37 NONAME
|
|
||||||
pjsip_evsub_current_notify @ 38 NONAME
|
|
||||||
pjsip_evsub_get_allow_events_hdr @ 39 NONAME
|
|
||||||
pjsip_evsub_get_mod_data @ 40 NONAME
|
|
||||||
pjsip_evsub_get_state @ 41 NONAME
|
|
||||||
pjsip_evsub_get_state_name @ 42 NONAME
|
|
||||||
pjsip_evsub_init_module @ 43 NONAME
|
|
||||||
pjsip_evsub_init_parser @ 44 NONAME
|
|
||||||
pjsip_evsub_initiate @ 45 NONAME
|
|
||||||
pjsip_evsub_instance @ 46 NONAME
|
|
||||||
pjsip_evsub_notify @ 47 NONAME
|
|
||||||
pjsip_evsub_register_pkg @ 48 NONAME
|
|
||||||
pjsip_evsub_send_request @ 49 NONAME
|
|
||||||
pjsip_evsub_set_mod_data @ 50 NONAME
|
|
||||||
pjsip_evsub_terminate @ 51 NONAME
|
|
||||||
pjsip_get_notify_method @ 52 NONAME
|
|
||||||
pjsip_get_subscribe_method @ 53 NONAME
|
|
||||||
pjsip_iscomposing_create_body @ 54 NONAME
|
|
||||||
pjsip_iscomposing_create_xml @ 55 NONAME
|
|
||||||
pjsip_iscomposing_parse @ 56 NONAME
|
|
||||||
pjsip_notify_method @ 57 NONAME
|
|
||||||
pjsip_pres_accept @ 58 NONAME
|
|
||||||
pjsip_pres_create_pidf @ 59 NONAME
|
|
||||||
pjsip_pres_create_uac @ 60 NONAME
|
|
||||||
pjsip_pres_create_uas @ 61 NONAME
|
|
||||||
pjsip_pres_create_xpidf @ 62 NONAME
|
|
||||||
pjsip_pres_current_notify @ 63 NONAME
|
|
||||||
pjsip_pres_get_status @ 64 NONAME
|
|
||||||
pjsip_pres_init_module @ 65 NONAME
|
|
||||||
pjsip_pres_initiate @ 66 NONAME
|
|
||||||
pjsip_pres_instance @ 67 NONAME
|
|
||||||
pjsip_pres_notify @ 68 NONAME
|
|
||||||
pjsip_pres_parse_pidf @ 69 NONAME
|
|
||||||
pjsip_pres_parse_xpidf @ 70 NONAME
|
|
||||||
pjsip_pres_send_request @ 71 NONAME
|
|
||||||
pjsip_pres_set_status @ 72 NONAME
|
|
||||||
pjsip_pres_terminate @ 73 NONAME
|
|
||||||
pjsip_publishc_create @ 74 NONAME
|
|
||||||
pjsip_publishc_destroy @ 75 NONAME
|
|
||||||
pjsip_publishc_get_pool @ 76 NONAME
|
|
||||||
pjsip_publishc_init @ 77 NONAME
|
|
||||||
pjsip_publishc_init_module @ 78 NONAME
|
|
||||||
pjsip_publishc_publish @ 79 NONAME
|
|
||||||
pjsip_publishc_send @ 80 NONAME
|
|
||||||
pjsip_publishc_set_credentials @ 81 NONAME
|
|
||||||
pjsip_publishc_set_route_set @ 82 NONAME
|
|
||||||
pjsip_publishc_unpublish @ 83 NONAME
|
|
||||||
pjsip_publishc_update_expires @ 84 NONAME
|
|
||||||
pjsip_sub_state_hdr_create @ 85 NONAME
|
|
||||||
pjsip_subscribe_method @ 86 NONAME
|
|
||||||
pjsip_tsx_get_evsub @ 87 NONAME
|
|
||||||
pjsipsimple_strerror @ 88 NONAME
|
|
||||||
pjxpidf_create @ 89 NONAME
|
|
||||||
pjxpidf_get_status @ 90 NONAME
|
|
||||||
pjxpidf_get_uri @ 91 NONAME
|
|
||||||
pjxpidf_parse @ 92 NONAME
|
|
||||||
pjxpidf_print @ 93 NONAME
|
|
||||||
pjxpidf_set_status @ 94 NONAME
|
|
||||||
pjxpidf_set_uri @ 95 NONAME
|
|
|
@ -1,52 +0,0 @@
|
||||||
#if defined(PJ_BUILD_DLL)
|
|
||||||
|
|
||||||
TARGET pjsip_ua.dll
|
|
||||||
TARGETTYPE dll
|
|
||||||
|
|
||||||
UID 0x0 0xA0000009
|
|
||||||
|
|
||||||
|
|
||||||
CAPABILITY None
|
|
||||||
LIBRARY pjsip_simple.lib pjsip.lib pjsdp.lib pjlib_util.lib pjlib.lib esock.lib insock.lib charconv.lib euser.lib estlib.lib
|
|
||||||
MACRO PJ_DLL
|
|
||||||
MACRO PJ_EXPORTING
|
|
||||||
|
|
||||||
DEFFILE .\pjsip_ua.def
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
TARGET pjsip_ua.lib
|
|
||||||
TARGETTYPE lib
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SOURCEPATH ..\pjsip\src\pjsip-ua
|
|
||||||
|
|
||||||
MACRO PJ_M_I386=1
|
|
||||||
MACRO PJ_SYMBIAN=1
|
|
||||||
|
|
||||||
// Must compile as C++, otherwise exception would not work
|
|
||||||
OPTION CW -lang c++
|
|
||||||
OPTION ARMCC --cpp --gnu
|
|
||||||
OPTION GCC -x c++
|
|
||||||
OPTION GCCE -x c++
|
|
||||||
|
|
||||||
|
|
||||||
// PJSIP-UA files
|
|
||||||
|
|
||||||
SOURCE sip_inv.c
|
|
||||||
SOURCE sip_reg.c
|
|
||||||
SOURCE sip_replaces.c
|
|
||||||
SOURCE sip_xfer.c
|
|
||||||
SOURCE sip_100rel.c
|
|
||||||
SOURCE sip_timer.c
|
|
||||||
|
|
||||||
SYSTEMINCLUDE ..\pjlib\include
|
|
||||||
SYSTEMINCLUDE ..\pjlib-util\include
|
|
||||||
SYSTEMINCLUDE ..\pjsip\include
|
|
||||||
SYSTEMINCLUDE ..\pjmedia\include
|
|
||||||
|
|
||||||
SYSTEMINCLUDE \epoc32\include
|
|
||||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
||||||
|
|
||||||
|
|
|
@ -1,58 +0,0 @@
|
||||||
EXPORTS
|
|
||||||
pjsip_100rel_attach @ 1 NONAME
|
|
||||||
pjsip_100rel_create_prack @ 2 NONAME
|
|
||||||
pjsip_100rel_end_session @ 3 NONAME
|
|
||||||
pjsip_100rel_init_module @ 4 NONAME
|
|
||||||
pjsip_100rel_is_reliable @ 5 NONAME
|
|
||||||
pjsip_100rel_on_rx_prack @ 6 NONAME
|
|
||||||
pjsip_100rel_send_prack @ 7 NONAME
|
|
||||||
pjsip_100rel_tx_response @ 8 NONAME
|
|
||||||
pjsip_create_sdp_body @ 9 NONAME
|
|
||||||
pjsip_dlg_get_inv_session @ 10 NONAME
|
|
||||||
pjsip_get_prack_method @ 11 NONAME
|
|
||||||
pjsip_get_refer_method @ 12 NONAME
|
|
||||||
pjsip_inv_answer @ 13 NONAME
|
|
||||||
pjsip_inv_create_ack @ 14 NONAME
|
|
||||||
pjsip_inv_create_uac @ 15 NONAME
|
|
||||||
pjsip_inv_create_uas @ 16 NONAME
|
|
||||||
pjsip_inv_end_session @ 17 NONAME
|
|
||||||
pjsip_inv_initial_answer @ 18 NONAME
|
|
||||||
pjsip_inv_invite @ 19 NONAME
|
|
||||||
pjsip_inv_reinvite @ 20 NONAME
|
|
||||||
pjsip_inv_send_msg @ 21 NONAME
|
|
||||||
pjsip_inv_set_sdp_answer @ 22 NONAME
|
|
||||||
pjsip_inv_state_name @ 23 NONAME
|
|
||||||
pjsip_inv_terminate @ 24 NONAME
|
|
||||||
pjsip_inv_update @ 25 NONAME
|
|
||||||
pjsip_inv_usage_init @ 26 NONAME
|
|
||||||
pjsip_inv_usage_instance @ 27 NONAME
|
|
||||||
pjsip_inv_verify_request @ 28 NONAME
|
|
||||||
pjsip_prack_method @ 29 NONAME
|
|
||||||
pjsip_refer_method @ 30 NONAME
|
|
||||||
pjsip_regc_add_headers @ 31 NONAME
|
|
||||||
pjsip_regc_create @ 32 NONAME
|
|
||||||
pjsip_regc_destroy @ 33 NONAME
|
|
||||||
pjsip_regc_get_info @ 34 NONAME
|
|
||||||
pjsip_regc_get_pool @ 35 NONAME
|
|
||||||
pjsip_regc_init @ 36 NONAME
|
|
||||||
pjsip_regc_register @ 37 NONAME
|
|
||||||
pjsip_regc_send @ 38 NONAME
|
|
||||||
pjsip_regc_set_credentials @ 39 NONAME
|
|
||||||
pjsip_regc_set_prefs @ 40 NONAME
|
|
||||||
pjsip_regc_set_route_set @ 41 NONAME
|
|
||||||
pjsip_regc_set_transport @ 42 NONAME
|
|
||||||
pjsip_regc_unregister @ 43 NONAME
|
|
||||||
pjsip_regc_unregister_all @ 44 NONAME
|
|
||||||
pjsip_regc_update_contact @ 45 NONAME
|
|
||||||
pjsip_regc_update_expires @ 46 NONAME
|
|
||||||
pjsip_replaces_hdr_create @ 47 NONAME
|
|
||||||
pjsip_replaces_init_module @ 48 NONAME
|
|
||||||
pjsip_replaces_verify_request @ 49 NONAME
|
|
||||||
pjsip_xfer_accept @ 50 NONAME
|
|
||||||
pjsip_xfer_create_uac @ 51 NONAME
|
|
||||||
pjsip_xfer_create_uas @ 52 NONAME
|
|
||||||
pjsip_xfer_current_notify @ 53 NONAME
|
|
||||||
pjsip_xfer_init_module @ 54 NONAME
|
|
||||||
pjsip_xfer_initiate @ 55 NONAME
|
|
||||||
pjsip_xfer_notify @ 56 NONAME
|
|
||||||
pjsip_xfer_send_request @ 57 NONAME
|
|
|
@ -1,41 +0,0 @@
|
||||||
TARGET pjstun_client.exe
|
|
||||||
TARGETTYPE exe
|
|
||||||
UID 0x0 0xA000000A
|
|
||||||
|
|
||||||
OPTION ARMCC --gnu
|
|
||||||
|
|
||||||
SOURCEPATH ..\pjnath\src\pjstun-client
|
|
||||||
|
|
||||||
MACRO PJ_M_I386=1
|
|
||||||
MACRO PJ_SYMBIAN=1
|
|
||||||
|
|
||||||
// PJSTUN-CLIENT files
|
|
||||||
|
|
||||||
SOURCE client_main.c
|
|
||||||
|
|
||||||
//SOURCE main_symbian.cpp
|
|
||||||
|
|
||||||
|
|
||||||
SYSTEMINCLUDE ..\pjlib\include
|
|
||||||
SYSTEMINCLUDE ..\pjlib-util\include
|
|
||||||
SYSTEMINCLUDE ..\pjnath\include
|
|
||||||
|
|
||||||
SYSTEMINCLUDE \epoc32\include
|
|
||||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
||||||
|
|
||||||
#if defined(PJ_BUILD_DLL)
|
|
||||||
MACRO PJ_DLL
|
|
||||||
LIBRARY pjnath.lib pjlib_util.lib pjlib.lib
|
|
||||||
#else
|
|
||||||
STATICLIBRARY pjnath.lib pjlib_util.lib pjlib.lib
|
|
||||||
#endif
|
|
||||||
|
|
||||||
LIBRARY esock.lib insock.lib charconv.lib euser.lib estlib.lib
|
|
||||||
|
|
||||||
#ifdef WINSCW
|
|
||||||
STATICLIBRARY eexe.lib ecrt0.lib
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
CAPABILITY None
|
|
||||||
|
|
|
@ -1,55 +0,0 @@
|
||||||
#if defined(PJ_BUILD_DLL)
|
|
||||||
|
|
||||||
TARGET pjsua_lib.dll
|
|
||||||
TARGETTYPE dll
|
|
||||||
|
|
||||||
UID 0x0 0xA000000B
|
|
||||||
|
|
||||||
|
|
||||||
CAPABILITY None
|
|
||||||
LIBRARY pjsip_ua.lib pjsip_simple.lib pjsip.lib pjmedia.lib null_audio.lib pjsdp.lib pjnath.lib pjlib_util.lib pjlib.lib esock.lib insock.lib charconv.lib euser.lib estlib.lib
|
|
||||||
MACRO PJ_DLL
|
|
||||||
MACRO PJ_EXPORTING
|
|
||||||
|
|
||||||
DEFFILE .\pjsua_lib.def
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
TARGET pjsua_lib.lib
|
|
||||||
TARGETTYPE lib
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SOURCEPATH ..\pjsip\src\pjsua-lib
|
|
||||||
|
|
||||||
MACRO PJ_M_I386=1
|
|
||||||
MACRO PJ_SYMBIAN=1
|
|
||||||
|
|
||||||
// Must compile as C++, otherwise exception would not work
|
|
||||||
OPTION CW -lang c++
|
|
||||||
OPTION ARMCC --cpp --gnu
|
|
||||||
OPTION GCC -x c++
|
|
||||||
OPTION GCCE -x c++
|
|
||||||
|
|
||||||
// PJLIB-UTIL files
|
|
||||||
|
|
||||||
SOURCE pjsua_acc.c
|
|
||||||
SOURCE pjsua_aud.c
|
|
||||||
SOURCE pjsua_call.c
|
|
||||||
SOURCE pjsua_core.c
|
|
||||||
SOURCE pjsua_dump.c
|
|
||||||
SOURCE pjsua_im.c
|
|
||||||
SOURCE pjsua_media.c
|
|
||||||
SOURCE pjsua_pres.c
|
|
||||||
SOURCE pjsua_vid.c
|
|
||||||
|
|
||||||
SYSTEMINCLUDE ..\pjlib\include
|
|
||||||
SYSTEMINCLUDE ..\pjlib-util\include
|
|
||||||
SYSTEMINCLUDE ..\pjnath\include
|
|
||||||
SYSTEMINCLUDE ..\pjmedia\include
|
|
||||||
SYSTEMINCLUDE ..\pjsip\include
|
|
||||||
|
|
||||||
SYSTEMINCLUDE \epoc32\include
|
|
||||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
||||||
|
|
||||||
|
|
|
@ -1,122 +0,0 @@
|
||||||
EXPORTS
|
|
||||||
pjsua_acc_add @ 1 NONAME
|
|
||||||
pjsua_acc_add_local @ 2 NONAME
|
|
||||||
pjsua_acc_config_default @ 3 NONAME
|
|
||||||
pjsua_acc_config_dup @ 4 NONAME
|
|
||||||
pjsua_acc_create_request @ 5 NONAME
|
|
||||||
pjsua_acc_create_uac_contact @ 6 NONAME
|
|
||||||
pjsua_acc_create_uas_contact @ 7 NONAME
|
|
||||||
pjsua_acc_del @ 8 NONAME
|
|
||||||
pjsua_acc_enum_info @ 9 NONAME
|
|
||||||
pjsua_acc_find_for_incoming @ 10 NONAME
|
|
||||||
pjsua_acc_find_for_outgoing @ 11 NONAME
|
|
||||||
pjsua_acc_get_count @ 12 NONAME
|
|
||||||
pjsua_acc_get_default @ 13 NONAME
|
|
||||||
pjsua_acc_get_info @ 14 NONAME
|
|
||||||
pjsua_acc_is_valid @ 15 NONAME
|
|
||||||
pjsua_acc_modify @ 16 NONAME
|
|
||||||
pjsua_acc_set_default @ 17 NONAME
|
|
||||||
pjsua_acc_set_online_status @ 18 NONAME
|
|
||||||
pjsua_acc_set_online_status2 @ 19 NONAME
|
|
||||||
pjsua_acc_set_registration @ 20 NONAME
|
|
||||||
pjsua_acc_set_transport @ 21 NONAME
|
|
||||||
pjsua_buddy_add @ 22 NONAME
|
|
||||||
pjsua_buddy_config_default @ 23 NONAME
|
|
||||||
pjsua_buddy_del @ 24 NONAME
|
|
||||||
pjsua_buddy_get_info @ 25 NONAME
|
|
||||||
pjsua_buddy_is_valid @ 26 NONAME
|
|
||||||
pjsua_buddy_subscribe_pres @ 27 NONAME
|
|
||||||
pjsua_buddy_update_pres @ 28 NONAME
|
|
||||||
pjsua_call_answer @ 29 NONAME
|
|
||||||
pjsua_call_dial_dtmf @ 30 NONAME
|
|
||||||
pjsua_call_dump @ 31 NONAME
|
|
||||||
pjsua_call_get_conf_port @ 32 NONAME
|
|
||||||
pjsua_call_get_count @ 33 NONAME
|
|
||||||
pjsua_call_get_info @ 34 NONAME
|
|
||||||
pjsua_call_get_max_count @ 35 NONAME
|
|
||||||
pjsua_call_get_rem_nat_type @ 36 NONAME
|
|
||||||
pjsua_call_get_user_data @ 37 NONAME
|
|
||||||
pjsua_call_hangup @ 38 NONAME
|
|
||||||
pjsua_call_hangup_all @ 39 NONAME
|
|
||||||
pjsua_call_has_media @ 40 NONAME
|
|
||||||
pjsua_call_is_active @ 41 NONAME
|
|
||||||
pjsua_call_make_call @ 42 NONAME
|
|
||||||
pjsua_call_reinvite @ 43 NONAME
|
|
||||||
pjsua_call_send_im @ 44 NONAME
|
|
||||||
pjsua_call_send_request @ 45 NONAME
|
|
||||||
pjsua_call_send_typing_ind @ 46 NONAME
|
|
||||||
pjsua_call_set_hold @ 47 NONAME
|
|
||||||
pjsua_call_set_user_data @ 48 NONAME
|
|
||||||
pjsua_call_update @ 49 NONAME
|
|
||||||
pjsua_call_xfer @ 50 NONAME
|
|
||||||
pjsua_call_xfer_replaces @ 51 NONAME
|
|
||||||
pjsua_codec_get_param @ 52 NONAME
|
|
||||||
pjsua_codec_set_param @ 53 NONAME
|
|
||||||
pjsua_codec_set_priority @ 54 NONAME
|
|
||||||
pjsua_conf_add_port @ 55 NONAME
|
|
||||||
pjsua_conf_adjust_rx_level @ 56 NONAME
|
|
||||||
pjsua_conf_adjust_tx_level @ 57 NONAME
|
|
||||||
pjsua_conf_connect @ 58 NONAME
|
|
||||||
pjsua_conf_disconnect @ 59 NONAME
|
|
||||||
pjsua_conf_get_active_ports @ 60 NONAME
|
|
||||||
pjsua_conf_get_max_ports @ 61 NONAME
|
|
||||||
pjsua_conf_get_port_info @ 62 NONAME
|
|
||||||
pjsua_conf_get_signal_level @ 63 NONAME
|
|
||||||
pjsua_conf_remove_port @ 64 NONAME
|
|
||||||
pjsua_config_default @ 65 NONAME
|
|
||||||
pjsua_config_dup @ 66 NONAME
|
|
||||||
pjsua_create @ 67 NONAME
|
|
||||||
pjsua_destroy @ 68 NONAME
|
|
||||||
pjsua_detect_nat_type @ 69 NONAME
|
|
||||||
pjsua_dump @ 70 NONAME
|
|
||||||
pjsua_enum_accs @ 71 NONAME
|
|
||||||
pjsua_enum_buddies @ 72 NONAME
|
|
||||||
pjsua_enum_calls @ 73 NONAME
|
|
||||||
pjsua_enum_codecs @ 74 NONAME
|
|
||||||
pjsua_enum_conf_ports @ 75 NONAME
|
|
||||||
pjsua_enum_snd_devs @ 76 NONAME
|
|
||||||
pjsua_enum_transports @ 77 NONAME
|
|
||||||
pjsua_get_buddy_count @ 78 NONAME
|
|
||||||
pjsua_get_ec_tail @ 79 NONAME
|
|
||||||
pjsua_get_nat_type @ 80 NONAME
|
|
||||||
pjsua_get_pjmedia_endpt @ 81 NONAME
|
|
||||||
pjsua_get_pjsip_endpt @ 82 NONAME
|
|
||||||
pjsua_get_pool_factory @ 83 NONAME
|
|
||||||
pjsua_get_snd_dev @ 84 NONAME
|
|
||||||
pjsua_get_var @ 85 NONAME
|
|
||||||
pjsua_handle_events @ 86 NONAME
|
|
||||||
pjsua_im_send @ 87 NONAME
|
|
||||||
pjsua_im_typing @ 88 NONAME
|
|
||||||
pjsua_init @ 89 NONAME
|
|
||||||
pjsua_logging_config_default @ 90 NONAME
|
|
||||||
pjsua_logging_config_dup @ 91 NONAME
|
|
||||||
pjsua_media_config_default @ 92 NONAME
|
|
||||||
pjsua_media_transports_create @ 93 NONAME
|
|
||||||
pjsua_msg_data_init @ 94 NONAME
|
|
||||||
pjsua_perror @ 95 NONAME
|
|
||||||
pjsua_player_create @ 96 NONAME
|
|
||||||
pjsua_player_destroy @ 97 NONAME
|
|
||||||
pjsua_player_get_conf_port @ 98 NONAME
|
|
||||||
pjsua_player_get_port @ 99 NONAME
|
|
||||||
pjsua_player_set_pos @ 100 NONAME
|
|
||||||
pjsua_playlist_create @ 101 NONAME
|
|
||||||
pjsua_pool_create @ 102 NONAME
|
|
||||||
pjsua_pres_dump @ 103 NONAME
|
|
||||||
pjsua_reconfigure_logging @ 104 NONAME
|
|
||||||
pjsua_recorder_create @ 105 NONAME
|
|
||||||
pjsua_recorder_destroy @ 106 NONAME
|
|
||||||
pjsua_recorder_get_conf_port @ 107 NONAME
|
|
||||||
pjsua_recorder_get_port @ 108 NONAME
|
|
||||||
pjsua_set_ec @ 109 NONAME
|
|
||||||
pjsua_set_no_snd_dev @ 110 NONAME
|
|
||||||
pjsua_set_null_snd_dev @ 111 NONAME
|
|
||||||
pjsua_set_snd_dev @ 112 NONAME
|
|
||||||
pjsua_start @ 113 NONAME
|
|
||||||
pjsua_transport_close @ 114 NONAME
|
|
||||||
pjsua_transport_config_default @ 115 NONAME
|
|
||||||
pjsua_transport_config_dup @ 116 NONAME
|
|
||||||
pjsua_transport_create @ 117 NONAME
|
|
||||||
pjsua_transport_get_info @ 118 NONAME
|
|
||||||
pjsua_transport_register @ 119 NONAME
|
|
||||||
pjsua_transport_set_enable @ 120 NONAME
|
|
||||||
pjsua_verify_sip_url @ 121 NONAME
|
|
|
@ -1,47 +0,0 @@
|
||||||
#if defined(PJ_BUILD_DLL)
|
|
||||||
|
|
||||||
TARGET symbian_audio.dll
|
|
||||||
TARGETTYPE dll
|
|
||||||
UID 0x0 0xA000000C
|
|
||||||
|
|
||||||
CAPABILITY None
|
|
||||||
LIBRARY pjlib.lib charconv.lib euser.lib estlib.lib
|
|
||||||
LIBRARY mediaclientaudiostream.lib
|
|
||||||
LIBRARY mediaclientaudioinputstream.lib
|
|
||||||
|
|
||||||
MACRO PJ_DLL
|
|
||||||
MACRO PJ_EXPORTING
|
|
||||||
|
|
||||||
DEFFILE .\symbian_audio.def
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
TARGET symbian_audio.lib
|
|
||||||
TARGETTYPE lib
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SOURCEPATH ..\pjmedia\src\pjmedia
|
|
||||||
|
|
||||||
OPTION CW -lang c++
|
|
||||||
OPTION GCCE -O2 -fno-unit-at-a-time
|
|
||||||
OPTION ARMCC --gnu
|
|
||||||
|
|
||||||
MACRO PJ_M_I386=1
|
|
||||||
MACRO PJ_SYMBIAN=1
|
|
||||||
|
|
||||||
SOURCE nullsound.c
|
|
||||||
SOURCE symbian_sound.cpp
|
|
||||||
SOURCE symbian_sound_aps.cpp
|
|
||||||
|
|
||||||
SYSTEMINCLUDE ..\pjlib\include
|
|
||||||
SYSTEMINCLUDE ..\pjmedia\include
|
|
||||||
|
|
||||||
SYSTEMINCLUDE \epoc32\include
|
|
||||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
||||||
SYSTEMINCLUDE \epoc32\include\mmf\server
|
|
||||||
SYSTEMINCLUDE \epoc32\include\mmf\common
|
|
||||||
SYSTEMINCLUDE \epoc32\include\mda\common
|
|
||||||
|
|
||||||
SYSTEMINCLUDE \epoc32\include\mmf\plugin
|
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
EXPORTS
|
|
||||||
pjmedia_snd_deinit @ 1 NONAME
|
|
||||||
pjmedia_snd_get_dev_count @ 2 NONAME
|
|
||||||
pjmedia_snd_get_dev_info @ 3 NONAME
|
|
||||||
pjmedia_snd_init @ 4 NONAME
|
|
||||||
pjmedia_snd_open @ 5 NONAME
|
|
||||||
pjmedia_snd_open_player @ 6 NONAME
|
|
||||||
pjmedia_snd_open_rec @ 7 NONAME
|
|
||||||
pjmedia_snd_stream_close @ 8 NONAME
|
|
||||||
pjmedia_snd_stream_get_info @ 9 NONAME
|
|
||||||
pjmedia_snd_stream_start @ 10 NONAME
|
|
||||||
pjmedia_snd_stream_stop @ 11 NONAME
|
|
|
@ -1,51 +0,0 @@
|
||||||
#define SND_USE_APS 0
|
|
||||||
#define SND_USE_VAS 0
|
|
||||||
|
|
||||||
TARGET symsndtest.exe
|
|
||||||
TARGETTYPE exe
|
|
||||||
UID 0x0 0xA000000E
|
|
||||||
|
|
||||||
OPTION ARMCC --gnu
|
|
||||||
|
|
||||||
SOURCEPATH ..\pjsip-apps\src\symsndtest
|
|
||||||
|
|
||||||
MACRO PJ_M_I386=1
|
|
||||||
MACRO PJ_SYMBIAN=1
|
|
||||||
|
|
||||||
// Test files
|
|
||||||
|
|
||||||
SOURCE app_main.cpp
|
|
||||||
SOURCE main_symbian.cpp
|
|
||||||
|
|
||||||
START RESOURCE symsndtest_reg.rss
|
|
||||||
TARGETPATH \private\10003a3f\apps
|
|
||||||
END
|
|
||||||
|
|
||||||
SYSTEMINCLUDE ..\pjlib\include
|
|
||||||
SYSTEMINCLUDE ..\pjmedia\include
|
|
||||||
|
|
||||||
SYSTEMINCLUDE \epoc32\include
|
|
||||||
SYSTEMINCLUDE \epoc32\include\libc
|
|
||||||
|
|
||||||
LIBRARY charconv.lib euser.lib estlib.lib
|
|
||||||
LIBRARY esock.lib insock.lib
|
|
||||||
STATICLIBRARY pjmedia_audiodev.lib
|
|
||||||
STATICLIBRARY pjmedia.lib
|
|
||||||
STATICLIBRARY pjlib.lib
|
|
||||||
STATICLIBRARY libresample.lib
|
|
||||||
|
|
||||||
#if SND_USE_APS
|
|
||||||
LIBRARY APSSession2.lib
|
|
||||||
CAPABILITY NetworkServices LocalServices ReadUserData WriteUserData UserEnvironment MultimediaDD
|
|
||||||
#elif SND_USE_VAS
|
|
||||||
LIBRARY VoIPAudioIntfc.lib
|
|
||||||
CAPABILITY NetworkServices LocalServices ReadUserData WriteUserData UserEnvironment MultimediaDD
|
|
||||||
#else
|
|
||||||
LIBRARY mediaclientaudiostream.lib
|
|
||||||
LIBRARY mediaclientaudioinputstream.lib
|
|
||||||
CAPABILITY NetworkServices LocalServices ReadUserData WriteUserData UserEnvironment
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef WINSCW
|
|
||||||
STATICLIBRARY eexe.lib ecrt0.lib
|
|
||||||
#endif
|
|
|
@ -1,19 +0,0 @@
|
||||||
; symsndtest.pkg
|
|
||||||
|
|
||||||
; Languages
|
|
||||||
&EN
|
|
||||||
|
|
||||||
; Header
|
|
||||||
#{"symsndtest"},(0xA000000E), 0, 1, 1
|
|
||||||
|
|
||||||
; Platform compatibility
|
|
||||||
[0x101F7961], *, *, *, {"Series60ProductID"}
|
|
||||||
|
|
||||||
; vendor
|
|
||||||
%{"PJSIP"}
|
|
||||||
:"PJSIP"
|
|
||||||
|
|
||||||
; Target
|
|
||||||
"$(EPOCROOT)Epoc32\release\$(PLATFORM)\$(TARGET)\symsndtest.exe"-"!:\sys\bin\symsndtest.exe"
|
|
||||||
"$(EPOCROOT)Epoc32\data\z\private\10003a3f\apps\symsndtest_reg.rSC"-"!:\private\10003a3f\import\apps\symsndtest_reg.rSC"
|
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
export CC = @CC@ -c
|
|
||||||
export CXX = @CXX@ -c
|
|
||||||
export AR = @AR@
|
|
||||||
export AR_FLAGS = @AR_FLAGS@
|
|
||||||
export LD = @LD@
|
|
||||||
export LDOUT = -o
|
|
||||||
export RANLIB = @RANLIB@
|
|
||||||
|
|
||||||
export OBJEXT := .@OBJEXT@
|
|
||||||
export LIBEXT := .@LIBEXT@
|
|
||||||
export LIBEXT2 := @LIBEXT2@
|
|
||||||
|
|
||||||
export CC_OUT := @CC_OUT@
|
|
||||||
export CC_INC := @CC_INC@
|
|
||||||
export CC_DEF := @CC_DEF@
|
|
||||||
export CC_OPTIMIZE := @CC_OPTIMIZE@
|
|
||||||
export CC_LIB := -l
|
|
||||||
|
|
||||||
export CC_SOURCES :=
|
|
||||||
export CC_CFLAGS := @CC_CFLAGS@
|
|
||||||
export CC_LDFLAGS :=
|
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
export CC = $(CROSS_COMPILE)gcc -c
|
|
||||||
export AR = $(CROSS_COMPILE)ar rv
|
|
||||||
export LD = $(CROSS_COMPILE)gcc
|
|
||||||
export LDOUT = -o
|
|
||||||
export RANLIB = $(CROSS_COMPILE)ranlib
|
|
||||||
|
|
||||||
export OBJEXT := .o
|
|
||||||
export LIBEXT := .a
|
|
||||||
export LIBEXT2 :=
|
|
||||||
|
|
||||||
export CC_OUT := -o
|
|
||||||
export CC_INC := -I
|
|
||||||
export CC_DEF := -D
|
|
||||||
export CC_OPTIMIZE := -O2
|
|
||||||
export CC_LIB := -l
|
|
||||||
|
|
||||||
export CC_SOURCES :=
|
|
||||||
export CC_CFLAGS := -Wall
|
|
||||||
#export CC_CFLAGS += -Wdeclaration-after-statement
|
|
||||||
#export CC_CXXFLAGS := -Wdeclaration-after-statement
|
|
||||||
export CC_LDFLAGS :=
|
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
export CC := cl /c /nologo
|
|
||||||
export AR := lib /NOLOGO /OUT:
|
|
||||||
export LD := cl /nologo
|
|
||||||
export LDOUT := /Fe
|
|
||||||
export RANLIB := echo ranlib
|
|
||||||
|
|
||||||
export OBJEXT := .obj
|
|
||||||
export LIBEXT := .lib
|
|
||||||
export LIBEXT2 := .LIB
|
|
||||||
|
|
||||||
export CC_OUT := /Fo
|
|
||||||
export CC_INC := /I
|
|
||||||
export CC_DEF := /D
|
|
||||||
export CC_OPTIMIZE := /Ox
|
|
||||||
export CC_LIB :=
|
|
||||||
|
|
||||||
export CC_SOURCES :=
|
|
||||||
export CC_CFLAGS := /W4 /MT
|
|
||||||
export CC_CXXFLAGS := /GX
|
|
||||||
export CC_LDFLAGS := /MT
|
|
|
@ -1,63 +0,0 @@
|
||||||
#
|
|
||||||
# Include host/target/compiler selection.
|
|
||||||
# This will export CC_NAME, MACHINE_NAME, OS_NAME, and HOST_NAME variables.
|
|
||||||
#
|
|
||||||
include $(PJDIR)/build.mak
|
|
||||||
|
|
||||||
#
|
|
||||||
# Include global compiler specific definitions
|
|
||||||
#
|
|
||||||
include $(PJDIR)/build/cc-$(CC_NAME).mak
|
|
||||||
|
|
||||||
#
|
|
||||||
# (Optionally) Include compiler specific configuration that is
|
|
||||||
# specific to this project. This configuration file is
|
|
||||||
# located in this directory.
|
|
||||||
#
|
|
||||||
-include cc-$(CC_NAME).mak
|
|
||||||
|
|
||||||
#
|
|
||||||
# Include auto configured compiler specification.
|
|
||||||
# This will override the compiler settings above.
|
|
||||||
# Currently this is made OPTIONAL, to prevent people
|
|
||||||
# from getting errors because they don't re-run ./configure
|
|
||||||
# after downloading new PJSIP.
|
|
||||||
#
|
|
||||||
-include $(PJDIR)/build/cc-auto.mak
|
|
||||||
|
|
||||||
#
|
|
||||||
# Include global machine specific definitions
|
|
||||||
#
|
|
||||||
include $(PJDIR)/build/m-$(MACHINE_NAME).mak
|
|
||||||
-include m-$(MACHINE_NAME).mak
|
|
||||||
|
|
||||||
#
|
|
||||||
# Include target OS specific definitions
|
|
||||||
#
|
|
||||||
include $(PJDIR)/build/os-$(OS_NAME).mak
|
|
||||||
|
|
||||||
#
|
|
||||||
# (Optionally) Include target OS specific configuration that is
|
|
||||||
# specific to this project. This configuration file is
|
|
||||||
# located in this directory.
|
|
||||||
#
|
|
||||||
-include os-$(OS_NAME).mak
|
|
||||||
|
|
||||||
#
|
|
||||||
# Include host specific definitions
|
|
||||||
#
|
|
||||||
include $(PJDIR)/build/host-$(HOST_NAME).mak
|
|
||||||
|
|
||||||
#
|
|
||||||
# (Optionally) Include host specific configuration that is
|
|
||||||
# specific to this project. This configuration file is
|
|
||||||
# located in this directory.
|
|
||||||
#
|
|
||||||
-include host-$(HOST_NAME).mak
|
|
||||||
|
|
||||||
#
|
|
||||||
# Include global user configuration, if any
|
|
||||||
#
|
|
||||||
-include $(PJDIR)/user.mak
|
|
||||||
|
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
export HOST_MV := mv
|
|
||||||
export HOST_RM := rm -f @@
|
|
||||||
export HOST_RMR := rm -rf @@
|
|
||||||
export HOST_RMDIR := rm -rf @@
|
|
||||||
export HOST_MKDIR := mkdir @@
|
|
||||||
export HOST_EXE := .exe
|
|
||||||
export HOST_PSEP := /
|
|
||||||
|
|
||||||
export HOST_SOURCES :=
|
|
||||||
export HOST_CFLAGS :=
|
|
||||||
export HOST_CXXFLAGS :=
|
|
||||||
export HOST_LDFLAGS := $(CC_LIB)stdc++$(LIBEXT2)
|
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
export HOST_MV := mv
|
|
||||||
export HOST_RM := rm -f @@
|
|
||||||
export HOST_RMR := rm -rf @@
|
|
||||||
export HOST_RMDIR := rm -rf @@
|
|
||||||
export HOST_MKDIR := mkdir -p @@
|
|
||||||
export HOST_EXE := $(HOST_EXE)
|
|
||||||
export HOST_PSEP := /
|
|
||||||
|
|
||||||
export HOST_SOURCES :=
|
|
||||||
export HOST_CFLAGS :=
|
|
||||||
export HOST_CXXFLAGS :=
|
|
||||||
export HOST_LDFLAGS :=
|
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
export HOST_MV := ren
|
|
||||||
export HOST_RM := if exist @@; del /F /Q @@
|
|
||||||
export HOST_RMR := if exist @@; del /F /Q @@
|
|
||||||
export HOST_RMDIR := if exist @@; rmdir @@
|
|
||||||
export HOST_MKDIR := if not exist @@; mkdir @@
|
|
||||||
export HOST_EXE := .exe
|
|
||||||
export HOST_PSEP := \\
|
|
||||||
|
|
||||||
export HOST_SOURCES :=
|
|
||||||
export HOST_CFLAGS :=
|
|
||||||
export HOST_CXXFLAGS :=
|
|
||||||
export HOST_LDFLAGS :=
|
|
|
@ -1,4 +0,0 @@
|
||||||
export M_CFLAGS := $(CC_DEF)PJ_M_ALPHA=1
|
|
||||||
export M_CXXFLAGS :=
|
|
||||||
export M_LDFLAGS :=
|
|
||||||
export M_SOURCES :=
|
|
|
@ -1,4 +0,0 @@
|
||||||
export M_CFLAGS := $(CC_DEF)PJ_M_ARMV4=1
|
|
||||||
export M_CXXFLAGS :=
|
|
||||||
export M_LDFLAGS :=
|
|
||||||
export M_SOURCES :=
|
|
|
@ -1 +0,0 @@
|
||||||
# Nothing needs to be defined here
|
|
|
@ -1,4 +0,0 @@
|
||||||
export M_CFLAGS := $(CC_DEF)PJ_M_I386=1
|
|
||||||
export M_CXXFLAGS :=
|
|
||||||
export M_LDFLAGS :=
|
|
||||||
export M_SOURCES :=
|
|
|
@ -1,4 +0,0 @@
|
||||||
export M_CFLAGS := $(CC_DEF)PJ_M_M68K=1
|
|
||||||
export M_CXXFLAGS :=
|
|
||||||
export M_LDFLAGS :=
|
|
||||||
export M_SOURCES :=
|
|
|
@ -1,9 +0,0 @@
|
||||||
#
|
|
||||||
# PowerPC MPC860 specific.
|
|
||||||
# It's a PowerPC without floating point support.
|
|
||||||
#
|
|
||||||
export M_CFLAGS := $(CC_DEF)PJ_M_POWERPC=1 $(CC_DEF)PJ_HAS_FLOATING_POINT=0 -mcpu=860
|
|
||||||
export M_CXXFLAGS :=
|
|
||||||
export M_LDFLAGS := -mcpu=860
|
|
||||||
export M_SOURCES :=
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
export M_CFLAGS := $(CC_DEF)PJ_M_POWERPC=1
|
|
||||||
export M_CXXFLAGS :=
|
|
||||||
export M_LDFLAGS :=
|
|
||||||
export M_SOURCES :=
|
|
|
@ -1,4 +0,0 @@
|
||||||
export M_CFLAGS := $(CC_DEF)PJ_M_SPARC=1
|
|
||||||
export M_CXXFLAGS :=
|
|
||||||
export M_LDFLAGS :=
|
|
||||||
export M_SOURCES :=
|
|
|
@ -1,4 +0,0 @@
|
||||||
export M_CFLAGS := $(CC_DEF)PJ_M_X86_64=1
|
|
||||||
export M_CXXFLAGS :=
|
|
||||||
export M_LDFLAGS :=
|
|
||||||
export M_SOURCES :=
|
|
|
@ -1,11 +0,0 @@
|
||||||
# @configure_input@
|
|
||||||
|
|
||||||
export OS_CFLAGS := $(CC_DEF)PJ_AUTOCONF=1 @CFLAGS@
|
|
||||||
|
|
||||||
export OS_CXXFLAGS := $(CC_DEF)PJ_AUTOCONF=1 @CXXFLAGS@
|
|
||||||
|
|
||||||
export OS_LDFLAGS := @LDFLAGS@ @LIBS@
|
|
||||||
|
|
||||||
export OS_SOURCES :=
|
|
||||||
|
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
export OS_CFLAGS := $(CC_DEF)PJ_DARWINOS=1
|
|
||||||
|
|
||||||
export OS_CXXFLAGS :=
|
|
||||||
|
|
||||||
export OS_LDFLAGS := $(CC_LIB)pthread$(LIBEXT2) -framework CoreAudio -lm
|
|
||||||
|
|
||||||
export OS_SOURCES :=
|
|
||||||
|
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
export OS_CFLAGS := $(CC_DEF)PJ_LINUX=1
|
|
||||||
|
|
||||||
export OS_CXXFLAGS :=
|
|
||||||
|
|
||||||
export OS_LDFLAGS := -lportaudio-$(TARGET_NAME) -lgsmcodec-$(TARGET_NAME) -lilbccodec-$(TARGET_NAME) -lspeex-$(TARGET_NAME) -lresample-$(TARGET_NAME) $(CC_LIB)pthread$(LIBEXT2) -lm
|
|
||||||
|
|
||||||
export OS_SOURCES :=
|
|
||||||
|
|
||||||
|
|
|
@ -1,32 +0,0 @@
|
||||||
#
|
|
||||||
# make-mingw.inc: Mingw specific compilation switches.
|
|
||||||
#
|
|
||||||
PALM_OS_SDK_VER := 0x06000000
|
|
||||||
PALM_OS_TARGET_HOST := TARGET_HOST_PALMOS
|
|
||||||
PALM_OS_TARGET_PLATFORM := TARGET_PLATFORM_PALMSIM_WIN32
|
|
||||||
PALM_OS_BUILD_TYPE := BUILD_TYPE_DEBUG
|
|
||||||
PALM_OS_TRACE_OUTPUT := TRACE_OUTPUT_ON
|
|
||||||
PALM_OS_CPU_TYPE := CPU_ARM
|
|
||||||
|
|
||||||
export CROSS_COMPILE :=
|
|
||||||
|
|
||||||
ifeq ($(CC_NAME),gcc)
|
|
||||||
export CFLAGS += -mno-cygwin -fexceptions -frtti
|
|
||||||
endif
|
|
||||||
|
|
||||||
export OS_CFLAGS := $(CC_DEF)PJ_PALMOS=1 \
|
|
||||||
$(CC_DEF)__PALMOS_KERNEL__=1 \
|
|
||||||
$(CC_DEF)__PALMOS__=$(PALM_OS_SDK_VER) \
|
|
||||||
$(CC_DEF)BUILD_TYPE=$(PALM_OS_BUILD_TYPE) \
|
|
||||||
$(CC_DEF)TRACE_OUTPUT=$(PALM_OS_TRACE_OUTPUT) \
|
|
||||||
$(CC_DEF)_SUPPORTS_NAMESPACE=0 \
|
|
||||||
$(CC_DEF)_SUPPORTS_RTTI=0 \
|
|
||||||
$(CC_DEF)TARGET_HOST=$(PALM_OS_TRAGET_HOST) \
|
|
||||||
$(CC_DEF)TARGET_PLATFORM=$(PALM_OS_TARGET_PLATFORM)
|
|
||||||
|
|
||||||
export OS_CXXFLAGS :=
|
|
||||||
|
|
||||||
export OS_LDFLAGS :=
|
|
||||||
|
|
||||||
export OS_SOURCES :=
|
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
#
|
|
||||||
# Global OS specific configurations for RTEMS OS.
|
|
||||||
#
|
|
||||||
# Thanks Zetron, Inc and Phil Torre <ptorre@zetron.com> for donating PJLIB
|
|
||||||
# port to RTEMS.
|
|
||||||
#
|
|
||||||
export RTEMS_DEBUG := -ggdb3 -DRTEMS_DEBUG -DDEBUG -qrtems_debug
|
|
||||||
|
|
||||||
export OS_CFLAGS := $(CC_DEF)PJ_RTEMS=1 \
|
|
||||||
-B$(RTEMS_LIBRARY_PATH)/lib/ -specs bsp_specs -qrtems
|
|
||||||
|
|
||||||
export OS_CXXFLAGS :=
|
|
||||||
|
|
||||||
export OS_LDFLAGS := -B$(RTEMS_LIBRARY_PATH)/lib/ -specs bsp_specs -qrtems -lm
|
|
||||||
|
|
||||||
export OS_SOURCES :=
|
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
export OS_CFLAGS := $(CC_DEF)PJ_SUNOS=1
|
|
||||||
|
|
||||||
export OS_CXXFLAGS :=
|
|
||||||
|
|
||||||
export OS_LDFLAGS := $(CC_LIB)pthread$(LIBEXT2) \
|
|
||||||
$(CC_LIB)socket$(LIBEXT2) \
|
|
||||||
$(CC_LIB)rt$(LIBEXT2) \
|
|
||||||
$(CC_LIB)nsl$(LIBEXT2) \
|
|
||||||
$(CC_LIB)m$(LIBEXT2)
|
|
||||||
|
|
||||||
export OS_SOURCES :=
|
|
||||||
|
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
export OS_CFLAGS := $(CC_DEF)PJ_WIN32=1
|
|
||||||
|
|
||||||
export OS_CXXFLAGS :=
|
|
||||||
|
|
||||||
export OS_LDFLAGS := $(CC_LIB)wsock32$(LIBEXT2) \
|
|
||||||
$(CC_LIB)ws2_32$(LIBEXT2)\
|
|
||||||
$(CC_LIB)ole32$(LIBEXT2)\
|
|
||||||
$(CC_LIB)m$(LIBEXT2)
|
|
||||||
|
|
||||||
export OS_SOURCES :=
|
|
||||||
|
|
||||||
|
|
|
@ -1,249 +0,0 @@
|
||||||
ifeq ($(LIBDIR),)
|
|
||||||
LIBDIR = ../lib
|
|
||||||
endif
|
|
||||||
ifeq ($(BINDIR),)
|
|
||||||
BINDIR = ../bin
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# The name(s) of output lib file(s) (e.g. libapp.a).
|
|
||||||
#
|
|
||||||
LIB := $($(APP)_LIB)
|
|
||||||
SHLIB = $($(APP)_SHLIB)
|
|
||||||
SONAME = $($(APP)_SONAME)
|
|
||||||
|
|
||||||
ifeq ($(SHLIB_SUFFIX),so)
|
|
||||||
SHLIB_OPT := -shared -Wl,-soname,$(SHLIB)
|
|
||||||
else ifeq ($(SHLIB_SUFFIX),dylib)
|
|
||||||
SHLIB_OPT := -dynamiclib -undefined dynamic_lookup -flat_namespace
|
|
||||||
else ifeq ($(SHLIB_SUFFIX),dll)
|
|
||||||
SHLIB_OPT := -shared -Wl,-soname,$(SHLIB)
|
|
||||||
else
|
|
||||||
SHLIB_OPT :=
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# The name of output executable file (e.g. app.exe).
|
|
||||||
#
|
|
||||||
EXE = $($(APP)_EXE)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Source directory
|
|
||||||
#
|
|
||||||
SRCDIR = $($(APP)_SRCDIR)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Output directory for object files (i.e. output/target)
|
|
||||||
#
|
|
||||||
OBJDIR = output/$(app)-$(TARGET_NAME)
|
|
||||||
|
|
||||||
ifeq ($(OS_NAME),linux-kernel)
|
|
||||||
export $(APP)_CFLAGS += -DKBUILD_MODNAME=$(app) -DKBUILD_BASENAME=$(app)
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# OBJS is ./output/target/file.o
|
|
||||||
#
|
|
||||||
OBJS = $(foreach file, $($(APP)_OBJS), $(OBJDIR)/$(file))
|
|
||||||
OBJDIRS := $(sort $(dir $(OBJS)))
|
|
||||||
|
|
||||||
#
|
|
||||||
# FULL_SRCS is ../src/app/file1.c ../src/app/file1.S
|
|
||||||
#
|
|
||||||
FULL_SRCS = $(foreach file, $($(APP)_OBJS), $(SRCDIR)/$(basename $(file)).m $(SRCDIR)/$(basename $(file)).c $(SRCDIR)/$(basename $(file)).cpp $(SRCDIR)/$(basename $(file)).cc $(SRCDIR)/$(basename $(file)).S)
|
|
||||||
|
|
||||||
#
|
|
||||||
# When generating dependency (gcc -MM), ideally we use only either
|
|
||||||
# CFLAGS or CXXFLAGS (not both). But I just couldn't make if/ifeq to work.
|
|
||||||
#
|
|
||||||
#DEPFLAGS = $($(APP)_CXXFLAGS) $($(APP)_CFLAGS)
|
|
||||||
DEPCFLAGS = $($(APP)_CFLAGS)
|
|
||||||
DEPCXXFLAGS = $($(APP)_CXXFLAGS)
|
|
||||||
|
|
||||||
# Dependency file
|
|
||||||
DEP_FILE := .$(app)-$(TARGET_NAME).depend
|
|
||||||
|
|
||||||
|
|
||||||
print_common:
|
|
||||||
@echo "###"
|
|
||||||
@echo "### DUMPING MAKE VARIABLES (I WON'T DO ANYTHING ELSE):"
|
|
||||||
@echo "###"
|
|
||||||
@echo APP=$(APP)
|
|
||||||
@echo OBJDIR=$(OBJDIR)
|
|
||||||
@echo OBJDIRS=$(OBJDIRS)
|
|
||||||
@echo OBJS=$(OBJS)
|
|
||||||
@echo SRCDIR=$(SRCDIR)
|
|
||||||
@echo FULL_SRCS=$(FULL_SRCS)
|
|
||||||
@echo $(APP)_CFLAGS=$($(APP)_CFLAGS)
|
|
||||||
@echo $(APP)_CXXFLAGS=$($(APP)_CXXFLAGS)
|
|
||||||
@echo $(APP)_LDFLAGS=$($(APP)_LDFLAGS)
|
|
||||||
# @echo DEPFLAGS=$(DEPFLAGS)
|
|
||||||
@echo CC=$(CC)
|
|
||||||
@echo AR=$(AR)
|
|
||||||
@echo AR_FLAGS=$(AR_FLAGS)
|
|
||||||
@echo RANLIB=$(RANLIB)
|
|
||||||
|
|
||||||
print_bin: print_common
|
|
||||||
@echo EXE=$(subst /,$(HOST_PSEP),$(BINDIR)/$(EXE))
|
|
||||||
@echo BINDIR=$(BINDIR)
|
|
||||||
|
|
||||||
print_lib: print_common
|
|
||||||
ifneq ($(LIB),)
|
|
||||||
@echo LIB=$(subst /,$(HOST_PSEP),$(LIBDIR)/$(LIB))
|
|
||||||
endif
|
|
||||||
ifneq ($(SHLIB),)
|
|
||||||
@echo SHLIB=$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SHLIB))
|
|
||||||
endif
|
|
||||||
ifneq ($(SONAME),)
|
|
||||||
@echo SONAME=$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SONAME))
|
|
||||||
endif
|
|
||||||
@echo LIBDIR=$(LIBDIR)
|
|
||||||
|
|
||||||
ifneq ($(LIB),)
|
|
||||||
$(subst /,$(HOST_PSEP),$(LIBDIR)/$(LIB)): $(OBJDIRS) $(OBJS) $($(APP)_EXTRA_DEP)
|
|
||||||
if test ! -d $(LIBDIR); then $(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)),$(HOST_MKDIR)); fi
|
|
||||||
$(AR) $(AR_FLAGS) $@ $(OBJS)
|
|
||||||
$(RANLIB) $@
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(SHLIB),)
|
|
||||||
$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SHLIB)): $(OBJDIRS) $(OBJS) $($(APP)_EXTRA_DEP)
|
|
||||||
if test ! -d $(LIBDIR); then $(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)),$(HOST_MKDIR)); fi
|
|
||||||
$(LD) $(LDOUT)$(subst /,$(HOST_PSEP),$@) \
|
|
||||||
$(subst /,$(HOST_PSEP),$(OBJS)) $($(APP)_LDFLAGS) $(SHLIB_OPT)
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(SONAME),)
|
|
||||||
$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SONAME)): $(subst /,$(HOST_PSEP),$(LIBDIR)/$(SHLIB))
|
|
||||||
ln -sf $(SHLIB) $@
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(EXE),)
|
|
||||||
$(subst /,$(HOST_PSEP),$(BINDIR)/$(EXE)): $(OBJDIRS) $(OBJS) $($(APP)_EXTRA_DEP)
|
|
||||||
if test ! -d $(BINDIR); then $(subst @@,$(subst /,$(HOST_PSEP),$(BINDIR)),$(HOST_MKDIR)); fi
|
|
||||||
$(LD) $(LDOUT)$(subst /,$(HOST_PSEP),$(BINDIR)/$(EXE)) \
|
|
||||||
$(subst /,$(HOST_PSEP),$(OBJS)) $($(APP)_LDFLAGS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(OBJDIR)/$(app).o: $(OBJDIRS) $(OBJS)
|
|
||||||
$(CROSS_COMPILE)ld -r -o $@ $(OBJS)
|
|
||||||
|
|
||||||
$(OBJDIR)/$(app).ko: $(OBJDIR)/$(app).o | $(OBJDIRS)
|
|
||||||
@echo Creating kbuild Makefile...
|
|
||||||
@echo "# Our module name:" > $(OBJDIR)/Makefile
|
|
||||||
@echo 'obj-m += $(app).o' >> $(OBJDIR)/Makefile
|
|
||||||
@echo >> $(OBJDIR)/Makefile
|
|
||||||
@echo "# Object members:" >> $(OBJDIR)/Makefile
|
|
||||||
@echo -n '$(app)-objs += ' >> $(OBJDIR)/Makefile
|
|
||||||
@for file in $($(APP)_OBJS); do \
|
|
||||||
echo -n "$$file " >> $(OBJDIR)/Makefile; \
|
|
||||||
done
|
|
||||||
@echo >> $(OBJDIR)/Makefile
|
|
||||||
@echo >> $(OBJDIR)/Makefile
|
|
||||||
@echo "# Prevent .o files to be built by kbuild:" >> $(OBJDIR)/Makefile
|
|
||||||
@for file in $($(APP)_OBJS); do \
|
|
||||||
echo ".PHONY: `pwd`/$(OBJDIR)/$$file" >> $(OBJDIR)/Makefile; \
|
|
||||||
done
|
|
||||||
@echo >> $(OBJDIR)/Makefile
|
|
||||||
@echo all: >> $(OBJDIR)/Makefile
|
|
||||||
@echo -e "\tmake -C $(KERNEL_DIR) M=`pwd`/$(OBJDIR) modules $(KERNEL_ARCH)" >> $(OBJDIR)/Makefile
|
|
||||||
@echo Invoking kbuild...
|
|
||||||
make -C $(OBJDIR)
|
|
||||||
|
|
||||||
../lib/$(app).ko: $(LIB) $(OBJDIR)/$(app).ko
|
|
||||||
cp $(OBJDIR)/$(app).ko ../lib
|
|
||||||
|
|
||||||
$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.m | $(OBJDIRS)
|
|
||||||
$(CC) $($(APP)_CFLAGS) \
|
|
||||||
$(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
|
|
||||||
$(subst /,$(HOST_PSEP),$<)
|
|
||||||
|
|
||||||
$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.c | $(OBJDIRS)
|
|
||||||
$(CC) $($(APP)_CFLAGS) \
|
|
||||||
$(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
|
|
||||||
$(subst /,$(HOST_PSEP),$<)
|
|
||||||
|
|
||||||
$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.S | $(OBJDIRS)
|
|
||||||
$(CC) $($(APP)_CFLAGS) \
|
|
||||||
$(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
|
|
||||||
$(subst /,$(HOST_PSEP),$<)
|
|
||||||
|
|
||||||
$(OBJDIR)/dshowclasses.o: $(SRCDIR)/dshowclasses.cpp | $(OBJDIRS)
|
|
||||||
$(CXX) $($(APP)_CXXFLAGS) -I$(SRCDIR)/../../../third_party/BaseClasses -fpermissive \
|
|
||||||
$(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
|
|
||||||
$(subst /,$(HOST_PSEP),$<)
|
|
||||||
|
|
||||||
$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.cpp | $(OBJDIRS)
|
|
||||||
$(CXX) $($(APP)_CXXFLAGS) \
|
|
||||||
$(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
|
|
||||||
$(subst /,$(HOST_PSEP),$<)
|
|
||||||
|
|
||||||
$(OBJDIR)/%$(OBJEXT): $(SRCDIR)/%.cc | $(OBJDIRS)
|
|
||||||
$(CXX) $($(APP)_CXXFLAGS) \
|
|
||||||
$(CC_OUT)$(subst /,$(HOST_PSEP),$@) \
|
|
||||||
$(subst /,$(HOST_PSEP),$<)
|
|
||||||
|
|
||||||
$(OBJDIRS):
|
|
||||||
$(subst @@,$(subst /,$(HOST_PSEP),$@),$(HOST_MKDIR))
|
|
||||||
|
|
||||||
$(LIBDIR):
|
|
||||||
$(subst @@,$(subst /,$(HOST_PSEP),$@),$(HOST_MKDIR))
|
|
||||||
|
|
||||||
$(BINDIR):
|
|
||||||
$(subst @@,$(subst /,$(HOST_PSEP),$@),$(HOST_MKDIR))
|
|
||||||
|
|
||||||
clean:
|
|
||||||
$(subst @@,$(subst /,$(HOST_PSEP),$(OBJDIR)/*),$(HOST_RMR))
|
|
||||||
$(subst @@,$(subst /,$(HOST_PSEP),$(OBJDIR)),$(HOST_RMDIR))
|
|
||||||
ifeq ($(OS_NAME),linux-kernel)
|
|
||||||
rm -f ../lib/$(app).o
|
|
||||||
endif
|
|
||||||
|
|
||||||
gcov-report:
|
|
||||||
for file in $(FULL_SRCS); do \
|
|
||||||
gcov $$file -n -o $(OBJDIR); \
|
|
||||||
done
|
|
||||||
|
|
||||||
realclean: clean
|
|
||||||
ifneq ($(LIB),)
|
|
||||||
$(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)/$(LIB)),$(HOST_RM))
|
|
||||||
endif
|
|
||||||
ifneq ($(SHLIB),)
|
|
||||||
$(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SHLIB)),$(HOST_RM))
|
|
||||||
endif
|
|
||||||
ifneq ($(SONAME),)
|
|
||||||
$(subst @@,$(subst /,$(HOST_PSEP),$(LIBDIR)/$(SONAME)),$(HOST_RM))
|
|
||||||
endif
|
|
||||||
ifneq ($(EXE),)
|
|
||||||
$(subst @@,$(subst /,$(HOST_PSEP),$(BINDIR)/$(EXE)),$(HOST_RM))
|
|
||||||
endif
|
|
||||||
$(subst @@,$(DEP_FILE),$(HOST_RM))
|
|
||||||
ifeq ($(OS_NAME),linux-kernel)
|
|
||||||
rm -f ../lib/$(app).ko
|
|
||||||
endif
|
|
||||||
|
|
||||||
depend:
|
|
||||||
$(subst @@,$(DEP_FILE),$(HOST_RM))
|
|
||||||
for F in $(FULL_SRCS); do \
|
|
||||||
if test -f $$F; then \
|
|
||||||
echo "$(OBJDIR)/" | tr -d '\n' >> $(DEP_FILE); \
|
|
||||||
if echo $$F | grep -q .cpp$$; then \
|
|
||||||
dep="$(CC) -M $(DEPCXXFLAGS) $$F"; \
|
|
||||||
else \
|
|
||||||
dep="$(CC) -M $(DEPCFLAGS) $$F"; \
|
|
||||||
fi; \
|
|
||||||
if eval $$dep | sed '/^#/d' >> $(DEP_FILE); then \
|
|
||||||
true; \
|
|
||||||
else \
|
|
||||||
echo 'err:' >> $(DEP_FILE); \
|
|
||||||
rm -f $(DEP_FILE); \
|
|
||||||
exit 1; \
|
|
||||||
fi; \
|
|
||||||
fi; \
|
|
||||||
done;
|
|
||||||
|
|
||||||
dep: depend
|
|
||||||
|
|
||||||
-include $(DEP_FILE)
|
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets">
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<!--
|
|
||||||
- Set the API Family here:
|
|
||||||
* WinDesktop (Desktop)
|
|
||||||
* UWP (UWP)
|
|
||||||
* WinPhone8 (Windows Phone 8)
|
|
||||||
-->
|
|
||||||
<API_Family>WinDesktop</API_Family>
|
|
||||||
</PropertyGroup>
|
|
||||||
</Project>
|
|
|
@ -1,22 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets">
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros">
|
|
||||||
<TargetCPU>ARMv7</TargetCPU>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>14.0.22823.1</_ProjectFileVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<TargetMachine>MachineARM</TargetMachine>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<BuildMacro Include="TargetCPU">
|
|
||||||
<Value>$(TargetCPU)</Value>
|
|
||||||
</BuildMacro>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
|
@ -1,12 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets">
|
|
||||||
<Import Project="pjproject-vs14-arm-common-defaults.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>14.0.22823.1</_ProjectFileVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup />
|
|
||||||
<ItemGroup />
|
|
||||||
</Project>
|
|
|
@ -1,9 +0,0 @@
|
||||||
<!--This will define targets to override the default ones useful to skipped the target of specific project-->
|
|
||||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<Target Name="Build">
|
|
||||||
<Message Text="Skipped project build"></Message>
|
|
||||||
</Target>
|
|
||||||
<Target Name="Clean">
|
|
||||||
<Message Text="Skipped project clean"></Message>
|
|
||||||
</Target>
|
|
||||||
</Project>
|
|
|
@ -1,64 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets">
|
|
||||||
<Import Project="pjproject-vs14-api-def.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<Choose>
|
|
||||||
<When Condition="'$(Platform)'=='ARM' ">
|
|
||||||
<PropertyGroup>
|
|
||||||
<API_Family Condition="'$(API_Family)'=='WinDesktop'">UWP</API_Family>
|
|
||||||
</PropertyGroup>
|
|
||||||
</When>
|
|
||||||
<When Condition="'$(Platform)'=='Win32' Or '$(Platform)'=='x64'">
|
|
||||||
<PropertyGroup>
|
|
||||||
<API_Family Condition="'$(API_Family)'=='WinPhone8'">UWP</API_Family>
|
|
||||||
</PropertyGroup>
|
|
||||||
</When>
|
|
||||||
</Choose>
|
|
||||||
<PropertyGroup>
|
|
||||||
<API_Family Condition="'$(API_Family)'==''">WinDesktop</API_Family>
|
|
||||||
<PreprocessorDef></PreprocessorDef>
|
|
||||||
<DefaultToolset>v140</DefaultToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Choose>
|
|
||||||
<When Condition="'$(API_Family)'=='WinDesktop'">
|
|
||||||
<PropertyGroup>
|
|
||||||
<BuildToolset>v140</BuildToolset>
|
|
||||||
<PreprocessorDef Condition="'$(Platform)'=='Win32'">WIN32;PJ_WIN32=1;PJ_M_I386=1;</PreprocessorDef>
|
|
||||||
<PreprocessorDef Condition="'$(Platform)'=='x64'">WIN64;PJ_WIN64=1;PJ_M_X86_64=1;</PreprocessorDef>
|
|
||||||
</PropertyGroup>
|
|
||||||
</When>
|
|
||||||
<When Condition="'$(API_Family)'=='UWP'">
|
|
||||||
<PropertyGroup>
|
|
||||||
<BuildToolset>v140</BuildToolset>
|
|
||||||
<PreprocessorDef>PJ_WIN32_UWP;UNICODE;_UNICODE;</PreprocessorDef>
|
|
||||||
<PreprocessorDef Condition="'$(Platform)'=='ARM'">$(PreprocessorDef);PJ_M_ARMV7=1;</PreprocessorDef>
|
|
||||||
<PlatformVersion>10.0.10586.0</PlatformVersion>
|
|
||||||
<MinPlatformVersion>10.0.10240.0</MinPlatformVersion>
|
|
||||||
<AppTypeRev>10.0</AppTypeRev>
|
|
||||||
|
|
||||||
<WindowsTargetPlatformVersion>$(PlatformVersion)</WindowsTargetPlatformVersion>
|
|
||||||
<WindowsTargetPlatformMinVersion>$(MinPlatformVersion)</WindowsTargetPlatformMinVersion>
|
|
||||||
<AppContainerApplication>true</AppContainerApplication>
|
|
||||||
<ApplicationType>Windows Store</ApplicationType>
|
|
||||||
<ApplicationTypeRevision>$(AppTypeRev)</ApplicationTypeRevision>
|
|
||||||
|
|
||||||
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
|
|
||||||
<TargetPlatformVersion>$(PlatformVersion)</TargetPlatformVersion>
|
|
||||||
<TargetPlatformMinVersion>$(MinPlatformVersion)</TargetPlatformMinVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
</When>
|
|
||||||
<When Condition="'$(API_Family)'=='WinPhone8'">
|
|
||||||
<PropertyGroup>
|
|
||||||
<BuildToolset>v110_wp80</BuildToolset>
|
|
||||||
<PreprocessorDef>PJ_WIN32_WINPHONE8;PJ_M_ARMV7=1;UNICODE;_UNICODE;</PreprocessorDef>
|
|
||||||
</PropertyGroup>
|
|
||||||
</When>
|
|
||||||
</Choose>
|
|
||||||
<ItemDefinitionGroup>
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>$(PreprocessorDef);%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<MinimalRebuild Condition="'$(API_Family)'=='UWP'">false</MinimalRebuild>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
</Project>
|
|
|
@ -1,38 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets">
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros">
|
|
||||||
<VSVer>14</VSVer>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>14.0.22823.1</_ProjectFileVersion>
|
|
||||||
<OutDir Condition="'$(TargetExt)'=='.lib'">..\lib\</OutDir>
|
|
||||||
<OutDir Condition="'$(TargetExt)'=='.exe'">..\bin\</OutDir>
|
|
||||||
<OutDir Condition="'$(TargetExt)'=='.dll'">..\lib\</OutDir>
|
|
||||||
<TargetName>$(ProjectName)-$(TargetCPU)-$(Platform)-vc$(VSVer)-$(Configuration)</TargetName>
|
|
||||||
<IntDir>.\output\$(ProjectName)-$(TargetCPU)-$(PlatformName)-vc$(VSVer)-$(Configuration)\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup>
|
|
||||||
<ClCompile>
|
|
||||||
<BrowseInformation>true</BrowseInformation>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<CompileAs>Default</CompileAs>
|
|
||||||
<CompileAsWinRT>false</CompileAsWinRT>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<SDLCheck>false</SDLCheck>
|
|
||||||
</ClCompile>
|
|
||||||
<Lib>
|
|
||||||
<OutputFile>..\lib\$(ProjectName)-$(TargetCPU)-$(Platform)-vc$(VSVer)-$(Configuration).lib</OutputFile>
|
|
||||||
</Lib>
|
|
||||||
<Link>
|
|
||||||
<OutputFile Condition="'$(TargetExt)'=='.exe'">..\bin\$(ProjectName)-$(TargetCPU)-$(Platform)-vc$(VSVer)-$(Configuration).exe</OutputFile>
|
|
||||||
<GenerateWindowsMetadata Condition="'$(TargetExt)'=='.lib'">false</GenerateWindowsMetadata>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<BuildMacro Include="VSVer">
|
|
||||||
<Value>$(VSVer)</Value>
|
|
||||||
</BuildMacro>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
|
@ -1,6 +0,0 @@
|
||||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<Target Name="CheckAPI">
|
|
||||||
<Message Condition="'$(API_Family)'!='$(PROJ_Target)'" Text="Skipped project build"></Message>
|
|
||||||
<CallTarget Condition="'$(API_Family)'=='$(PROJ_Target)'" Targets="Build"/>
|
|
||||||
</Target>
|
|
||||||
</Project>
|
|
|
@ -1,21 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets">
|
|
||||||
<Import Project="pjproject-vs14-common-defaults.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>14.0.22823.1</_ProjectFileVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup>
|
|
||||||
<ClCompile>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<PreprocessorDefinitions>_DEBUG;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup />
|
|
||||||
</Project>
|
|
|
@ -1,16 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets">
|
|
||||||
<Import Project="pjproject-vs14-debug-defaults.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>14.0.22823.1</_ProjectFileVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup>
|
|
||||||
<ClCompile>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup />
|
|
||||||
</Project>
|
|
|
@ -1,16 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets">
|
|
||||||
<Import Project="pjproject-vs14-debug-defaults.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>14.0.22823.1</_ProjectFileVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup>
|
|
||||||
<ClCompile>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup />
|
|
||||||
</Project>
|
|
|
@ -1,18 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets">
|
|
||||||
<Import Project="pjproject-vs14-common-defaults.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>14.0.22823.1</_ProjectFileVersion>
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup>
|
|
||||||
<ClCompile>
|
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup />
|
|
||||||
</Project>
|
|
|
@ -1,16 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets">
|
|
||||||
<Import Project="pjproject-vs14-release-defaults.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>14.0.22823.1</_ProjectFileVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup>
|
|
||||||
<ClCompile>
|
|
||||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup />
|
|
||||||
</Project>
|
|
|
@ -1,16 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets">
|
|
||||||
<Import Project="pjproject-vs14-release-defaults.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>14.0.22823.1</_ProjectFileVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup>
|
|
||||||
<ClCompile>
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup />
|
|
||||||
</Project>
|
|
|
@ -1,25 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets">
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros">
|
|
||||||
<TargetCPU>i386</TargetCPU>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>14.0.22823.1</_ProjectFileVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
|
||||||
</Link>
|
|
||||||
<Lib>
|
|
||||||
<AdditionalOptions>/ignore:4221</AdditionalOptions>
|
|
||||||
</Lib>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<BuildMacro Include="TargetCPU">
|
|
||||||
<Value>$(TargetCPU)</Value>
|
|
||||||
</BuildMacro>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
|
@ -1,12 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets">
|
|
||||||
<Import Project="pjproject-vs14-win32-common-defaults.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>14.0.22823.1</_ProjectFileVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup />
|
|
||||||
<ItemGroup />
|
|
||||||
</Project>
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue