[Asterisk-Users] spandsp hylafax asterisk and confusion

Terry Goodwin TGoodwin at packagingcorp.com
Tue May 25 07:09:17 MST 2004


Thanks for offering to help with this.

I checked out the procedures and attempted this again without success. 



Here is the end of the screen output when the compile fails.

gcc -02 -g  -Include -I ../include -c -o  app_rxfax.o  app_rxfax.c 
app_rxfax.c:45:  error:  'PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP' 
undeclared here (not in a function)
make[1]: *** [app_rxfax.o] error 1
make[1]: leaving directory '/usr/src/asterisk/apps'
make: ***  [subdirs] Error 1




The following is a copy of the modified makefile.  It looks correct as
per your description of what should have been done.

#
# Asterisk -- A telephony toolkit for Linux.
# 
# Makefile for PBX frontends (dynamically loaded)
#
# Copyright (C) 1999, Mark Spencer
#
# Mark Spencer <markster at linux-support.net>
#
# This program is free software, distributed under the terms of
# the GNU General Public License
#

USE_MYSQL_VM_INTERFACE=0
USE_POSTGRES_VM_INTERFACE=0

#APPS=app_dial.so app_playback.so app_directory.so app_intercom.so
app_mp3.so 
APPS=app_dial.so app_playback.so app_voicemail.so app_directory.so
app_mp3.so\
     app_system.so app_echo.so app_record.so app_image.so app_url.so
app_disa.so \
     app_agi.so app_qcall.so app_adsiprog.so app_getcpeid.so
app_milliwatt.so \
     app_zapateller.so app_setcallerid.so app_festival.so \
     app_queue.so app_senddtmf.so app_parkandannounce.so
app_striplsd.so \
     app_setcidname.so app_lookupcidname.so app_substring.so
app_macro.so \
     app_authenticate.so app_softhangup.so app_lookupblacklist.so \
     app_waitforring.so app_privacy.so app_db.so app_chanisavail.so \
     app_enumlookup.so app_transfer.so app_setcidnum.so app_cdr.so \
     app_hasnewvoicemail.so app_sayunixtime.so app_cut.so app_read.so
\
     app_setcdruserfield.so app_random.so app_ices.so app_eval.so \
     app_nbscat.so app_sendtext.so app_exec.so app_sms.so \
     app_groupcount.so app_txtcidname.so

ifneq (${OSARCH},Darwin)
ifneq (${OSARCH},FreeBSD)
APPS+=app_intercom.so
endif
endif

#APPS+=app_sql_postgres.so
#APPS+=app_sql_odbc.so

APPS+=$(shell if [ -f /usr/include/linux/zaptel.h ]; then echo
"app_zapras.so app_meetme.so app_flash.so app_zapbarge.so
app_zapscan.so" ; fi)
#APPS+=$(shell if [ -f /usr/include/zap.h ]; then echo "app_rpt.so" ;
fi)

