* #27232: jni: added pjproject checkout as regular git content
We will remove it once the next release of pjsip (with Android support)
comes out and is merged into SFLphone.
diff --git a/jni/pjproject-android/.svn/pristine/f9/f91c234f6c0ff29c0f52557f1df095d01edeeba2.svn-base b/jni/pjproject-android/.svn/pristine/f9/f91c234f6c0ff29c0f52557f1df095d01edeeba2.svn-base
new file mode 100644
index 0000000..117497b
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/f9/f91c234f6c0ff29c0f52557f1df095d01edeeba2.svn-base
@@ -0,0 +1,263 @@
+/* $Id$ */
+/*
+ * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
+ * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+ /**
+ * \page page_pjmedia_samples_encdec_c Samples: Encoding and Decoding
+ *
+ * This sample shows how to use codec.
+ *
+ * This file is pjsip-apps/src/samples/encdec.c
+ *
+ * \includelineno encdec.c
+ */
+
+#include <pjlib.h>
+#include <pjmedia.h>
+#include <pjmedia-codec.h>
+
+#define THIS_FILE "encdec.c"
+
+static const char *desc =
+ " encdec \n"
+ " \n"
+ " PURPOSE: \n"
+ " Encode input WAV with a codec, and decode the result to another WAV \n"
+ "\n"
+ "\n"
+ " USAGE: \n"
+ " encdec codec input.wav output.wav \n"
+ "\n"
+ "\n"
+ " where:\n"
+ " codec Set the codec name. \n"
+ " input.wav Set the input WAV filename. \n"
+ " output.wav Set the output WAV filename. \n"
+
+ "\n"
+;
+
+//#undef PJ_TRACE
+//#define PJ_TRACE 1
+
+#ifndef PJ_TRACE
+# define PJ_TRACE 0
+#endif
+
+#if PJ_TRACE
+# define TRACE_(expr) PJ_LOG(4,expr)
+#else
+# define TRACE_(expr)
+#endif
+
+
+static void err(const char *op, pj_status_t status)
+{
+ char errmsg[PJ_ERR_MSG_SIZE];
+ pj_strerror(status, errmsg, sizeof(errmsg));
+ PJ_LOG(3,("", "%s error: %s", op, errmsg));
+}
+
+#define CHECK(op) do { \
+ status = op; \
+ if (status != PJ_SUCCESS) { \
+ err(#op, status); \
+ return status; \
+ } \
+ } \
+ while (0)
+
+static pjmedia_endpt *mept;
+static unsigned file_msec_duration;
+
+static pj_status_t enc_dec_test(const char *codec_id,
+ const char *filein,
+ const char *fileout)
+{
+ pj_pool_t *pool;
+ pjmedia_codec_mgr *cm;
+ pjmedia_codec *codec;
+ const pjmedia_codec_info *pci;
+ pjmedia_codec_param param;
+ unsigned cnt, samples_per_frame;
+ pj_str_t tmp;
+ pjmedia_port *wavin, *wavout;
+ unsigned lost_pct;
+ pj_status_t status;
+
+#define T file_msec_duration/1000, file_msec_duration%1000
+
+ pool = pjmedia_endpt_create_pool(mept, "encdec", 1000, 1000);
+
+ cm = pjmedia_endpt_get_codec_mgr(mept);
+
+#ifdef LOST_PCT
+ lost_pct = LOST_PCT;
+#else
+ lost_pct = 0;
+#endif
+
+ cnt = 1;
+ CHECK( pjmedia_codec_mgr_find_codecs_by_id(cm, pj_cstr(&tmp, codec_id),
+ &cnt, &pci, NULL) );
+ CHECK( pjmedia_codec_mgr_get_default_param(cm, pci, ¶m) );
+
+ samples_per_frame = param.info.clock_rate * param.info.frm_ptime / 1000;
+
+ /* Control VAD */
+ param.setting.vad = 1;
+
+ /* Open wav for reading */
+ CHECK( pjmedia_wav_player_port_create(pool, filein,
+ param.info.frm_ptime,
+ PJMEDIA_FILE_NO_LOOP, 0, &wavin) );
+
+ /* Open wav for writing */
+ CHECK( pjmedia_wav_writer_port_create(pool, fileout,
+ param.info.clock_rate,
+ param.info.channel_cnt,
+ samples_per_frame,
+ 16, 0, 0, &wavout) );
+
+ /* Alloc codec */
+ CHECK( pjmedia_codec_mgr_alloc_codec(cm, pci, &codec) );
+ CHECK( pjmedia_codec_init(codec, pool) );
+ CHECK( pjmedia_codec_open(codec, ¶m) );
+
+ for (;;) {
+ pjmedia_frame frm_pcm, frm_bit, out_frm, frames[4];
+ pj_int16_t pcmbuf[320];
+ pj_timestamp ts;
+ pj_uint8_t bitstream[160];
+
+ frm_pcm.buf = (char*)pcmbuf;
+ frm_pcm.size = samples_per_frame * 2;
+
+ /* Read from WAV */
+ if (pjmedia_port_get_frame(wavin, &frm_pcm) != PJ_SUCCESS)
+ break;
+ if (frm_pcm.type != PJMEDIA_FRAME_TYPE_AUDIO)
+ break;;
+
+ /* Update duration */
+ file_msec_duration += samples_per_frame * 1000 /
+ param.info.clock_rate;
+
+ /* Encode */
+ frm_bit.buf = bitstream;
+ frm_bit.size = sizeof(bitstream);
+ CHECK(pjmedia_codec_encode(codec, &frm_pcm, sizeof(bitstream),
+ &frm_bit));
+
+ /* On DTX, write zero frame to wavout to maintain duration */
+ if (frm_bit.size == 0 || frm_bit.type != PJMEDIA_FRAME_TYPE_AUDIO) {
+ out_frm.buf = (char*)pcmbuf;
+ out_frm.size = 160;
+ CHECK( pjmedia_port_put_frame(wavout, &out_frm) );
+ TRACE_((THIS_FILE, "%d.%03d read: %u, enc: %u",
+ T, frm_pcm.size, frm_bit.size));
+ continue;
+ }
+
+ /* Parse the bitstream (not really necessary for this case
+ * since we always decode 1 frame, but it's still good
+ * for testing)
+ */
+ ts.u64 = 0;
+ cnt = PJ_ARRAY_SIZE(frames);
+ CHECK( pjmedia_codec_parse(codec, bitstream, frm_bit.size, &ts, &cnt,
+ frames) );
+ CHECK( (cnt==1 ? PJ_SUCCESS : -1) );
+
+ /* Decode or simulate packet loss */
+ out_frm.buf = (char*)pcmbuf;
+ out_frm.size = sizeof(pcmbuf);
+
+ if ((pj_rand() % 100) < (int)lost_pct) {
+ /* Simulate loss */
+ CHECK( pjmedia_codec_recover(codec, sizeof(pcmbuf), &out_frm) );
+ TRACE_((THIS_FILE, "%d.%03d Packet lost", T));
+ } else {
+ /* Decode */
+ CHECK( pjmedia_codec_decode(codec, &frames[0], sizeof(pcmbuf),
+ &out_frm) );
+ }
+
+ /* Write to WAV */
+ CHECK( pjmedia_port_put_frame(wavout, &out_frm) );
+
+ TRACE_((THIS_FILE, "%d.%03d read: %u, enc: %u, dec/write: %u",
+ T, frm_pcm.size, frm_bit.size, out_frm.size));
+ }
+
+ /* Close wavs */
+ pjmedia_port_destroy(wavout);
+ pjmedia_port_destroy(wavin);
+
+ /* Close codec */
+ pjmedia_codec_close(codec);
+ pjmedia_codec_mgr_dealloc_codec(cm, codec);
+
+ /* Release pool */
+ pj_pool_release(pool);
+
+ return PJ_SUCCESS;
+}
+
+
+int main(int argc, char *argv[])
+{
+ pj_caching_pool cp;
+ pj_time_val t0, t1;
+ pj_status_t status;
+
+ if (argc != 4) {
+ puts(desc);
+ return 1;
+ }
+
+ CHECK( pj_init() );
+
+ pj_caching_pool_init(&cp, NULL, 0);
+
+ CHECK( pjmedia_endpt_create(&cp.factory, NULL, 1, &mept) );
+
+ /* Register all codecs */
+ CHECK( pjmedia_codec_register_audio_codecs(mept, NULL) );
+
+ pj_gettimeofday(&t0);
+ status = enc_dec_test(argv[1], argv[2], argv[3]);
+ pj_gettimeofday(&t1);
+ PJ_TIME_VAL_SUB(t1, t0);
+
+ pjmedia_endpt_destroy(mept);
+ pj_caching_pool_destroy(&cp);
+ pj_shutdown();
+
+ if (status == PJ_SUCCESS) {
+ puts("");
+ puts("Success");
+ printf("Duration: %ds.%03d\n", file_msec_duration/1000,
+ file_msec_duration%1000);
+ printf("Time: %lds.%03ld\n", t1.sec, t1.msec);
+ }
+
+ return 0;
+}
+
diff --git a/jni/pjproject-android/.svn/pristine/f9/f92602d36f00ab6ac107d3ac1dd20a2825f7912c.svn-base b/jni/pjproject-android/.svn/pristine/f9/f92602d36f00ab6ac107d3ac1dd20a2825f7912c.svn-base
new file mode 100644
index 0000000..e91a00b
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/f9/f92602d36f00ab6ac107d3ac1dd20a2825f7912c.svn-base
@@ -0,0 +1,21 @@
+
+#include <eikon.rh>
+#include <avkon.rsg>
+#include <avkon.rh>
+#include <appinfo.rh>
+#include "pjsua_reg.loc"
+#include <pjsua.rsg>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0xE44C2D02
+
+RESOURCE APP_REGISTRATION_INFO
+ {
+ app_file="pjsua";
+ localisable_resource_file = qtn_loc_resource_file_1;
+ localisable_resource_id = R_LOCALISABLE_APP_INFO;
+
+ embeddability=KAppNotEmbeddable;
+ newfile=KAppDoesNotSupportNewFile;
+ }
+
diff --git a/jni/pjproject-android/.svn/pristine/f9/f95b2d1e7d185cc1660de5c254a0e7798693cf1e.svn-base b/jni/pjproject-android/.svn/pristine/f9/f95b2d1e7d185cc1660de5c254a0e7798693cf1e.svn-base
new file mode 100644
index 0000000..d212dd2
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/f9/f95b2d1e7d185cc1660de5c254a0e7798693cf1e.svn-base
@@ -0,0 +1,260 @@
+/* $Id$ */
+/*
+ * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
+ * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#ifndef __PJSIP_SIP_TYPES_H__
+#define __PJSIP_SIP_TYPES_H__
+
+
+/*
+ * My note: Doxygen PJSIP and PJSIP_CORE group is declared in
+ * sip_config.h
+ */
+
+/**
+ * @file sip_types.h
+ * @brief Basic PJSIP types.
+ */
+
+#include <pjsip/sip_config.h>
+#include <pj/types.h>
+
+/**
+ * @addtogroup PJSIP_BASE
+ */
+
+/* @defgroup PJSIP_TYPES Basic Data Types
+ * @ingroup PJSIP_BASE
+ * @brief Basic data types.
+ * @{
+ */
+
+
+
+/**
+ * Forward declaration for SIP transport.
+ */
+typedef struct pjsip_transport pjsip_transport;
+
+/**
+ * Forward declaration for transport manager.
+ */
+typedef struct pjsip_tpmgr pjsip_tpmgr;
+
+/**
+ * Transport types.
+ */
+typedef enum pjsip_transport_type_e
+{
+ /** Unspecified. */
+ PJSIP_TRANSPORT_UNSPECIFIED,
+
+ /** UDP. */
+ PJSIP_TRANSPORT_UDP,
+
+ /** TCP. */
+ PJSIP_TRANSPORT_TCP,
+
+ /** TLS. */
+ PJSIP_TRANSPORT_TLS,
+
+ /** SCTP. */
+ PJSIP_TRANSPORT_SCTP,
+
+ /** Loopback (stream, reliable) */
+ PJSIP_TRANSPORT_LOOP,
+
+ /** Loopback (datagram, unreliable) */
+ PJSIP_TRANSPORT_LOOP_DGRAM,
+
+ /** Start of user defined transport */
+ PJSIP_TRANSPORT_START_OTHER,
+
+ /** Start of IPv6 transports */
+ PJSIP_TRANSPORT_IPV6 = 128,
+
+ /** UDP over IPv6 */
+ PJSIP_TRANSPORT_UDP6 = PJSIP_TRANSPORT_UDP + PJSIP_TRANSPORT_IPV6,
+
+ /** TCP over IPv6 */
+ PJSIP_TRANSPORT_TCP6 = PJSIP_TRANSPORT_TCP + PJSIP_TRANSPORT_IPV6,
+
+ /** TLS over IPv6 */
+ PJSIP_TRANSPORT_TLS6 = PJSIP_TRANSPORT_TLS + PJSIP_TRANSPORT_IPV6
+
+} pjsip_transport_type_e;
+
+
+/**
+ * Forward declaration for endpoint (sip_endpoint.h).
+ */
+typedef struct pjsip_endpoint pjsip_endpoint;
+
+/**
+ * Forward declaration for transactions (sip_transaction.h).
+ */
+typedef struct pjsip_transaction pjsip_transaction;
+
+/**
+ * Forward declaration for events (sip_event.h).
+ */
+typedef struct pjsip_event pjsip_event;
+
+/**
+ * Forward declaration for transmit data/buffer (sip_transport.h).
+ */
+typedef struct pjsip_tx_data pjsip_tx_data;
+
+/**
+ * Forward declaration for receive data/buffer (sip_transport.h).
+ */
+typedef struct pjsip_rx_data pjsip_rx_data;
+
+/**
+ * Forward declaration for message (sip_msg.h).
+ */
+typedef struct pjsip_msg pjsip_msg;
+
+/**
+ * Forward declaration for message body (sip_msg.h).
+ */
+typedef struct pjsip_msg_body pjsip_msg_body;
+
+/**
+ * Forward declaration for header field (sip_msg.h).
+ */
+typedef struct pjsip_hdr pjsip_hdr;
+
+/**
+ * Forward declaration for URI (sip_uri.h).
+ */
+typedef struct pjsip_uri pjsip_uri;
+
+/**
+ * Forward declaration for SIP method (sip_msg.h)
+ */
+typedef struct pjsip_method pjsip_method;
+
+/**
+ * Opaque data type for the resolver engine (sip_resolve.h).
+ */
+typedef struct pjsip_resolver_t pjsip_resolver_t;
+
+/**
+ * Forward declaration for credential.
+ */
+typedef struct pjsip_cred_info pjsip_cred_info;
+
+
+/**
+ * Forward declaration for module (sip_module.h).
+ */
+typedef struct pjsip_module pjsip_module;
+
+
+/**
+ * Forward declaration for user agent type (sip_ua_layer.h).
+ */
+typedef pjsip_module pjsip_user_agent;
+
+/**
+ * Forward declaration for dialog (sip_dialog.h).
+ */
+typedef struct pjsip_dialog pjsip_dialog;
+
+/**
+ * Transaction role.
+ */
+typedef enum pjsip_role_e
+{
+ PJSIP_ROLE_UAC, /**< Role is UAC. */
+ PJSIP_ROLE_UAS, /**< Role is UAS. */
+
+ /* Alias: */
+
+ PJSIP_UAC_ROLE = PJSIP_ROLE_UAC, /**< Role is UAC. */
+ PJSIP_UAS_ROLE = PJSIP_ROLE_UAS /**< Role is UAS. */
+
+} pjsip_role_e;
+
+
+/**
+ * General purpose buffer.
+ */
+typedef struct pjsip_buffer
+{
+ /** The start of the buffer. */
+ char *start;
+
+ /** Pointer to current end of the buffer, which also indicates the position
+ of subsequent buffer write.
+ */
+ char *cur;
+
+ /** The absolute end of the buffer. */
+ char *end;
+
+} pjsip_buffer;
+
+
+/**
+ * General host:port pair, used for example as Via sent-by.
+ */
+typedef struct pjsip_host_port
+{
+ pj_str_t host; /**< Host part or IP address. */
+ int port; /**< Port number. */
+} pjsip_host_port;
+
+/**
+ * Host information.
+ */
+typedef struct pjsip_host_info
+{
+ unsigned flag; /**< Flags of pjsip_transport_flags_e. */
+ pjsip_transport_type_e type; /**< Transport type. */
+ pjsip_host_port addr; /**< Address information. */
+} pjsip_host_info;
+
+
+/**
+ * Convert exception ID into pj_status_t status.
+ *
+ * @param exception_id Exception Id.
+ *
+ * @return Error code for the specified exception Id.
+ */
+PJ_DECL(pj_status_t) pjsip_exception_to_status(int exception_id);
+
+/**
+ * Return standard pj_status_t status from current exception.
+ */
+#define PJSIP_RETURN_EXCEPTION() pjsip_exception_to_status(PJ_GET_EXCEPTION())
+
+/**
+ * Attributes to inform that the function may throw exceptions.
+ */
+#define PJSIP_THROW_SPEC(list)
+
+
+/**
+ * @}
+ */
+
+#endif /* __PJSIP_SIP_TYPES_H__ */
+
diff --git a/jni/pjproject-android/.svn/pristine/f9/f95fe46293e951d1b6fb4235e3f0857a9b00b649.svn-base b/jni/pjproject-android/.svn/pristine/f9/f95fe46293e951d1b6fb4235e3f0857a9b00b649.svn-base
new file mode 100644
index 0000000..941683e
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/f9/f95fe46293e951d1b6fb4235e3f0857a9b00b649.svn-base
@@ -0,0 +1,1655 @@
+/* $Id$ */
+/*
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <pjlib-util/http_client.h>
+#include <pj/activesock.h>
+#include <pj/assert.h>
+#include <pj/ctype.h>
+#include <pj/errno.h>
+#include <pj/except.h>
+#include <pj/pool.h>
+#include <pj/string.h>
+#include <pj/timer.h>
+#include <pj/rand.h>
+#include <pjlib-util/base64.h>
+#include <pjlib-util/errno.h>
+#include <pjlib-util/md5.h>
+#include <pjlib-util/scanner.h>
+#include <pjlib-util/string.h>
+
+#define THIS_FILE "http_client.c"
+
+#if 0
+ /* Enable some tracing */
+ #define TRACE_(arg) PJ_LOG(3,arg)
+#else
+ #define TRACE_(arg)
+#endif
+
+#define NUM_PROTOCOL 2
+#define HTTP_1_0 "1.0"
+#define HTTP_1_1 "1.1"
+#define CONTENT_LENGTH "Content-Length"
+/* Buffer size for sending/receiving messages. */
+#define BUF_SIZE 2048
+/* Initial data buffer size to store the data in case content-
+ * length is not specified in the server's response.
+ */
+#define INITIAL_DATA_BUF_SIZE 2048
+#define INITIAL_POOL_SIZE 1024
+#define POOL_INCREMENT_SIZE 512
+
+enum http_protocol
+{
+ PROTOCOL_HTTP,
+ PROTOCOL_HTTPS
+};
+
+static const char *http_protocol_names[NUM_PROTOCOL] =
+{
+ "HTTP",
+ "HTTPS"
+};
+
+static const unsigned int http_default_port[NUM_PROTOCOL] =
+{
+ 80,
+ 443
+};
+
+enum http_method
+{
+ HTTP_GET,
+ HTTP_PUT,
+ HTTP_DELETE
+};
+
+static const char *http_method_names[3] =
+{
+ "GET",
+ "PUT",
+ "DELETE"
+};
+
+enum http_state
+{
+ IDLE,
+ CONNECTING,
+ SENDING_REQUEST,
+ SENDING_REQUEST_BODY,
+ REQUEST_SENT,
+ READING_RESPONSE,
+ READING_DATA,
+ READING_COMPLETE,
+ ABORTING,
+};
+
+enum auth_state
+{
+ AUTH_NONE, /* Not authenticating */
+ AUTH_RETRYING, /* New request with auth has been submitted */
+ AUTH_DONE /* Done retrying the request with auth. */
+};
+
+struct pj_http_req
+{
+ pj_str_t url; /* Request URL */
+ pj_http_url hurl; /* Parsed request URL */
+ pj_sockaddr addr; /* The host's socket address */
+ pj_http_req_param param; /* HTTP request parameters */
+ pj_pool_t *pool; /* Pool to allocate memory from */
+ pj_timer_heap_t *timer; /* Timer for timeout management */
+ pj_ioqueue_t *ioqueue; /* Ioqueue to use */
+ pj_http_req_callback cb; /* Callbacks */
+ pj_activesock_t *asock; /* Active socket */
+ pj_status_t error; /* Error status */
+ pj_str_t buffer; /* Buffer to send/receive msgs */
+ enum http_state state; /* State of the HTTP request */
+ enum auth_state auth_state; /* Authentication state */
+ pj_timer_entry timer_entry;/* Timer entry */
+ pj_bool_t resolved; /* Whether URL's host is resolved */
+ pj_http_resp response; /* HTTP response */
+ pj_ioqueue_op_key_t op_key;
+ struct tcp_state
+ {
+ /* Total data sent so far if the data is sent in segments (i.e.
+ * if on_send_data() is not NULL and if param.reqdata.total_size > 0)
+ */
+ pj_size_t tot_chunk_size;
+ /* Size of data to be sent (in a single activesock operation).*/
+ pj_size_t send_size;
+ /* Data size sent so far. */
+ pj_size_t current_send_size;
+ /* Total data received so far. */
+ pj_size_t current_read_size;
+ } tcp_state;
+};
+
+/* Start sending the request */
+static pj_status_t http_req_start_sending(pj_http_req *hreq);
+/* Start reading the response */
+static pj_status_t http_req_start_reading(pj_http_req *hreq);
+/* End the request */
+static pj_status_t http_req_end_request(pj_http_req *hreq);
+/* Parse the header data and populate the header fields with the result. */
+static pj_status_t http_headers_parse(char *hdata, pj_size_t size,
+ pj_http_headers *headers);
+/* Parse the response */
+static pj_status_t http_response_parse(pj_pool_t *pool,
+ pj_http_resp *response,
+ void *data, pj_size_t size,
+ pj_size_t *remainder);
+/* Restart the request with authentication */
+static void restart_req_with_auth(pj_http_req *hreq);
+/* Parse authentication challenge */
+static pj_status_t parse_auth_chal(pj_pool_t *pool, pj_str_t *input,
+ pj_http_auth_chal *chal);
+
+static pj_uint16_t get_http_default_port(const pj_str_t *protocol)
+{
+ int i;
+
+ for (i = 0; i < NUM_PROTOCOL; i++) {
+ if (!pj_stricmp2(protocol, http_protocol_names[i])) {
+ return (pj_uint16_t)http_default_port[i];
+ }
+ }
+ return 0;
+}
+
+static const char * get_protocol(const pj_str_t *protocol)
+{
+ int i;
+
+ for (i = 0; i < NUM_PROTOCOL; i++) {
+ if (!pj_stricmp2(protocol, http_protocol_names[i])) {
+ return http_protocol_names[i];
+ }
+ }
+
+ /* Should not happen */
+ pj_assert(0);
+ return NULL;
+}
+
+
+/* Syntax error handler for parser. */
+static void on_syntax_error(pj_scanner *scanner)
+{
+ PJ_UNUSED_ARG(scanner);
+ PJ_THROW(PJ_EINVAL); // syntax error
+}
+
+/* Callback when connection is established to the server */
+static pj_bool_t http_on_connect(pj_activesock_t *asock,
+ pj_status_t status)
+{
+ pj_http_req *hreq = (pj_http_req*) pj_activesock_get_user_data(asock);
+
+ if (hreq->state == ABORTING || hreq->state == IDLE)
+ return PJ_FALSE;
+
+ if (status != PJ_SUCCESS) {
+ hreq->error = status;
+ pj_http_req_cancel(hreq, PJ_TRUE);
+ return PJ_FALSE;
+ }
+
+ /* OK, we are connected. Start sending the request */
+ hreq->state = SENDING_REQUEST;
+ http_req_start_sending(hreq);
+ return PJ_TRUE;
+}
+
+static pj_bool_t http_on_data_sent(pj_activesock_t *asock,
+ pj_ioqueue_op_key_t *op_key,
+ pj_ssize_t sent)
+{
+ pj_http_req *hreq = (pj_http_req*) pj_activesock_get_user_data(asock);
+
+ PJ_UNUSED_ARG(op_key);
+
+ if (hreq->state == ABORTING || hreq->state == IDLE)
+ return PJ_FALSE;
+
+ if (sent <= 0) {
+ hreq->error = (sent < 0 ? (pj_status_t)-sent : PJLIB_UTIL_EHTTPLOST);
+ pj_http_req_cancel(hreq, PJ_TRUE);
+ return PJ_FALSE;
+ }
+
+ hreq->tcp_state.current_send_size += sent;
+ TRACE_((THIS_FILE, "\nData sent: %d out of %d bytes",
+ hreq->tcp_state.current_send_size, hreq->tcp_state.send_size));
+ if (hreq->tcp_state.current_send_size == hreq->tcp_state.send_size) {
+ /* Find out whether there is a request body to send. */
+ if (hreq->param.reqdata.total_size > 0 ||
+ hreq->param.reqdata.size > 0)
+ {
+ if (hreq->state == SENDING_REQUEST) {
+ /* Start sending the request body */
+ hreq->state = SENDING_REQUEST_BODY;
+ hreq->tcp_state.tot_chunk_size = 0;
+ pj_assert(hreq->param.reqdata.total_size == 0 ||
+ (hreq->param.reqdata.total_size > 0 &&
+ hreq->param.reqdata.size == 0));
+ } else {
+ /* Continue sending the next chunk of the request body */
+ hreq->tcp_state.tot_chunk_size += hreq->tcp_state.send_size;
+ if (hreq->tcp_state.tot_chunk_size ==
+ hreq->param.reqdata.total_size ||
+ hreq->param.reqdata.total_size == 0)
+ {
+ /* Finish sending all the chunks, start reading
+ * the response.
+ */
+ hreq->state = REQUEST_SENT;
+ http_req_start_reading(hreq);
+ return PJ_TRUE;
+ }
+ }
+ if (hreq->param.reqdata.total_size > 0 &&
+ hreq->cb.on_send_data)
+ {
+ /* Call the callback for the application to provide
+ * the next chunk of data to be sent.
+ */
+ (*hreq->cb.on_send_data)(hreq, &hreq->param.reqdata.data,
+ &hreq->param.reqdata.size);
+ /* Make sure the total data size given by the user does not
+ * exceed what the user originally said.
+ */
+ pj_assert(hreq->tcp_state.tot_chunk_size +
+ hreq->param.reqdata.size <=
+ hreq->param.reqdata.total_size);
+ }
+ http_req_start_sending(hreq);
+ } else {
+ /* No request body, proceed to reading the server's response. */
+ hreq->state = REQUEST_SENT;
+ http_req_start_reading(hreq);
+ }
+ }
+ return PJ_TRUE;
+}
+
+static pj_bool_t http_on_data_read(pj_activesock_t *asock,
+ void *data,
+ pj_size_t size,
+ pj_status_t status,
+ pj_size_t *remainder)
+{
+ pj_http_req *hreq = (pj_http_req*) pj_activesock_get_user_data(asock);
+
+ TRACE_((THIS_FILE, "\nData received: %d bytes", size));
+
+ if (hreq->state == ABORTING || hreq->state == IDLE)
+ return PJ_FALSE;
+
+ if (hreq->state == READING_RESPONSE) {
+ pj_status_t st;
+ pj_size_t rem;
+
+ if (status != PJ_SUCCESS && status != PJ_EPENDING) {
+ hreq->error = status;
+ pj_http_req_cancel(hreq, PJ_TRUE);
+ return PJ_FALSE;
+ }
+
+ /* Parse the response. */
+ st = http_response_parse(hreq->pool, &hreq->response,
+ data, size, &rem);
+ if (st == PJLIB_UTIL_EHTTPINCHDR) {
+ /* If we already use up all our buffer and still
+ * hasn't received the whole header, return error
+ */
+ if (size == BUF_SIZE) {
+ hreq->error = PJ_ETOOBIG; // response header size is too big
+ pj_http_req_cancel(hreq, PJ_TRUE);
+ return PJ_FALSE;
+ }
+ /* Keep the data if we do not get the whole response header */
+ *remainder = size;
+ } else {
+ hreq->state = READING_DATA;
+ if (st != PJ_SUCCESS) {
+ /* Server replied with an invalid (or unknown) response
+ * format. We'll just pass the whole (unparsed) response
+ * to the user.
+ */
+ hreq->response.data = data;
+ hreq->response.size = size - rem;
+ }
+
+ /* If code is 401 or 407, find and parse WWW-Authenticate or
+ * Proxy-Authenticate header
+ */
+ if (hreq->response.status_code == 401 ||
+ hreq->response.status_code == 407)
+ {
+ const pj_str_t STR_WWW_AUTH = { "WWW-Authenticate", 16 };
+ const pj_str_t STR_PROXY_AUTH = { "Proxy-Authenticate", 18 };
+ pj_http_resp *response = &hreq->response;
+ pj_http_headers *hdrs = &response->headers;
+ unsigned i;
+
+ status = PJ_ENOTFOUND;
+ for (i = 0; i < hdrs->count; i++) {
+ if (!pj_stricmp(&hdrs->header[i].name, &STR_WWW_AUTH) ||
+ !pj_stricmp(&hdrs->header[i].name, &STR_PROXY_AUTH))
+ {
+ status = parse_auth_chal(hreq->pool,
+ &hdrs->header[i].value,
+ &response->auth_chal);
+ break;
+ }
+ }
+
+ /* Check if we should perform authentication */
+ if (status == PJ_SUCCESS &&
+ hreq->auth_state == AUTH_NONE &&
+ hreq->response.auth_chal.scheme.slen &&
+ hreq->param.auth_cred.username.slen &&
+ (hreq->param.auth_cred.scheme.slen == 0 ||
+ !pj_stricmp(&hreq->response.auth_chal.scheme,
+ &hreq->param.auth_cred.scheme)) &&
+ (hreq->param.auth_cred.realm.slen == 0 ||
+ !pj_stricmp(&hreq->response.auth_chal.realm,
+ &hreq->param.auth_cred.realm))
+ )
+ {
+ /* Yes, authentication is required and we have been
+ * configured with credential.
+ */
+ restart_req_with_auth(hreq);
+ if (hreq->auth_state == AUTH_RETRYING) {
+ /* We'll be resending the request with auth. This
+ * connection has been closed.
+ */
+ return PJ_FALSE;
+ }
+ }
+ }
+
+ /* We already received the response header, call the
+ * appropriate callback.
+ */
+ if (hreq->cb.on_response)
+ (*hreq->cb.on_response)(hreq, &hreq->response);
+ hreq->response.data = NULL;
+ hreq->response.size = 0;
+
+ if (rem > 0 || hreq->response.content_length == 0)
+ return http_on_data_read(asock, (rem == 0 ? NULL:
+ (char *)data + size - rem),
+ rem, PJ_SUCCESS, NULL);
+ }
+
+ return PJ_TRUE;
+ }
+
+ if (hreq->state != READING_DATA)
+ return PJ_FALSE;
+ if (hreq->cb.on_data_read) {
+ /* If application wishes to receive the data once available, call
+ * its callback.
+ */
+ if (size > 0)
+ (*hreq->cb.on_data_read)(hreq, data, size);
+ } else {
+ if (hreq->response.size == 0) {
+ /* If we know the content length, allocate the data based
+ * on that, otherwise we'll use initial buffer size and grow
+ * it later if necessary.
+ */
+ hreq->response.size = (hreq->response.content_length == -1 ?
+ INITIAL_DATA_BUF_SIZE :
+ hreq->response.content_length);
+ hreq->response.data = pj_pool_alloc(hreq->pool,
+ hreq->response.size);
+ }
+
+ /* If the size of data received exceeds its current size,
+ * grow the buffer by a factor of 2.
+ */
+ if (hreq->tcp_state.current_read_size + size >
+ hreq->response.size)
+ {
+ void *olddata = hreq->response.data;
+
+ hreq->response.data = pj_pool_alloc(hreq->pool,
+ hreq->response.size << 1);
+ pj_memcpy(hreq->response.data, olddata, hreq->response.size);
+ hreq->response.size <<= 1;
+ }
+
+ /* Append the response data. */
+ pj_memcpy((char *)hreq->response.data +
+ hreq->tcp_state.current_read_size, data, size);
+ }
+ hreq->tcp_state.current_read_size += size;
+
+ /* If the total data received so far is equal to the content length
+ * or if it's already EOF.
+ */
+ if ((hreq->response.content_length >=0 &&
+ (pj_ssize_t)hreq->tcp_state.current_read_size >=
+ hreq->response.content_length) ||
+ (status == PJ_EEOF && hreq->response.content_length == -1))
+ {
+ /* Finish reading */
+ http_req_end_request(hreq);
+ hreq->response.size = hreq->tcp_state.current_read_size;
+
+ /* HTTP request is completed, call the callback. */
+ if (hreq->cb.on_complete) {
+ (*hreq->cb.on_complete)(hreq, PJ_SUCCESS, &hreq->response);
+ }
+
+ return PJ_FALSE;
+ }
+
+ /* Error status or premature EOF. */
+ if ((status != PJ_SUCCESS && status != PJ_EPENDING && status != PJ_EEOF)
+ || (status == PJ_EEOF && hreq->response.content_length > -1))
+ {
+ hreq->error = status;
+ pj_http_req_cancel(hreq, PJ_TRUE);
+ return PJ_FALSE;
+ }
+
+ return PJ_TRUE;
+}
+
+/* Callback to be called when query has timed out */
+static void on_timeout( pj_timer_heap_t *timer_heap,
+ struct pj_timer_entry *entry)
+{
+ pj_http_req *hreq = (pj_http_req *) entry->user_data;
+
+ PJ_UNUSED_ARG(timer_heap);
+
+ /* Recheck that the request is still not completed, since there is a
+ * slight possibility of race condition (timer elapsed while at the
+ * same time response arrives).
+ */
+ if (hreq->state == READING_COMPLETE) {
+ /* Yeah, we finish on time */
+ return;
+ }
+
+ /* Invalidate id. */
+ hreq->timer_entry.id = 0;
+
+ /* Request timed out. */
+ hreq->error = PJ_ETIMEDOUT;
+ pj_http_req_cancel(hreq, PJ_TRUE);
+}
+
+/* Parse authentication challenge */
+static pj_status_t parse_auth_chal(pj_pool_t *pool, pj_str_t *input,
+ pj_http_auth_chal *chal)
+{
+ pj_scanner scanner;
+ const pj_str_t REALM_STR = { "realm", 5},
+ NONCE_STR = { "nonce", 5},
+ ALGORITHM_STR = { "algorithm", 9 },
+ STALE_STR = { "stale", 5},
+ QOP_STR = { "qop", 3},
+ OPAQUE_STR = { "opaque", 6};
+ pj_status_t status = PJ_SUCCESS;
+ PJ_USE_EXCEPTION ;
+
+ pj_scan_init(&scanner, input->ptr, input->slen, PJ_SCAN_AUTOSKIP_WS,
+ &on_syntax_error);
+ PJ_TRY {
+ /* Get auth scheme */
+ if (*scanner.curptr == '"') {
+ pj_scan_get_quote(&scanner, '"', '"', &chal->scheme);
+ chal->scheme.ptr++;
+ chal->scheme.slen -= 2;
+ } else {
+ pj_scan_get_until_chr(&scanner, " \t\r\n", &chal->scheme);
+ }
+
+ /* Loop parsing all parameters */
+ for (;;) {
+ const char *end_param = ", \t\r\n;";
+ pj_str_t name, value;
+
+ /* Get pair of parameter name and value */
+ value.ptr = NULL;
+ value.slen = 0;
+ pj_scan_get_until_chr(&scanner, "=, \t\r\n", &name);
+ if (*scanner.curptr == '=') {
+ pj_scan_get_char(&scanner);
+ if (!pj_scan_is_eof(&scanner)) {
+ if (*scanner.curptr == '"' || *scanner.curptr == '\'') {
+ int quote_char = *scanner.curptr;
+ pj_scan_get_quote(&scanner, quote_char, quote_char,
+ &value);
+ value.ptr++;
+ value.slen -= 2;
+ } else if (!strchr(end_param, *scanner.curptr)) {
+ pj_scan_get_until_chr(&scanner, end_param, &value);
+ }
+ }
+ value = pj_str_unescape(pool, &value);
+ }
+
+ if (!pj_stricmp(&name, &REALM_STR)) {
+ chal->realm = value;
+
+ } else if (!pj_stricmp(&name, &NONCE_STR)) {
+ chal->nonce = value;
+
+ } else if (!pj_stricmp(&name, &ALGORITHM_STR)) {
+ chal->algorithm = value;
+
+ } else if (!pj_stricmp(&name, &OPAQUE_STR)) {
+ chal->opaque = value;
+
+ } else if (!pj_stricmp(&name, &QOP_STR)) {
+ chal->qop = value;
+
+ } else if (!pj_stricmp(&name, &STALE_STR)) {
+ chal->stale = value.slen &&
+ (*value.ptr != '0') &&
+ (*value.ptr != 'f') &&
+ (*value.ptr != 'F');
+
+ }
+
+ /* Eat comma */
+ if (!pj_scan_is_eof(&scanner) && *scanner.curptr == ',')
+ pj_scan_get_char(&scanner);
+ else
+ break;
+ }
+
+ }
+ PJ_CATCH_ANY {
+ status = PJ_GET_EXCEPTION();
+ pj_bzero(chal, sizeof(*chal));
+ TRACE_((THIS_FILE, "Error: parsing of auth header failed"));
+ }
+ PJ_END;
+ pj_scan_fini(&scanner);
+ return status;
+}
+
+/* The same as #pj_http_headers_add_elmt() with char * as
+ * its parameters.
+ */
+PJ_DEF(pj_status_t) pj_http_headers_add_elmt2(pj_http_headers *headers,
+ char *name, char *val)
+{
+ pj_str_t f, v;
+ pj_cstr(&f, name);
+ pj_cstr(&v, val);
+ return pj_http_headers_add_elmt(headers, &f, &v);
+}
+
+PJ_DEF(pj_status_t) pj_http_headers_add_elmt(pj_http_headers *headers,
+ pj_str_t *name,
+ pj_str_t *val)
+{
+ PJ_ASSERT_RETURN(headers && name && val, PJ_FALSE);
+ if (headers->count >= PJ_HTTP_HEADER_SIZE)
+ return PJ_ETOOMANY;
+ pj_strassign(&headers->header[headers->count].name, name);
+ pj_strassign(&headers->header[headers->count++].value, val);
+ return PJ_SUCCESS;
+}
+
+static pj_status_t http_response_parse(pj_pool_t *pool,
+ pj_http_resp *response,
+ void *data, pj_size_t size,
+ pj_size_t *remainder)
+{
+ pj_size_t i;
+ char *cptr;
+ char *end_status, *newdata;
+ pj_scanner scanner;
+ pj_str_t s;
+ const pj_str_t STR_CONTENT_LENGTH = { CONTENT_LENGTH, 14 };
+ pj_status_t status;
+
+ PJ_USE_EXCEPTION;
+
+ PJ_ASSERT_RETURN(response, PJ_EINVAL);
+ if (size < 2)
+ return PJLIB_UTIL_EHTTPINCHDR;
+ /* Detect whether we already receive the response's status-line
+ * and its headers. We're looking for a pair of CRLFs. A pair of
+ * LFs is also supported although it is not RFC standard.
+ */
+ cptr = (char *)data;
+ for (i = 1, cptr++; i < size; i++, cptr++) {
+ if (*cptr == '\n') {
+ if (*(cptr - 1) == '\n')
+ break;
+ if (*(cptr - 1) == '\r') {
+ if (i >= 3 && *(cptr - 2) == '\n' && *(cptr - 3) == '\r')
+ break;
+ }
+ }
+ }
+ if (i == size)
+ return PJLIB_UTIL_EHTTPINCHDR;
+ *remainder = size - 1 - i;
+
+ pj_bzero(response, sizeof(response));
+ response->content_length = -1;
+
+ newdata = (char*) pj_pool_alloc(pool, i);
+ pj_memcpy(newdata, data, i);
+
+ /* Parse the status-line. */
+ pj_scan_init(&scanner, newdata, i, 0, &on_syntax_error);
+ PJ_TRY {
+ pj_scan_get_until_ch(&scanner, ' ', &response->version);
+ pj_scan_advance_n(&scanner, 1, PJ_FALSE);
+ pj_scan_get_until_ch(&scanner, ' ', &s);
+ response->status_code = (pj_uint16_t)pj_strtoul(&s);
+ pj_scan_advance_n(&scanner, 1, PJ_FALSE);
+ pj_scan_get_until_ch(&scanner, '\n', &response->reason);
+ if (response->reason.ptr[response->reason.slen-1] == '\r')
+ response->reason.slen--;
+ }
+ PJ_CATCH_ANY {
+ pj_scan_fini(&scanner);
+ return PJ_GET_EXCEPTION();
+ }
+ PJ_END;
+
+ end_status = scanner.curptr;
+ pj_scan_fini(&scanner);
+
+ /* Parse the response headers. */
+ size = i - 2 - (end_status - newdata);
+ if (size > 0) {
+ status = http_headers_parse(end_status + 1, size,
+ &response->headers);
+ } else {
+ status = PJ_SUCCESS;
+ }
+
+ /* Find content-length header field. */
+ for (i = 0; i < response->headers.count; i++) {
+ if (!pj_stricmp(&response->headers.header[i].name,
+ &STR_CONTENT_LENGTH))
+ {
+ response->content_length =
+ pj_strtoul(&response->headers.header[i].value);
+ /* If content length is zero, make sure that it is because the
+ * header value is really zero and not due to parsing error.
+ */
+ if (response->content_length == 0) {
+ if (pj_strcmp2(&response->headers.header[i].value, "0")) {
+ response->content_length = -1;
+ }
+ }
+ break;
+ }
+ }
+
+ return status;
+}
+
+static pj_status_t http_headers_parse(char *hdata, pj_size_t size,
+ pj_http_headers *headers)
+{
+ pj_scanner scanner;
+ pj_str_t s, s2;
+ pj_status_t status;
+ PJ_USE_EXCEPTION;
+
+ PJ_ASSERT_RETURN(headers, PJ_EINVAL);
+
+ pj_scan_init(&scanner, hdata, size, 0, &on_syntax_error);
+
+ /* Parse each line of header field consisting of header field name and
+ * value, separated by ":" and any number of white spaces.
+ */
+ PJ_TRY {
+ do {
+ pj_scan_get_until_chr(&scanner, ":\n", &s);
+ if (*scanner.curptr == ':') {
+ pj_scan_advance_n(&scanner, 1, PJ_TRUE);
+ pj_scan_get_until_ch(&scanner, '\n', &s2);
+ if (s2.ptr[s2.slen-1] == '\r')
+ s2.slen--;
+ status = pj_http_headers_add_elmt(headers, &s, &s2);
+ if (status != PJ_SUCCESS)
+ PJ_THROW(status);
+ }
+ pj_scan_advance_n(&scanner, 1, PJ_TRUE);
+ /* Finish parsing */
+ if (pj_scan_is_eof(&scanner))
+ break;
+ } while (1);
+ }
+ PJ_CATCH_ANY {
+ pj_scan_fini(&scanner);
+ return PJ_GET_EXCEPTION();
+ }
+ PJ_END;
+
+ pj_scan_fini(&scanner);
+
+ return PJ_SUCCESS;
+}
+
+PJ_DEF(void) pj_http_req_param_default(pj_http_req_param *param)
+{
+ pj_assert(param);
+ pj_bzero(param, sizeof(*param));
+ param->addr_family = pj_AF_INET();
+ pj_strset2(¶m->method, (char*)http_method_names[HTTP_GET]);
+ pj_strset2(¶m->version, (char*)HTTP_1_0);
+ param->timeout.msec = PJ_HTTP_DEFAULT_TIMEOUT;
+ pj_time_val_normalize(¶m->timeout);
+ param->max_retries = 3;
+}
+
+/* Get the location of '@' character to indicate the end of
+ * user:passwd part of an URI. If user:passwd part is not
+ * present, NULL will be returned.
+ */
+static char *get_url_at_pos(const char *str, pj_size_t len)
+{
+ const char *end = str + len;
+ const char *p = str;
+
+ /* skip scheme: */
+ while (p!=end && *p!='/') ++p;
+ if (p!=end && *p=='/') ++p;
+ if (p!=end && *p=='/') ++p;
+ if (p==end) return NULL;
+
+ for (; p!=end; ++p) {
+ switch (*p) {
+ case '/':
+ return NULL;
+ case '@':
+ return (char*)p;
+ }
+ }
+
+ return NULL;
+}
+
+
+PJ_DEF(pj_status_t) pj_http_req_parse_url(const pj_str_t *url,
+ pj_http_url *hurl)
+{
+ pj_scanner scanner;
+ pj_size_t len = url->slen;
+ PJ_USE_EXCEPTION;
+
+ if (!len) return -1;
+
+ pj_bzero(hurl, sizeof(*hurl));
+ pj_scan_init(&scanner, url->ptr, url->slen, 0, &on_syntax_error);
+
+ PJ_TRY {
+ pj_str_t s;
+
+ /* Exhaust any whitespaces. */
+ pj_scan_skip_whitespace(&scanner);
+
+ /* Parse the protocol */
+ pj_scan_get_until_ch(&scanner, ':', &s);
+ if (!pj_stricmp2(&s, http_protocol_names[PROTOCOL_HTTP])) {
+ pj_strset2(&hurl->protocol,
+ (char*)http_protocol_names[PROTOCOL_HTTP]);
+ } else if (!pj_stricmp2(&s, http_protocol_names[PROTOCOL_HTTPS])) {
+ pj_strset2(&hurl->protocol,
+ (char*)http_protocol_names[PROTOCOL_HTTPS]);
+ } else {
+ PJ_THROW(PJ_ENOTSUP); // unsupported protocol
+ }
+
+ if (pj_scan_strcmp(&scanner, "://", 3)) {
+ PJ_THROW(PJLIB_UTIL_EHTTPINURL); // no "://" after protocol name
+ }
+ pj_scan_advance_n(&scanner, 3, PJ_FALSE);
+
+ if (get_url_at_pos(url->ptr, url->slen)) {
+ /* Parse username and password */
+ pj_scan_get_until_chr(&scanner, ":@", &hurl->username);
+ if (*scanner.curptr == ':') {
+ pj_scan_get_char(&scanner);
+ pj_scan_get_until_chr(&scanner, "@", &hurl->passwd);
+ } else {
+ hurl->passwd.slen = 0;
+ }
+ pj_scan_get_char(&scanner);
+ }
+
+ /* Parse the host and port number (if any) */
+ pj_scan_get_until_chr(&scanner, ":/", &s);
+ pj_strassign(&hurl->host, &s);
+ if (hurl->host.slen==0)
+ PJ_THROW(PJ_EINVAL);
+ if (pj_scan_is_eof(&scanner) || *scanner.curptr == '/') {
+ /* No port number specified */
+ /* Assume default http/https port number */
+ hurl->port = get_http_default_port(&hurl->protocol);
+ pj_assert(hurl->port > 0);
+ } else {
+ pj_scan_advance_n(&scanner, 1, PJ_FALSE);
+ pj_scan_get_until_ch(&scanner, '/', &s);
+ /* Parse the port number */
+ hurl->port = (pj_uint16_t)pj_strtoul(&s);
+ if (!hurl->port)
+ PJ_THROW(PJLIB_UTIL_EHTTPINPORT); // invalid port number
+ }
+
+ if (!pj_scan_is_eof(&scanner)) {
+ hurl->path.ptr = scanner.curptr;
+ hurl->path.slen = scanner.end - scanner.curptr;
+ } else {
+ /* no path, append '/' */
+ pj_cstr(&hurl->path, "/");
+ }
+ }
+ PJ_CATCH_ANY {
+ pj_scan_fini(&scanner);
+ return PJ_GET_EXCEPTION();
+ }
+ PJ_END;
+
+ pj_scan_fini(&scanner);
+ return PJ_SUCCESS;
+}
+
+PJ_DEF(void) pj_http_req_set_timeout(pj_http_req *http_req,
+ const pj_time_val* timeout)
+{
+ pj_memcpy(&http_req->param.timeout, timeout, sizeof(*timeout));
+}
+
+PJ_DEF(pj_status_t) pj_http_req_create(pj_pool_t *pool,
+ const pj_str_t *url,
+ pj_timer_heap_t *timer,
+ pj_ioqueue_t *ioqueue,
+ const pj_http_req_param *param,
+ const pj_http_req_callback *hcb,
+ pj_http_req **http_req)
+{
+ pj_pool_t *own_pool;
+ pj_http_req *hreq;
+ char *at_pos;
+ pj_status_t status;
+
+ PJ_ASSERT_RETURN(pool && url && timer && ioqueue &&
+ hcb && http_req, PJ_EINVAL);
+
+ *http_req = NULL;
+ own_pool = pj_pool_create(pool->factory, NULL, INITIAL_POOL_SIZE,
+ POOL_INCREMENT_SIZE, NULL);
+ hreq = PJ_POOL_ZALLOC_T(own_pool, struct pj_http_req);
+ if (!hreq)
+ return PJ_ENOMEM;
+
+ /* Initialization */
+ hreq->pool = own_pool;
+ hreq->ioqueue = ioqueue;
+ hreq->timer = timer;
+ hreq->asock = NULL;
+ pj_memcpy(&hreq->cb, hcb, sizeof(*hcb));
+ hreq->state = IDLE;
+ hreq->resolved = PJ_FALSE;
+ hreq->buffer.ptr = NULL;
+ pj_timer_entry_init(&hreq->timer_entry, 0, hreq, &on_timeout);
+
+ /* Initialize parameter */
+ if (param) {
+ pj_memcpy(&hreq->param, param, sizeof(*param));
+ /* TODO: validate the param here
+ * Should we validate the method as well? If yes, based on all HTTP
+ * methods or based on supported methods only? For the later, one
+ * drawback would be that you can't use this if the method is not
+ * officially supported
+ */
+ PJ_ASSERT_RETURN(hreq->param.addr_family==PJ_AF_UNSPEC ||
+ hreq->param.addr_family==PJ_AF_INET ||
+ hreq->param.addr_family==PJ_AF_INET6, PJ_EAFNOTSUP);
+ PJ_ASSERT_RETURN(!pj_strcmp2(&hreq->param.version, HTTP_1_0) ||
+ !pj_strcmp2(&hreq->param.version, HTTP_1_1),
+ PJ_ENOTSUP);
+ pj_time_val_normalize(&hreq->param.timeout);
+ } else {
+ pj_http_req_param_default(&hreq->param);
+ }
+
+ /* Parse the URL */
+ if (!pj_strdup_with_null(hreq->pool, &hreq->url, url)) {
+ pj_pool_release(hreq->pool);
+ return PJ_ENOMEM;
+ }
+ status = pj_http_req_parse_url(&hreq->url, &hreq->hurl);
+ if (status != PJ_SUCCESS) {
+ pj_pool_release(hreq->pool);
+ return status; // Invalid URL supplied
+ }
+
+ /* If URL contains username/password, move them to credential and
+ * remove them from the URL.
+ */
+ if ((at_pos=get_url_at_pos(hreq->url.ptr, hreq->url.slen)) != NULL) {
+ pj_str_t tmp;
+ char *user_pos = pj_strchr(&hreq->url, '/');
+ int removed_len;
+
+ /* Save credential first, unescape the string */
+ tmp = pj_str_unescape(hreq->pool, &hreq->hurl.username);;
+ pj_strdup(hreq->pool, &hreq->param.auth_cred.username, &tmp);
+
+ tmp = pj_str_unescape(hreq->pool, &hreq->hurl.passwd);
+ pj_strdup(hreq->pool, &hreq->param.auth_cred.data, &tmp);
+
+ hreq->hurl.username.ptr = hreq->hurl.passwd.ptr = NULL;
+ hreq->hurl.username.slen = hreq->hurl.passwd.slen = 0;
+
+ /* Remove "username:password@" from the URL */
+ pj_assert(user_pos != 0 && user_pos < at_pos);
+ user_pos += 2;
+ removed_len = (int)(at_pos + 1 - user_pos);
+ pj_memmove(user_pos, at_pos+1, hreq->url.ptr+hreq->url.slen-at_pos-1);
+ hreq->url.slen -= removed_len;
+
+ /* Need to adjust hostname and path pointers due to memmove*/
+ if (hreq->hurl.host.ptr > user_pos &&
+ hreq->hurl.host.ptr < user_pos + hreq->url.slen)
+ {
+ hreq->hurl.host.ptr -= removed_len;
+ }
+ /* path may come from a string constant, don't shift it if so */
+ if (hreq->hurl.path.ptr > user_pos &&
+ hreq->hurl.path.ptr < user_pos + hreq->url.slen)
+ {
+ hreq->hurl.path.ptr -= removed_len;
+ }
+ }
+
+ *http_req = hreq;
+ return PJ_SUCCESS;
+}
+
+PJ_DEF(pj_bool_t) pj_http_req_is_running(const pj_http_req *http_req)
+{
+ PJ_ASSERT_RETURN(http_req, PJ_FALSE);
+ return (http_req->state != IDLE);
+}
+
+PJ_DEF(void*) pj_http_req_get_user_data(pj_http_req *http_req)
+{
+ PJ_ASSERT_RETURN(http_req, NULL);
+ return http_req->param.user_data;
+}
+
+static pj_status_t start_http_req(pj_http_req *http_req,
+ pj_bool_t notify_on_fail)
+{
+ pj_sock_t sock = PJ_INVALID_SOCKET;
+ pj_status_t status;
+ pj_activesock_cb asock_cb;
+ int retry = 0;
+
+ PJ_ASSERT_RETURN(http_req, PJ_EINVAL);
+ /* Http request is not idle, a request was initiated before and
+ * is still in progress
+ */
+ PJ_ASSERT_RETURN(http_req->state == IDLE, PJ_EBUSY);
+
+ /* Reset few things to make sure restarting works */
+ http_req->error = 0;
+ http_req->response.headers.count = 0;
+ pj_bzero(&http_req->tcp_state, sizeof(http_req->tcp_state));
+
+ if (!http_req->resolved) {
+ /* Resolve the Internet address of the host */
+ status = pj_sockaddr_init(http_req->param.addr_family,
+ &http_req->addr, &http_req->hurl.host,
+ http_req->hurl.port);
+ if (status != PJ_SUCCESS ||
+ !pj_sockaddr_has_addr(&http_req->addr) ||
+ (http_req->param.addr_family==pj_AF_INET() &&
+ http_req->addr.ipv4.sin_addr.s_addr==PJ_INADDR_NONE))
+ {
+ goto on_return;
+ }
+ http_req->resolved = PJ_TRUE;
+ }
+
+ status = pj_sock_socket(http_req->param.addr_family, pj_SOCK_STREAM(),
+ 0, &sock);
+ if (status != PJ_SUCCESS)
+ goto on_return; // error creating socket
+
+ pj_bzero(&asock_cb, sizeof(asock_cb));
+ asock_cb.on_data_read = &http_on_data_read;
+ asock_cb.on_data_sent = &http_on_data_sent;
+ asock_cb.on_connect_complete = &http_on_connect;
+
+ do
+ {
+ pj_sockaddr_in bound_addr;
+ pj_uint16_t port = 0;
+
+ /* If we are using port restriction.
+ * Get a random port within the range
+ */
+ if (http_req->param.source_port_range_start != 0) {
+ port = (pj_uint16_t)
+ (http_req->param.source_port_range_start +
+ (pj_rand() % http_req->param.source_port_range_size));
+ }
+
+ pj_sockaddr_in_init(&bound_addr, NULL, port);
+ status = pj_sock_bind(sock, &bound_addr, sizeof(bound_addr));
+
+ } while (status != PJ_SUCCESS && (retry++ < http_req->param.max_retries));
+
+ if (status != PJ_SUCCESS) {
+ PJ_PERROR(1,(THIS_FILE, status,
+ "Unable to bind to the requested port"));
+ pj_sock_close(sock);
+ goto on_return;
+ }
+
+ // TODO: should we set whole data to 0 by default?
+ // or add it in the param?
+ status = pj_activesock_create(http_req->pool, sock, pj_SOCK_STREAM(),
+ NULL, http_req->ioqueue,
+ &asock_cb, http_req, &http_req->asock);
+ if (status != PJ_SUCCESS) {
+ pj_sock_close(sock);
+ goto on_return; // error creating activesock
+ }
+
+ /* Schedule timeout timer for the request */
+ pj_assert(http_req->timer_entry.id == 0);
+ http_req->timer_entry.id = 1;
+ status = pj_timer_heap_schedule(http_req->timer, &http_req->timer_entry,
+ &http_req->param.timeout);
+ if (status != PJ_SUCCESS) {
+ http_req->timer_entry.id = 0;
+ goto on_return; // error scheduling timer
+ }
+
+ /* Connect to host */
+ http_req->state = CONNECTING;
+ status = pj_activesock_start_connect(http_req->asock, http_req->pool,
+ (pj_sock_t *)&(http_req->addr),
+ pj_sockaddr_get_len(&http_req->addr));
+ if (status == PJ_SUCCESS) {
+ http_req->state = SENDING_REQUEST;
+ status = http_req_start_sending(http_req);
+ if (status != PJ_SUCCESS)
+ goto on_return;
+ } else if (status != PJ_EPENDING) {
+ goto on_return; // error connecting
+ }
+
+ return PJ_SUCCESS;
+
+on_return:
+ http_req->error = status;
+ if (notify_on_fail)
+ pj_http_req_cancel(http_req, PJ_TRUE);
+ else
+ http_req_end_request(http_req);
+
+ return status;
+}
+
+/* Starts an asynchronous HTTP request to the URL specified. */
+PJ_DEF(pj_status_t) pj_http_req_start(pj_http_req *http_req)
+{
+ return start_http_req(http_req, PJ_FALSE);
+}
+
+/* Respond to basic authentication challenge */
+static pj_status_t auth_respond_basic(pj_http_req *hreq)
+{
+ /* Basic authentication:
+ * credentials = "Basic" basic-credentials
+ * basic-credentials = base64-user-pass
+ * base64-user-pass = <base64 [4] encoding of user-pass>
+ * user-pass = userid ":" password
+ *
+ * Sample:
+ * Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
+ */
+ pj_str_t user_pass;
+ pj_http_header_elmt *phdr;
+ int len;
+
+ /* Use send buffer to store userid ":" password */
+ user_pass.ptr = hreq->buffer.ptr;
+ pj_strcpy(&user_pass, &hreq->param.auth_cred.username);
+ pj_strcat2(&user_pass, ":");
+ pj_strcat(&user_pass, &hreq->param.auth_cred.data);
+
+ /* Create Authorization header */
+ phdr = &hreq->param.headers.header[hreq->param.headers.count++];
+ pj_bzero(phdr, sizeof(*phdr));
+ if (hreq->response.status_code == 401)
+ phdr->name = pj_str("Authorization");
+ else
+ phdr->name = pj_str("Proxy-Authorization");
+
+ len = (int)(PJ_BASE256_TO_BASE64_LEN(user_pass.slen) + 10);
+ phdr->value.ptr = (char*)pj_pool_alloc(hreq->pool, len);
+ phdr->value.slen = 0;
+
+ pj_strcpy2(&phdr->value, "Basic ");
+ len -= (int)phdr->value.slen;
+ pj_base64_encode((pj_uint8_t*)user_pass.ptr, (int)user_pass.slen,
+ phdr->value.ptr + phdr->value.slen, &len);
+ phdr->value.slen += len;
+
+ return PJ_SUCCESS;
+}
+
+/** Length of digest string. */
+#define MD5_STRLEN 32
+/* A macro just to get rid of type mismatch between char and unsigned char */
+#define MD5_APPEND(pms,buf,len) pj_md5_update(pms, (const pj_uint8_t*)buf, \
+ (unsigned)len)
+
+/* Transform digest to string.
+ * output must be at least PJSIP_MD5STRLEN+1 bytes.
+ *
+ * NOTE: THE OUTPUT STRING IS NOT NULL TERMINATED!
+ */
+static void digest2str(const unsigned char digest[], char *output)
+{
+ int i;
+ for (i = 0; i<16; ++i) {
+ pj_val_to_hex_digit(digest[i], output);
+ output += 2;
+ }
+}
+
+static void auth_create_digest_response(pj_str_t *result,
+ const pj_http_auth_cred *cred,
+ const pj_str_t *nonce,
+ const pj_str_t *nc,
+ const pj_str_t *cnonce,
+ const pj_str_t *qop,
+ const pj_str_t *uri,
+ const pj_str_t *realm,
+ const pj_str_t *method)
+{
+ char ha1[MD5_STRLEN];
+ char ha2[MD5_STRLEN];
+ unsigned char digest[16];
+ pj_md5_context pms;
+
+ pj_assert(result->slen >= MD5_STRLEN);
+
+ TRACE_((THIS_FILE, "Begin creating digest"));
+
+ if (cred->data_type == 0) {
+ /***
+ *** ha1 = MD5(username ":" realm ":" password)
+ ***/
+ pj_md5_init(&pms);
+ MD5_APPEND( &pms, cred->username.ptr, cred->username.slen);
+ MD5_APPEND( &pms, ":", 1);
+ MD5_APPEND( &pms, realm->ptr, realm->slen);
+ MD5_APPEND( &pms, ":", 1);
+ MD5_APPEND( &pms, cred->data.ptr, cred->data.slen);
+ pj_md5_final(&pms, digest);
+
+ digest2str(digest, ha1);
+
+ } else if (cred->data_type == 1) {
+ pj_assert(cred->data.slen == 32);
+ pj_memcpy( ha1, cred->data.ptr, cred->data.slen );
+ } else {
+ pj_assert(!"Invalid data_type");
+ }
+
+ TRACE_((THIS_FILE, " ha1=%.32s", ha1));
+
+ /***
+ *** ha2 = MD5(method ":" req_uri)
+ ***/
+ pj_md5_init(&pms);
+ MD5_APPEND( &pms, method->ptr, method->slen);
+ MD5_APPEND( &pms, ":", 1);
+ MD5_APPEND( &pms, uri->ptr, uri->slen);
+ pj_md5_final(&pms, digest);
+ digest2str(digest, ha2);
+
+ TRACE_((THIS_FILE, " ha2=%.32s", ha2));
+
+ /***
+ *** When qop is not used:
+ *** response = MD5(ha1 ":" nonce ":" ha2)
+ ***
+ *** When qop=auth is used:
+ *** response = MD5(ha1 ":" nonce ":" nc ":" cnonce ":" qop ":" ha2)
+ ***/
+ pj_md5_init(&pms);
+ MD5_APPEND( &pms, ha1, MD5_STRLEN);
+ MD5_APPEND( &pms, ":", 1);
+ MD5_APPEND( &pms, nonce->ptr, nonce->slen);
+ if (qop && qop->slen != 0) {
+ MD5_APPEND( &pms, ":", 1);
+ MD5_APPEND( &pms, nc->ptr, nc->slen);
+ MD5_APPEND( &pms, ":", 1);
+ MD5_APPEND( &pms, cnonce->ptr, cnonce->slen);
+ MD5_APPEND( &pms, ":", 1);
+ MD5_APPEND( &pms, qop->ptr, qop->slen);
+ }
+ MD5_APPEND( &pms, ":", 1);
+ MD5_APPEND( &pms, ha2, MD5_STRLEN);
+
+ /* This is the final response digest. */
+ pj_md5_final(&pms, digest);
+
+ /* Convert digest to string and store in chal->response. */
+ result->slen = MD5_STRLEN;
+ digest2str(digest, result->ptr);
+
+ TRACE_((THIS_FILE, " digest=%.32s", result->ptr));
+ TRACE_((THIS_FILE, "Digest created"));
+}
+
+/* Find out if qop offer contains "auth" token */
+static pj_bool_t auth_has_qop( pj_pool_t *pool, const pj_str_t *qop_offer)
+{
+ pj_str_t qop;
+ char *p;
+
+ pj_strdup_with_null( pool, &qop, qop_offer);
+ p = qop.ptr;
+ while (*p) {
+ *p = (char)pj_tolower(*p);
+ ++p;
+ }
+
+ p = qop.ptr;
+ while (*p) {
+ if (*p=='a' && *(p+1)=='u' && *(p+2)=='t' && *(p+3)=='h') {
+ int e = *(p+4);
+ if (e=='"' || e==',' || e==0)
+ return PJ_TRUE;
+ else
+ p += 4;
+ } else {
+ ++p;
+ }
+ }
+
+ return PJ_FALSE;
+}
+
+#define STR_PREC(s) (int)(s).slen, (s).ptr
+
+/* Respond to digest authentication */
+static pj_status_t auth_respond_digest(pj_http_req *hreq)
+{
+ const pj_http_auth_chal *chal = &hreq->response.auth_chal;
+ const pj_http_auth_cred *cred = &hreq->param.auth_cred;
+ pj_http_header_elmt *phdr;
+ char digest_response_buf[MD5_STRLEN];
+ int len;
+ pj_str_t digest_response;
+
+ /* Check algorithm is supported. We only support MD5 */
+ if (chal->algorithm.slen!=0 &&
+ pj_stricmp2(&chal->algorithm, "MD5"))
+ {
+ TRACE_((THIS_FILE, "Error: Unsupported digest algorithm \"%.*s\"",
+ chal->algorithm.slen, chal->algorithm.ptr));
+ return PJ_ENOTSUP;
+ }
+
+ /* Add Authorization header */
+ phdr = &hreq->param.headers.header[hreq->param.headers.count++];
+ pj_bzero(phdr, sizeof(*phdr));
+ if (hreq->response.status_code == 401)
+ phdr->name = pj_str("Authorization");
+ else
+ phdr->name = pj_str("Proxy-Authorization");
+
+ /* Allocate space for the header */
+ len = (int)(8 + /* Digest */
+ 16 + hreq->param.auth_cred.username.slen + /* username= */
+ 12 + chal->realm.slen + /* realm= */
+ 12 + chal->nonce.slen + /* nonce= */
+ 8 + hreq->hurl.path.slen + /* uri= */
+ 16 + /* algorithm=MD5 */
+ 16 + MD5_STRLEN + /* response= */
+ 12 + /* qop=auth */
+ 8 + /* nc=.. */
+ 30 + /* cnonce= */
+ 12 + chal->opaque.slen + /* opaque=".." */
+ 0);
+ phdr->value.ptr = (char*)pj_pool_alloc(hreq->pool, len);
+
+ /* Configure buffer to temporarily store the digest */
+ digest_response.ptr = digest_response_buf;
+ digest_response.slen = MD5_STRLEN;
+
+ if (chal->qop.slen == 0) {
+ const pj_str_t STR_MD5 = { "MD5", 3 };
+
+ /* Server doesn't require quality of protection. */
+ auth_create_digest_response(&digest_response, cred,
+ &chal->nonce, NULL, NULL, NULL,
+ &hreq->hurl.path, &chal->realm,
+ &hreq->param.method);
+
+ len = pj_ansi_snprintf(
+ phdr->value.ptr, len,
+ "Digest username=\"%.*s\", "
+ "realm=\"%.*s\", "
+ "nonce=\"%.*s\", "
+ "uri=\"%.*s\", "
+ "algorithm=%.*s, "
+ "response=\"%.*s\"",
+ STR_PREC(cred->username),
+ STR_PREC(chal->realm),
+ STR_PREC(chal->nonce),
+ STR_PREC(hreq->hurl.path),
+ STR_PREC(STR_MD5),
+ STR_PREC(digest_response));
+ if (len < 0)
+ return PJ_ETOOSMALL;
+ phdr->value.slen = len;
+
+ } else if (auth_has_qop(hreq->pool, &chal->qop)) {
+ /* Server requires quality of protection.
+ * We respond with selecting "qop=auth" protection.
+ */
+ const pj_str_t STR_MD5 = { "MD5", 3 };
+ const pj_str_t qop = pj_str("auth");
+ const pj_str_t nc = pj_str("00000001");
+ const pj_str_t cnonce = pj_str("b39971");
+
+ auth_create_digest_response(&digest_response, cred,
+ &chal->nonce, &nc, &cnonce, &qop,
+ &hreq->hurl.path, &chal->realm,
+ &hreq->param.method);
+ len = pj_ansi_snprintf(
+ phdr->value.ptr, len,
+ "Digest username=\"%.*s\", "
+ "realm=\"%.*s\", "
+ "nonce=\"%.*s\", "
+ "uri=\"%.*s\", "
+ "algorithm=%.*s, "
+ "response=\"%.*s\", "
+ "qop=%.*s, "
+ "nc=%.*s, "
+ "cnonce=\"%.*s\"",
+ STR_PREC(cred->username),
+ STR_PREC(chal->realm),
+ STR_PREC(chal->nonce),
+ STR_PREC(hreq->hurl.path),
+ STR_PREC(STR_MD5),
+ STR_PREC(digest_response),
+ STR_PREC(qop),
+ STR_PREC(nc),
+ STR_PREC(cnonce));
+ if (len < 0)
+ return PJ_ETOOSMALL;
+ phdr->value.slen = len;
+
+ if (chal->opaque.slen) {
+ pj_strcat2(&phdr->value, ", opaque=\"");
+ pj_strcat(&phdr->value, &chal->opaque);
+ pj_strcat2(&phdr->value, "\"");
+ }
+
+ } else {
+ /* Server requires quality protection that we don't support. */
+ TRACE_((THIS_FILE, "Error: Unsupported qop offer %.*s",
+ chal->qop.slen, chal->qop.ptr));
+ return PJ_ENOTSUP;
+ }
+
+ return PJ_SUCCESS;
+}
+
+
+static void restart_req_with_auth(pj_http_req *hreq)
+{
+ pj_http_auth_chal *chal = &hreq->response.auth_chal;
+ pj_http_auth_cred *cred = &hreq->param.auth_cred;
+ pj_status_t status;
+
+ if (hreq->param.headers.count >= PJ_HTTP_HEADER_SIZE) {
+ TRACE_((THIS_FILE, "Error: no place to put Authorization header"));
+ hreq->auth_state = AUTH_DONE;
+ return;
+ }
+
+ /* If credential specifies specific scheme, make sure they match */
+ if (cred->scheme.slen && pj_stricmp(&chal->scheme, &cred->scheme)) {
+ status = PJ_ENOTSUP;
+ TRACE_((THIS_FILE, "Error: auth schemes mismatch"));
+ goto on_error;
+ }
+
+ /* If credential specifies specific realm, make sure they match */
+ if (cred->realm.slen && pj_stricmp(&chal->realm, &cred->realm)) {
+ status = PJ_ENOTSUP;
+ TRACE_((THIS_FILE, "Error: auth realms mismatch"));
+ goto on_error;
+ }
+
+ if (!pj_stricmp2(&chal->scheme, "basic")) {
+ status = auth_respond_basic(hreq);
+ } else if (!pj_stricmp2(&chal->scheme, "digest")) {
+ status = auth_respond_digest(hreq);
+ } else {
+ TRACE_((THIS_FILE, "Error: unsupported HTTP auth scheme"));
+ status = PJ_ENOTSUP;
+ }
+
+ if (status != PJ_SUCCESS)
+ goto on_error;
+
+ http_req_end_request(hreq);
+
+ status = start_http_req(hreq, PJ_TRUE);
+ if (status != PJ_SUCCESS)
+ goto on_error;
+
+ hreq->auth_state = AUTH_RETRYING;
+ return;
+
+on_error:
+ hreq->auth_state = AUTH_DONE;
+}
+
+
+/* snprintf() to a pj_str_t struct with an option to append the
+ * result at the back of the string.
+ */
+void str_snprintf(pj_str_t *s, size_t size,
+ pj_bool_t append, const char *format, ...)
+{
+ va_list arg;
+ int retval;
+
+ va_start(arg, format);
+ if (!append)
+ s->slen = 0;
+ size -= s->slen;
+ retval = pj_ansi_vsnprintf(s->ptr + s->slen,
+ size, format, arg);
+ s->slen += ((retval < (int)size) ? retval : size - 1);
+ va_end(arg);
+}
+
+static pj_status_t http_req_start_sending(pj_http_req *hreq)
+{
+ pj_status_t status;
+ pj_str_t pkt;
+ pj_ssize_t len;
+ pj_size_t i;
+
+ PJ_ASSERT_RETURN(hreq->state == SENDING_REQUEST ||
+ hreq->state == SENDING_REQUEST_BODY, PJ_EBUG);
+
+ if (hreq->state == SENDING_REQUEST) {
+ /* Prepare the request data */
+ if (!hreq->buffer.ptr)
+ hreq->buffer.ptr = (char*)pj_pool_alloc(hreq->pool, BUF_SIZE);
+ pj_strassign(&pkt, &hreq->buffer);
+ pkt.slen = 0;
+ /* Start-line */
+ str_snprintf(&pkt, BUF_SIZE, PJ_TRUE, "%.*s %.*s %s/%.*s\r\n",
+ STR_PREC(hreq->param.method),
+ STR_PREC(hreq->hurl.path),
+ get_protocol(&hreq->hurl.protocol),
+ STR_PREC(hreq->param.version));
+ /* Header field "Host" */
+ str_snprintf(&pkt, BUF_SIZE, PJ_TRUE, "Host: %.*s:%d\r\n",
+ STR_PREC(hreq->hurl.host), hreq->hurl.port);
+ if (!pj_strcmp2(&hreq->param.method, http_method_names[HTTP_PUT])) {
+ char buf[16];
+
+ /* Header field "Content-Length" */
+ pj_utoa(hreq->param.reqdata.total_size ?
+ (unsigned long)hreq->param.reqdata.total_size:
+ (unsigned long)hreq->param.reqdata.size, buf);
+ str_snprintf(&pkt, BUF_SIZE, PJ_TRUE, "%s: %s\r\n",
+ CONTENT_LENGTH, buf);
+ }
+
+ /* Append user-specified headers */
+ for (i = 0; i < hreq->param.headers.count; i++) {
+ str_snprintf(&pkt, BUF_SIZE, PJ_TRUE, "%.*s: %.*s\r\n",
+ STR_PREC(hreq->param.headers.header[i].name),
+ STR_PREC(hreq->param.headers.header[i].value));
+ }
+ if (pkt.slen >= BUF_SIZE - 1) {
+ status = PJLIB_UTIL_EHTTPINSBUF;
+ goto on_return;
+ }
+
+ pj_strcat2(&pkt, "\r\n");
+ pkt.ptr[pkt.slen] = 0;
+ TRACE_((THIS_FILE, "%s", pkt.ptr));
+ } else {
+ pkt.ptr = (char*)hreq->param.reqdata.data;
+ pkt.slen = hreq->param.reqdata.size;
+ }
+
+ /* Send the request */
+ len = pj_strlen(&pkt);
+ pj_ioqueue_op_key_init(&hreq->op_key, sizeof(hreq->op_key));
+ hreq->tcp_state.send_size = len;
+ hreq->tcp_state.current_send_size = 0;
+ status = pj_activesock_send(hreq->asock, &hreq->op_key,
+ pkt.ptr, &len, 0);
+
+ if (status == PJ_SUCCESS) {
+ http_on_data_sent(hreq->asock, &hreq->op_key, len);
+ } else if (status != PJ_EPENDING) {
+ goto on_return; // error sending data
+ }
+
+ return PJ_SUCCESS;
+
+on_return:
+ http_req_end_request(hreq);
+ return status;
+}
+
+static pj_status_t http_req_start_reading(pj_http_req *hreq)
+{
+ pj_status_t status;
+
+ PJ_ASSERT_RETURN(hreq->state == REQUEST_SENT, PJ_EBUG);
+
+ /* Receive the response */
+ hreq->state = READING_RESPONSE;
+ hreq->tcp_state.current_read_size = 0;
+ pj_assert(hreq->buffer.ptr);
+ status = pj_activesock_start_read2(hreq->asock, hreq->pool, BUF_SIZE,
+ (void**)&hreq->buffer.ptr, 0);
+ if (status != PJ_SUCCESS) {
+ /* Error reading */
+ http_req_end_request(hreq);
+ return status;
+ }
+
+ return PJ_SUCCESS;
+}
+
+static pj_status_t http_req_end_request(pj_http_req *hreq)
+{
+ if (hreq->asock) {
+ pj_activesock_close(hreq->asock);
+ hreq->asock = NULL;
+ }
+
+ /* Cancel query timeout timer. */
+ if (hreq->timer_entry.id != 0) {
+ pj_timer_heap_cancel(hreq->timer, &hreq->timer_entry);
+ /* Invalidate id. */
+ hreq->timer_entry.id = 0;
+ }
+
+ hreq->state = IDLE;
+
+ return PJ_SUCCESS;
+}
+
+PJ_DEF(pj_status_t) pj_http_req_cancel(pj_http_req *http_req,
+ pj_bool_t notify)
+{
+ http_req->state = ABORTING;
+
+ http_req_end_request(http_req);
+
+ if (notify && http_req->cb.on_complete) {
+ (*http_req->cb.on_complete)(http_req, (!http_req->error?
+ PJ_ECANCELLED: http_req->error), NULL);
+ }
+
+ return PJ_SUCCESS;
+}
+
+
+PJ_DEF(pj_status_t) pj_http_req_destroy(pj_http_req *http_req)
+{
+ PJ_ASSERT_RETURN(http_req, PJ_EINVAL);
+
+ /* If there is any pending request, cancel it */
+ if (http_req->state != IDLE) {
+ pj_http_req_cancel(http_req, PJ_FALSE);
+ }
+
+ pj_pool_release(http_req->pool);
+
+ return PJ_SUCCESS;
+}
diff --git a/jni/pjproject-android/.svn/pristine/f9/f969e893199a205a1c7f2c9f38e2fa22342e360a.svn-base b/jni/pjproject-android/.svn/pristine/f9/f969e893199a205a1c7f2c9f38e2fa22342e360a.svn-base
new file mode 100644
index 0000000..03f5886
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/f9/f969e893199a205a1c7f2c9f38e2fa22342e360a.svn-base
@@ -0,0 +1,11 @@
+# $Id$
+#
+from inc_cfg import *
+
+test_param = TestParam(
+ "Callee=optional SRTP, caller=mandatory SRTP",
+ [
+ InstanceParam("callee", "--null-audio --use-srtp=1 --srtp-secure=0 --max-calls=1"),
+ InstanceParam("caller", "--null-audio --use-srtp=2 --srtp-secure=0 --max-calls=1")
+ ]
+ )
diff --git a/jni/pjproject-android/.svn/pristine/f9/f990b3f13176f2c2e57abdda2f9a4df3e7b064d5.svn-base b/jni/pjproject-android/.svn/pristine/f9/f990b3f13176f2c2e57abdda2f9a4df3e7b064d5.svn-base
new file mode 100644
index 0000000..1018e64
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/f9/f990b3f13176f2c2e57abdda2f9a4df3e7b064d5.svn-base
@@ -0,0 +1,298 @@
+/****************************************************************************
+**
+** ITU-T G.722.1 (2005-05) - Fixed point implementation for main body and Annex C
+** > Software Release 2.1 (2008-06)
+** (Simple repackaging; no change from 2005-05 Release 2.0 code)
+**
+** © 2004 Polycom, Inc.
+**
+** All rights reserved.
+**
+****************************************************************************/
+
+/****************************************************************************
+ Filename: tables.c
+
+ Purpose: Contains tables used by G.722.1 Annex C
+
+ Design Notes:
+
+****************************************************************************/
+
+/***************************************************************************
+ Include files
+***************************************************************************/
+#include "defs.h"
+
+Word16 int_region_standard_deviation_table[REGION_POWER_TABLE_SIZE] = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1, 1, 1, 1, 2, 3, 4, 6,
+ 8, 11, 16, 23, 32, 45, 64, 91, 128, 181,
+ 256, 362, 512, 724, 1024, 1448, 2048, 2896, 4096, 5793,
+ 8192, 11585, 16384, 23170, 0,0,0,0,0,0,
+ 0,0,0,0};
+
+Word16 standard_deviation_inverse_table[REGION_POWER_TABLE_SIZE] = {
+ 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+ 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+ 32767, 32767, 32767, 32767, 32767, 23170, 16384, 11585, 8192, 5793,
+ 4096, 2896, 2048, 1448, 1024, 724, 512, 362, 256, 181,
+ 128, 91, 64, 45, 32, 23, 16, 11, 8, 6,
+ 4, 3, 2, 1, 1, 1, 1, 0, 0, 0,
+ 0, 0, 0, 0};
+
+
+Word16 step_size_inverse_table[NUM_CATEGORIES]={
+ 23167,16384,11585,8192,5793,4096,2896,2896
+};
+
+
+Word16 vector_dimension[NUM_CATEGORIES] = { 2, 2, 2, 4, 4, 5, 5, 1};
+Word16 number_of_vectors[NUM_CATEGORIES] = {10,10,10, 5, 5, 4, 4,20};
+/* The last category isn't really coded with scalar quantization. */
+
+Word16 max_bin[NUM_CATEGORIES] = {13, 9, 6, 4, 3, 2, 1, 1};
+
+Word16 max_bin_plus_one_inverse[NUM_CATEGORIES] =
+{
+ 2341,3277,4682,6554,8193,10923,16385,16385
+};
+
+/*
+ * Release 1.2.
+ * Add new version of int_dead_zone[] to go with
+ * changes to vector_huffman() in encoder.c.
+ *
+ */
+
+/************** See new version of table below
+Word16 int_dead_zone[NUM_CATEGORIES]=
+{
+ 9830,10813,11796,12780,13763,14746,16384,16384
+};
+***************/
+
+/******** New version of table added in Release 1.2 ********/
+Word16 int_dead_zone[NUM_CATEGORIES]=
+{
+2457, 2703, 2949, 3195, 3440, 3686, 4096, 4096
+};
+
+
+/*
+ * Release 1.2.
+ * Added this new table to go with
+ * changes to vector_huffman() in encoder.c,
+ * accompanies the new table for int_dead_zone[].
+ */
+
+Word16 int_dead_zone_low_bits[NUM_CATEGORIES]=
+{
+2, 1, 0, 0, 3, 2, 0, 0
+};
+
+
+Word16 samples_to_rmlt_window[DCT_LENGTH]=
+{ 44, 134, 224, 314, 404, 494, 584, 674, 764, 853,
+ 943, 1033, 1123, 1213, 1302, 1392, 1482, 1571, 1661, 1750,
+ 1840, 1929, 2019, 2108, 2197, 2286, 2376, 2465, 2554, 2643,
+ 2732, 2821, 2909, 2998, 3087, 3175, 3264, 3352, 3441, 3529,
+ 3617, 3705, 3793, 3881, 3969, 4057, 4144, 4232, 4319, 4407,
+ 4494, 4581, 4668, 4755, 4842, 4928, 5015, 5101, 5188, 5274,
+ 5360, 5446, 5532, 5617, 5703, 5788, 5873, 5959, 6043, 6128,
+ 6213, 6297, 6382, 6466, 6550, 6634, 6718, 6801, 6885, 6968,
+ 7051, 7134, 7217, 7299, 7382, 7464, 7546, 7628, 7709, 7791,
+ 7872, 7953, 8034, 8115, 8195, 8276, 8356, 8436, 8515, 8595,
+ 8674, 8753, 8832, 8911, 8989, 9068, 9146, 9223, 9301, 9378,
+ 9455, 9532, 9609, 9685, 9762, 9838, 9913, 9989, 10064, 10139,
+ 10214, 10288, 10363, 10437, 10510, 10584, 10657, 10730, 10803, 10875,
+ 10948, 11020, 11091, 11163, 11234, 11305, 11375, 11446, 11516, 11586,
+ 11655, 11724, 11793, 11862, 11930, 11998, 12066, 12134, 12201, 12268,
+ 12334, 12401, 12467, 12532, 12598, 12663, 12728, 12792, 12857, 12920,
+ 12984, 13047, 13110, 13173, 13235, 13297, 13359, 13420, 13481, 13542,
+ 13602, 13662, 13722, 13782, 13841, 13899, 13958, 14016, 14074, 14131,
+ 14188, 14245, 14301, 14357, 14413, 14468, 14523, 14578, 14632, 14686,
+ 14739, 14793, 14845, 14898, 14950, 15002, 15053, 15104, 15155, 15205,
+ 15255, 15305, 15354, 15403, 15451, 15500, 15547, 15595, 15642, 15688,
+ 15734, 15780, 15826, 15871, 15916, 15960, 16004, 16047, 16091, 16133,
+ 16176, 16218, 16259, 16300, 16341, 16382, 16422, 16461, 16501, 16540,
+ 16578, 16616, 16654, 16691, 16728, 16764, 16800, 16836, 16871, 16906,
+ 16940, 16974, 17008, 17041, 17074, 17106, 17138, 17170, 17201, 17232,
+ 17262, 17292, 17321, 17350, 17379, 17407, 17435, 17462, 17489, 17516,
+ 17542, 17567, 17593, 17617, 17642, 17666, 17689, 17713, 17735, 17758,
+ 17779, 17801, 17822, 17842, 17863, 17882, 17901, 17920, 17939, 17957,
+ 17974, 17991, 18008, 18024, 18040, 18055, 18070, 18085, 18099, 18113,
+ 18126, 18139, 18151, 18163, 18174, 18185, 18196, 18206, 18216, 18225,
+ 18234, 18242, 18250, 18257, 18265, 18271, 18277, 18283, 18288, 18293,
+ 18298, 18302, 18305, 18308, 18311, 18313, 18315, 18316, 18317, 18317,
+};
+
+Word16 rmlt_to_samples_window[DCT_LENGTH]=
+{ 44, 133, 222, 310, 399, 488, 577, 666, 754, 843,
+ 932, 1020, 1109, 1198, 1286, 1375, 1464, 1552, 1641, 1729,
+ 1817, 1906, 1994, 2082, 2171, 2259, 2347, 2435, 2523, 2611,
+ 2699, 2786, 2874, 2962, 3049, 3137, 3224, 3312, 3399, 3486,
+ 3573, 3660, 3747, 3834, 3921, 4008, 4094, 4181, 4267, 4353,
+ 4439, 4526, 4611, 4697, 4783, 4869, 4954, 5040, 5125, 5210,
+ 5295, 5380, 5465, 5549, 5634, 5718, 5802, 5886, 5970, 6054,
+ 6138, 6221, 6304, 6388, 6471, 6553, 6636, 6719, 6801, 6883,
+ 6965, 7047, 7129, 7211, 7292, 7373, 7454, 7535, 7616, 7696,
+ 7777, 7857, 7937, 8016, 8096, 8175, 8254, 8333, 8412, 8491,
+ 8569, 8647, 8725, 8803, 8880, 8957, 9035, 9111, 9188, 9264,
+ 9341, 9417, 9492, 9568, 9643, 9718, 9793, 9868, 9942, 10016,
+ 10090, 10163, 10237, 10310, 10383, 10455, 10528, 10600, 10672, 10743,
+ 10815, 10886, 10957, 11027, 11098, 11168, 11237, 11307, 11376, 11445,
+ 11514, 11582, 11650, 11718, 11785, 11853, 11920, 11986, 12053, 12119,
+ 12185, 12250, 12315, 12380, 12445, 12509, 12573, 12637, 12701, 12764,
+ 12826, 12889, 12951, 13013, 13075, 13136, 13197, 13257, 13318, 13378,
+ 13437, 13497, 13556, 13614, 13673, 13731, 13788, 13846, 13903, 13959,
+ 14016, 14072, 14128, 14183, 14238, 14292, 14347, 14401, 14454, 14508,
+ 14561, 14613, 14665, 14717, 14769, 14820, 14871, 14921, 14971, 15021,
+ 15070, 15119, 15168, 15216, 15264, 15311, 15359, 15405, 15452, 15498,
+ 15544, 15589, 15634, 15678, 15722, 15766, 15810, 15853, 15895, 15938,
+ 15979, 16021, 16062, 16103, 16143, 16183, 16223, 16262, 16300, 16339,
+ 16377, 16414, 16452, 16488, 16525, 16561, 16596, 16632, 16666, 16701,
+ 16735, 16768, 16801, 16834, 16867, 16899, 16930, 16961, 16992, 17022,
+ 17052, 17082, 17111, 17140, 17168, 17196, 17223, 17250, 17277, 17303,
+ 17329, 17354, 17379, 17404, 17428, 17452, 17475, 17498, 17520, 17542,
+ 17564, 17585, 17606, 17626, 17646, 17665, 17684, 17703, 17721, 17739,
+ 17756, 17773, 17790, 17806, 17821, 17836, 17851, 17865, 17879, 17893,
+ 17906, 17918, 17931, 17942, 17954, 17965, 17975, 17985, 17995, 18004,
+ 18012, 18021, 18028, 18036, 18043, 18049, 18055, 18061, 18066, 18071,
+ 18076, 18079, 18083, 18086, 18089, 18091, 18093, 18094, 18095, 18095,
+};
+
+Word16 max_samples_to_rmlt_window[MAX_DCT_LENGTH]={
+0, 43, 89, 133, 178, 222, 268, 314, 357, 403,
+447, 493, 538, 582, 628, 671, 717, 763, 807, 853,
+896, 942, 987, 1031, 1077, 1121, 1166, 1212, 1256, 1301,
+1345, 1390, 1436, 1480, 1526, 1569, 1615, 1660, 1704, 1749,
+1793, 1838, 1884, 1928, 1973, 2016, 2062, 2107, 2151, 2196,
+2239, 2285, 2331, 2374, 2419, 2463, 2508, 2553, 2597, 2642,
+2685, 2730, 2776, 2819, 2864, 2908, 2952, 2998, 3041, 3086,
+3129, 3174, 3219, 3263, 3307, 3350, 3396, 3440, 3483, 3528,
+3571, 3616, 3661, 3704, 3748, 3791, 3836, 3881, 3923, 3968,
+4011, 4055, 4100, 4143, 4187, 4230, 4274, 4318, 4362, 4406,
+4448, 4493, 4537, 4580, 4624, 4666, 4710, 4755, 4797, 4841,
+4883, 4927, 4971, 5013, 5057, 5099, 5144, 5187, 5229, 5273,
+5315, 5359, 5402, 5444, 5488, 5530, 5573, 5617, 5658, 5702,
+5743, 5787, 5830, 5871, 5915, 5956, 6000, 6043, 6084, 6127,
+6169, 6211, 6254, 6296, 6339, 6380, 6423, 6465, 6507, 6549,
+6590, 6633, 6675, 6716, 6759, 6799, 6842, 6884, 6925, 6967,
+7007, 7050, 7092, 7132, 7175, 7215, 7257, 7299, 7339, 7381,
+7421, 7462, 7504, 7544, 7586, 7626, 7667, 7709, 7749, 7790,
+7830, 7871, 7912, 7952, 7993, 8032, 8073, 8114, 8153, 8194,
+8234, 8275, 8315, 8355, 8395, 8434, 8474, 8515, 8554, 8594,
+8632, 8673, 8713, 8752, 8792, 8830, 8871, 8910, 8949, 8989,
+9027, 9066, 9106, 9144, 9184, 9221, 9261, 9300, 9338, 9378,
+9415, 9454, 9493, 9531, 9570, 9607, 9646, 9685, 9722, 9761,
+9798, 9836, 9875, 9912, 9950, 9987, 10025, 10064, 10100, 10138,
+10175, 10213, 10250, 10287, 10325, 10361, 10398, 10436, 10472, 10510,
+10545, 10583, 10620, 10656, 10692, 10728, 10766, 10803, 10838, 10874,
+10910, 10947, 10983, 11018, 11055, 11089, 11126, 11162, 11197, 11233,
+11268, 11303, 11340, 11374, 11410, 11444, 11480, 11515, 11549, 11585,
+11619, 11654, 11689, 11723, 11758, 11791, 11826, 11861, 11895, 11930,
+11963, 11997, 12032, 12065, 12099, 12132, 12166, 12201, 12233, 12267,
+12300, 12333, 12367, 12400, 12433, 12465, 12499, 12532, 12563, 12597,
+12629, 12662, 12695, 12727, 12759, 12790, 12823, 12856, 12887, 12920,
+12951, 12983, 13016, 13046, 13078, 13109, 13141, 13173, 13203, 13235,
+13266, 13296, 13328, 13358, 13389, 13419, 13450, 13481, 13510, 13541,
+13571, 13602, 13632, 13661, 13692, 13721, 13751, 13781, 13810, 13840,
+13869, 13898, 13929, 13957, 13986, 14015, 14044, 14073, 14101, 14130,
+14158, 14187, 14216, 14244, 14272, 14300, 14328, 14357, 14384, 14412,
+14439, 14468, 14495, 14522, 14550, 14577, 14604, 14632, 14658, 14686,
+14711, 14739, 14765, 14792, 14819, 14844, 14871, 14897, 14923, 14949,
+14975, 15001, 15027, 15053, 15079, 15103, 15129, 15155, 15180, 15205,
+15229, 15255, 15280, 15304, 15329, 15353, 15378, 15403, 15426, 15451,
+15475, 15499, 15523, 15546, 15570, 15594, 15618, 15641, 15664, 15688,
+15711, 15734, 15757, 15780, 15802, 15825, 15848, 15871, 15892, 15915,
+15937, 15960, 15982, 16003, 16026, 16047, 16069, 16090, 16112, 16133,
+16154, 16175, 16197, 16217, 16239, 16259, 16279, 16301, 16320, 16341,
+16361, 16382, 16402, 16421, 16441, 16461, 16481, 16501, 16520, 16539,
+16558, 16578, 16597, 16615, 16635, 16653, 16672, 16691, 16709, 16728,
+16746, 16764, 16782, 16800, 16818, 16835, 16853, 16871, 16888, 16905,
+16923, 16940, 16957, 16974, 16991, 17008, 17024, 17041, 17057, 17074,
+17090, 17106, 17122, 17138, 17154, 17169, 17185, 17201, 17216, 17231,
+17246, 17262, 17277, 17291, 17306, 17321, 17336, 17350, 17364, 17379,
+17393, 17407, 17421, 17435, 17449, 17462, 17476, 17490, 17502, 17515,
+17528, 17542, 17554, 17567, 17580, 17592, 17605, 17618, 17629, 17642,
+17653, 17666, 17678, 17689, 17701, 17712, 17724, 17736, 17746, 17757,
+17768, 17779, 17790, 17800, 17811, 17822, 17832, 17842, 17852, 17862,
+17872, 17882, 17892, 17902, 17911, 17920, 17930, 17938, 17947, 17956,
+17965, 17974, 17983, 17991, 17999, 18008, 18016, 18025, 18032, 18040,
+18047, 18055, 18063, 18070, 18078, 18085, 18092, 18099, 18106, 18112,
+18119, 18126, 18132, 18138, 18144, 18151, 18157, 18163, 18168, 18174,
+18179, 18185, 18191, 18196, 18201, 18206, 18211, 18216, 18220, 18225,
+18229, 18234, 18238, 18242, 18246, 18250, 18254, 18257, 18260, 18264,
+18268, 18271, 18274, 18277, 18280, 18283, 18286, 18288, 18291, 18293,
+18295, 18297, 18300, 18301, 18303, 18305, 18306, 18308, 18309, 18311,
+18312, 18312, 18314, 18315, 18315, 18316, 18316, 18317, 18317, 18317
+};
+
+Word16 max_rmlt_to_samples_window[MAX_DCT_LENGTH]={
+0, 43, 88, 131, 176, 219, 265, 310, 353, 398,
+442, 487, 532, 575, 620, 663, 709, 754, 797, 842,
+885, 931, 975, 1019, 1064, 1107, 1152, 1197, 1240, 1286,
+1329, 1373, 1419, 1462, 1507, 1550, 1595, 1640, 1683, 1728,
+1771, 1816, 1861, 1904, 1949, 1992, 2037, 2081, 2125, 2170,
+2212, 2258, 2302, 2345, 2390, 2433, 2477, 2522, 2565, 2610,
+2652, 2697, 2742, 2784, 2829, 2872, 2916, 2961, 3004, 3048,
+3091, 3136, 3180, 3223, 3267, 3310, 3354, 3399, 3441, 3485,
+3528, 3572, 3616, 3659, 3703, 3745, 3790, 3834, 3876, 3920,
+3962, 4006, 4050, 4093, 4136, 4179, 4222, 4266, 4309, 4352,
+4394, 4438, 4482, 4524, 4568, 4610, 4653, 4697, 4739, 4782,
+4824, 4867, 4911, 4953, 4996, 5038, 5081, 5124, 5166, 5209,
+5251, 5294, 5337, 5378, 5421, 5463, 5506, 5548, 5590, 5633,
+5674, 5717, 5759, 5800, 5843, 5884, 5927, 5970, 6011, 6053,
+6094, 6136, 6178, 6219, 6262, 6302, 6345, 6387, 6428, 6470,
+6510, 6552, 6594, 6635, 6677, 6717, 6759, 6801, 6841, 6883,
+6922, 6964, 7006, 7046, 7087, 7127, 7169, 7210, 7250, 7291,
+7331, 7372, 7413, 7453, 7494, 7533, 7574, 7615, 7655, 7695,
+7735, 7776, 7816, 7855, 7896, 7935, 7975, 8016, 8054, 8095,
+8134, 8174, 8214, 8253, 8293, 8332, 8371, 8412, 8450, 8490,
+8528, 8568, 8607, 8646, 8685, 8723, 8763, 8802, 8840, 8879,
+8917, 8956, 8995, 9033, 9072, 9109, 9148, 9187, 9225, 9264,
+9301, 9340, 9378, 9415, 9454, 9491, 9529, 9567, 9604, 9642,
+9679, 9717, 9755, 9791, 9829, 9866, 9903, 9941, 9977, 10015,
+10051, 10089, 10126, 10162, 10199, 10235, 10272, 10309, 10345, 10382,
+10417, 10454, 10491, 10526, 10563, 10598, 10635, 10672, 10706, 10742,
+10778, 10814, 10850, 10885, 10921, 10955, 10991, 11027, 11061, 11097,
+11131, 11166, 11202, 11236, 11271, 11305, 11340, 11376, 11409, 11444,
+11478, 11513, 11547, 11580, 11615, 11648, 11683, 11717, 11751, 11785,
+11817, 11852, 11886, 11918, 11952, 11985, 12018, 12053, 12085, 12118,
+12150, 12184, 12217, 12249, 12282, 12314, 12347, 12380, 12411, 12444,
+12476, 12508, 12541, 12572, 12604, 12635, 12668, 12700, 12731, 12763,
+12794, 12826, 12858, 12888, 12920, 12950, 12982, 13013, 13043, 13074,
+13105, 13135, 13166, 13196, 13227, 13257, 13287, 13317, 13347, 13377,
+13407, 13437, 13467, 13496, 13525, 13555, 13585, 13614, 13643, 13672,
+13701, 13730, 13760, 13787, 13817, 13845, 13873, 13903, 13930, 13959,
+13987, 14015, 14043, 14071, 14099, 14126, 14154, 14183, 14209, 14237,
+14264, 14292, 14319, 14346, 14373, 14400, 14427, 14454, 14480, 14507,
+14533, 14560, 14586, 14612, 14639, 14664, 14691, 14717, 14742, 14768,
+14793, 14819, 14845, 14870, 14896, 14920, 14945, 14971, 14996, 15020,
+15044, 15070, 15094, 15118, 15143, 15167, 15192, 15216, 15239, 15263,
+15287, 15311, 15335, 15358, 15382, 15405, 15428, 15452, 15474, 15498,
+15520, 15543, 15566, 15588, 15611, 15633, 15656, 15678, 15700, 15722,
+15744, 15766, 15788, 15809, 15831, 15852, 15874, 15895, 15916, 15937,
+15958, 15979, 16000, 16020, 16041, 16061, 16082, 16103, 16122, 16143,
+16162, 16183, 16203, 16222, 16242, 16261, 16281, 16300, 16319, 16339,
+16357, 16377, 16396, 16414, 16433, 16451, 16470, 16488, 16506, 16525,
+16542, 16561, 16579, 16596, 16614, 16631, 16649, 16667, 16683, 16700,
+16717, 16735, 16752, 16768, 16785, 16801, 16818, 16834, 16850, 16867,
+16883, 16899, 16915, 16930, 16945, 16961, 16977, 16992, 17007, 17022,
+17037, 17052, 17067, 17081, 17096, 17111, 17126, 17140, 17154, 17168,
+17182, 17196, 17209, 17223, 17237, 17250, 17264, 17277, 17290, 17303,
+17315, 17329, 17341, 17354, 17367, 17379, 17391, 17404, 17415, 17428,
+17439, 17451, 17463, 17475, 17486, 17497, 17509, 17520, 17531, 17542,
+17552, 17563, 17574, 17584, 17595, 17605, 17616, 17626, 17636, 17646,
+17655, 17665, 17675, 17684, 17694, 17703, 17712, 17721, 17730, 17739,
+17747, 17756, 17764, 17773, 17781, 17789, 17798, 17806, 17813, 17821,
+17829, 17836, 17843, 17851, 17858, 17866, 17872, 17879, 17886, 17893,
+17899, 17906, 17912, 17918, 17924, 17931, 17937, 17942, 17948, 17953,
+17959, 17964, 17970, 17975, 17980, 17985, 17990, 17995, 17999, 18004,
+18008, 18012, 18016, 18021, 18025, 18028, 18032, 18036, 18039, 18043,
+18046, 18049, 18052, 18055, 18058, 18061, 18064, 18067, 18069, 18071,
+18073, 18075, 18078, 18079, 18081, 18083, 18084, 18086, 18087, 18089,
+18090, 18090, 18091, 18092, 18093, 18094, 18094, 18095, 18095, 18095
+};
diff --git a/jni/pjproject-android/.svn/pristine/f9/f9b07776f9e56e77905bddae30814c1122e87fa9.svn-base b/jni/pjproject-android/.svn/pristine/f9/f9b07776f9e56e77905bddae30814c1122e87fa9.svn-base
new file mode 100644
index 0000000..fd584f7
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/f9/f9b07776f9e56e77905bddae30814c1122e87fa9.svn-base
@@ -0,0 +1,4835 @@
+# Microsoft eMbedded Visual Tools Project File - Name="libgsmcodec" - Package Owner=<4>
+# Microsoft eMbedded Visual Tools Generated Build File, Format Version 6.02
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (WCE x86) Static Library" 0x8304
+# TARGTYPE "Win32 (WCE MIPS16) Static Library" 0x8904
+# TARGTYPE "Win32 (WCE SH4) Static Library" 0x8604
+# TARGTYPE "Win32 (WCE MIPSII) Static Library" 0xa104
+# TARGTYPE "Win32 (WCE MIPSIV_FP) Static Library" 0x9204
+# TARGTYPE "Win32 (WCE SH3) Static Library" 0x8104
+# TARGTYPE "Win32 (WCE ARMV4) Static Library" 0xa304
+# TARGTYPE "Win32 (WCE ARMV4I) Static Library" 0xa504
+# TARGTYPE "Win32 (WCE emulator) Static Library" 0xa604
+# TARGTYPE "Win32 (WCE MIPSII_FP) Static Library" 0xa204
+# TARGTYPE "Win32 (WCE ARMV4T) Static Library" 0xa404
+# TARGTYPE "Win32 (WCE MIPSIV) Static Library" 0x9604
+
+CFG=libgsmcodec - Win32 (WCE MIPSII_FP) Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "libgsmcodec.vcn".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "libgsmcodec.vcn" CFG="libgsmcodec - Win32 (WCE MIPSII_FP) Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "libgsmcodec - Win32 (WCE MIPSII_FP) Release" (based on "Win32 (WCE MIPSII_FP) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE MIPSII_FP) Debug" (based on "Win32 (WCE MIPSII_FP) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE MIPSII) Release" (based on "Win32 (WCE MIPSII) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE MIPSII) Debug" (based on "Win32 (WCE MIPSII) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE SH4) Release" (based on "Win32 (WCE SH4) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE SH4) Debug" (based on "Win32 (WCE SH4) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE SH3) Release" (based on "Win32 (WCE SH3) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE SH3) Debug" (based on "Win32 (WCE SH3) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE MIPSIV) Release" (based on "Win32 (WCE MIPSIV) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE MIPSIV) Debug" (based on "Win32 (WCE MIPSIV) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE emulator) Release" (based on "Win32 (WCE emulator) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE emulator) Debug" (based on "Win32 (WCE emulator) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE ARMV4I) Release" (based on "Win32 (WCE ARMV4I) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE ARMV4I) Debug" (based on "Win32 (WCE ARMV4I) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE MIPSIV_FP) Release" (based on "Win32 (WCE MIPSIV_FP) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE MIPSIV_FP) Debug" (based on "Win32 (WCE MIPSIV_FP) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE ARMV4) Release" (based on "Win32 (WCE ARMV4) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE ARMV4) Debug" (based on "Win32 (WCE ARMV4) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE MIPS16) Release" (based on "Win32 (WCE MIPS16) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE MIPS16) Debug" (based on "Win32 (WCE MIPS16) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE ARMV4T) Release" (based on "Win32 (WCE ARMV4T) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE ARMV4T) Debug" (based on "Win32 (WCE ARMV4T) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE x86) Release" (based on "Win32 (WCE x86) Static Library")
+!MESSAGE "libgsmcodec - Win32 (WCE x86) Debug" (based on "Win32 (WCE x86) Static Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+# PROP ATL_Project 2
+
+!IF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "output\MIPSII_FPRel"
+# PROP BASE Intermediate_Dir "output\MIPSII_FPRel"
+# PROP BASE CPU_ID "{D8AC856C-B213-4895-9E83-9EC51A55201E}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "output\MIPSII_FPRel"
+# PROP Intermediate_Dir "output\MIPSII_FPRel"
+# PROP CPU_ID "{D8AC856C-B213-4895-9E83-9EC51A55201E}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=clmips.exe
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPSII_FP" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /QMmips2 /QMFPE- /O2 /M$(CECrtMT) /c
+# ADD CPP /nologo /W3 /I "." /I "../../gsm/inc" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPSII_FP" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /QMmips2 /QMFPE- /O2 /M$(CECrtMT) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "output\MIPSII_FPDbg"
+# PROP BASE Intermediate_Dir "output\MIPSII_FPDbg"
+# PROP BASE CPU_ID "{D8AC856C-B213-4895-9E83-9EC51A55201E}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "output\MIPSII_FPDbg"
+# PROP Intermediate_Dir "output\MIPSII_FPDbg"
+# PROP CPU_ID "{D8AC856C-B213-4895-9E83-9EC51A55201E}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=clmips.exe
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPSII_FP" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /QMmips2 /QMFPE- /M$(CECrtMTDebug) /c
+# ADD CPP /nologo /W3 /Zi /Od /I "." /I "../../gsm/inc" /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPSII_FP" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /QMmips2 /QMFPE- /M$(CECrtMTDebug) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "output\MIPSIIRel"
+# PROP BASE Intermediate_Dir "output\MIPSIIRel"
+# PROP BASE CPU_ID "{689DDC64-9D9D-11D5-96F8-00207802C01C}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "output\MIPSIIRel"
+# PROP Intermediate_Dir "output\MIPSIIRel"
+# PROP CPU_ID "{689DDC64-9D9D-11D5-96F8-00207802C01C}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=clmips.exe
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /QMmips2 /QMFPE /O2 /M$(CECrtMT) /c
+# ADD CPP /nologo /W3 /I "." /I "../../gsm/inc" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /QMmips2 /QMFPE /O2 /M$(CECrtMT) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "output\MIPSIIDbg"
+# PROP BASE Intermediate_Dir "output\MIPSIIDbg"
+# PROP BASE CPU_ID "{689DDC64-9D9D-11D5-96F8-00207802C01C}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "output\MIPSIIDbg"
+# PROP Intermediate_Dir "output\MIPSIIDbg"
+# PROP CPU_ID "{689DDC64-9D9D-11D5-96F8-00207802C01C}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=clmips.exe
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /QMmips2 /QMFPE /M$(CECrtMTDebug) /c
+# ADD CPP /nologo /W3 /Zi /Od /I "." /I "../../gsm/inc" /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /QMmips2 /QMFPE /M$(CECrtMTDebug) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "output\SH4Rel"
+# PROP BASE Intermediate_Dir "output\SH4Rel"
+# PROP BASE CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "output\SH4Rel"
+# PROP Intermediate_Dir "output\SH4Rel"
+# PROP CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=shcl.exe
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH4" /D "_SH4_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /Qsh4 /O2 /M$(CECrtMT) /c
+# ADD CPP /nologo /W3 /I "." /I "../../gsm/inc" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH4" /D "_SH4_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /Qsh4 /O2 /M$(CECrtMT) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "output\SH4Dbg"
+# PROP BASE Intermediate_Dir "output\SH4Dbg"
+# PROP BASE CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "output\SH4Dbg"
+# PROP Intermediate_Dir "output\SH4Dbg"
+# PROP CPU_ID "{D6519021-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=shcl.exe
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH4" /D "_SH4_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /Qsh4 /M$(CECrtMTDebug) /c
+# ADD CPP /nologo /W3 /Zi /Od /I "." /I "../../gsm/inc" /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH4" /D "_SH4_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /Qsh4 /M$(CECrtMTDebug) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "output\SH3Rel"
+# PROP BASE Intermediate_Dir "output\SH3Rel"
+# PROP BASE CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "output\SH3Rel"
+# PROP Intermediate_Dir "output\SH3Rel"
+# PROP CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=shcl.exe
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /O2 /M$(CECrtMT) /c
+# ADD CPP /nologo /W3 /I "." /I "../../gsm/inc" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /O2 /M$(CECrtMT) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "output\SH3Dbg"
+# PROP BASE Intermediate_Dir "output\SH3Dbg"
+# PROP BASE CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "output\SH3Dbg"
+# PROP Intermediate_Dir "output\SH3Dbg"
+# PROP CPU_ID "{D6519020-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=shcl.exe
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /M$(CECrtMTDebug) /c
+# ADD CPP /nologo /W3 /Zi /Od /I "." /I "../../gsm/inc" /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /M$(CECrtMTDebug) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "output\MIPSIVRel"
+# PROP BASE Intermediate_Dir "output\MIPSIVRel"
+# PROP BASE CPU_ID "{0B2FE524-26C5-4194-8CEF-B1582DEB5A98}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "output\MIPSIVRel"
+# PROP Intermediate_Dir "output\MIPSIVRel"
+# PROP CPU_ID "{0B2FE524-26C5-4194-8CEF-B1582DEB5A98}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=clmips.exe
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /QMmips4 /QMn32 /QMFPE /O2 /M$(CECrtMT) /c
+# ADD CPP /nologo /W3 /I "." /I "../../gsm/inc" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /QMmips4 /QMn32 /QMFPE /O2 /M$(CECrtMT) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "output\MIPSIVDbg"
+# PROP BASE Intermediate_Dir "output\MIPSIVDbg"
+# PROP BASE CPU_ID "{0B2FE524-26C5-4194-8CEF-B1582DEB5A98}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "output\MIPSIVDbg"
+# PROP Intermediate_Dir "output\MIPSIVDbg"
+# PROP CPU_ID "{0B2FE524-26C5-4194-8CEF-B1582DEB5A98}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=clmips.exe
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /QMmips4 /QMn32 /QMFPE /M$(CECrtMTDebug) /c
+# ADD CPP /nologo /W3 /Zi /Od /I "." /I "../../gsm/inc" /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /QMmips4 /QMn32 /QMFPE /M$(CECrtMTDebug) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "output\emulatorRel"
+# PROP BASE Intermediate_Dir "output\emulatorRel"
+# PROP BASE CPU_ID "{32E52003-403E-442D-BE48-DE10F8C6131D}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "output\emulatorRel"
+# PROP Intermediate_Dir "output\emulatorRel"
+# PROP CPU_ID "{32E52003-403E-442D-BE48-DE10F8C6131D}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=cl.exe
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "_i386_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "NDEBUG" /D "_LIB" /YX /Gs8192 /GF /O2 /c
+# ADD CPP /nologo /W3 /I "." /I "../../gsm/inc" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "_i386_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "NDEBUG" /D "_LIB" /YX /Gs8192 /GF /O2 /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "output\emulatorDbg"
+# PROP BASE Intermediate_Dir "output\emulatorDbg"
+# PROP BASE CPU_ID "{32E52003-403E-442D-BE48-DE10F8C6131D}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "output\emulatorDbg"
+# PROP Intermediate_Dir "output\emulatorDbg"
+# PROP CPU_ID "{32E52003-403E-442D-BE48-DE10F8C6131D}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=cl.exe
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "_i386_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "_LIB" /YX /Gs8192 /GF /c
+# ADD CPP /nologo /W3 /Zi /Od /I "." /I "../../gsm/inc" /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "_i386_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "_LIB" /YX /Gs8192 /GF /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "output\ARMV4IRel"
+# PROP BASE Intermediate_Dir "output\ARMV4IRel"
+# PROP BASE CPU_ID "{DC70F430-E78B-494F-A9D5-62ADC56443B8}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "output\ARMV4IRel"
+# PROP Intermediate_Dir "output\ARMV4IRel"
+# PROP CPU_ID "{DC70F430-E78B-494F-A9D5-62ADC56443B8}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=clarm.exe
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "ARM" /D "_ARM_" /D "$(CePlatform)" /D "ARMV4I" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /QRarch4T /QRinterwork-return /O2 /M$(CECrtMT) /c
+# ADD CPP /nologo /W3 /I "." /I "../../gsm/inc" /D _WIN32_WCE=$(CEVersion) /D "ARM" /D "_ARM_" /D "$(CePlatform)" /D "ARMV4I" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /QRarch4T /QRinterwork-return /O2 /M$(CECrtMT) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "output\ARMV4IDbg"
+# PROP BASE Intermediate_Dir "output\ARMV4IDbg"
+# PROP BASE CPU_ID "{DC70F430-E78B-494F-A9D5-62ADC56443B8}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "output\ARMV4IDbg"
+# PROP Intermediate_Dir "output\ARMV4IDbg"
+# PROP CPU_ID "{DC70F430-E78B-494F-A9D5-62ADC56443B8}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=clarm.exe
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "ARM" /D "_ARM_" /D "$(CePlatform)" /D "ARMV4I" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /QRarch4T /QRinterwork-return /M$(CECrtMTDebug) /c
+# ADD CPP /nologo /W3 /Zi /Od /I "." /I "../../gsm/inc" /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "ARM" /D "_ARM_" /D "$(CePlatform)" /D "ARMV4I" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /QRarch4T /QRinterwork-return /M$(CECrtMTDebug) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "output\MIPSIV_FPRel"
+# PROP BASE Intermediate_Dir "output\MIPSIV_FPRel"
+# PROP BASE CPU_ID "{046A430D-7770-48AB-89B5-24C2D300B03F}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "output\MIPSIV_FPRel"
+# PROP Intermediate_Dir "output\MIPSIV_FPRel"
+# PROP CPU_ID "{046A430D-7770-48AB-89B5-24C2D300B03F}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=clmips.exe
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D "MIPSIV_FP" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /QMmips4 /QMn32 /QMFPE- /O2 /M$(CECrtMT) /c
+# ADD CPP /nologo /W3 /I "." /I "../../gsm/inc" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D "MIPSIV_FP" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /QMmips4 /QMn32 /QMFPE- /O2 /M$(CECrtMT) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "output\MIPSIV_FPDbg"
+# PROP BASE Intermediate_Dir "output\MIPSIV_FPDbg"
+# PROP BASE CPU_ID "{046A430D-7770-48AB-89B5-24C2D300B03F}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "output\MIPSIV_FPDbg"
+# PROP Intermediate_Dir "output\MIPSIV_FPDbg"
+# PROP CPU_ID "{046A430D-7770-48AB-89B5-24C2D300B03F}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=clmips.exe
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D "MIPSIV_FP" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /QMmips4 /QMn32 /QMFPE- /M$(CECrtMTDebug) /c
+# ADD CPP /nologo /W3 /Zi /Od /I "." /I "../../gsm/inc" /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "_MIPS64" /D "R4000" /D "MIPSIV" /D "MIPSIV_FP" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /QMmips4 /QMn32 /QMFPE- /M$(CECrtMTDebug) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "output\ARMV4Rel"
+# PROP BASE Intermediate_Dir "output\ARMV4Rel"
+# PROP BASE CPU_ID "{ECBEA43D-CD7B-4852-AD55-D4227B5D624B}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "output\ARMV4Rel"
+# PROP Intermediate_Dir "output\ARMV4Rel"
+# PROP CPU_ID "{ECBEA43D-CD7B-4852-AD55-D4227B5D624B}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=clarm.exe
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "NDEBUG" /D "ARM" /D "_ARM_" /D "ARMV4" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /O2 /M$(CECrtMT) /c
+# ADD CPP /nologo /W3 /I "." /I "../../gsm/inc" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "NDEBUG" /D "ARM" /D "_ARM_" /D "ARMV4" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /O2 /M$(CECrtMT) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "output\ARMV4Dbg"
+# PROP BASE Intermediate_Dir "output\ARMV4Dbg"
+# PROP BASE CPU_ID "{ECBEA43D-CD7B-4852-AD55-D4227B5D624B}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "output\ARMV4Dbg"
+# PROP Intermediate_Dir "output\ARMV4Dbg"
+# PROP CPU_ID "{ECBEA43D-CD7B-4852-AD55-D4227B5D624B}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=clarm.exe
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D "ARMV4" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /M$(CECrtMTDebug) /c
+# ADD CPP /nologo /W3 /Zi /Od /I "." /I "../../gsm/inc" /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D "ARMV4" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /M$(CECrtMTDebug) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "output\MIPS16Rel"
+# PROP BASE Intermediate_Dir "output\MIPS16Rel"
+# PROP BASE CPU_ID "{D6519013-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "output\MIPS16Rel"
+# PROP Intermediate_Dir "output\MIPS16Rel"
+# PROP CPU_ID "{D6519013-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=clmips.exe
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPS16" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_MIPS16_" /D "MIPS16SUPPORT" /D "_LIB" /YX /QMmips16 /O2 /M$(CECrtMT) /c
+# ADD CPP /nologo /W3 /I "." /I "../../gsm/inc" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPS16" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_MIPS16_" /D "MIPS16SUPPORT" /D "_LIB" /YX /QMmips16 /O2 /M$(CECrtMT) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "output\MIPS16Dbg"
+# PROP BASE Intermediate_Dir "output\MIPS16Dbg"
+# PROP BASE CPU_ID "{D6519013-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "output\MIPS16Dbg"
+# PROP Intermediate_Dir "output\MIPS16Dbg"
+# PROP CPU_ID "{D6519013-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=clmips.exe
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPS16" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_MIPS16_" /D "MIPS16SUPPORT" /D "_LIB" /YX /QMmips16 /M$(CECrtMTDebug) /c
+# ADD CPP /nologo /W3 /Zi /Od /I "." /I "../../gsm/inc" /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "MIPS" /D "_MIPS_" /D "R4000" /D "MIPSII" /D "MIPS16" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_MIPS16_" /D "MIPS16SUPPORT" /D "_LIB" /YX /QMmips16 /M$(CECrtMTDebug) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "output\ARMV4TRel"
+# PROP BASE Intermediate_Dir "output\ARMV4TRel"
+# PROP BASE CPU_ID "{F52316A9-3B7C-4FE7-A67F-68350B41240D}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "output\ARMV4TRel"
+# PROP Intermediate_Dir "output\ARMV4TRel"
+# PROP CPU_ID "{F52316A9-3B7C-4FE7-A67F-68350B41240D}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=clthumb.exe
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "ARM" /D "_ARM_" /D "$(CePlatform)" /D "THUMB" /D "_THUMB_" /D "ARMV4T" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /QRarch4T /QRinterwork-return /O2 /M$(CECrtMT) /c
+# ADD CPP /nologo /W3 /I "." /I "../../gsm/inc" /D _WIN32_WCE=$(CEVersion) /D "ARM" /D "_ARM_" /D "$(CePlatform)" /D "THUMB" /D "_THUMB_" /D "ARMV4T" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_LIB" /YX /QRarch4T /QRinterwork-return /O2 /M$(CECrtMT) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "output\ARMV4TDbg"
+# PROP BASE Intermediate_Dir "output\ARMV4TDbg"
+# PROP BASE CPU_ID "{F52316A9-3B7C-4FE7-A67F-68350B41240D}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "output\ARMV4TDbg"
+# PROP Intermediate_Dir "output\ARMV4TDbg"
+# PROP CPU_ID "{F52316A9-3B7C-4FE7-A67F-68350B41240D}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=clthumb.exe
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "ARM" /D "_ARM_" /D "$(CePlatform)" /D "THUMB" /D "_THUMB_" /D "ARMV4T" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /QRarch4T /QRinterwork-return /M$(CECrtMTDebug) /c
+# ADD CPP /nologo /W3 /Zi /Od /I "." /I "../../gsm/inc" /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "ARM" /D "_ARM_" /D "$(CePlatform)" /D "THUMB" /D "_THUMB_" /D "ARMV4T" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /QRarch4T /QRinterwork-return /M$(CECrtMTDebug) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "output\X86Rel"
+# PROP BASE Intermediate_Dir "output\X86Rel"
+# PROP BASE CPU_ID "{D6518FF3-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "output\X86Rel"
+# PROP Intermediate_Dir "output\X86Rel"
+# PROP CPU_ID "{D6518FF3-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=cl.exe
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "_i386_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "NDEBUG" /D "_LIB" /YX /Gs8192 /GF /O2 /c
+# ADD CPP /nologo /W3 /I "." /I "../../gsm/inc" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "_i386_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "NDEBUG" /D "_LIB" /YX /Gs8192 /GF /O2 /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "output\X86Dbg"
+# PROP BASE Intermediate_Dir "output\X86Dbg"
+# PROP BASE CPU_ID "{D6518FF3-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "output\X86Dbg"
+# PROP Intermediate_Dir "output\X86Dbg"
+# PROP CPU_ID "{D6518FF3-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=cl.exe
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "_i386_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "_LIB" /YX /Gs8192 /GF /c
+# ADD CPP /nologo /W3 /Zi /Od /I "." /I "../../gsm/inc" /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "_i386_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "_LIB" /YX /Gs8192 /GF /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ENDIF
+
+# Begin Target
+
+# Name "libgsmcodec - Win32 (WCE MIPSII_FP) Release"
+# Name "libgsmcodec - Win32 (WCE MIPSII_FP) Debug"
+# Name "libgsmcodec - Win32 (WCE MIPSII) Release"
+# Name "libgsmcodec - Win32 (WCE MIPSII) Debug"
+# Name "libgsmcodec - Win32 (WCE SH4) Release"
+# Name "libgsmcodec - Win32 (WCE SH4) Debug"
+# Name "libgsmcodec - Win32 (WCE SH3) Release"
+# Name "libgsmcodec - Win32 (WCE SH3) Debug"
+# Name "libgsmcodec - Win32 (WCE MIPSIV) Release"
+# Name "libgsmcodec - Win32 (WCE MIPSIV) Debug"
+# Name "libgsmcodec - Win32 (WCE emulator) Release"
+# Name "libgsmcodec - Win32 (WCE emulator) Debug"
+# Name "libgsmcodec - Win32 (WCE ARMV4I) Release"
+# Name "libgsmcodec - Win32 (WCE ARMV4I) Debug"
+# Name "libgsmcodec - Win32 (WCE MIPSIV_FP) Release"
+# Name "libgsmcodec - Win32 (WCE MIPSIV_FP) Debug"
+# Name "libgsmcodec - Win32 (WCE ARMV4) Release"
+# Name "libgsmcodec - Win32 (WCE ARMV4) Debug"
+# Name "libgsmcodec - Win32 (WCE MIPS16) Release"
+# Name "libgsmcodec - Win32 (WCE MIPS16) Debug"
+# Name "libgsmcodec - Win32 (WCE ARMV4T) Release"
+# Name "libgsmcodec - Win32 (WCE ARMV4T) Debug"
+# Name "libgsmcodec - Win32 (WCE x86) Release"
+# Name "libgsmcodec - Win32 (WCE x86) Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=..\..\gsm\src\add.c
+
+!IF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Release"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Debug"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Release"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Debug"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Release"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Debug"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Release"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Debug"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Release"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Debug"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Release"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Debug"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Release"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Debug"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Release"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Debug"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Release"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Debug"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Release"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Debug"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Release"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Debug"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Release"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Debug"
+
+DEP_CPP_ADD_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\src\code.c
+
+!IF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Release"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Debug"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Release"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Debug"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Release"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Debug"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Release"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Debug"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Release"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Debug"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Release"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Debug"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Release"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Debug"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Release"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Debug"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Release"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Debug"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Release"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Debug"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Release"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Debug"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Release"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Debug"
+
+DEP_CPP_CODE_=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\src\debug.c
+
+!IF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Release"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Debug"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Release"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Debug"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Release"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Debug"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Release"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Debug"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Release"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Debug"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Release"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Debug"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Release"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Debug"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Release"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Debug"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Release"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Debug"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Release"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Debug"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Release"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Debug"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Release"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Debug"
+
+DEP_CPP_DEBUG=\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\src\decode.c
+
+!IF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Release"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Debug"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Release"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Debug"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Release"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Debug"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Release"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Debug"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Release"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Debug"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Release"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Debug"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Release"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Debug"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Release"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Debug"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Release"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Debug"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Release"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Debug"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Release"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Debug"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Release"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Debug"
+
+DEP_CPP_DECOD=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\src\gsm_create.c
+
+!IF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Release"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Debug"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Release"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Debug"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Release"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Debug"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Release"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Debug"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Release"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Debug"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Release"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Debug"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Release"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Debug"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Release"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Debug"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Release"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Debug"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Release"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Debug"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Release"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Debug"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Release"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Debug"
+
+DEP_CPP_GSM_C=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+ ".\config.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\src\gsm_decode.c
+
+!IF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Release"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Debug"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Release"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Debug"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Release"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Debug"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Release"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Debug"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Release"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Debug"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Release"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Debug"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Release"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Debug"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Release"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Debug"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Release"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Debug"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Release"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Debug"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Release"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Debug"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Release"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Debug"
+
+DEP_CPP_GSM_D=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\src\gsm_destroy.c
+
+!IF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Release"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Debug"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Release"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Debug"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Release"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Debug"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Release"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Debug"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Release"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Debug"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Release"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Debug"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Release"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Debug"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Release"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Debug"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Release"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Debug"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Release"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Debug"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Release"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Debug"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Release"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Debug"
+
+DEP_CPP_GSM_DE=\
+ "..\..\gsm\inc\config.h"\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\proto.h"\
+ ".\config.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\src\gsm_encode.c
+
+!IF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Release"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Debug"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Release"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Debug"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Release"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Debug"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Release"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Debug"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Release"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Debug"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Release"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Debug"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Release"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Debug"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Release"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Debug"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Release"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Debug"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Release"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Debug"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Release"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Debug"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Release"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Debug"
+
+DEP_CPP_GSM_E=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\src\gsm_explode.c
+
+!IF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Release"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Debug"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Release"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Debug"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Release"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Debug"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Release"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Debug"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Release"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Debug"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Release"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Debug"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Release"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Debug"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Release"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Debug"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Release"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Debug"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Release"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Debug"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Release"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Debug"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Release"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Debug"
+
+DEP_CPP_GSM_EX=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\src\gsm_implode.c
+
+!IF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Release"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Debug"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Release"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Debug"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Release"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Debug"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Release"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Debug"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Release"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Debug"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Release"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Debug"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Release"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Debug"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Release"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Debug"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Release"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Debug"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Release"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Debug"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Release"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Debug"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Release"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Debug"
+
+DEP_CPP_GSM_I=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\src\gsm_option.c
+
+!IF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Release"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Debug"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Release"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Debug"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Release"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Debug"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Release"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Debug"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Release"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Debug"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Release"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Debug"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Release"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Debug"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Release"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Debug"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Release"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Debug"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Release"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Debug"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Release"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Debug"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Release"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Debug"
+
+DEP_CPP_GSM_O=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\src\gsm_print.c
+
+!IF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Release"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Debug"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Release"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Debug"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Release"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Debug"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Release"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Debug"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Release"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Debug"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Release"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Debug"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Release"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Debug"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Release"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Debug"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Release"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Debug"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Release"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Debug"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Release"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Debug"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Release"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Debug"
+
+DEP_CPP_GSM_P=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\src\long_term.c
+
+!IF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Release"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Debug"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Release"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Debug"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Release"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Debug"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Release"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Debug"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Release"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Debug"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Release"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Debug"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Release"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Debug"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Release"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Debug"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Release"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Debug"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Release"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Debug"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Release"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Debug"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Release"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Debug"
+
+DEP_CPP_LONG_=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\src\lpc.c
+
+!IF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Release"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Debug"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Release"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Debug"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Release"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Debug"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Release"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Debug"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Release"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Debug"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Release"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Debug"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Release"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Debug"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Release"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Debug"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Release"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Debug"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Release"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Debug"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Release"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Debug"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Release"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Debug"
+
+DEP_CPP_LPC_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\src\preprocess.c
+
+!IF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Release"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Debug"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Release"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Debug"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Release"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Debug"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Release"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Debug"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Release"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Debug"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Release"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Debug"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Release"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Debug"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Release"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Debug"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Release"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Debug"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Release"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Debug"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Release"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Debug"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Release"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Debug"
+
+DEP_CPP_PREPR=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\src\rpe.c
+
+!IF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Release"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Debug"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Release"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Debug"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Release"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Debug"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Release"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Debug"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Release"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Debug"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Release"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Debug"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Release"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Debug"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Release"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Debug"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Release"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Debug"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Release"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Debug"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Release"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Debug"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Release"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Debug"
+
+DEP_CPP_RPE_C=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\src\short_term.c
+
+!IF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Release"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Debug"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Release"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Debug"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Release"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Debug"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Release"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Debug"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Release"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Debug"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Release"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Debug"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Release"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Debug"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Release"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Debug"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Release"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Debug"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Release"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Debug"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Release"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Debug"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Release"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Debug"
+
+DEP_CPP_SHORT=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\src\table.c
+
+!IF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Release"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII_FP) Debug"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Release"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSII) Debug"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Release"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH4) Debug"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Release"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE SH3) Debug"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Release"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV) Debug"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Release"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE emulator) Debug"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Release"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4I) Debug"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Release"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPSIV_FP) Debug"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Release"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4) Debug"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Release"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE MIPS16) Debug"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Release"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE ARMV4T) Debug"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Release"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ELSEIF "$(CFG)" == "libgsmcodec - Win32 (WCE x86) Debug"
+
+DEP_CPP_TABLE=\
+ "..\..\gsm\inc\gsm.h"\
+ "..\..\gsm\inc\private.h"\
+ "..\..\gsm\inc\proto.h"\
+ "..\..\gsm\inc\unproto.h"\
+
+
+!ENDIF
+
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\config.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\inc\config.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\inc\gsm.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\inc\private.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\inc\proto.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\inc\toast.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\gsm\inc\unproto.h
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/jni/pjproject-android/.svn/pristine/f9/f9bacebd5cb9576b62acd9de747da504408a9e50.svn-base b/jni/pjproject-android/.svn/pristine/f9/f9bacebd5cb9576b62acd9de747da504408a9e50.svn-base
new file mode 100644
index 0000000..81fa735
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/f9/f9bacebd5cb9576b62acd9de747da504408a9e50.svn-base
@@ -0,0 +1,996 @@
+/* $Id$ */
+/*
+ * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
+ * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#ifndef __PJ_DOXYGEN_H__
+#define __PJ_DOXYGEN_H__
+
+/**
+ * @file doxygen.h
+ * @brief Doxygen's mainpage.
+ */
+
+/*////////////////////////////////////////////////////////////////////////// */
+/*
+ INTRODUCTION PAGE
+ */
+
+/**
+ * @mainpage Welcome to PJLIB!
+ *
+ * @section intro_sec What is PJLIB
+ *
+ * PJLIB is an Open Source, small footprint framework library written in C for
+ * making scalable applications. Because of its small footprint, it can be used
+ * in embedded applications (we hope so!), but yet the library is also aimed for
+ * facilitating the creation of high performance protocol stacks.
+ *
+ * PJLIB is released under GPL terms.
+ *
+ * @section download_sec Download
+ *
+ * PJLIB and all documentation can be downloaded from
+ * http://www.pjsip.org.
+ *
+ *
+ * @section how_to_use_sec About This Documentation
+ *
+ * This document is generated directly from PJLIB source file using
+ * \a doxygen (http://www.doxygen.org). Doxygen is a great (and free!)
+ * tools for generating such documentation.
+ *
+ *
+ * @subsection find_samples_subsec How to Read This Document
+ *
+ * This documentation is laid out more to be a reference guide instead
+ * of tutorial, therefore first time users may find it difficult to
+ * grasp PJLIB by reading this document alone.
+ *
+ * However, we've tried our best to make this document easy to follow.
+ * For first time users, we would suggest that you follow these steps
+ * when reading this documentation:
+ *
+ * - continue reading this introduction chapter. At the end of this
+ * chapter, you'll find section called \ref pjlib_fundamentals_sec
+ * which should guide you to understand basic things about PJLIB.
+ *
+ * - find information about specific features that you want to use
+ * in PJLIB. Use the <b>Module Index</b> to find out about all
+ * features in PJLIB (if you're browsing the HTML documentation,
+ * click on the \a Module link on top of the page, or if you're
+ * reading the PDF documentation, click on \a Module \a Documentation
+ * on the navigation pane on the left).
+ *
+ * @subsection doc_organize_sec How To's
+ *
+ * Please find below links to specific tasks that you probably
+ * want to do:
+ *
+ * - <b>How to Build PJLIB</b>
+ *\n
+ * Please refer to \ref pjlib_build_sys_pg page for more information.
+ *
+ * - <b>How to Use PJLIB in My Application</b>
+ *\n
+ * Please refer to \ref configure_app_sec for more information.
+ *
+ * - <b>How to Port PJLIB</b>
+ *\n
+ * Please refer to \ref porting_pjlib_pg page.
+ *
+ * - <b>Where to Read Samples Documentation</b>
+ *\n
+ * Most of the modules provide link to the corresponding sample file.
+ * Alternatively, to get the list of all examples, you can click on
+ * <b>Related Pages</b> on the top of HTML document or on
+ * <b>PJLIB Page Documentation</b> on navigation pane of your PDF reader.
+ *
+ * - <b>How to Submit Code to PJLIB Project</b>
+ *\n
+ * Please read \ref pjlib_coding_convention_page before submitting
+ * your code. Send your code as patch against current Subversion tree
+ * to the appropriate mailing list.
+ *
+ *
+ * @section features_sec Features
+ *
+ * @subsection open_source_feat It's Open Source!
+ *
+ * PJLIB is currently released on GPL license, but other arrangements
+ * can be made with the author.
+ *
+ * @subsection extreme_portable_feat Extreme Portability
+ *
+ * PJLIB is designed to be extremely portable. It can run on any kind
+ * of processors (16-bit, 32-bit, or 64-bit, big or little endian, single
+ * or multi-processors) and operating systems. Floating point or no
+ * floating point. Multi-threading or not.
+ * It can even run in environment where no ANSI LIBC is available.
+ *
+ * Currently PJLIB is known to run on these platforms:
+ * - Win32/x86 (Win95/98/ME, NT/2000/XP/2003, mingw).
+ * - arm, WinCE and Windows Mobile.
+ * - Linux/x86, (user mode and as <b>kernel module</b>(!)).
+ * - Linux/alpha
+ * - Solaris/ultra.
+ * - MacOS X/powerpc
+ * - RTEMS (x86 and powerpc).
+ *
+ * And efforts is under way to port PJLIB on:
+ * - Symbian OS
+ *
+ *
+ * @subsection small_size_feat Small in Size
+ *
+ * One of the primary objectives is to have library that is small in size for
+ * typical embedded applications. As a rough guidance, we aim to keep the
+ * library size below 100KB for it to be considered as small.
+ * As the result, most of the functionalities in the library can be tailored
+ * to meet the requirements; user can enable/disable specific functionalities
+ * to get the desired size/performance/functionality balance.
+ *
+ * For more info, please see @ref pj_config.
+ *
+ *
+ * @subsection big_perform_feat Big in Performance
+ *
+ * Almost everything in PJLIB is designed to achieve the highest possible
+ * performance out of the target platform.
+ *
+ *
+ * @subsection no_dyn_mem No Dynamic Memory Allocations
+ *
+ * The central idea of PJLIB is that for applications to run as fast as it can,
+ * it should not use \a malloc() at all, but instead should get the memory
+ * from a preallocated storage pool. There are few things that can be
+ * optimized with this approach:
+ *
+ * - \a alloc() is a O(1) operation.
+ * - no mutex is used inside alloc(). It is assumed that synchronization
+ * will be used in higher abstraction by application anyway.
+ * - no \a free() is required. All chunks will be deleted when the pool is
+ * destroyed.
+ *
+ * The performance gained on some systems can be as high as 30x speed up
+ * against \a malloc() and \a free() on certain configurations, but of
+ * course your mileage may vary.
+ *
+ * For more information, see \ref PJ_POOL_GROUP
+ *
+ *
+ * @subsection os_abstract_feat Operating System Abstraction
+ *
+ * PJLIB has abstractions for features that are normally not portable
+ * across operating systems:
+ * - @ref PJ_THREAD
+ *\n
+ * Portable thread manipulation.
+ * - @ref PJ_TLS
+ *\n
+ * Storing data in thread's private data.
+ * - @ref PJ_MUTEX
+ *\n
+ * Mutual exclusion protection.
+ * - @ref PJ_SEM
+ *\n
+ * Semaphores.
+ * - @ref PJ_ATOMIC
+ *\n
+ * Atomic variables and their operations.
+ * - @ref PJ_CRIT_SEC
+ *\n
+ * Fast locking of critical sections.
+ * - @ref PJ_LOCK
+ *\n
+ * High level abstraction for lock objects.
+ * - @ref PJ_EVENT
+ *\n
+ * Event object.
+ * - @ref PJ_TIME
+ *\n
+ * Portable time manipulation.
+ * - @ref PJ_TIMESTAMP
+ *\n
+ * High resolution time value.
+ * - etc.
+ *
+ *
+ * @subsection ll_network_io_sec Low-Level Network I/O
+ *
+ * PJLIB has very portable abstraction and fairly complete set of API for
+ * doing network I/O communications. At the lowest level, PJLIB provides:
+ *
+ * - @ref PJ_SOCK
+ *\n
+ * A highly portable socket abstraction, runs on all kind of
+ * network APIs such as standard BSD socket, Windows socket, Linux
+ * \b kernel socket, PalmOS networking API, etc.
+ *
+ * - @ref pj_addr_resolve
+ *\n
+ * Portable address resolution, which implements #pj_gethostbyname().
+ *
+ * - @ref PJ_SOCK_SELECT
+ *\n
+ * A portable \a select() like API (#pj_sock_select()) which can be
+ * implemented with various back-end.
+ *
+ *
+ *
+ * @subsection timer_mgmt_sec Timer Management
+ *
+ * A passive framework for managing timer, see @ref PJ_TIMER for more info.
+ * There is also function to retrieve high resolution timestamp
+ * from the system (see @ref PJ_TIMESTAMP).
+ *
+ *
+ * @subsection data_struct_sec Various Data Structures
+ *
+ * Various data structures are provided in the library:
+ *
+ * - @ref PJ_PSTR
+ * - @ref PJ_ARRAY
+ * - @ref PJ_HASH
+ * - @ref PJ_LIST
+ * - @ref PJ_RBTREE
+ *
+ *
+ * @subsection exception_sec Exception Construct
+ *
+ * A convenient TRY/CATCH like construct to propagate errors, which by
+ * default are used by the @ref PJ_POOL_GROUP "memory pool" and
+ * the lexical scanner in pjlib-util. The exception
+ * construct can be used to write programs like below:
+ *
+ * <pre>
+ * #define SYNTAX_ERROR 1
+ *
+ * PJ_TRY {
+ * msg = NULL;
+ * msg = parse_msg(buf, len);
+ * }
+ * PJ_CATCH ( SYNTAX_ERROR ) {
+ * .. handle error ..
+ * }
+ * PJ_END;
+ * </pre>
+ *
+ * Please see @ref PJ_EXCEPT for more information.
+ *
+ *
+ * @subsection logging_sec Logging Facility
+ *
+ * PJLIB @ref PJ_LOG consists of macros to write logging information to
+ * some output device. Some of the features of the logging facility:
+ *
+ * - the verbosity can be fine-tuned both at compile time (to control
+ * the library size) or run-time (to control the verbosity of the
+ * information).
+ * - output device is configurable (e.g. stdout, printk, file, etc.)
+ * - log decoration is configurable.
+ *
+ * See @ref PJ_LOG for more information.
+ *
+ *
+ * @subsection guid_gen_sec Random and GUID Generation
+ *
+ * PJLIB provides facility to create random string
+ * (#pj_create_random_string()) or globally unique identifier
+ * (see @ref PJ_GUID).
+ *
+ *
+ *
+ * @section configure_app_sec Configuring Application to use PJLIB
+ *
+ * @subsection pjlib_compil_sec Building PJLIB
+ *
+ * Follow the instructions in \ref pjlib_build_sys_pg to build
+ * PJLIB.
+ *
+ * @subsection pjlib_compil_app_sec Building Applications with PJLIB
+ *
+ * Use the following settings when building applications with PJLIB.
+ *
+ * @subsubsection compil_inc_dir_sec Include Search Path
+ *
+ * Add this to your include search path ($PJLIB is PJLIB root directory):
+ * <pre>
+ * $PJLIB/include
+ * </pre>
+ *
+ * @subsubsection compil_inc_file_sec Include PJLIB Header
+ *
+ * To include all PJLIB headers:
+ * \verbatim
+ #include <pjlib.h>
+ \endverbatim
+ *
+ * Alternatively, you can include individual PJLIB headers like this:
+ * \verbatim
+ #include <pj/log.h>
+ #include <pj/os.h>
+ \endverbatim
+ *
+ *
+ * @subsubsection compil_lib_dir_sec Library Path
+ *
+ * Add this to your library search path:
+ * <pre>
+ * $PJLIB/lib
+ * </pre>
+ *
+ * Then add the appropriate PJLIB library to your link specification. For
+ * example, you would add \c libpj-i386-linux-gcc.a when you're building
+ * applications in Linux.
+ *
+ *
+ * @subsection pjlib_fundamentals_sec Principles in Using PJLIB
+ *
+ * Few things that you \b MUST do when using PJLIB, to make sure that
+ * you create trully portable applications.
+ *
+ * @subsubsection call_pjlib_init_sec Call pj_init()
+ *
+ * Before you do anything else, call \c pj_init(). This would make sure that
+ * PJLIB system is properly set up.
+ *
+ * @subsubsection no_ansi_subsec Do NOT Use ANSI C
+ *
+ * Contrary to popular teaching, ANSI C (and LIBC) is not the most portable
+ * library in the world, nor it's the most ubiquitous. For example, LIBC
+ * is not available in Linux kernel. Also normally LIBC will be excluded
+ * from compilation of RTOSes to reduce size.
+ *
+ * So for maximum portability, do NOT use ANSI C. Do not even try to include
+ * any other header files outside <include/pj>. Stick with the functionalities
+ * provided by PJLIB.
+ *
+ *
+ * @subsubsection string_rep_subsubsec Use pj_str_t instead of C Strings
+ *
+ * PJLIB uses pj_str_t instead of normal C strings. You SHOULD follow this
+ * convention too. Remember, ANSI string-h is not always available. And
+ * PJLIB string is faster!
+ *
+ * @subsubsection mem_alloc_subsubsec Use Pool for Memory Allocations
+ *
+ * You MUST NOT use \a malloc() or any other memory allocation functions.
+ * Use PJLIB @ref PJ_POOL_GROUP instead! It's faster and most portable.
+ *
+ * @subsection logging_subsubsec Use Logging for Text Display
+ *
+ * DO NOT use <stdio.h> for text output. Use PJLIB @ref PJ_LOG instead.
+ *
+ *
+ * @section porting_pjlib_sec0 Porting PJLIB
+ *
+ * Please see \ref porting_pjlib_pg page on more information to port
+ * PJLIB to new target.
+ *
+ * @section enjoy_sec Enjoy Using PJLIB!
+ *
+ * We hope that you find PJLIB usefull for your application. If you
+ * have any questions, suggestions, critics, bug fixes, or anything
+ * else, we would be happy to hear it.
+ *
+ * Enjoy using PJLIB!
+ *
+ * Benny Prijono < bennylp at pjsip dot org >
+ */
+
+
+
+/*////////////////////////////////////////////////////////////////////////// */
+/*
+ CODING CONVENTION
+ */
+
+/**
+ * @page pjlib_coding_convention_page Coding Convention
+ *
+ * Before you submit your code/patches to be included with PJLIB, you must
+ * make sure that your code is compliant with PJLIB coding convention.
+ * <b>This is very important!</b> Otherwise we would not accept your code.
+ *
+ * @section coding_conv_editor_sec Editor Settings
+ *
+ * The single most important thing in the whole coding convention is editor
+ * settings. It's more important than the correctness of your code (bugs will
+ * only crash the system, but incorrect tab size is mental!).
+ *
+ * Kindly set your editor as follows:
+ * - tab size to \b 8.
+ * - indentation to \b 4.
+ *
+ * With \c vi, you can do it with:
+ * <pre>
+ * :se ts=8
+ * :se sts=4
+ * </pre>
+ *
+ * You should replace tab with eight spaces.
+ *
+ * @section coding_conv_detail_sec Coding Style
+ *
+ * Coding style MUST strictly follow K&R style. The rest of coding style
+ * must follow current style. You SHOULD be able to observe the style
+ * currently used by PJLIB from PJLIB sources, and apply the style to your
+ * code. If you're not able to do simple thing like to observe PJLIB
+ * coding style from the sources, then logic dictates that your ability to
+ * observe more difficult area in PJLIB such as memory allocation strategy,
+ * concurrency, etc is questionable.
+ *
+ * @section coding_conv_comment_sec Commenting Your Code
+ *
+ * Public API (e.g. in header files) MUST have doxygen compliant comments.
+ *
+ */
+
+
+/*////////////////////////////////////////////////////////////////////////// */
+/*
+ BUILDING AND INSTALLING PJLIB
+ */
+
+
+
+/**
+ * @page pjlib_build_sys_pg Building, and Installing PJLIB
+ *
+ * @section build_sys_install_sec Build and Installation
+ *
+ * \note
+ * <b>The most up-to-date information on building and installing PJLIB
+ * should be found in the website, under "Getting Started" document.
+ * More over, the new PJLIB build system is now based on autoconf,
+ * so some of the information here might not be relevant anymore
+ * (although most still are, since the autoconf script still use
+ * the old Makefile system as the backend).</b>
+ *
+ * @subsection build_sys_install_win32_sec Visual Studio
+ *
+ * The PJLIB Visual Studio workspace supports the building of PJLIB
+ * for Win32 target. Although currently only the Visual Studio 6 Workspace is
+ * actively maintained, developers with later version of Visual Studio
+ * can easily imports VS6 workspace into their IDE.
+ *
+ * To start building PJLIB projects with Visual Studio 6 or later, open
+ * the \a workspace file in the corresponding \b \c build directory. You have
+ * several choices on which \a dsw file to open:
+ \verbatim
+ $PJPROJECT/pjlib/build/pjlib.dsw
+ $PJPROJECT/pjsip/build/pjsip.dsw
+ ..etc
+ \endverbatim
+ *
+ * The easiest way is to open <tt>pjsip_apps.dsw</tt> file in \b \c $PJPROJECT/pjsip-apps/build
+ * directory, and build pjsua project or the samples project.
+ * However this will not build the complete projects.
+ * For example, the PJLIB test is not included in this workspace.
+ * To build the complete projects, you must
+ * open and build each \a dsw file in \c build directory in each
+ * subprojects. For example, to open the complete PJLIB workspace, open
+ * <tt>pjlib.dsw</tt> in <tt>$PJPROJECT/pjlib/build</tt> directory.
+ *
+ *
+ * @subsubsection config_site_create_vc_sec Create config_site.h
+ *
+ * The file <tt><b>$PJPROJECT/pjlib/include/pj/config_site.h</b></tt>
+ * is supposed to contain configuration that is specific to your site/target.
+ * This file is not part of PJLIB, so you must create it yourself. Normally
+ * you just need to create a blank file.
+ *
+ * The reason why it's not included in PJLIB is so that you would not accidently
+ * overwrite your site configuration.
+ *
+ * If you fail to do this, Visual C will complain with error like:
+ *
+ * <b>"fatal error C1083: Cannot open include file: 'pj/config_site.h': No such file
+ * or directory"</b>.
+ *
+ * @subsubsection build_vc_subsubsec Build the Projects
+ *
+ * Just hit the build button!
+ *
+ *
+ * @subsection build_sys_install_unix_sec Make System
+ *
+ * For other targets, PJLIB provides a rather comprehensive build system
+ * that uses GNU \a make (and only GNU \a make will work).
+ * Currently, the build system supports building * PJLIB for these targets:
+ * - i386/Win32/mingw
+ * - i386/Linux
+ * - i386/Linux (kernel)
+ * - alpha/linux
+ * - sparc/SunOS
+ * - etc..
+ *
+ *
+ * @subsubsection build_req_sec Requirements
+ *
+ * In order to use the \c make based build system, you MUST have:
+ *
+ * - <b>GNU make</b>
+ *\n
+ * The Makefiles heavily utilize GNU make commands which most likely
+ * are not available in other \c make system.
+ * - <b>bash</b> shell is recommended.
+ *\n
+ * Specificly, there is a command <tt>"echo -n"</tt> which may not work
+ * in other shells. This command is used when generating dependencies
+ * (<tt>make dep</tt>) and it's located in
+ * <tt>$PJPROJECT/build/rules.mak</tt>.
+ * - <b>ar</b>, <b>ranlib</b> from GNU binutils
+ *\n
+ * In your system has different <tt>ar</tt> or <tt>ranlib</tt> (e.g. they
+ * may have been installed as <tt>gar</tt> and <tt>granlib</tt>), then
+ * either you create the relevant symbolic links, <b>or</b> modify
+ * <tt>$PJPROJECT/build/cc-gcc.mak</tt> and rename <tt>ar</tt> and
+ * <tt>ranlib</tt> to the appropriate names.
+ * - <b>gcc</b> to generate dependency.
+ *\n
+ * Currently the build system uses <tt>"gcc -MM"</tt> to generate build
+ * dependencies. If <tt>gcc</tt> is not desired to generate dependency,
+ * then either you don't run <tt>make dep</tt>, <b>or</b> edit
+ * <tt>$PJPROJECT/build/rules.mak</tt> to calculate dependency using
+ * your prefered method. (And let me know when you do so so that I can
+ * update the file. :) )
+ *
+ * @subsubsection build_overview_sec Building the Project
+ *
+ * Generally, steps required to build the PJLIB are:
+ *
+ \verbatim
+ $ cd /home/user/pjproject
+ $ ./configure
+ $ touch pjlib/include/pj/config_site.h
+ $ make dep
+ $ make
+ \endverbatim
+ *
+ * The above process will build all static libraries and all applications.
+ *
+ * \note the <tt>configure</tt> script is not a proper autoconf script,
+ * but rather a simple shell script to detect current host. This script
+ * currently does not support cross-compilation.
+ *
+ * \note For Linux kernel target, there are additional steps required, which
+ * will be explained in section \ref linux_kern_target_subsec.
+ *
+ * @subsubsection build_mak_sec Cross Compilation
+ *
+ * For cross compilation, you will need to edit the \c build.mak file in
+ * \c $PJPROJECT root directory manually. Please see <b>README-configure</b> file
+ * in the root directory for more information.
+ *
+ * For Linux kernel target, you are also required to declare the following
+ * variables in this file:
+ * - \c KERNEL_DIR: full path of kernel source tree.
+ * - \c KERNEL_ARCH: kernel ARCH options (e.g. "ARCH=um"), or leave blank
+ * for default.
+ * - \c PJPROJECT_DIR: full path of PJPROJECT source tree.
+ *
+ * Apart from these, there are also additional steps required to build
+ * Linux kernel target, which will be explained in \ref linux_kern_target_subsec.
+ *
+ * @subsubsection build_dir_sec Files in "build" Directory
+ *
+ * The <tt>*.mak</tt> files in \c $PJPROJECT/build directory are used to specify
+ * the configuration for the specified compiler, target machine target
+ * operating system, and host options. These files will be executed
+ * (included) by \a make during building process, depending on the values
+ * specified in <b>$PJPROJECT/build.mak</b> file.
+ *
+ * Normally you don't need to edit these files, except when you're porting
+ * PJLIB to new target.
+ *
+ * Below are the description of some files in this directory:
+ *
+ * - <tt>rules.mak</tt>: contains generic rules always included during make.
+ * - <tt>cc-gcc.mak</tt>: rules when gcc is used for compiler.
+ * - <tt>cc-vc.mak</tt>: rules when MSVC compiler is used.
+ * - <tt>host-mingw.mak</tt>: rules for building in mingw host.
+ * - <tt>host-unix.mak</tt>: rules for building in Unix/Posix host.
+ * - <tt>host-win32.mak</tt>: rules for building in Win32 command console
+ * (only valid when VC is used).
+ * - <tt>m-i386.mak</tt>: rules when target machine is an i386 processor.
+ * - <tt>m-m68k.mak</tt>: rules when target machine is an m68k processor.
+ * - <tt>os-linux.mak</tt>: rules when target OS is Linux.
+ * - <tt>os-linux-kernel.mak</tt>: rules when PJLIB is to be build as
+ * part of Linux kernel.
+ * - <tt>os-win32.mak</tt>: rules when target OS is Win32.
+ *
+ *
+ * @subsubsection config_site_create_sec Create config_site.h
+ *
+ * The file <tt><b>$PJPROJECT/pjlib/include/pj/config_site.h</b></tt>
+ * is supposed to contain configuration that is specific to your site/target.
+ * This file is not part of PJLIB, so you must create it yourself.
+ *
+ * The reason why it's not included in PJLIB is so that you would not accidently
+ * overwrite your site configuration.
+ *
+ *
+ * @subsubsection invoking_make_sec Invoking make
+ *
+ * Normally, \a make is invoked in \c build directory under each project.
+ * For example, to build PJLIB, you would invoke \a make in
+ * \c $PJPROJECT/pjlib/build directory like below:
+ *
+ \verbatim
+ $ cd pjlib/build
+ $ make
+ \endverbatim
+ *
+ * Alternatively you may invoke <tt>make</tt> in <tt>$PJPROJECT</tt>
+ * directory, to build all projects under that directory (e.g.
+ * PJLIB, PJSIP, etc.).
+ *
+ *
+ * @subsubsection linux_kern_target_subsec Linux Kernel Target
+ *
+ * \note
+ * <b>BUILDING APPLICATIONS IN LINUX KERNEL MODE IS A VERY DANGEROUS BUSINESS.
+ * YOU MAY CRASH THE WHOLE OF YOUR SYSTEM, CORRUPT YOUR HARDISK, ETC. PJLIB
+ * KERNEL MODULES ARE STILL IN EXPERIMENTAL PHASE. DO NOT RUN IT IN PRODUCTION
+ * SYSTEMS OR OTHER SYSTEMS WHERE RISK OF LOSS OF DATA IS NOT ACCEPTABLE.
+ * YOU HAVE BEEN WARNED.</b>
+ *
+ * \note
+ * <b>User Mode Linux (UML)</b> provides excellent way to experiment with Linux
+ * kernel without risking the stability of the host system. See
+ * http://user-mode-linux.sourceforge.net for details.
+ *
+ * \note
+ * I only use <b>UML</b> to experiment with PJLIB kernel modules.
+ * <b>I wouldn't be so foolish to use my host Linux machine to experiment
+ * with this.</b>
+ *
+ * \note
+ * You have been warned.
+ *
+ * For building PJLIB for Linux kernel target, there are additional steps required.
+ * In general, the additional tasks are:
+ * - Declare some more variables in <b><tt>build.mak</tt></b> file (this
+ * has been explained in \ref build_mak_sec above).
+ * - Perform these two small modifications in kernel source tree.
+ *
+ * There are two small modification need to be applied to the kernel tree.
+ *
+ * <b>1. Edit <tt>Makefile</tt> in kernel root source tree.</b>
+ *
+ * Add the following lines at the end of the <tt>Makefile</tt> in your
+ * <tt>$KERNEL_SRC</tt> dir:
+ \verbatim
+script:
+ $(SCRIPT)
+ \endverbatim
+ *
+ * \note Remember to replace spaces with <b>tab</b> in the Makefile.
+ *
+ * The modification above is needed to capture kernel's \c $CFLAGS and
+ * \c $CFLAGS_MODULE which will be used for PJLIB's compilation.
+ *
+ * <b>2. Add Additional Exports.</b>
+ *
+ * We need the kernel to export some more symbols for our use. So we declare
+ * the additional symbols to be exported in <tt>extra-exports.c</tt> file, and add
+ * a this file to be compiled into the kernel:
+ *
+ * - Copy the file <tt>extra-exports.c</tt> from <tt>pjlib/src/pj</tt>
+ * directory to <tt>$KERNEL_SRC/kernel/</tt> directory.
+ * - Edit <tt>Makefile</tt> in that directory, and add this line
+ * somewhere after the declaration of that variable:
+ \verbatim
+obj-y += extra-exports.o
+ \endverbatim
+ *
+ * To illustrate what have been done in your kernel source tree, below
+ * is screenshot of my kernel source tree _after_ the modification.
+ *
+ \verbatim
+[root@vpc-linux linux-2.6.7]# pwd
+/usr/src/linux-2.6.7
+[root@vpc-linux linux-2.6.7]#
+[root@vpc-linux linux-2.6.7]#
+[root@vpc-linux linux-2.6.7]# tail Makefile
+
+endif # skip-makefile
+
+FORCE:
+
+.PHONY: script
+
+script:
+ $(SCRIPT)
+
+[root@vpc-linux linux-2.6.7]#
+[root@vpc-linux linux-2.6.7]#
+[root@vpc-linux linux-2.6.7]# head kernel/extra-exports.c
+#include <linux/module.h>
+#include <linux/syscalls.h>
+
+EXPORT_SYMBOL(sys_select);
+
+EXPORT_SYMBOL(sys_epoll_create);
+EXPORT_SYMBOL(sys_epoll_ctl);
+EXPORT_SYMBOL(sys_epoll_wait);
+
+EXPORT_SYMBOL(sys_socket);
+[root@vpc-linux linux-2.6.7]#
+[root@vpc-linux linux-2.6.7]#
+[root@vpc-linux linux-2.6.7]# head -15 kernel/Makefile
+#
+# Makefile for the linux kernel.
+#
+
+obj-y = sched.o fork.o exec_domain.o panic.o printk.o profile.o \
+ exit.o itimer.o time.o softirq.o resource.o \
+ sysctl.o capability.o ptrace.o timer.o user.o \
+ signal.o sys.o kmod.o workqueue.o pid.o \
+ rcupdate.o intermodule.o extable.o params.o posix-timers.o \
+ kthread.o
+
+obj-y += extra-exports.o
+
+obj-$(CONFIG_FUTEX) += futex.o
+obj-$(CONFIG_GENERIC_ISA_DMA) += dma.o
+[root@vpc-linux linux-2.6.7]#
+
+ \endverbatim
+ *
+ * Then you must rebuild the kernel.
+ * If you fail to do this, you won't be able to <b>insmod</b> pjlib.
+ *
+ * \note You will see a lots of warning messages during pjlib-test compilation.
+ * The warning messages complain about unresolved symbols which are defined
+ * in pjlib module. You can safely ignore these warnings. However, you can not
+ * ignore warnings about non-pjlib unresolved symbols.
+ *
+ *
+ * @subsection makefile_explained_sec Makefile Explained
+ *
+ * The \a Makefile for each project (e.g. PJLIB, PJSIP, etc) should be
+ * very similar in the contents. The Makefile is located under \c build
+ * directory in each project subdir.
+ *
+ * @subsubsection pjlib_makefile_subsec PJLIB Makefile.
+ *
+ * Below is PJLIB's Makefile:
+ *
+ * \include build/Makefile
+ *
+ * @subsubsection pjlib_os_makefile_subsec PJLIB os-linux.mak.
+ *
+ * Below is file <tt><b>os-linux.mak</b></tt> file in
+ * <tt>$PJPROJECT/pjlib/build</tt> directory,
+ * which is OS specific configuration file for Linux target that is specific
+ * for PJLIB project. For \b global OS specific configuration, please see
+ * <tt>$PJPROJECT/build/os-*.mak</tt>.
+ *
+ * \include build/os-linux.mak
+ *
+ */
+
+
+/*////////////////////////////////////////////////////////////////////////// */
+/*
+ PORTING PJLIB
+ */
+
+
+
+/**
+ * @page porting_pjlib_pg Porting PJLIB
+ *
+ * \note
+ * <b>Since version 0.5.8, PJLIB build system is now based on autoconf, so
+ * most of the time we shouldn't need to apply the tweakings below to get
+ * PJLIB working on a new platform. However, since the autoconf build system
+ * still uses the old Makefile build system, the information below may still
+ * be useful for reference.
+ * </b>
+ *
+ * @section new_arch_sec Porting to New CPU Architecture
+ *
+ * Below is step-by-step guide to add support for new CPU architecture.
+ * This sample is based on porting to Alpha architecture; however steps for
+ * porting to other CPU architectures should be pretty similar.
+ *
+ * Also note that in this example, the operating system used is <b>Linux</b>.
+ * Should you wish to add support for new operating system, then follow
+ * the next section \ref porting_os_sec.
+ *
+ * Step-by-step guide to port to new CPU architecture:
+ * - decide the name for the new architecture. In this case, we choose
+ * <tt><b>alpha</b></tt>.
+ * - edit file <tt>$PJPROJECT/build.mak</tt>, and add new section for
+ * the new target:
+ * <pre>
+ * #
+ * # Linux alpha, gcc
+ * #
+ * export MACHINE_NAME := <b>alpha</b>
+ * export OS_NAME := linux
+ * export CC_NAME := gcc
+ * export HOST_NAME := unix
+ * </pre>
+ *
+ * - create a new file <tt>$PJPROJECT/build/<b>m-alpha</b>.mak</tt>.
+ * Alternatively create a copy from other file in this directory.
+ * The contents of this file will look something like:
+ * <pre>
+ * export M_CFLAGS := $(CC_DEF)<b>PJ_M_ALPHA=1</b>
+ * export M_CXXFLAGS :=
+ * export M_LDFLAGS :=
+ * export M_SOURCES :=
+ * </pre>
+ * - create a new file <tt>$PJPROJECT/pjlib/include/pj/compat/<b>m_alpha.h</b></tt>.
+ * Alternatively create a copy from other header file in this directory.
+ * The contents of this file will look something like:
+ * <pre>
+ * #define PJ_HAS_PENTIUM 0
+ * #define PJ_IS_LITTLE_ENDIAN 1
+ * #define PJ_IS_BIG_ENDIAN 0
+ * </pre>
+ * - edit <tt>pjlib/include/pj/<b>config.h</b></tt>. Add new processor
+ * configuration in this header file, like follows:
+ * <pre>
+ * ...
+ * #elif defined (PJ_M_ALPHA) && PJ_M_ALPHA != 0
+ * # include <pj/compat/m_alpha.h>
+ * ...
+ * </pre>
+ * - done. Build PJLIB with:
+ * <pre>
+ * $ cd $PJPROJECT/pjlib/build
+ * $ make dep
+ * $ make clean
+ * $ make
+ * </pre>
+ *
+ * @section porting_os_sec Porting to New Operating System Target
+ *
+ * This section will try to give you rough guideline on how to
+ * port PJLIB to a new target. As a sample, we give the target a name tag,
+ * for example <tt><b>xos</b></tt> (for X OS).
+ *
+ * @subsection new_compat_os_h_file_sec Create New Compat Header File
+ *
+ * You'll need to create a new header file
+ * <b><tt>include/pj/compat/os_xos.h</tt></b>. You can copy as a
+ * template other header file and edit it accordingly.
+ *
+ * @subsection modify_config_h_file_sec Modify config.h
+ *
+ * Then modify file <b><tt>include/pj/config.h</tt></b> to include
+ * this file accordingly (e.g. when macro <tt><b>PJ_XOS</b></tt> is
+ * defined):
+ *
+ \verbatim
+ ...
+ #elif defined(PJ_XOS)
+ # include <pj/compat/os_xos.h>
+ #else
+ #...
+ \endverbatim
+ *
+ * @subsection new_target_mak_file_sec Create New Global Make Config File
+ *
+ * Then you'll need to create global configuration file that
+ * is specific for this OS, i.e. <tt><b>os-xos.mak</b></tt> in
+ * <tt><b>$PJPROJECT/build</b></tt> directory.
+ *
+ * At very minimum, the file will normally need to define
+ * <tt><b>PJ_XOS=1</b></tt> in the \c CFLAGS section:
+ *
+ \verbatim
+#
+# $PJPROJECT/build/os-xos.mak:
+#
+export OS_CFLAGS := $(CC_DEF)PJ_XOS=1
+export OS_CXXFLAGS :=
+export OS_LDFLAGS :=
+export OS_SOURCES :=
+ \endverbatim
+ *
+ *
+ * @subsection new_target_prj_mak_file_sec Create New Project's Make Config File
+ *
+ * Then you'll need to create xos-specific configuration file
+ * for PJLIB. This file is also named <tt><b>os-xos.mak</b></tt>,
+ * but its located in <tt><b>pjlib/build</b></tt> directory.
+ * This file will specify source files that are specific to
+ * this OS to be included in the build process.
+ *
+ * Below is a sample:
+ \verbatim
+#
+# pjlib/build/os-xos.mak:
+# XOS specific configuration for PJLIB.
+#
+export PJLIB_OBJS += os_core_xos.o \
+ os_error_unix.o \
+ os_time_ansi.o
+export TEST_OBJS += main.o
+export TARGETS = pjlib pjlib-test
+ \endverbatim
+ *
+ * @subsection new_target_src_sec Create and Edit Source Files
+ *
+ * You'll normally need to create at least these files:
+ * - <tt><b>os_core_xos.c</b></tt>: core OS specific
+ * functionality.
+ * - <tt><b>os_timestamp_xos.c</b></tt>: how to get timestamp
+ * in this OS.
+ *
+ * Depending on how things are done in your OS, you may need
+ * to create these files:
+ * - <tt><b>os_error_*.c</b></tt>: how to manipulate
+ * OS error codes. Alternatively you may use existing
+ * <tt>os_error_unix.c</tt> if the OS has \c errno and
+ * \c strerror() function.
+ * - <tt><b>ioqueue_*.c</b></tt>: if the OS has specific method
+ * to perform asynchronous I/O. Alternatively you may
+ * use existing <tt>ioqueue_select.c</tt> if the OS supports
+ * \c select() function call.
+ * - <tt><b>sock_*.c</b></tt>: if the OS has specific method
+ * to perform socket communication. Alternatively you may
+ * use existing <tt>sock_bsd.c</tt> if the OS supports
+ * BSD socket API, and edit <tt>include/pj/compat/socket.h</tt>
+ * file accordingly.
+ *
+ * You will also need to check various files in
+ * <tt><b>include/pj/compat/*.h</b></tt>, to see if they're
+ * compatible with your OS.
+ *
+ * @subsection new_target_build_file_sec Build The Project
+ *
+ * After basic building blocks have been created for the OS, then
+ * the easiest way to see which parts need to be fixed is by building
+ * the project and see the error messages.
+ *
+ * @subsection new_target_edit_vs_new_file_sec Editing Existing Files vs Creating New File
+ *
+ * When you encounter compatibility errors in PJLIB during porting,
+ * you have three options on how to fix the error:
+ * - edit the existing <tt>*.c</tt> file, and give it <tt>#ifdef</tt>
+ * switch for the new OS, or
+ * - edit <tt>include/pj/compat/*.h</tt> instead, or
+ * - create a totally new file.
+ *
+ * Basicly there is no strict rule on which approach is the best
+ * to use, however the following guidelines may be used:
+ * - if the file is expected to be completely different than
+ * any existing file, then perhaps you should create a completely
+ * new file. For example, file <tt>os_core_xxx.c</tt> will
+ * normally be different for each OS flavour.
+ * - if the difference can be localized in <tt>include/compat</tt>
+ * header file, and existing <tt>#ifdef</tt> switch is there,
+ * then preferably you should edit this <tt>include/compat</tt>
+ * header file.
+ * - if the existing <tt>*.c</tt> file has <tt>#ifdef</tt> switch,
+ * then you may add another <tt>#elif</tt> switch there. This
+ * normally is used for behaviors that are not totally
+ * different on each platform.
+ * - other than that above, use your own judgement on whether
+ * to edit the file or create new file etc.
+ */
+
+#endif /* __PJ_DOXYGEN_H__ */
+