diff --git a/Makefile b/Makefile index 3e97c7ef28..c4d9ababb5 100755 --- a/Makefile +++ b/Makefile @@ -98,6 +98,9 @@ CFLAGS=-pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarati CFLAGS+=$(OPTIMIZE) CFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi) CFLAGS+=$(shell if uname -m | grep -q ppc; then echo "-fsigned-char"; fi) +ifeq (${OSARCH},FreeBSD) +CFLAGS+=-pthread +endif ifeq (${OSARCH},OpenBSD) CFLAGS+=-pthread endif @@ -131,7 +134,18 @@ SUBDIRS=res channels pbx apps codecs formats agi cdr astman ifeq (${OSARCH},Linux) LIBS=-ldl endif -LIBS+=-lpthread -lncurses -lm -lresolv #-lnjamd +ifeq (${OSARCH},OpenBSD) +LIBS=-pthread +else +ifeq (${OSARCH},FreeBSD) +LIBS=-pthread +else +endif +endif +LIBS+=-lncurses -lm +ifeq (${OSARCH},Linux) +-lresolv #-lnjamd +endif OBJS=io.o sched.o logger.o frame.o loader.o config.o channel.o \ translate.o file.o say.o pbx.o cli.o md5.o term.o \ ulaw.o alaw.o callerid.o fskmodem.o image.o app.o \ diff --git a/apps/app_intercom.c b/apps/app_intercom.c index c4be328dd7..4c2379ca8c 100755 --- a/apps/app_intercom.c +++ b/apps/app_intercom.c @@ -28,6 +28,8 @@ #include #ifdef __linux__ #include +#elif defined(__FreeBSD__) +#include #else #include #endif diff --git a/channels/Makefile b/channels/Makefile index 44f614e68c..82d524a7f6 100755 --- a/channels/Makefile +++ b/channels/Makefile @@ -91,13 +91,14 @@ ringtone.h: gentone chan_oss.o: chan_oss.c busy.h ringtone.h -chan_iax2.so: chan_iax2.o iax2-parser.o -ifeq (${OSARCH},Linux) - $(CC) -shared -Xlinker -x -o $@ chan_iax2.o iax2-parser.o -else - $(CC) -shared -Xlinker -x -o $@ chan_iax2.o iax2-parser.o -lossaudio +ifeq (${OSARCH},OpenBSD) +chan_oss.so: chan_oss.o + $(CC) -shared -Xlinker -x -o $@ chan_oss.o -lossaudio endif +chan_iax2.so: chan_iax2.o iax2-parser.o + $(CC) -shared -Xlinker -x -o $@ chan_iax2.o iax2-parser.o + chan_zap.o: $(CHANZAP) $(CC) -c $(CFLAGS) -o chan_zap.o $(CHANZAP) diff --git a/channels/chan_iax.c b/channels/chan_iax.c index 93f7172e9e..12cc5b8844 100755 --- a/channels/chan_iax.c +++ b/channels/chan_iax.c @@ -532,7 +532,7 @@ static void showframe(struct ast_iax_frame *f, struct ast_iax_full_hdr *fhi, int (rx ? "Rx" : "Tx"), retries, ntohs(fh->seqno), class, subclass); fprintf(stderr, -" Timestamp: %05dms Callno: %5.5d DCall: %5.5d [%s:%d]\n", +" Timestamp: %05ldms Callno: %5.5d DCall: %5.5d [%s:%d]\n", ntohl(fh->ts), (short)(ntohs(fh->callno) & ~AST_FLAG_FULL), (short) ntohs(fh->dcallno), inet_ntoa(sin->sin_addr), ntohs(sin->sin_port)); diff --git a/channels/chan_oss.c b/channels/chan_oss.c index 28f20d4857..d55f8569bd 100755 --- a/channels/chan_oss.c +++ b/channels/chan_oss.c @@ -35,6 +35,8 @@ #include #ifdef __linux #include +#elif defined(__FreeBSD__) +#include #else #include #endif diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c index 4583814a70..ac3c4e784f 100755 --- a/channels/chan_skinny.c +++ b/channels/chan_skinny.c @@ -863,6 +863,7 @@ static void transmit_tone(struct skinnysession *s, int tone) transmit_response(s, req); } +#if 0 static void transmit_selectsoftkeys(struct skinnysession *s, int instance, int callid, int softkey) { skinny_req *req; @@ -881,6 +882,7 @@ static void transmit_selectsoftkeys(struct skinnysession *s, int instance, int c req->data.selectsoftkey.softKeySetIndex = softkey; transmit_response(s, req); } +#endif static void transmit_lamp_indication(struct skinnysession *s, int instance, int indication) { @@ -2318,7 +2320,7 @@ static void *accept_thread(void *ignore) for (;;) { sinlen = sizeof(sin); - as = accept(skinnysock, &sin, &sinlen); + as = accept(skinnysock, (struct sockaddr *)&sin, &sinlen); if (as < 0) { ast_log(LOG_NOTICE, "Accept returned -1: %s\n", strerror(errno)); continue; @@ -2393,7 +2395,7 @@ static int restart_monitor(void) { /* If we're supposed to be stopped -- stay stopped */ - if (monitor_thread == -2) + if (monitor_thread == (pthread_t)-2) return 0; if (ast_mutex_lock(&monlock)) { ast_log(LOG_WARNING, "Unable to lock monitor\n"); diff --git a/channels/iax2-parser.c b/channels/iax2-parser.c index 5b78a50c41..1cfce461ac 100755 --- a/channels/iax2-parser.c +++ b/channels/iax2-parser.c @@ -64,7 +64,7 @@ static void dump_string(char *output, int maxlen, void *value, int len) static void dump_int(char *output, int maxlen, void *value, int len) { if (len == sizeof(unsigned int)) - snprintf(output, maxlen, "%d", ntohl(*((unsigned int *)value))); + snprintf(output, maxlen, "%ld", ntohl(*((unsigned int *)value))); else snprintf(output, maxlen, "Invalid INT"); } @@ -287,7 +287,7 @@ snprintf(tmp, sizeof(tmp), retries, fh->oseqno, fh->iseqno, class, subclass); outputf(tmp); snprintf(tmp, sizeof(tmp), -" Timestamp: %05dms SCall: %5.5d DCall: %5.5d [%s:%d]\n", +" Timestamp: %05ldms SCall: %5.5d DCall: %5.5d [%s:%d]\n", ntohl(fh->ts), ntohs(fh->scallno) & ~IAX_FLAG_FULL, ntohs(fh->dcallno) & ~IAX_FLAG_RETRANS, inet_ntoa(sin->sin_addr), ntohs(sin->sin_port)); diff --git a/codecs/Makefile b/codecs/Makefile index ac812972cf..c6bfbe97de 100755 --- a/codecs/Makefile +++ b/codecs/Makefile @@ -22,6 +22,7 @@ MODG723+=$(shell [ -f g723.1b/coder2.c ] && echo "codec_g723_1b.so") MODSPEEX=$(shell [ -f /usr/include/speex.h ] || [ -f /usr/local/include/speex.h ] && echo "codec_speex.so") MODILBC=$(shell [ -f ilbc/iLBC_decode.h ] && echo "codec_ilbc.so") CFLAGS+=-fPIC +CFLAGS+=$(shell [ -f /usr/local/include/speex.h ] && echo "-I/usr/local/include") LIBG723=g723.1/libg723.a LIBG723B=g723.1b/libg723b.a @@ -30,7 +31,8 @@ LIBGSM=$(shell if uname -m | grep -q 86; then echo gsm/lib/libgsm.a; else echo " LIBGSMT=$(shell if uname -m | grep -q 86; then echo gsm/lib/libgsm.a; fi) LIBMP3=mp3/libmp3.a LIBLPC10=lpc10/liblpc10.a -LIBSPEEX=-lspeex -lm +LIBSPEEX=$(shell [ -f /usr/local/lib/libspeex.a ] && echo "-L/usr/local/lib") +LIBSPEEX+=-lspeex -lm LIBILBC=ilbc/libilbc.a CODECS+=$(MODG723) $(MODSPEEX) $(MODILBC) codec_gsm.so codec_mp3_d.so codec_lpc10.so \ diff --git a/codecs/lpc10/lpcini.c b/codecs/lpc10/lpcini.c index 90d61b9878..e39f077502 100755 --- a/codecs/lpc10/lpcini.c +++ b/codecs/lpc10/lpcini.c @@ -1,8 +1,11 @@ /* $Log$ -Revision 1.14 2003/02/12 13:59:15 matteo -mer feb 12 14:56:57 CET 2003 +Revision 1.15 2003/10/16 10:44:04 markster +Sane FreeBSD patch + +Revision 1.2 2003/10/16 10:44:04 markster +Sane FreeBSD patch Revision 1.1.1.1 2003/02/12 13:59:15 matteo mer feb 12 14:56:57 CET 2003 @@ -34,7 +37,7 @@ extern int lpcini_(void); #include "f2c.h" -#include +#include /* Common Block Declarations */ @@ -48,9 +51,12 @@ struct { /* ***************************************************************** */ /* $Log$ - * Revision 1.14 2003/02/12 13:59:15 matteo - * mer feb 12 14:56:57 CET 2003 + * Revision 1.15 2003/10/16 10:44:04 markster + * Sane FreeBSD patch * +/* Revision 1.2 2003/10/16 10:44:04 markster +/* Sane FreeBSD patch +/* /* Revision 1.1.1.1 2003/02/12 13:59:15 matteo /* mer feb 12 14:56:57 CET 2003 /* @@ -77,9 +83,12 @@ struct { { /* $Log$ - * Revision 1.14 2003/02/12 13:59:15 matteo - * mer feb 12 14:56:57 CET 2003 + * Revision 1.15 2003/10/16 10:44:04 markster + * Sane FreeBSD patch * +/* Revision 1.2 2003/10/16 10:44:04 markster +/* Sane FreeBSD patch +/* /* Revision 1.1.1.1 2003/02/12 13:59:15 matteo /* mer feb 12 14:56:57 CET 2003 /* @@ -106,9 +115,12 @@ struct { /* LPC Configuration parameters: */ /* Frame size, Prediction order, Pitch period */ /* $Log$ - * Revision 1.14 2003/02/12 13:59:15 matteo - * mer feb 12 14:56:57 CET 2003 + * Revision 1.15 2003/10/16 10:44:04 markster + * Sane FreeBSD patch * +/* Revision 1.2 2003/10/16 10:44:04 markster +/* Sane FreeBSD patch +/* /* Revision 1.1.1.1 2003/02/12 13:59:15 matteo /* mer feb 12 14:56:57 CET 2003 /* diff --git a/codecs/mp3/include/L3.h b/codecs/mp3/include/L3.h index e920afd94d..337a721fb7 100755 --- a/codecs/mp3/include/L3.h +++ b/codecs/mp3/include/L3.h @@ -37,6 +37,13 @@ ____________________________________________________________________________*/ /* #define GLOBAL_GAIN_SCALE 0 */ +#ifdef __FreeBSD__ +#ifdef __i386__ +#undef LITTLE_ENDIAN +#define LITTLE_ENDIAN 1 +#endif +#endif + #ifdef _M_IX86 #define LITTLE_ENDIAN 1 #endif