APPS+=$(shell if [ -f /usr/include/spandsp.h ]; then echo "app_rxfax.so
app_txfax.so app_dtmftotext.so" ; fi)
APPS+=$(shell if [ -f /usr/local/include/spandsp.h ]; then echo
"app_rxfax.so app_txfax.so app_dtmftotext.so" ; fi)

CFLAGS+=-fPIC

ifeq ($(USE_POSTGRES_VM_INTERFACE),1)
CFLAGS+=-DUSEPOSTGRESVM
endif

ifeq ($(USE_MYSQL_VM_INTERFACE),1)
CFLAGS+=-DUSEMYSQLVM
endif

all: $(APPS)

clean:
	rm -f *.so *.o look .depend

%.so : %.o
	$(CC) $(SOLINK) -o $@ $<

app_rpt.so : app_rpt.o
	$(CC) $(SOLINK) -o $@ $< -ltonezone

install: all
	for x in $(APPS); do $(INSTALL) -m 755 $$x
$(DESTDIR)$(MODULES_DIR) ; done
	rm -f $(DESTDIR)$(MODULES_DIR)/app_datetime.so

app_todd.o: app_todd.c
	gcc -pipe -O6 -g  -Iinclude -I../include -D_REENTRANT
-march=i586 -DDO_CRASH -c -o  app_todd.o app_todd.c

app_todd.so: app_todd.o
	$(CC) $(SOLINK) -o $@ $< -L/usr/local/ssl/lib -lssl -lcrypto

app_rxfax.so : app_rxfax.o
	$(CC) $(SOLINK) -o $@ $< -lspandsp -ltiff

app_rxfax.o: app_rxfax.c
	gcc -O2 -g  -Iinclude -I../include -c -o  app_rxfax.o
app_rxfax.c

app_txfax.so : app_txfax.o
	$(CC) $(SOLINK) -o $@ $< -lspandsp -ltiff

app_txfax.o: app_txfax.c
	gcc -O2 -g  -Iinclude -I../include -c -o  app_txfax.o
app_txfax.c

app_dtmftotext.so : app_dtmftotext.o
	$(CC) $(SOLINK) -o $@ $< -lspandsp -ltiff

app_dtmftotexto: app_dtmftotext.c
	gcc -O2 -g  -Iinclude -I../include -c -o  app_dtmftotext.o
app_dtmftotext.c

app_voicemail.so : app_voicemail.o
ifeq ($(USE_MYSQL_VM_INTERFACE),1)
	$(CC) $(SOLINK) -o $@ $(MLFLAGS) $< -L/usr/lib/mysql
-lmysqlclient -lz
else
ifeq ($(USE_POSTGRES_VM_INTERFACE),1)
	$(CC) $(SOLINK) -o $@ $(MLFLAGS) $< -lpq
else
	$(CC) $(SOLINK) -o $@ $(MLFLAGS) $< 
endif
endif

app_sql_postgres.o: app_sql_postgres.c
	$(CC) -pipe -I/usr/local/pgsql/include $(CFLAGS) -c -o
app_sql_postgres.o app_sql_postgres.c

app_sql_postgres.so: app_sql_postgres.o
	$(CC) $(SOLINK) -o $@ $< -L/usr/local/pgsql/lib -lpq

app_sql_odbc.so: app_sql_odbc.o
	$(CC) $(SOLINK) -o $@ $< -lodbc

look:	look.c
	gcc -pipe -O6 -g look.c -o look -lncurses

ifneq ($(wildcard .depend),)
include .depend
endif

depend: .depend

.depend:
	../mkdep $(CFLAGS) `ls *.c`

env:
	env


>>> Stephen Davies <steve at daviesfam.org> 5/25/2004 8:10:22 AM >>>


On Tue, 25 May 2004, Terry Goodwin wrote:

> I have been attempting to download, compile and configure spandsp to
> function with * without much luck.  I am guessing that some
assumptions
> were made regarding the users knowledge level of Linux.  Sadly,  I
must
> not live up to those assumptions.  
> 
> My problem begins when after compiling spandsp I look for the
> app_rxfax.c, app_txfax.c, app_dtmftotext.c and makefile.patch files
to
> place in the /usr/src/asterisk/apps directory.  I cant seem to find
> these files ANYWHERE on my system.  So I then make the assumption
that
> they were not created by the compile of spandsp nor do they exist in
the
> source of spandsp.  I did locate these files on the FTP server where
I
> downloaded the source (I believe it was version J).  Not sure if the
> files located on this site were version specific or not I downloaded
> them anyway and placed them into the /usr/src/asterisk/apps
directory. 
> I think I figured out that you need to copy the makefile.patch to
the
> same directory and run it against the makefile that exists in the
apps
> directory.  (Never done this before so I might have done the
equivalent
> of gassing up my car via the radiator)

>Hi,

>You need to understand that spandsp is a general purpose library for
>doing digital signal processing.  It's of general use, not for
>Asterisk is particular.

>So when you download and compile spandsp, you are simply installing
>that library on your system.  Asterisk knows nothing about using it
at
>this point.

>So that I presume went well for you: if so you will find some
>libspandsp* files in your /usr/local/lib/ directory.
>
>For the Asterisk applications (rxfax etc) you need to download the
>various .c files and the makefile.patch as you did.  The .c files
just
>get copied into the apps directory, the patch you use to patch the
>Makefile.
>
>If it worked right you can look in the Makefile and should see lines
>like so:
>
>app_rxfax.so : app_rxfax.o
>       $(CC) $(SOLINK) -o $@ $< -lspandsp -ltiff
>
>app_rxfax.o: app_rxfax.c
>       gcc -O2 -g  -Iinclude -I../include -c -o  app_rxfax.o
app_rxfax.c
>
>app_txfax.so : app_txfax.o
>       $(CC) $(SOLINK) -o $@ $< -lspandsp -ltiff
>
>app_txfax.o: app_txfax.c
 >      gcc -O2 -g  -Iinclude -I../include -c -o  app_txfax.o
app_txfax.c

>app_dtmftotext.so : app_dtmftotext.o
>       $(CC) $(SOLINK) -o $@ $< -lspandsp -ltiff
>
>app_dtmftotexto: app_dtmftotext.c
>       gcc -O2 -g  -Iinclude -I../include -c -o  app_dtmftotext.o
app_dtmftotext.c
>
>And some more lines in similar vein.
>
>Then it would be back up to the main asterisk directory, "make
>clean" and "make".  If you get an error compiling, send it to me and
>I'll see if I can see what's wrong.
>
>Steve





More information about the asterisk-users mailing list