Finished autoconf.
-> Commments are welcome. deleted: Makefile modified: Makefile.am new file: Makefile.in modified: README new file: aclocal.m4 modified: action_vbox.cpp modified: alawulaw.h modified: autogen.sh new file: config.h.in new file: configure modified: configure.ac modified: default/interface.conf modified: default/options.conf modified: dss1.cpp modified: dss1.h modified: extension.c modified: genext.c modified: interface.c modified: interface.h modified: mISDN.cpp modified: mISDN.h modified: main.h new file: mkinstalldirs modified: options.c modified: options.h modified: port.cpp modified: route.c modified: todo.txt modified: tones.c modified: vbox.cpp deleted: watch.c
This commit is contained in:
parent
6d3d13def3
commit
26c7e0d22e
332
Makefile
332
Makefile
|
@ -1,332 +0,0 @@
|
|||
#*****************************************************************************\
|
||||
#* **
|
||||
#* Linux Call Router **
|
||||
#* **
|
||||
#*---------------------------------------------------------------------------**
|
||||
#* Copyright: Andreas Eversberg **
|
||||
#* **
|
||||
#* Makefile **
|
||||
#* **
|
||||
#*****************************************************************************/
|
||||
|
||||
WITH-CRYPTO = 42 # comment this out, if no libcrypto should be used
|
||||
WITH-ASTERISK = 42 # comment this out, if you don't require built-in Asterisk channel driver.
|
||||
# note: check your location and the names of libraries.
|
||||
|
||||
# select location to install
|
||||
INSTALL_BIN = /usr/local/bin
|
||||
INSTALL_CHAN = /usr/lib/asterisk/modules
|
||||
INSTALL_DATA = /usr/local/lcr
|
||||
|
||||
LIBS += -lmisdn -lpthread
|
||||
CHANLIBS += -lmISDN
|
||||
|
||||
# give location of the curses or ncurses library
|
||||
CURSES = -lncurses
|
||||
|
||||
CC = gcc
|
||||
PP = g++
|
||||
WIZZARD = ./wizzard
|
||||
LCR = ./lcr
|
||||
LCRADMIN = ./lcradmin
|
||||
CFLAGS_LCRADMIN = -DINSTALL_DATA=\"$(INSTALL_DATA)\"
|
||||
ifdef WITH-ASTERISK
|
||||
CHAN_LCR = ./chan_lcr.so
|
||||
endif
|
||||
LCRWATCH = ./lcrwatch
|
||||
GEN = ./gentones
|
||||
GENW = ./genwave
|
||||
GENRC = ./genrc
|
||||
GENEXT = ./genextension
|
||||
CFLAGS = -Wall -g -DINSTALL_DATA=\"$(INSTALL_DATA)\"
|
||||
CFLAGS += -I/usr/include/mISDNuser
|
||||
#CFLAGS = -Wall -g -DINSTALL_DATA=\"$(INSTALL_DATA)\"
|
||||
ifdef WITH-CRYPTO
|
||||
CFLAGS += -DCRYPTO
|
||||
endif
|
||||
ifdef WITH-CRYPTO
|
||||
LIBDIR += -L/usr/local/ssl/lib
|
||||
CFLAGS += -I/usr/local/ssl/include
|
||||
LIBS += -lcrypto
|
||||
#LIBS += /usr/local/ssl/lib/libcrypto.a
|
||||
endif
|
||||
|
||||
#all:
|
||||
# @echo Note that this version is a beta release. It is only for testing purpose.
|
||||
# @echo Please report any bug. To compile use \"make beta\".
|
||||
# @exit
|
||||
|
||||
all: $(CHAN_LCR) $(LCR) $(LCRADMIN) $(GEN) $(GENW) $(GENRC) $(GENEXT)
|
||||
@sh -c 'grep -n strcpy *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use strcpy, use makro instead." ; exit -1 ; fi'
|
||||
@sh -c 'grep -n strncpy *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use strncpy, use makro instead." ; exit -1 ; fi'
|
||||
@sh -c 'grep -n strcat *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use strcat, use makro instead." ; exit -1 ; fi'
|
||||
@sh -c 'grep -n strncat *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use strncat, use makro instead." ; exit -1 ; fi'
|
||||
@sh -c 'grep -n sprintf *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use sprintf, use makro instead." ; exit -1 ; fi'
|
||||
@sh -c 'grep -n snprintf *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use snprintf, use makro instead." ; exit -1 ; fi'
|
||||
@echo "All LCR binaries done"
|
||||
@exit
|
||||
|
||||
main.o: main.c *.h Makefile
|
||||
$(PP) -c $(CFLAGS) main.c -o main.o
|
||||
|
||||
message.o: message.c *.h Makefile
|
||||
$(PP) -c $(CFLAGS) message.c -o message.o
|
||||
|
||||
options.o: options.c *.h Makefile
|
||||
$(CC) -c $(CFLAGS) options.c -o options.o
|
||||
options.ooo: options.c *.h Makefile
|
||||
$(PP) -c $(CFLAGS) options.c -o options.ooo
|
||||
|
||||
interface.o: interface.c *.h Makefile
|
||||
$(PP) -c $(CFLAGS) interface.c -o interface.o
|
||||
|
||||
extension.o: extension.c *.h Makefile
|
||||
$(PP) -c $(CFLAGS) extension.c -o extension.o
|
||||
|
||||
route.o: route.c *.h Makefile
|
||||
$(PP) -c $(CFLAGS) route.c -o route.o
|
||||
|
||||
port.o: port.cpp *.h Makefile
|
||||
$(PP) -c $(CFLAGS) port.cpp -o port.o
|
||||
|
||||
mISDN.o: mISDN.cpp *.h Makefile
|
||||
$(PP) -c $(CFLAGS) mISDN.cpp -o mISDN.o
|
||||
|
||||
dss1.o: dss1.cpp ie.cpp *.h Makefile
|
||||
$(PP) -c $(CFLAGS) dss1.cpp -o dss1.o
|
||||
|
||||
#knock.o: knock.cpp *.h Makefile
|
||||
# $(PP) -c $(CFLAGS) knock.cpp -o knock.o
|
||||
#
|
||||
vbox.o: vbox.cpp *.h Makefile
|
||||
$(PP) -c $(CFLAGS) vbox.cpp -o vbox.o
|
||||
|
||||
mail.o: mail.c *.h Makefile
|
||||
$(PP) -c $(CFLAGS) mail.c -o mail.o
|
||||
|
||||
action.o: action.cpp *.h Makefile
|
||||
$(PP) -c $(CFLAGS) action.cpp -o action.o
|
||||
|
||||
action_vbox.o: action_vbox.cpp *.h Makefile
|
||||
$(PP) -c $(CFLAGS) action_vbox.cpp -o action_vbox.o
|
||||
|
||||
action_efi.o: action_efi.cpp *.h Makefile
|
||||
$(PP) -c $(CFLAGS) action_efi.cpp -o action_efi.o
|
||||
|
||||
endpoint.o: endpoint.cpp *.h Makefile
|
||||
$(PP) -c $(CFLAGS) endpoint.cpp -o endpoint.o
|
||||
|
||||
endpointapp.o: endpointapp.cpp *.h Makefile
|
||||
$(PP) -c $(CFLAGS) endpointapp.cpp -o endpointapp.o
|
||||
|
||||
apppbx.o: apppbx.cpp *.h Makefile
|
||||
$(PP) -c $(CFLAGS) apppbx.cpp -o apppbx.o
|
||||
|
||||
callerid.o: callerid.c *.h Makefile
|
||||
$(CC) -c $(CFLAGS) callerid.c -o callerid.o
|
||||
callerid.ooo: callerid.c *.h Makefile
|
||||
$(PP) -c $(CFLAGS) callerid.c -o callerid.ooo
|
||||
|
||||
join.o: join.cpp *.h Makefile
|
||||
$(PP) -c $(CFLAGS) join.cpp -o join.o
|
||||
|
||||
joinpbx.o: joinpbx.cpp *.h Makefile
|
||||
$(PP) -c $(CFLAGS) joinpbx.cpp -o joinpbx.o
|
||||
|
||||
joinremote.o: joinremote.cpp *.h Makefile
|
||||
$(PP) -c $(CFLAGS) joinremote.cpp -o joinremote.o
|
||||
|
||||
cause.o: cause.c *.h Makefile
|
||||
$(PP) -c $(CFLAGS) cause.c -o cause.o
|
||||
|
||||
alawulaw.o: alawulaw.c *.h Makefile
|
||||
$(PP) -c $(CFLAGS) alawulaw.c -o alawulaw.o
|
||||
|
||||
tones.o: tones.c *.h Makefile
|
||||
$(PP) -c $(CFLAGS) tones.c -o tones.o
|
||||
|
||||
crypt.o: crypt.cpp *.h Makefile
|
||||
$(PP) -c $(CFLAGS) crypt.cpp -o crypt.o
|
||||
|
||||
genext.o: genext.c *.h Makefile
|
||||
$(PP) -c $(CFLAGS) genext.c -o genext.o
|
||||
|
||||
socket_server.o: socket_server.c *.h Makefile
|
||||
$(PP) -c $(CFLAGS) socket_server.c -o socket_server.o
|
||||
|
||||
trace.o: trace.c *.h Makefile
|
||||
$(PP) -c $(CFLAGS) trace.c -o trace.o
|
||||
|
||||
chan_lcr.o: chan_lcr.c *.h Makefile
|
||||
$(CC) -D_GNU_SOURCE -c $(CFLAGS) chan_lcr.c -o chan_lcr.o
|
||||
|
||||
bchannel.o: bchannel.c *.h Makefile
|
||||
$(CC) -D_GNU_SOURCE -c $(CFLAGS) bchannel.c -o bchannel.o
|
||||
|
||||
|
||||
#$(WIZZARD): wizzard.c Makefile
|
||||
# $(PP) $(LIBDIR) $(CFLAGS) -lm wizzard.c \
|
||||
# -o $(WIZZARD)
|
||||
|
||||
$(LCR): main.o \
|
||||
options.ooo \
|
||||
interface.o \
|
||||
extension.o \
|
||||
cause.o \
|
||||
alawulaw.o \
|
||||
tones.o \
|
||||
message.o \
|
||||
route.o \
|
||||
port.o \
|
||||
mISDN.o \
|
||||
dss1.o \
|
||||
vbox.o \
|
||||
endpoint.o \
|
||||
endpointapp.o \
|
||||
apppbx.o \
|
||||
callerid.ooo \
|
||||
crypt.o \
|
||||
action.o \
|
||||
action_vbox.o \
|
||||
action_efi.o \
|
||||
mail.o \
|
||||
join.o \
|
||||
joinpbx.o \
|
||||
joinremote.o \
|
||||
socket_server.o \
|
||||
trace.o
|
||||
$(PP) $(LIBDIR) \
|
||||
main.o \
|
||||
options.ooo \
|
||||
interface.o \
|
||||
extension.o \
|
||||
cause.o \
|
||||
alawulaw.o \
|
||||
tones.o \
|
||||
message.o \
|
||||
route.o \
|
||||
port.o \
|
||||
mISDN.o \
|
||||
dss1.o \
|
||||
vbox.o \
|
||||
endpoint.o \
|
||||
endpointapp.o \
|
||||
apppbx.o \
|
||||
callerid.ooo \
|
||||
crypt.o \
|
||||
action.o \
|
||||
action_vbox.o \
|
||||
action_efi.o \
|
||||
mail.o \
|
||||
join.o \
|
||||
joinpbx.o \
|
||||
joinremote.o \
|
||||
socket_server.o \
|
||||
trace.o \
|
||||
$(LIBS) -o $(LCR)
|
||||
|
||||
$(LCRADMIN): lcradmin.c cause.c options.c *.h Makefile
|
||||
$(PP) $(LIBDIR) $(CFLAGS_LCRADMIN) $(CURSES) -lm lcradmin.c cause.c \
|
||||
options.c -o $(LCRADMIN)
|
||||
|
||||
$(CHAN_LCR): chan_lcr.o bchannel.o callerid.o options.o *.h Makefile
|
||||
$(CC) -shared -fPIC -Xlinker -x $(LDFLAGS) -o $(CHAN_LCR) chan_lcr.o \
|
||||
bchannel.o callerid.o options.o
|
||||
|
||||
|
||||
$(LCRWATCH): watch.c *.h Makefile
|
||||
$(PP) $(LIBDIR) $(CFLAGS) -lm watch.c \
|
||||
-o $(LCRWATCH)
|
||||
|
||||
$(GEN): gentones.c *.h Makefile
|
||||
$(PP) $(LIBDIR) $(CFLAGS) -lm gentones.c \
|
||||
-o $(GEN)
|
||||
|
||||
$(GENW):genwave.c *.h Makefile
|
||||
$(PP) $(LIBDIR) $(CFLAGS) -lm genwave.c \
|
||||
-o $(GENW)
|
||||
|
||||
$(GENRC): genrc.c *.h Makefile
|
||||
$(PP) $(LIBDIR) $(CFLAGS) -lm genrc.c \
|
||||
-o $(GENRC)
|
||||
|
||||
$(GENEXT): options.ooo extension.o genext.o
|
||||
$(PP) $(CFLAGS) options.ooo extension.o genext.o -o $(GENEXT)
|
||||
|
||||
#install:
|
||||
# @echo Remember, this is a beta release. To overwrite your current installed
|
||||
# @echo version, use \"make beta_install\".
|
||||
# @exit
|
||||
|
||||
install:
|
||||
make
|
||||
cp $(LCR) $(INSTALL_BIN)
|
||||
cp $(LCRADMIN) $(INSTALL_BIN)
|
||||
ifdef WITH-ASTERISK
|
||||
cp $(CHAN_LCR) $(INSTALL_CHAN)
|
||||
endif
|
||||
# cp $(LCRWATCH) $(INSTALL_BIN)
|
||||
cp $(GEN) $(INSTALL_BIN)
|
||||
cp $(GENW) $(INSTALL_BIN)
|
||||
cp $(GENRC) $(INSTALL_BIN)
|
||||
cp $(GENEXT) $(INSTALL_BIN)
|
||||
mkdir -p $(INSTALL_DATA)
|
||||
mkdir -p $(INSTALL_DATA)/extensions
|
||||
@if test -a $(INSTALL_DATA)/options.conf ; then \
|
||||
echo "NOTE: options.conf already exists, not changed." ; else \
|
||||
cp -v default/options.conf $(INSTALL_DATA) ; fi
|
||||
@if test -a $(INSTALL_DATA)/interface.conf ; then \
|
||||
echo "NOTE: interface.conf already exists, not changed." ; else \
|
||||
cp -v default/interface.conf $(INSTALL_DATA) ; fi
|
||||
@if test -a $(INSTALL_DATA)/routing.conf ; then \
|
||||
echo "NOTE: routing.conf already exists, not changed." ; else \
|
||||
cp -v default/routing.conf $(INSTALL_DATA) ; fi
|
||||
@if test -a $(INSTALL_DATA)/numbering_int.conf ; then \
|
||||
echo "NOTE: numbering_int.conf is obsolete, please use routing." ; fi
|
||||
@if test -a $(INSTALL_DATA)/numbering_ext.conf ; then \
|
||||
echo "NOTE: numbering_ext.conf is obsolete, please use routing." ; fi
|
||||
@if test -a $(INSTALL_DATA)/directory.list ; then \
|
||||
echo "NOTE: directory.list already exists, not changed." ; else \
|
||||
cp -v default/directory.list $(INSTALL_DATA) ; fi
|
||||
@if test -a $(INSTALL_DATA)/tones_american ; then \
|
||||
echo "NOTE: american tones already exists, not overwritten." ; else \
|
||||
cp -a tones_american $(INSTALL_DATA) ; fi
|
||||
@if test -a $(INSTALL_DATA)/tones_german ; then \
|
||||
echo "NOTE: german tones already exists, not overwritten." ; else \
|
||||
cp -a tones_german $(INSTALL_DATA) ; fi
|
||||
@if test -a $(INSTALL_DATA)/vbox_german ; then \
|
||||
echo "NOTE: german vbox tones already exists, not overwritten." ; else \
|
||||
cp -a vbox_german $(INSTALL_DATA) ; fi
|
||||
@if test -a $(INSTALL_DATA)/vbox_english ; then \
|
||||
echo "NOTE: english vbox tones already exists, not overwritten." ; else \
|
||||
cp -a vbox_english $(INSTALL_DATA) ; fi
|
||||
@if test -a $(INSTALL_DATA)/tones_efi ; then \
|
||||
echo "NOTE: special efi tones already exists, not overwritten." ; else \
|
||||
cp -a tones_efi $(INSTALL_DATA) ; fi
|
||||
|
||||
clean:
|
||||
touch *
|
||||
rm -f $(LCR) $(LCRADMIN) $(CHAN_LCR) $(LCRWATCH) $(GEN) $(GENW) $(GENRC) $(GENEXT)
|
||||
rm -f *.o *.ooo
|
||||
rm -f .*.c.sw* .*.cpp.sw* .*.h.sw*
|
||||
rm -f bla nohup.out a.out
|
||||
rm -f debug*.log
|
||||
|
||||
tar:
|
||||
make clean
|
||||
cd .. && tar --exclude=.git -cvzf lcr_`date +%Y%m%d`.tar.gz lcr
|
||||
|
||||
start: $(LCR)
|
||||
$(LCR) start
|
||||
|
||||
fork: $(LCR)
|
||||
$(LCR) fork
|
||||
|
||||
snapshot: clean
|
||||
DIR=lcr-$$(date +"20%y_%m_%d") ; \
|
||||
mkdir -p /tmp/$$DIR ; \
|
||||
cp -a * /tmp/$$DIR ; \
|
||||
cd /tmp/; \
|
||||
tar czf $$DIR.tar.gz $$DIR
|
||||
|
||||
|
581
Makefile.am
581
Makefile.am
|
@ -1,504 +1,129 @@
|
|||
OUTDATED!!!! must be rewritten! see Makefile
|
||||
## Makefile.am -- Process this file with automake to produce Makefile.in
|
||||
|
||||
## Makefile.am -- Process this file with automake to produce Makefile.in
|
||||
## This file is part of linux-call-router
|
||||
## Copyright (C) 2007 Joerg Habenicht (j.habenicht@gmx.de)
|
||||
## Copyright (C) 2008 Peter Schlaile (peter -at- schlaile.de)
|
||||
## Copyright (C) 2008 Andreas Eversberg (andreas@eversberg.eu)
|
||||
|
||||
## 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 library; see the file COPYING. If not, write to
|
||||
## the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
## Boston, MA 02110-1301, USA.
|
||||
|
||||
#INSTALLATION_DEFINES = \
|
||||
# -DCONFIG_DATA="\"$(pkgsysconfdir)\"" \
|
||||
# -DSHARE_DATA="\"$(pkgdatadir)\"" \
|
||||
# -DLOG_DIR="\"$(pkglogdir)\"" \
|
||||
# -DEXTENSION_DATA="\"$(localstatedir)/lib/lcr\""
|
||||
|
||||
INSTALLdir = /usr/local/lcr
|
||||
|
||||
INSTALLATION_DEFINES = \
|
||||
-DCONFIG_DATA="\"$(pkgsysconfdir)\"" \
|
||||
-DSHARE_DATA="\"$(pkgdatadir)\"" \
|
||||
-DLOG_DIR="\"$(pkglogdir)\"" \
|
||||
-DINSTALL_DATA="\"$(pkgdatadir)\""
|
||||
|
||||
# FIXME: find a macro for the include path of linux
|
||||
# or is /lib/modules/$(uname -r)/source/include sufficient?
|
||||
# Do we take /usr/src/linux or /usr/src/linux-$(uname -r)
|
||||
# if complied without modules?
|
||||
# UPDATE: Not needed, compiles cleanly without.
|
||||
INCLUDES = $(all_includes) $(INSTALLATION_DEFINES)
|
||||
-DCONFIG_DATA="\"$(INSTALLdir)\"" \
|
||||
-DSHARE_DATA="\"$(INSTALLdir)\"" \
|
||||
-DLOG_DIR="\"$(INSTALLdir)\"" \
|
||||
-DEXTENSION_DATA="\"$(INSTALLdir)/extensions\""
|
||||
|
||||
INCLUDES = $(all_includes) -I/usr/include/mISDNuser $(INSTALLATION_DEFINES)
|
||||
|
||||
|
||||
# add nonstandard lib installation paths to this
|
||||
MISDN_LIB_INSTALL_PATH=$(misdnuser_libraries)
|
||||
AM_LDFLAGS = -Wl,-rpath,$(MISDN_LIB_INSTALL_PATH)
|
||||
|
||||
|
||||
bin_PROGRAMS = lcradmin gentones genwave #lcrwatch
|
||||
sbin_PROGRAMS = lcr genrc genextension
|
||||
|
||||
|
||||
conditional_sources_common = \
|
||||
main.c \
|
||||
options.c \
|
||||
interface.c \
|
||||
extension.c \
|
||||
cause.c \
|
||||
alawulaw.c \
|
||||
tones.c \
|
||||
message.c \
|
||||
route.c \
|
||||
port.cpp \
|
||||
mISDN.cpp \
|
||||
dss1.cpp \
|
||||
vbox.cpp \
|
||||
endpoint.cpp \
|
||||
endpointapp.cpp \
|
||||
apppbx.cpp \
|
||||
crypt.cpp \
|
||||
action.cpp \
|
||||
action_vbox.cpp \
|
||||
action_efi.cpp \
|
||||
mail.c \
|
||||
join.cpp \
|
||||
joinpbx.cpp \
|
||||
joinremote.cpp \
|
||||
admin_server.c \
|
||||
trace.c
|
||||
|
||||
# extension.c main.c tones.c \
|
||||
# admin_server.c message.c \
|
||||
# alawulaw.c interface.c options.c \
|
||||
# cause.c mail.c route.c \
|
||||
# action.cpp crypt.cpp port.cpp \
|
||||
# action_efi.cpp dss1.cpp rule.cpp \
|
||||
# action_vbox.cpp endpointapp.cpp ie.cpp \
|
||||
# apppbx.cpp endpoint.cpp vbox.cpp \
|
||||
# call.cpp mISDN.cpp vector.cpp \
|
||||
# admin.h dss1.h route.h \
|
||||
# admin_server.h endpointapp.h rule.h \
|
||||
# alawulaw.h endpoint.h interface.h save.h \
|
||||
# apppbx.h extension.h main.h \
|
||||
# call.h message.h options.h tones.h \
|
||||
# cause.h mISDN.h port.h vbox.h \
|
||||
# crypt.h q931.h vector.h
|
||||
|
||||
|
||||
|
||||
|
||||
# wizzard is currently disabled.
|
||||
# it can be compiled with "make wizzard.o" but nothing more
|
||||
#wizzard_SOURCES = wizzard.c wizzard.h
|
||||
|
||||
lcr_SOURCES = $(conditional_sources_common)
|
||||
lcr_LDADD = $(all_libraries) -lisdnnet -lmISDN
|
||||
if WITH_CRYPTO
|
||||
# TODO: maybe we could add crypt.{h,cpp} here?
|
||||
#lcr_LDADD += -lcrypto -ldl
|
||||
lcr_LDADD += -lcrypto
|
||||
INSTALLATION_DEFINES += -DCRYPTO
|
||||
endif
|
||||
|
||||
if ENABLE_SOCKET_MISDN
|
||||
INSTALLATION_DEFINES += -DSOCKET_MISDN
|
||||
endif
|
||||
bin_PROGRAMS = lcradmin gentones genwave
|
||||
|
||||
if ENABLE_ASTERISK_CHANNEL_DRIVER
|
||||
sbin_PROGRAMS += chan_lcr
|
||||
chan_lcr_SOURCES = asterisk_client.c
|
||||
sbin_PROGRAMS = lcr genrc genextension chan_lcr.so
|
||||
chan_lcr_so_SOURCES =
|
||||
chan_lcr_so_LDFLAGS = -shared
|
||||
chan_lcr_so_LDADD = chan_lcr.o bchannel.o
|
||||
|
||||
chan_lcr.o: chan_lcr.c chan_lcr.h
|
||||
$(CC) $(INCLUDES) -D_GNU_SOURCE -c chan_lcr.c
|
||||
|
||||
bchannel.o: bchannel.c bchannel.h
|
||||
$(CC) $(INCLUDES) -D_GNU_SOURCE -c bchannel.c
|
||||
|
||||
else
|
||||
sbin_PROGRAMS = lcr genrc genextension
|
||||
endif
|
||||
|
||||
lcradmin_SOURCES = admin_client.c cause.c
|
||||
genextension_SOURCES = genext.c options.c extension.c
|
||||
# genrc, gentones, genwave are made automaticaly
|
||||
lcrwatch_SOURCES = watch.c
|
||||
#gentones: gentones.c
|
||||
#genwave:genwave.c
|
||||
#genrc: genrc.c
|
||||
lcr_SOURCES = action.cpp mISDN.cpp tones.c \
|
||||
action_efi.cpp crypt.cpp mail.c trace.c \
|
||||
action_vbox.cpp dss1.cpp main.c \
|
||||
vbox.cpp alawulaw.c endpoint.cpp interface.c message.c \
|
||||
apppbx.cpp endpointapp.cpp join.cpp options.c \
|
||||
extension.c joinpbx.cpp port.cpp \
|
||||
callerid.c joinremote.cpp route.c \
|
||||
cause.c socket_server.c
|
||||
|
||||
lcr_LDADD = $(LIBCRYPTO) -lmisdn -lpthread
|
||||
|
||||
lcradmin_SOURCES = lcradmin.c cause.c options.c
|
||||
genextension_SOURCES = genext.c options.c extension.c
|
||||
|
||||
# Special install function to preserve existing configs.
|
||||
# Optimization with equivalen results are welcome
|
||||
|
||||
install-data-hook:
|
||||
@sh -c 'grep -n strcpy *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use strcpy, use makro instead." ; exit -1 ; fi'
|
||||
@sh -c 'grep -n strncpy *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use strncpy, use makro instead." ; exit -1 ; fi'
|
||||
@sh -c 'grep -n strcat *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use strcat, use makro instead." ; exit -1 ; fi'
|
||||
@sh -c 'grep -n strncat *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use strncat, use makro instead." ; exit -1 ; fi'
|
||||
@sh -c 'grep -n sprintf *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use sprintf, use makro instead." ; exit -1 ; fi'
|
||||
@sh -c 'grep -n snprintf *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use snprintf, use makro instead." ; exit -1 ; fi'
|
||||
mkdir -p $(INSTALLdir)
|
||||
mkdir -p $(INSTALLdir)/extensions
|
||||
@if test -a $(INSTALLdir)/options.conf ; then \
|
||||
echo "NOTE: options.conf already exists, not changed." ; else \
|
||||
cp -v default/options.conf $(INSTALLdir) ; fi
|
||||
@if test -a $(INSTALLdir)/interface.conf ; then \
|
||||
echo "NOTE: interface.conf already exists, not changed." ; else \
|
||||
cp -v default/interface.conf $(INSTALLdir) ; fi
|
||||
@if test -a $(INSTALLdir)/routing.conf ; then \
|
||||
echo "NOTE: routing.conf already exists, not changed." ; else \
|
||||
cp -v default/routing.conf $(INSTALLdir) ; fi
|
||||
@if test -a $(INSTALLdir)/numbering_int.conf ; then \
|
||||
echo "NOTE: numbering_int.conf is obsolete, please use routing." ; fi
|
||||
@if test -a $(INSTALLdir)/numbering_ext.conf ; then \
|
||||
echo "NOTE: numbering_ext.conf is obsolete, please use routing." ; fi
|
||||
@if test -a $(INSTALLdir)/directory.list ; then \
|
||||
echo "NOTE: directory.list already exists, not changed." ; else \
|
||||
cp -v default/directory.list $(INSTALLdir) ; fi
|
||||
@if test -a $(INSTALLdir)/tones_american ; then \
|
||||
echo "NOTE: american tones already exists, not overwritten." ; else \
|
||||
cp -a tones_american $(INSTALLdir) ; fi
|
||||
@if test -a $(INSTALLdir)/tones_german ; then \
|
||||
echo "NOTE: german tones already exists, not overwritten." ; else \
|
||||
cp -a tones_german $(INSTALLdir) ; fi
|
||||
@if test -a $(INSTALLdir)/vbox_german ; then \
|
||||
echo "NOTE: german vbox tones already exists, not overwritten." ; else \
|
||||
cp -a vbox_german $(INSTALLdir) ; fi
|
||||
@if test -a $(INSTALLdir)/vbox_english ; then \
|
||||
echo "NOTE: english vbox tones already exists, not overwritten." ; else \
|
||||
cp -a vbox_english $(INSTALLdir) ; fi
|
||||
@if test -a $(INSTALLdir)/tones_efi ; then \
|
||||
echo "NOTE: special efi tones already exists, not overwritten." ; else \
|
||||
cp -a tones_efi $(INSTALLdir) ; fi
|
||||
|
||||
# test rule, nothing important
|
||||
#echo:
|
||||
# -echo $(all_libraries) >&2
|
||||
|
||||
|
||||
# CAUTION: CRUDE CRUDE HACK !!
|
||||
# This transforms all compiling and linking calls from gcc into g++
|
||||
# This should better be removed and all .c files renamed to .cpp
|
||||
COMPILE=$(CXXCOMPILE)
|
||||
LINK=$(CXXLINK)
|
||||
# in the end, it should look like:
|
||||
# g++ -c -Wall -g -DINSTALL_DATA=\"/usr/local/lcr\" -I/usr/src/linux/include -I../mISDNuser/include -DPBX -DCRYPTO -I/usr/local/ssl/include route.cpp -o route.o
|
||||
|
||||
|
||||
|
||||
pkglogdir=$(localstatedir)/log/@PACKAGE@
|
||||
# install runtime config in $prefix/etc/lcr/ (e.g. /etc/lcr)
|
||||
# and voice data in $prefix/share/lcr/ (e.g. /usr/share/lcr)
|
||||
pkgsysconfdir=$(sysconfdir)/@PACKAGE@
|
||||
dist_pkgsysconf_DATA = $(config_default)
|
||||
|
||||
# install all voice data files along with their directory structure
|
||||
# into $prefix/share/lcr
|
||||
nobase_dist_pkgdata_DATA = $(vbox_english) $(vbox_german) \
|
||||
$(tones_american) $(tones_efi) $(tones_german)
|
||||
|
||||
|
||||
config_default = \
|
||||
default/directory.list \
|
||||
default/interface.conf \
|
||||
default/options.conf \
|
||||
default/routing.conf
|
||||
|
||||
tones_american = \
|
||||
tones_american/activated_loop.isdn \
|
||||
tones_american/busy_loop.isdn \
|
||||
tones_american/cause_01_loop.isdn \
|
||||
tones_american/cause_02_loop.isdn \
|
||||
tones_american/cause_03_loop.isdn \
|
||||
tones_american/cause_05_loop.isdn \
|
||||
tones_american/cause_06_loop.isdn \
|
||||
tones_american/cause_12_loop.isdn \
|
||||
tones_american/cause_13_loop.isdn \
|
||||
tones_american/cause_14_loop.isdn \
|
||||
tones_american/cause_15_loop.isdn \
|
||||
tones_american/cause_16_loop.isdn \
|
||||
tones_american/cause_1b_loop.isdn \
|
||||
tones_american/cause_1c_loop.isdn \
|
||||
tones_american/cause_1d_loop.isdn \
|
||||
tones_american/cause_1f_loop.isdn \
|
||||
tones_american/cause_22_loop.isdn \
|
||||
tones_american/cause_26_loop.isdn \
|
||||
tones_american/cause_29_loop.isdn \
|
||||
tones_american/cause_2a_loop.isdn \
|
||||
tones_american/cause_2f_loop.isdn \
|
||||
tones_american/cause_31_loop.isdn \
|
||||
tones_american/cause_32_loop.isdn \
|
||||
tones_american/cause_39_loop.isdn \
|
||||
tones_american/cause_3a_loop.isdn \
|
||||
tones_american/cause_3f_loop.isdn \
|
||||
tones_american/cause_41_loop.isdn \
|
||||
tones_american/cause_42_loop.isdn \
|
||||
tones_american/cause_45_loop.isdn \
|
||||
tones_american/cause_46_loop.isdn \
|
||||
tones_american/cause_55_loop.isdn \
|
||||
tones_american/cause_80_loop.isdn \
|
||||
tones_american/cause_81_loop.isdn \
|
||||
tones_american/cause_82_loop.isdn \
|
||||
tones_american/cause_83_loop.isdn \
|
||||
tones_american/cause_84_loop.isdn \
|
||||
tones_american/cause_85_loop.isdn \
|
||||
tones_american/cause_86_loop.isdn \
|
||||
tones_american/cause_87_loop.isdn \
|
||||
tones_american/crypt_off.isdn \
|
||||
tones_american/crypt_on.isdn \
|
||||
tones_american/deactivated_loop.isdn \
|
||||
tones_american/dialpbx.isdn \
|
||||
tones_american/dialpbx_loop.isdn \
|
||||
tones_american/error_loop.isdn \
|
||||
tones_american/hold_loop.isdn \
|
||||
tones_american/password_loop.isdn \
|
||||
tones_american/redial.isdn \
|
||||
tones_american/ringing_loop.isdn \
|
||||
tones_american/ringpbx_loop.isdn \
|
||||
tones_american/test_loop.isdn
|
||||
|
||||
tones_efi = \
|
||||
tones_efi/die.isdn \
|
||||
tones_efi/number_00.isdn \
|
||||
tones_efi/number_01.isdn \
|
||||
tones_efi/number_02.isdn \
|
||||
tones_efi/number_03.isdn \
|
||||
tones_efi/number_04.isdn \
|
||||
tones_efi/number_05.isdn \
|
||||
tones_efi/number_06.isdn \
|
||||
tones_efi/number_07.isdn \
|
||||
tones_efi/number_08.isdn \
|
||||
tones_efi/number_09.isdn
|
||||
|
||||
tones_german = \
|
||||
tones_german/activated_loop.isdn \
|
||||
tones_german/busy_loop.isdn \
|
||||
tones_german/cause_01_loop.isdn \
|
||||
tones_german/cause_02_loop.isdn \
|
||||
tones_german/cause_03_loop.isdn \
|
||||
tones_german/cause_05_loop.isdn \
|
||||
tones_german/cause_06_loop.isdn \
|
||||
tones_german/cause_12_loop.isdn \
|
||||
tones_german/cause_13_loop.isdn \
|
||||
tones_german/cause_14_loop.isdn \
|
||||
tones_german/cause_15_loop.isdn \
|
||||
tones_german/cause_16_loop.isdn \
|
||||
tones_german/cause_1b_loop.isdn \
|
||||
tones_german/cause_1c_loop.isdn \
|
||||
tones_german/cause_1d_loop.isdn \
|
||||
tones_german/cause_1f_loop.isdn \
|
||||
tones_german/cause_22_loop.isdn \
|
||||
tones_german/cause_26_loop.isdn \
|
||||
tones_german/cause_29_loop.isdn \
|
||||
tones_german/cause_2a_loop.isdn \
|
||||
tones_german/cause_2f_loop.isdn \
|
||||
tones_german/cause_31_loop.isdn \
|
||||
tones_german/cause_32_loop.isdn \
|
||||
tones_german/cause_39_loop.isdn \
|
||||
tones_german/cause_3a_loop.isdn \
|
||||
tones_german/cause_3f_loop.isdn \
|
||||
tones_german/cause_41_loop.isdn \
|
||||
tones_german/cause_42_loop.isdn \
|
||||
tones_german/cause_45_loop.isdn \
|
||||
tones_german/cause_46_loop.isdn \
|
||||
tones_german/cause_55_loop.isdn \
|
||||
tones_german/cause_80_loop.isdn \
|
||||
tones_german/cause_81_loop.isdn \
|
||||
tones_german/cause_82_loop.isdn \
|
||||
tones_german/cause_83_loop.isdn \
|
||||
tones_german/cause_84_loop.isdn \
|
||||
tones_german/cause_85_loop.isdn \
|
||||
tones_german/cause_86_loop.isdn \
|
||||
tones_german/cause_87_loop.isdn \
|
||||
tones_german/deactivated_loop.isdn \
|
||||
tones_german/dialpbx_loop.isdn \
|
||||
tones_german/dialtone_loop.isdn \
|
||||
tones_german/error_loop.isdn \
|
||||
tones_german/password_loop.isdn \
|
||||
tones_german/redial.isdn \
|
||||
tones_german/release_loop.isdn \
|
||||
tones_german/ringing.isdn \
|
||||
tones_german/ringing_loop.isdn \
|
||||
tones_german/ringpbx_loop.isdn \
|
||||
tones_german/test_loop.isdn
|
||||
|
||||
vbox_english = \
|
||||
vbox_english/call_anonymous.isdn \
|
||||
vbox_english/call_from.isdn \
|
||||
vbox_english/day_01.isdn \
|
||||
vbox_english/day_02.isdn \
|
||||
vbox_english/day_03.isdn \
|
||||
vbox_english/day_04.isdn \
|
||||
vbox_english/day_05.isdn \
|
||||
vbox_english/day_06.isdn \
|
||||
vbox_english/day_07.isdn \
|
||||
vbox_english/day_08.isdn \
|
||||
vbox_english/day_09.isdn \
|
||||
vbox_english/day_10.isdn \
|
||||
vbox_english/day_11.isdn \
|
||||
vbox_english/day_12.isdn \
|
||||
vbox_english/day_13.isdn \
|
||||
vbox_english/day_14.isdn \
|
||||
vbox_english/day_15.isdn \
|
||||
vbox_english/day_16.isdn \
|
||||
vbox_english/day_17.isdn \
|
||||
vbox_english/day_18.isdn \
|
||||
vbox_english/day_19.isdn \
|
||||
vbox_english/day_20.isdn \
|
||||
vbox_english/day_21.isdn \
|
||||
vbox_english/day_22.isdn \
|
||||
vbox_english/day_23.isdn \
|
||||
vbox_english/day_24.isdn \
|
||||
vbox_english/day_25.isdn \
|
||||
vbox_english/day_26.isdn \
|
||||
vbox_english/day_27.isdn \
|
||||
vbox_english/day_28.isdn \
|
||||
vbox_english/day_29.isdn \
|
||||
vbox_english/day_30.isdn \
|
||||
vbox_english/day_31.isdn \
|
||||
vbox_english/delete_ask.isdn \
|
||||
vbox_english/delete_done.isdn \
|
||||
vbox_english/intro.isdn \
|
||||
vbox_english/menu.isdn \
|
||||
vbox_english/minute.isdn \
|
||||
vbox_english/minutes.isdn \
|
||||
vbox_english/month_01.isdn \
|
||||
vbox_english/month_02.isdn \
|
||||
vbox_english/month_03.isdn \
|
||||
vbox_english/month_04.isdn \
|
||||
vbox_english/month_05.isdn \
|
||||
vbox_english/month_06.isdn \
|
||||
vbox_english/month_07.isdn \
|
||||
vbox_english/month_08.isdn \
|
||||
vbox_english/month_09.isdn \
|
||||
vbox_english/month_10.isdn \
|
||||
vbox_english/month_11.isdn \
|
||||
vbox_english/month_12.isdn \
|
||||
vbox_english/nothing.isdn \
|
||||
vbox_english/number_00.isdn \
|
||||
vbox_english/number_01.isdn \
|
||||
vbox_english/number_02.isdn \
|
||||
vbox_english/number_03.isdn \
|
||||
vbox_english/number_04.isdn \
|
||||
vbox_english/number_05.isdn \
|
||||
vbox_english/number_06.isdn \
|
||||
vbox_english/number_07.isdn \
|
||||
vbox_english/number_08.isdn \
|
||||
vbox_english/number_09.isdn \
|
||||
vbox_english/number_10.isdn \
|
||||
vbox_english/number_11.isdn \
|
||||
vbox_english/number_12.isdn \
|
||||
vbox_english/number_13.isdn \
|
||||
vbox_english/number_14.isdn \
|
||||
vbox_english/number_15.isdn \
|
||||
vbox_english/number_16.isdn \
|
||||
vbox_english/number_17.isdn \
|
||||
vbox_english/number_18.isdn \
|
||||
vbox_english/number_19.isdn \
|
||||
vbox_english/number_20.isdn \
|
||||
vbox_english/number_21.isdn \
|
||||
vbox_english/number_22.isdn \
|
||||
vbox_english/number_23.isdn \
|
||||
vbox_english/number_24.isdn \
|
||||
vbox_english/number_25.isdn \
|
||||
vbox_english/number_26.isdn \
|
||||
vbox_english/number_27.isdn \
|
||||
vbox_english/number_28.isdn \
|
||||
vbox_english/number_29.isdn \
|
||||
vbox_english/number_30.isdn \
|
||||
vbox_english/number_31.isdn \
|
||||
vbox_english/number_32.isdn \
|
||||
vbox_english/number_33.isdn \
|
||||
vbox_english/number_34.isdn \
|
||||
vbox_english/number_35.isdn \
|
||||
vbox_english/number_36.isdn \
|
||||
vbox_english/number_37.isdn \
|
||||
vbox_english/number_38.isdn \
|
||||
vbox_english/number_39.isdn \
|
||||
vbox_english/number_40.isdn \
|
||||
vbox_english/number_41.isdn \
|
||||
vbox_english/number_42.isdn \
|
||||
vbox_english/number_43.isdn \
|
||||
vbox_english/number_44.isdn \
|
||||
vbox_english/number_45.isdn \
|
||||
vbox_english/number_46.isdn \
|
||||
vbox_english/number_47.isdn \
|
||||
vbox_english/number_48.isdn \
|
||||
vbox_english/number_49.isdn \
|
||||
vbox_english/number_50.isdn \
|
||||
vbox_english/number_51.isdn \
|
||||
vbox_english/number_52.isdn \
|
||||
vbox_english/number_53.isdn \
|
||||
vbox_english/number_54.isdn \
|
||||
vbox_english/number_55.isdn \
|
||||
vbox_english/number_56.isdn \
|
||||
vbox_english/number_57.isdn \
|
||||
vbox_english/number_58.isdn \
|
||||
vbox_english/number_59.isdn \
|
||||
vbox_english/oclock_am.isdn \
|
||||
vbox_english/oclock_pm.isdn \
|
||||
vbox_english/pause.isdn \
|
||||
vbox_english/play.isdn \
|
||||
vbox_english/record_ask.isdn \
|
||||
vbox_english/record_play.isdn \
|
||||
vbox_english/record_record.isdn \
|
||||
vbox_english/store_ask.isdn \
|
||||
vbox_english/store_done.isdn
|
||||
|
||||
vbox_german = \
|
||||
vbox_german/call_anonymous.isdn \
|
||||
vbox_german/call_from.isdn \
|
||||
vbox_german/day_01.isdn \
|
||||
vbox_german/day_02.isdn \
|
||||
vbox_german/day_03.isdn \
|
||||
vbox_german/day_04.isdn \
|
||||
vbox_german/day_05.isdn \
|
||||
vbox_german/day_06.isdn \
|
||||
vbox_german/day_07.isdn \
|
||||
vbox_german/day_08.isdn \
|
||||
vbox_german/day_09.isdn \
|
||||
vbox_german/day_10.isdn \
|
||||
vbox_german/day_11.isdn \
|
||||
vbox_german/day_12.isdn \
|
||||
vbox_german/day_13.isdn \
|
||||
vbox_german/day_14.isdn \
|
||||
vbox_german/day_15.isdn \
|
||||
vbox_german/day_16.isdn \
|
||||
vbox_german/day_17.isdn \
|
||||
vbox_german/day_18.isdn \
|
||||
vbox_german/day_19.isdn \
|
||||
vbox_german/day_20.isdn \
|
||||
vbox_german/day_21.isdn \
|
||||
vbox_german/day_22.isdn \
|
||||
vbox_german/day_23.isdn \
|
||||
vbox_german/day_24.isdn \
|
||||
vbox_german/day_25.isdn \
|
||||
vbox_german/day_26.isdn \
|
||||
vbox_german/day_27.isdn \
|
||||
vbox_german/day_28.isdn \
|
||||
vbox_german/day_29.isdn \
|
||||
vbox_german/day_30.isdn \
|
||||
vbox_german/day_31.isdn \
|
||||
vbox_german/delete_ask.isdn \
|
||||
vbox_german/delete_done.isdn \
|
||||
vbox_german/intro.isdn \
|
||||
vbox_german/menu.isdn \
|
||||
vbox_german/minute.isdn \
|
||||
vbox_german/minutes.isdn \
|
||||
vbox_german/month_01.isdn \
|
||||
vbox_german/month_02.isdn \
|
||||
vbox_german/month_03.isdn \
|
||||
vbox_german/month_04.isdn \
|
||||
vbox_german/month_05.isdn \
|
||||
vbox_german/month_06.isdn \
|
||||
vbox_german/month_07.isdn \
|
||||
vbox_german/month_08.isdn \
|
||||
vbox_german/month_09.isdn \
|
||||
vbox_german/month_10.isdn \
|
||||
vbox_german/month_11.isdn \
|
||||
vbox_german/month_12.isdn \
|
||||
vbox_german/nothing.isdn \
|
||||
vbox_german/number_00.isdn \
|
||||
vbox_german/number_01.isdn \
|
||||
vbox_german/number_02.isdn \
|
||||
vbox_german/number_03.isdn \
|
||||
vbox_german/number_04.isdn \
|
||||
vbox_german/number_05.isdn \
|
||||
vbox_german/number_06.isdn \
|
||||
vbox_german/number_07.isdn \
|
||||
vbox_german/number_08.isdn \
|
||||
vbox_german/number_09.isdn \
|
||||
vbox_german/number_10.isdn \
|
||||
vbox_german/number_11.isdn \
|
||||
vbox_german/number_12.isdn \
|
||||
vbox_german/number_13.isdn \
|
||||
vbox_german/number_14.isdn \
|
||||
vbox_german/number_15.isdn \
|
||||
vbox_german/number_16.isdn \
|
||||
vbox_german/number_17.isdn \
|
||||
vbox_german/number_18.isdn \
|
||||
vbox_german/number_19.isdn \
|
||||
vbox_german/number_20.isdn \
|
||||
vbox_german/number_21.isdn \
|
||||
vbox_german/number_22.isdn \
|
||||
vbox_german/number_23.isdn \
|
||||
vbox_german/number_24.isdn \
|
||||
vbox_german/number_25.isdn \
|
||||
vbox_german/number_26.isdn \
|
||||
vbox_german/number_27.isdn \
|
||||
vbox_german/number_28.isdn \
|
||||
vbox_german/number_29.isdn \
|
||||
vbox_german/number_30.isdn \
|
||||
vbox_german/number_31.isdn \
|
||||
vbox_german/number_32.isdn \
|
||||
vbox_german/number_33.isdn \
|
||||
vbox_german/number_34.isdn \
|
||||
vbox_german/number_35.isdn \
|
||||
vbox_german/number_36.isdn \
|
||||
vbox_german/number_37.isdn \
|
||||
vbox_german/number_38.isdn \
|
||||
vbox_german/number_39.isdn \
|
||||
vbox_german/number_40.isdn \
|
||||
vbox_german/number_41.isdn \
|
||||
vbox_german/number_42.isdn \
|
||||
vbox_german/number_43.isdn \
|
||||
vbox_german/number_44.isdn \
|
||||
vbox_german/number_45.isdn \
|
||||
vbox_german/number_46.isdn \
|
||||
vbox_german/number_47.isdn \
|
||||
vbox_german/number_48.isdn \
|
||||
vbox_german/number_49.isdn \
|
||||
vbox_german/number_50.isdn \
|
||||
vbox_german/number_51.isdn \
|
||||
vbox_german/number_52.isdn \
|
||||
vbox_german/number_53.isdn \
|
||||
vbox_german/number_54.isdn \
|
||||
vbox_german/number_55.isdn \
|
||||
vbox_german/number_56.isdn \
|
||||
vbox_german/number_57.isdn \
|
||||
vbox_german/number_58.isdn \
|
||||
vbox_german/number_59.isdn \
|
||||
vbox_german/number_eine.isdn \
|
||||
vbox_german/number_ein.isdn \
|
||||
vbox_german/oclock.isdn \
|
||||
vbox_german/pause.isdn \
|
||||
vbox_german/play.isdn \
|
||||
vbox_german/record_ask.isdn \
|
||||
vbox_german/record_play.isdn \
|
||||
vbox_german/record_record.isdn \
|
||||
vbox_german/store_ask.isdn \
|
||||
vbox_german/store_done.isdn
|
||||
|
|
|
@ -0,0 +1,771 @@
|
|||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
#INSTALLATION_DEFINES = \
|
||||
# -DCONFIG_DATA="\"$(pkgsysconfdir)\"" \
|
||||
# -DSHARE_DATA="\"$(pkgdatadir)\"" \
|
||||
# -DLOG_DIR="\"$(pkglogdir)\"" \
|
||||
# -DEXTENSION_DATA="\"$(localstatedir)/lib/lcr\""
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = .
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
bin_PROGRAMS = lcradmin$(EXEEXT) gentones$(EXEEXT) genwave$(EXEEXT)
|
||||
@ENABLE_ASTERISK_CHANNEL_DRIVER_FALSE@sbin_PROGRAMS = lcr$(EXEEXT) \
|
||||
@ENABLE_ASTERISK_CHANNEL_DRIVER_FALSE@ genrc$(EXEEXT) \
|
||||
@ENABLE_ASTERISK_CHANNEL_DRIVER_FALSE@ genextension$(EXEEXT)
|
||||
@ENABLE_ASTERISK_CHANNEL_DRIVER_TRUE@sbin_PROGRAMS = lcr$(EXEEXT) \
|
||||
@ENABLE_ASTERISK_CHANNEL_DRIVER_TRUE@ genrc$(EXEEXT) \
|
||||
@ENABLE_ASTERISK_CHANNEL_DRIVER_TRUE@ genextension$(EXEEXT) \
|
||||
@ENABLE_ASTERISK_CHANNEL_DRIVER_TRUE@ chan_lcr.so$(EXEEXT)
|
||||
subdir = .
|
||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
||||
$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
|
||||
depcomp install-sh missing mkinstalldirs
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
configure.lineno configure.status.lineno
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)"
|
||||
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
|
||||
sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
|
||||
PROGRAMS = $(bin_PROGRAMS) $(sbin_PROGRAMS)
|
||||
am_chan_lcr_so_OBJECTS =
|
||||
chan_lcr_so_OBJECTS = $(am_chan_lcr_so_OBJECTS)
|
||||
@ENABLE_ASTERISK_CHANNEL_DRIVER_TRUE@chan_lcr_so_DEPENDENCIES = \
|
||||
@ENABLE_ASTERISK_CHANNEL_DRIVER_TRUE@ chan_lcr.o bchannel.o
|
||||
am_genextension_OBJECTS = genext.$(OBJEXT) options.$(OBJEXT) \
|
||||
extension.$(OBJEXT)
|
||||
genextension_OBJECTS = $(am_genextension_OBJECTS)
|
||||
genextension_LDADD = $(LDADD)
|
||||
genrc_SOURCES = genrc.c
|
||||
genrc_OBJECTS = genrc.$(OBJEXT)
|
||||
genrc_LDADD = $(LDADD)
|
||||
gentones_SOURCES = gentones.c
|
||||
gentones_OBJECTS = gentones.$(OBJEXT)
|
||||
gentones_LDADD = $(LDADD)
|
||||
genwave_SOURCES = genwave.c
|
||||
genwave_OBJECTS = genwave.$(OBJEXT)
|
||||
genwave_LDADD = $(LDADD)
|
||||
am_lcr_OBJECTS = action.$(OBJEXT) mISDN.$(OBJEXT) tones.$(OBJEXT) \
|
||||
action_efi.$(OBJEXT) crypt.$(OBJEXT) mail.$(OBJEXT) \
|
||||
trace.$(OBJEXT) action_vbox.$(OBJEXT) dss1.$(OBJEXT) \
|
||||
main.$(OBJEXT) vbox.$(OBJEXT) alawulaw.$(OBJEXT) \
|
||||
endpoint.$(OBJEXT) interface.$(OBJEXT) message.$(OBJEXT) \
|
||||
apppbx.$(OBJEXT) endpointapp.$(OBJEXT) join.$(OBJEXT) \
|
||||
options.$(OBJEXT) extension.$(OBJEXT) joinpbx.$(OBJEXT) \
|
||||
port.$(OBJEXT) callerid.$(OBJEXT) joinremote.$(OBJEXT) \
|
||||
route.$(OBJEXT) cause.$(OBJEXT) socket_server.$(OBJEXT)
|
||||
lcr_OBJECTS = $(am_lcr_OBJECTS)
|
||||
am__DEPENDENCIES_1 =
|
||||
lcr_DEPENDENCIES = $(am__DEPENDENCIES_1)
|
||||
am_lcradmin_OBJECTS = lcradmin.$(OBJEXT) cause.$(OBJEXT) \
|
||||
options.$(OBJEXT)
|
||||
lcradmin_OBJECTS = $(am_lcradmin_OBJECTS)
|
||||
lcradmin_LDADD = $(LDADD)
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
CCLD = $(CC)
|
||||
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||
CXXLD = $(CXX)
|
||||
CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
|
||||
-o $@
|
||||
SOURCES = $(chan_lcr_so_SOURCES) $(genextension_SOURCES) genrc.c \
|
||||
gentones.c genwave.c $(lcr_SOURCES) $(lcradmin_SOURCES)
|
||||
DIST_SOURCES = $(chan_lcr_so_SOURCES) $(genextension_SOURCES) genrc.c \
|
||||
gentones.c genwave.c $(lcr_SOURCES) $(lcradmin_SOURCES)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
am__remove_distdir = \
|
||||
{ test ! -d $(distdir) \
|
||||
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -fr $(distdir); }; }
|
||||
DIST_ARCHIVES = $(distdir).tar.gz
|
||||
GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
ENABLE_ASTERISK_CHANNEL_DRIVER_FALSE = @ENABLE_ASTERISK_CHANNEL_DRIVER_FALSE@
|
||||
ENABLE_ASTERISK_CHANNEL_DRIVER_TRUE = @ENABLE_ASTERISK_CHANNEL_DRIVER_TRUE@
|
||||
EXEEXT = @EXEEXT@
|
||||
GREP = @GREP@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBCRYPTO = @LIBCRYPTO@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
POW_LIB = @POW_LIB@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build_alias = @build_alias@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host_alias = @host_alias@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
INSTALLdir = /usr/local/lcr
|
||||
INSTALLATION_DEFINES = \
|
||||
-DCONFIG_DATA="\"$(INSTALLdir)\"" \
|
||||
-DSHARE_DATA="\"$(INSTALLdir)\"" \
|
||||
-DLOG_DIR="\"$(INSTALLdir)\"" \
|
||||
-DEXTENSION_DATA="\"$(INSTALLdir)/extensions\""
|
||||
|
||||
INCLUDES = $(all_includes) -I/usr/include/mISDNuser $(INSTALLATION_DEFINES)
|
||||
@ENABLE_ASTERISK_CHANNEL_DRIVER_TRUE@chan_lcr_so_SOURCES =
|
||||
@ENABLE_ASTERISK_CHANNEL_DRIVER_TRUE@chan_lcr_so_LDFLAGS = -shared
|
||||
@ENABLE_ASTERISK_CHANNEL_DRIVER_TRUE@chan_lcr_so_LDADD = chan_lcr.o bchannel.o
|
||||
lcr_SOURCES = action.cpp mISDN.cpp tones.c \
|
||||
action_efi.cpp crypt.cpp mail.c trace.c \
|
||||
action_vbox.cpp dss1.cpp main.c \
|
||||
vbox.cpp alawulaw.c endpoint.cpp interface.c message.c \
|
||||
apppbx.cpp endpointapp.cpp join.cpp options.c \
|
||||
extension.c joinpbx.cpp port.cpp \
|
||||
callerid.c joinremote.cpp route.c \
|
||||
cause.c socket_server.c
|
||||
|
||||
lcr_LDADD = $(LIBCRYPTO) -lmisdn -lpthread
|
||||
lcradmin_SOURCES = lcradmin.c cause.c options.c
|
||||
genextension_SOURCES = genext.c options.c extension.c
|
||||
|
||||
# test rule, nothing important
|
||||
#echo:
|
||||
# -echo $(all_libraries) >&2
|
||||
|
||||
# CAUTION: CRUDE CRUDE HACK !!
|
||||
# This transforms all compiling and linking calls from gcc into g++
|
||||
# This should better be removed and all .c files renamed to .cpp
|
||||
COMPILE = $(CXXCOMPILE)
|
||||
LINK = $(CXXLINK)
|
||||
pkglogdir = $(localstatedir)/log/@PACKAGE@
|
||||
pkgsysconfdir = $(sysconfdir)/@PACKAGE@
|
||||
all: config.h
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .c .cpp .o .obj
|
||||
am--refresh:
|
||||
@:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
|
||||
cd $(srcdir) && $(AUTOMAKE) --foreign \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
echo ' $(SHELL) ./config.status'; \
|
||||
$(SHELL) ./config.status;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
$(SHELL) ./config.status --recheck
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(srcdir) && $(AUTOCONF)
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||
|
||||
config.h: stamp-h1
|
||||
@if test ! -f $@; then \
|
||||
rm -f stamp-h1; \
|
||||
$(MAKE) stamp-h1; \
|
||||
else :; fi
|
||||
|
||||
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
||||
@rm -f stamp-h1
|
||||
cd $(top_builddir) && $(SHELL) ./config.status config.h
|
||||
$(srcdir)/config.h.in: $(am__configure_deps)
|
||||
cd $(top_srcdir) && $(AUTOHEADER)
|
||||
rm -f stamp-h1
|
||||
touch $@
|
||||
|
||||
distclean-hdr:
|
||||
-rm -f config.h stamp-h1
|
||||
install-binPROGRAMS: $(bin_PROGRAMS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
|
||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
||||
if test -f $$p \
|
||||
; then \
|
||||
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||
echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
|
||||
$(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
uninstall-binPROGRAMS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||
echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(bindir)/$$f"; \
|
||||
done
|
||||
|
||||
clean-binPROGRAMS:
|
||||
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
|
||||
install-sbinPROGRAMS: $(sbin_PROGRAMS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(sbindir)" || $(mkdir_p) "$(DESTDIR)$(sbindir)"
|
||||
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
|
||||
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
||||
if test -f $$p \
|
||||
; then \
|
||||
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||
echo " $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(sbindir)/$$f'"; \
|
||||
$(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(sbindir)/$$f" || exit 1; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
uninstall-sbinPROGRAMS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
|
||||
f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||
echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(sbindir)/$$f"; \
|
||||
done
|
||||
|
||||
clean-sbinPROGRAMS:
|
||||
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
|
||||
chan_lcr.so$(EXEEXT): $(chan_lcr_so_OBJECTS) $(chan_lcr_so_DEPENDENCIES)
|
||||
@rm -f chan_lcr.so$(EXEEXT)
|
||||
$(LINK) $(chan_lcr_so_LDFLAGS) $(chan_lcr_so_OBJECTS) $(chan_lcr_so_LDADD) $(LIBS)
|
||||
genextension$(EXEEXT): $(genextension_OBJECTS) $(genextension_DEPENDENCIES)
|
||||
@rm -f genextension$(EXEEXT)
|
||||
$(LINK) $(genextension_LDFLAGS) $(genextension_OBJECTS) $(genextension_LDADD) $(LIBS)
|
||||
genrc$(EXEEXT): $(genrc_OBJECTS) $(genrc_DEPENDENCIES)
|
||||
@rm -f genrc$(EXEEXT)
|
||||
$(LINK) $(genrc_LDFLAGS) $(genrc_OBJECTS) $(genrc_LDADD) $(LIBS)
|
||||
gentones$(EXEEXT): $(gentones_OBJECTS) $(gentones_DEPENDENCIES)
|
||||
@rm -f gentones$(EXEEXT)
|
||||
$(LINK) $(gentones_LDFLAGS) $(gentones_OBJECTS) $(gentones_LDADD) $(LIBS)
|
||||
genwave$(EXEEXT): $(genwave_OBJECTS) $(genwave_DEPENDENCIES)
|
||||
@rm -f genwave$(EXEEXT)
|
||||
$(LINK) $(genwave_LDFLAGS) $(genwave_OBJECTS) $(genwave_LDADD) $(LIBS)
|
||||
lcr$(EXEEXT): $(lcr_OBJECTS) $(lcr_DEPENDENCIES)
|
||||
@rm -f lcr$(EXEEXT)
|
||||
$(CXXLINK) $(lcr_LDFLAGS) $(lcr_OBJECTS) $(lcr_LDADD) $(LIBS)
|
||||
lcradmin$(EXEEXT): $(lcradmin_OBJECTS) $(lcradmin_DEPENDENCIES)
|
||||
@rm -f lcradmin$(EXEEXT)
|
||||
$(LINK) $(lcradmin_LDFLAGS) $(lcradmin_OBJECTS) $(lcradmin_LDADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/action.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/action_efi.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/action_vbox.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alawulaw.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/apppbx.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/callerid.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cause.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crypt.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dss1.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/endpoint.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/endpointapp.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/extension.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/genext.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/genrc.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gentones.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/genwave.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interface.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/join.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/joinpbx.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/joinremote.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lcradmin.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mISDN.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/message.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/options.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/port.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/route.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/socket_server.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tones.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trace.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vbox.Po@am__quote@
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
.cpp.o:
|
||||
@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
|
||||
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
|
||||
|
||||
.cpp.obj:
|
||||
@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
|
||||
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
uninstall-info-am:
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(am__remove_distdir)
|
||||
mkdir $(distdir)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
|
||||
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|
||||
|| chmod -R a+r $(distdir)
|
||||
dist-gzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-shar: distdir
|
||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-zip: distdir
|
||||
-rm -f $(distdir).zip
|
||||
zip -rq $(distdir).zip $(distdir)
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist dist-all: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
# This target untars the dist file and tries a VPATH configuration. Then
|
||||
# it guarantees that the distribution is self-contained by making another
|
||||
# tarfile.
|
||||
distcheck: dist
|
||||
case '$(DIST_ARCHIVES)' in \
|
||||
*.tar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
chmod -R a-w $(distdir); chmod a+w $(distdir)
|
||||
mkdir $(distdir)/_build
|
||||
mkdir $(distdir)/_inst
|
||||
chmod a-w $(distdir)
|
||||
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||
&& cd $(distdir)/_build \
|
||||
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
|
||||
distuninstallcheck \
|
||||
&& chmod -R a-w "$$dc_install_base" \
|
||||
&& ({ \
|
||||
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
||||
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
||||
} || { rm -rf "$$dc_destdir"; exit 1; }) \
|
||||
&& rm -rf "$$dc_destdir" \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
||||
&& rm -rf $(DIST_ARCHIVES) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
|
||||
$(am__remove_distdir)
|
||||
@(echo "$(distdir) archives ready for distribution: "; \
|
||||
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||
sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
|
||||
distuninstallcheck:
|
||||
@cd $(distuninstallcheck_dir) \
|
||||
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||
|| { echo "ERROR: files left after uninstall:" ; \
|
||||
if test -n "$(DESTDIR)"; then \
|
||||
echo " (check DESTDIR support)"; \
|
||||
fi ; \
|
||||
$(distuninstallcheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
distcleancheck: distclean
|
||||
@if test '$(srcdir)' = . ; then \
|
||||
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|
||||
|| { echo "ERROR: files left in build directory after distclean:" ; \
|
||||
$(distcleancheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(PROGRAMS) config.h
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-binPROGRAMS clean-generic clean-sbinPROGRAMS \
|
||||
mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-hdr distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
|
||||
|
||||
install-exec-am: install-binPROGRAMS install-sbinPROGRAMS
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -rf $(top_srcdir)/autom4te.cache
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-binPROGRAMS uninstall-info-am \
|
||||
uninstall-sbinPROGRAMS
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
|
||||
clean-binPROGRAMS clean-generic clean-sbinPROGRAMS ctags dist \
|
||||
dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip \
|
||||
distcheck distclean distclean-compile distclean-generic \
|
||||
distclean-hdr distclean-tags distcleancheck distdir \
|
||||
distuninstallcheck dvi dvi-am html html-am info info-am \
|
||||
install install-am install-binPROGRAMS install-data \
|
||||
install-data-am install-data-hook install-exec install-exec-am \
|
||||
install-info install-info-am install-man install-sbinPROGRAMS \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
|
||||
tags uninstall uninstall-am uninstall-binPROGRAMS \
|
||||
uninstall-info-am uninstall-sbinPROGRAMS
|
||||
|
||||
|
||||
@ENABLE_ASTERISK_CHANNEL_DRIVER_TRUE@chan_lcr.o: chan_lcr.c chan_lcr.h
|
||||
@ENABLE_ASTERISK_CHANNEL_DRIVER_TRUE@ $(CC) $(INCLUDES) -D_GNU_SOURCE -c chan_lcr.c
|
||||
|
||||
@ENABLE_ASTERISK_CHANNEL_DRIVER_TRUE@bchannel.o: bchannel.c bchannel.h
|
||||
@ENABLE_ASTERISK_CHANNEL_DRIVER_TRUE@ $(CC) $(INCLUDES) -D_GNU_SOURCE -c bchannel.c
|
||||
|
||||
# Special install function to preserve existing configs.
|
||||
# Optimization with equivalen results are welcome
|
||||
|
||||
install-data-hook:
|
||||
@sh -c 'grep -n strcpy *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use strcpy, use makro instead." ; exit -1 ; fi'
|
||||
@sh -c 'grep -n strncpy *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use strncpy, use makro instead." ; exit -1 ; fi'
|
||||
@sh -c 'grep -n strcat *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use strcat, use makro instead." ; exit -1 ; fi'
|
||||
@sh -c 'grep -n strncat *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use strncat, use makro instead." ; exit -1 ; fi'
|
||||
@sh -c 'grep -n sprintf *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use sprintf, use makro instead." ; exit -1 ; fi'
|
||||
@sh -c 'grep -n snprintf *.c* --exclude chan_lcr.c --exclude bchannel.c --exclude callerid.c ; if test $$''? = 0 ; then echo "dont use snprintf, use makro instead." ; exit -1 ; fi'
|
||||
mkdir -p $(INSTALLdir)
|
||||
mkdir -p $(INSTALLdir)/extensions
|
||||
@if test -a $(INSTALLdir)/options.conf ; then \
|
||||
echo "NOTE: options.conf already exists, not changed." ; else \
|
||||
cp -v default/options.conf $(INSTALLdir) ; fi
|
||||
@if test -a $(INSTALLdir)/interface.conf ; then \
|
||||
echo "NOTE: interface.conf already exists, not changed." ; else \
|
||||
cp -v default/interface.conf $(INSTALLdir) ; fi
|
||||
@if test -a $(INSTALLdir)/routing.conf ; then \
|
||||
echo "NOTE: routing.conf already exists, not changed." ; else \
|
||||
cp -v default/routing.conf $(INSTALLdir) ; fi
|
||||
@if test -a $(INSTALLdir)/numbering_int.conf ; then \
|
||||
echo "NOTE: numbering_int.conf is obsolete, please use routing." ; fi
|
||||
@if test -a $(INSTALLdir)/numbering_ext.conf ; then \
|
||||
echo "NOTE: numbering_ext.conf is obsolete, please use routing." ; fi
|
||||
@if test -a $(INSTALLdir)/directory.list ; then \
|
||||
echo "NOTE: directory.list already exists, not changed." ; else \
|
||||
cp -v default/directory.list $(INSTALLdir) ; fi
|
||||
@if test -a $(INSTALLdir)/tones_american ; then \
|
||||
echo "NOTE: american tones already exists, not overwritten." ; else \
|
||||
cp -a tones_american $(INSTALLdir) ; fi
|
||||
@if test -a $(INSTALLdir)/tones_german ; then \
|
||||
echo "NOTE: german tones already exists, not overwritten." ; else \
|
||||
cp -a tones_german $(INSTALLdir) ; fi
|
||||
@if test -a $(INSTALLdir)/vbox_german ; then \
|
||||
echo "NOTE: german vbox tones already exists, not overwritten." ; else \
|
||||
cp -a vbox_german $(INSTALLdir) ; fi
|
||||
@if test -a $(INSTALLdir)/vbox_english ; then \
|
||||
echo "NOTE: english vbox tones already exists, not overwritten." ; else \
|
||||
cp -a vbox_english $(INSTALLdir) ; fi
|
||||
@if test -a $(INSTALLdir)/tones_efi ; then \
|
||||
echo "NOTE: special efi tones already exists, not overwritten." ; else \
|
||||
cp -a tones_efi $(INSTALLdir) ; fi
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
12
README
12
README
|
@ -21,6 +21,7 @@ to allow telephone devices to be connected to their networks.
|
|||
Installation and Usage:
|
||||
-----------------------
|
||||
Read the documentation at http://www.linux-call-router.de
|
||||
Also you will find a quick howto there.
|
||||
|
||||
|
||||
History:
|
||||
|
@ -444,8 +445,17 @@ Changes in Version 1.1
|
|||
- LCR now runs as user, but still can be run as root.
|
||||
- Ports can now be given with number or with name.
|
||||
|
||||
Fixes in current Version
|
||||
Changes in Version 1.2
|
||||
- Changed isdninfo to misdn_info.
|
||||
- Fixed some trace bugs.
|
||||
- Fixed some layer2-link issues.
|
||||
- special interface config option "te-special" to allow transmit of all IEs
|
||||
in TE-mode. this is usefull to interconnect LCRs.
|
||||
- Introduceing autoconf (./configure) with help of Joerg and Peter.
|
||||
-> Default installation path remains /usr/local/lcr, so don't worry!
|
||||
|
||||
Fixes in current Version
|
||||
- Finished autoconf.
|
||||
- Obsolete "pbxwatch" is removed.
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,863 @@
|
|||
# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005 Free Software Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# AM_AUTOMAKE_VERSION(VERSION)
|
||||
# ----------------------------
|
||||
# Automake X.Y traces this macro to ensure aclocal.m4 has been
|
||||
# generated from the m4 files accompanying Automake X.Y.
|
||||
AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
|
||||
|
||||
# AM_SET_CURRENT_AUTOMAKE_VERSION
|
||||
# -------------------------------
|
||||
# Call AM_AUTOMAKE_VERSION so it can be traced.
|
||||
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
|
||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||
[AM_AUTOMAKE_VERSION([1.9.6])])
|
||||
|
||||
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
|
||||
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
|
||||
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
|
||||
#
|
||||
# Of course, Automake must honor this variable whenever it calls a
|
||||
# tool from the auxiliary directory. The problem is that $srcdir (and
|
||||
# therefore $ac_aux_dir as well) can be either absolute or relative,
|
||||
# depending on how configure is run. This is pretty annoying, since
|
||||
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
|
||||
# source directory, any form will work fine, but in subdirectories a
|
||||
# relative path needs to be adjusted first.
|
||||
#
|
||||
# $ac_aux_dir/missing
|
||||
# fails when called from a subdirectory if $ac_aux_dir is relative
|
||||
# $top_srcdir/$ac_aux_dir/missing
|
||||
# fails if $ac_aux_dir is absolute,
|
||||
# fails when called from a subdirectory in a VPATH build with
|
||||
# a relative $ac_aux_dir
|
||||
#
|
||||
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
|
||||
# are both prefixed by $srcdir. In an in-source build this is usually
|
||||
# harmless because $srcdir is `.', but things will broke when you
|
||||
# start a VPATH build or use an absolute $srcdir.
|
||||
#
|
||||
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
|
||||
# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
|
||||
# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
|
||||
# and then we would define $MISSING as
|
||||
# MISSING="\${SHELL} $am_aux_dir/missing"
|
||||
# This will work as long as MISSING is not called from configure, because
|
||||
# unfortunately $(top_srcdir) has no meaning in configure.
|
||||
# However there are other variables, like CC, which are often used in
|
||||
# configure, and could therefore not use this "fixed" $ac_aux_dir.
|
||||
#
|
||||
# Another solution, used here, is to always expand $ac_aux_dir to an
|
||||
# absolute PATH. The drawback is that using absolute paths prevent a
|
||||
# configured tree to be moved without reconfiguration.
|
||||
|
||||
AC_DEFUN([AM_AUX_DIR_EXPAND],
|
||||
[dnl Rely on autoconf to set up CDPATH properly.
|
||||
AC_PREREQ([2.50])dnl
|
||||
# expand $ac_aux_dir to an absolute path
|
||||
am_aux_dir=`cd $ac_aux_dir && pwd`
|
||||
])
|
||||
|
||||
# AM_CONDITIONAL -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 7
|
||||
|
||||
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
|
||||
# -------------------------------------
|
||||
# Define a conditional.
|
||||
AC_DEFUN([AM_CONDITIONAL],
|
||||
[AC_PREREQ(2.52)dnl
|
||||
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
|
||||
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
|
||||
AC_SUBST([$1_TRUE])
|
||||
AC_SUBST([$1_FALSE])
|
||||
if $2; then
|
||||
$1_TRUE=
|
||||
$1_FALSE='#'
|
||||
else
|
||||
$1_TRUE='#'
|
||||
$1_FALSE=
|
||||
fi
|
||||
AC_CONFIG_COMMANDS_PRE(
|
||||
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
|
||||
AC_MSG_ERROR([[conditional "$1" was never defined.
|
||||
Usually this means the macro was only invoked conditionally.]])
|
||||
fi])])
|
||||
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 8
|
||||
|
||||
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
|
||||
# written in clear, in which case automake, when reading aclocal.m4,
|
||||
# will think it sees a *use*, and therefore will trigger all it's
|
||||
# C support machinery. Also note that it means that autoscan, seeing
|
||||
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
|
||||
|
||||
|
||||
# _AM_DEPENDENCIES(NAME)
|
||||
# ----------------------
|
||||
# See how the compiler implements dependency checking.
|
||||
# NAME is "CC", "CXX", "GCJ", or "OBJC".
|
||||
# We try a few techniques and use that to set a single cache variable.
|
||||
#
|
||||
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
|
||||
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
|
||||
# dependency, and given that the user is not expected to run this macro,
|
||||
# just rely on AC_PROG_CC.
|
||||
AC_DEFUN([_AM_DEPENDENCIES],
|
||||
[AC_REQUIRE([AM_SET_DEPDIR])dnl
|
||||
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
|
||||
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
|
||||
AC_REQUIRE([AM_DEP_TRACK])dnl
|
||||
|
||||
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
|
||||
[$1], CXX, [depcc="$CXX" am_compiler_list=],
|
||||
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
|
||||
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
|
||||
[depcc="$$1" am_compiler_list=])
|
||||
|
||||
AC_CACHE_CHECK([dependency style of $depcc],
|
||||
[am_cv_$1_dependencies_compiler_type],
|
||||
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
|
||||
# We make a subdir and do the tests there. Otherwise we can end up
|
||||
# making bogus files that we don't know about and never remove. For
|
||||
# instance it was reported that on HP-UX the gcc test will end up
|
||||
# making a dummy file named `D' -- because `-MD' means `put the output
|
||||
# in D'.
|
||||
mkdir conftest.dir
|
||||
# Copy depcomp to subdir because otherwise we won't find it if we're
|
||||
# using a relative directory.
|
||||
cp "$am_depcomp" conftest.dir
|
||||
cd conftest.dir
|
||||
# We will build objects and dependencies in a subdirectory because
|
||||
# it helps to detect inapplicable dependency modes. For instance
|
||||
# both Tru64's cc and ICC support -MD to output dependencies as a
|
||||
# side effect of compilation, but ICC will put the dependencies in
|
||||
# the current directory while Tru64 will put them in the object
|
||||
# directory.
|
||||
mkdir sub
|
||||
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
if test "$am_compiler_list" = ""; then
|
||||
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
||||
fi
|
||||
for depmode in $am_compiler_list; do
|
||||
# Setup a source with many dependencies, because some compilers
|
||||
# like to wrap large dependency lists on column 80 (with \), and
|
||||
# we should not choose a depcomp mode which is confused by this.
|
||||
#
|
||||
# We need to recreate these files for each test, as the compiler may
|
||||
# overwrite some of them when testing with obscure command lines.
|
||||
# This happens at least with the AIX C compiler.
|
||||
: > sub/conftest.c
|
||||
for i in 1 2 3 4 5 6; do
|
||||
echo '#include "conftst'$i'.h"' >> sub/conftest.c
|
||||
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
|
||||
# Solaris 8's {/usr,}/bin/sh.
|
||||
touch sub/conftst$i.h
|
||||
done
|
||||
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
||||
|
||||
case $depmode in
|
||||
nosideeffect)
|
||||
# after this tag, mechanisms are not by side-effect, so they'll
|
||||
# only be used when explicitly requested
|
||||
if test "x$enable_dependency_tracking" = xyes; then
|
||||
continue
|
||||
else
|
||||
break
|
||||
fi
|
||||
;;
|
||||
none) break ;;
|
||||
esac
|
||||
# We check with `-c' and `-o' for the sake of the "dashmstdout"
|
||||
# mode. It turns out that the SunPro C++ compiler does not properly
|
||||
# handle `-M -o', and we need to detect this.
|
||||
if depmode=$depmode \
|
||||
source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
|
||||
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
||||
$SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
|
||||
>/dev/null 2>conftest.err &&
|
||||
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
|
||||
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||||
# icc doesn't choke on unknown options, it will just issue warnings
|
||||
# or remarks (even with -Werror). So we grep stderr for any message
|
||||
# that says an option was ignored or not supported.
|
||||
# When given -MP, icc 7.0 and 7.1 complain thusly:
|
||||
# icc: Command line warning: ignoring option '-M'; no argument required
|
||||
# The diagnosis changed in icc 8.0:
|
||||
# icc: Command line remark: option '-MP' not supported
|
||||
if (grep 'ignoring option' conftest.err ||
|
||||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
|
||||
am_cv_$1_dependencies_compiler_type=$depmode
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
rm -rf conftest.dir
|
||||
else
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
fi
|
||||
])
|
||||
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
|
||||
AM_CONDITIONAL([am__fastdep$1], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
|
||||
])
|
||||
|
||||
|
||||
# AM_SET_DEPDIR
|
||||
# -------------
|
||||
# Choose a directory name for dependency files.
|
||||
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
|
||||
AC_DEFUN([AM_SET_DEPDIR],
|
||||
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
|
||||
])
|
||||
|
||||
|
||||
# AM_DEP_TRACK
|
||||
# ------------
|
||||
AC_DEFUN([AM_DEP_TRACK],
|
||||
[AC_ARG_ENABLE(dependency-tracking,
|
||||
[ --disable-dependency-tracking speeds up one-time build
|
||||
--enable-dependency-tracking do not reject slow dependency extractors])
|
||||
if test "x$enable_dependency_tracking" != xno; then
|
||||
am_depcomp="$ac_aux_dir/depcomp"
|
||||
AMDEPBACKSLASH='\'
|
||||
fi
|
||||
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||
AC_SUBST([AMDEPBACKSLASH])
|
||||
])
|
||||
|
||||
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
#serial 3
|
||||
|
||||
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# ------------------------------
|
||||
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[for mf in $CONFIG_FILES; do
|
||||
# Strip MF so we end up with the name of the file.
|
||||
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||||
# Check whether this is an Automake generated Makefile or not.
|
||||
# We used to match only the files named `Makefile.in', but
|
||||
# some people rename them; so instead we look at the file content.
|
||||
# Grep'ing the first line is not enough: some people post-process
|
||||
# each Makefile.in and add a new line on top of each file to say so.
|
||||
# So let's grep whole file.
|
||||
if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
|
||||
dirpart=`AS_DIRNAME("$mf")`
|
||||
else
|
||||
continue
|
||||
fi
|
||||
# Extract the definition of DEPDIR, am__include, and am__quote
|
||||
# from the Makefile without running `make'.
|
||||
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||||
test -z "$DEPDIR" && continue
|
||||
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||||
test -z "am__include" && continue
|
||||
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||||
# When using ansi2knr, U may be empty or an underscore; expand it
|
||||
U=`sed -n 's/^U = //p' < "$mf"`
|
||||
# Find all dependency output files, they are included files with
|
||||
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
||||
# simplest approach to changing $(DEPDIR) to its actual value in the
|
||||
# expansion.
|
||||
for file in `sed -n "
|
||||
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||||
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
||||
# Make sure the directory exists.
|
||||
test -f "$dirpart/$file" && continue
|
||||
fdir=`AS_DIRNAME(["$file"])`
|
||||
AS_MKDIR_P([$dirpart/$fdir])
|
||||
# echo "creating $dirpart/$file"
|
||||
echo '# dummy' > "$dirpart/$file"
|
||||
done
|
||||
done
|
||||
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
|
||||
|
||||
# AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# -----------------------------
|
||||
# This macro should only be invoked once -- use via AC_REQUIRE.
|
||||
#
|
||||
# This code is only required when automatic dependency tracking
|
||||
# is enabled. FIXME. This creates each `.P' file that we will
|
||||
# need in order to bootstrap the dependency handling code.
|
||||
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AC_CONFIG_COMMANDS([depfiles],
|
||||
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
|
||||
])
|
||||
|
||||
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 8
|
||||
|
||||
# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS.
|
||||
AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
|
||||
|
||||
# Do all the work for Automake. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 12
|
||||
|
||||
# This macro actually does too much. Some checks are only needed if
|
||||
# your package does certain things. But this isn't really a big deal.
|
||||
|
||||
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
|
||||
# AM_INIT_AUTOMAKE([OPTIONS])
|
||||
# -----------------------------------------------
|
||||
# The call with PACKAGE and VERSION arguments is the old style
|
||||
# call (pre autoconf-2.50), which is being phased out. PACKAGE
|
||||
# and VERSION should now be passed to AC_INIT and removed from
|
||||
# the call to AM_INIT_AUTOMAKE.
|
||||
# We support both call styles for the transition. After
|
||||
# the next Automake release, Autoconf can make the AC_INIT
|
||||
# arguments mandatory, and then we can depend on a new Autoconf
|
||||
# release and drop the old call support.
|
||||
AC_DEFUN([AM_INIT_AUTOMAKE],
|
||||
[AC_PREREQ([2.58])dnl
|
||||
dnl Autoconf wants to disallow AM_ names. We explicitly allow
|
||||
dnl the ones we care about.
|
||||
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
|
||||
AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
|
||||
AC_REQUIRE([AC_PROG_INSTALL])dnl
|
||||
# test to see if srcdir already configured
|
||||
if test "`cd $srcdir && pwd`" != "`pwd`" &&
|
||||
test -f $srcdir/config.status; then
|
||||
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
|
||||
fi
|
||||
|
||||
# test whether we have cygpath
|
||||
if test -z "$CYGPATH_W"; then
|
||||
if (cygpath --version) >/dev/null 2>/dev/null; then
|
||||
CYGPATH_W='cygpath -w'
|
||||
else
|
||||
CYGPATH_W=echo
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([CYGPATH_W])
|
||||
|
||||
# Define the identity of the package.
|
||||
dnl Distinguish between old-style and new-style calls.
|
||||
m4_ifval([$2],
|
||||
[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
|
||||
AC_SUBST([PACKAGE], [$1])dnl
|
||||
AC_SUBST([VERSION], [$2])],
|
||||
[_AM_SET_OPTIONS([$1])dnl
|
||||
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
|
||||
AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
|
||||
|
||||
_AM_IF_OPTION([no-define],,
|
||||
[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
|
||||
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
|
||||
|
||||
# Some tools Automake needs.
|
||||
AC_REQUIRE([AM_SANITY_CHECK])dnl
|
||||
AC_REQUIRE([AC_ARG_PROGRAM])dnl
|
||||
AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
|
||||
AM_MISSING_PROG(AUTOCONF, autoconf)
|
||||
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
|
||||
AM_MISSING_PROG(AUTOHEADER, autoheader)
|
||||
AM_MISSING_PROG(MAKEINFO, makeinfo)
|
||||
AM_PROG_INSTALL_SH
|
||||
AM_PROG_INSTALL_STRIP
|
||||
AC_REQUIRE([AM_PROG_MKDIR_P])dnl
|
||||
# We need awk for the "check" target. The system "awk" is bad on
|
||||
# some platforms.
|
||||
AC_REQUIRE([AC_PROG_AWK])dnl
|
||||
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
||||
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
|
||||
[_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
|
||||
[_AM_PROG_TAR([v7])])])
|
||||
_AM_IF_OPTION([no-dependencies],,
|
||||
[AC_PROVIDE_IFELSE([AC_PROG_CC],
|
||||
[_AM_DEPENDENCIES(CC)],
|
||||
[define([AC_PROG_CC],
|
||||
defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
|
||||
AC_PROVIDE_IFELSE([AC_PROG_CXX],
|
||||
[_AM_DEPENDENCIES(CXX)],
|
||||
[define([AC_PROG_CXX],
|
||||
defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
|
||||
])
|
||||
])
|
||||
|
||||
|
||||
# When config.status generates a header, we must update the stamp-h file.
|
||||
# This file resides in the same directory as the config header
|
||||
# that is generated. The stamp files are numbered to have different names.
|
||||
|
||||
# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
|
||||
# loop where config.status creates the headers, so we can generate
|
||||
# our stamp files there.
|
||||
AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
|
||||
[# Compute $1's index in $config_headers.
|
||||
_am_stamp_count=1
|
||||
for _am_header in $config_headers :; do
|
||||
case $_am_header in
|
||||
$1 | $1:* )
|
||||
break ;;
|
||||
* )
|
||||
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
|
||||
esac
|
||||
done
|
||||
echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# AM_PROG_INSTALL_SH
|
||||
# ------------------
|
||||
# Define $install_sh.
|
||||
AC_DEFUN([AM_PROG_INSTALL_SH],
|
||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
install_sh=${install_sh-"$am_aux_dir/install-sh"}
|
||||
AC_SUBST(install_sh)])
|
||||
|
||||
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 2
|
||||
|
||||
# Check whether the underlying file-system supports filenames
|
||||
# with a leading dot. For instance MS-DOS doesn't.
|
||||
AC_DEFUN([AM_SET_LEADING_DOT],
|
||||
[rm -rf .tst 2>/dev/null
|
||||
mkdir .tst 2>/dev/null
|
||||
if test -d .tst; then
|
||||
am__leading_dot=.
|
||||
else
|
||||
am__leading_dot=_
|
||||
fi
|
||||
rmdir .tst 2>/dev/null
|
||||
AC_SUBST([am__leading_dot])])
|
||||
|
||||
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 3
|
||||
|
||||
# AM_MAKE_INCLUDE()
|
||||
# -----------------
|
||||
# Check to see how make treats includes.
|
||||
AC_DEFUN([AM_MAKE_INCLUDE],
|
||||
[am_make=${MAKE-make}
|
||||
cat > confinc << 'END'
|
||||
am__doit:
|
||||
@echo done
|
||||
.PHONY: am__doit
|
||||
END
|
||||
# If we don't find an include directive, just comment out the code.
|
||||
AC_MSG_CHECKING([for style of include used by $am_make])
|
||||
am__include="#"
|
||||
am__quote=
|
||||
_am_result=none
|
||||
# First try GNU make style include.
|
||||
echo "include confinc" > confmf
|
||||
# We grep out `Entering directory' and `Leaving directory'
|
||||
# messages which can occur if `w' ends up in MAKEFLAGS.
|
||||
# In particular we don't look at `^make:' because GNU make might
|
||||
# be invoked under some other name (usually "gmake"), in which
|
||||
# case it prints its new name instead of `make'.
|
||||
if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
|
||||
am__include=include
|
||||
am__quote=
|
||||
_am_result=GNU
|
||||
fi
|
||||
# Now try BSD make style include.
|
||||
if test "$am__include" = "#"; then
|
||||
echo '.include "confinc"' > confmf
|
||||
if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
|
||||
am__include=.include
|
||||
am__quote="\""
|
||||
_am_result=BSD
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([am__include])
|
||||
AC_SUBST([am__quote])
|
||||
AC_MSG_RESULT([$_am_result])
|
||||
rm -f confinc confmf
|
||||
])
|
||||
|
||||
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 4
|
||||
|
||||
# AM_MISSING_PROG(NAME, PROGRAM)
|
||||
# ------------------------------
|
||||
AC_DEFUN([AM_MISSING_PROG],
|
||||
[AC_REQUIRE([AM_MISSING_HAS_RUN])
|
||||
$1=${$1-"${am_missing_run}$2"}
|
||||
AC_SUBST($1)])
|
||||
|
||||
|
||||
# AM_MISSING_HAS_RUN
|
||||
# ------------------
|
||||
# Define MISSING if not defined so far and test if it supports --run.
|
||||
# If it does, set am_missing_run to use it, otherwise, to nothing.
|
||||
AC_DEFUN([AM_MISSING_HAS_RUN],
|
||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
|
||||
# Use eval to expand $SHELL
|
||||
if eval "$MISSING --run true"; then
|
||||
am_missing_run="$MISSING --run "
|
||||
else
|
||||
am_missing_run=
|
||||
AC_MSG_WARN([`missing' script is too old or missing])
|
||||
fi
|
||||
])
|
||||
|
||||
# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# AM_PROG_MKDIR_P
|
||||
# ---------------
|
||||
# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
|
||||
#
|
||||
# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
|
||||
# created by `make install' are always world readable, even if the
|
||||
# installer happens to have an overly restrictive umask (e.g. 077).
|
||||
# This was a mistake. There are at least two reasons why we must not
|
||||
# use `-m 0755':
|
||||
# - it causes special bits like SGID to be ignored,
|
||||
# - it may be too restrictive (some setups expect 775 directories).
|
||||
#
|
||||
# Do not use -m 0755 and let people choose whatever they expect by
|
||||
# setting umask.
|
||||
#
|
||||
# We cannot accept any implementation of `mkdir' that recognizes `-p'.
|
||||
# Some implementations (such as Solaris 8's) are not thread-safe: if a
|
||||
# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
|
||||
# concurrently, both version can detect that a/ is missing, but only
|
||||
# one can create it and the other will error out. Consequently we
|
||||
# restrict ourselves to GNU make (using the --version option ensures
|
||||
# this.)
|
||||
AC_DEFUN([AM_PROG_MKDIR_P],
|
||||
[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
|
||||
# We used to keeping the `.' as first argument, in order to
|
||||
# allow $(mkdir_p) to be used without argument. As in
|
||||
# $(mkdir_p) $(somedir)
|
||||
# where $(somedir) is conditionally defined. However this is wrong
|
||||
# for two reasons:
|
||||
# 1. if the package is installed by a user who cannot write `.'
|
||||
# make install will fail,
|
||||
# 2. the above comment should most certainly read
|
||||
# $(mkdir_p) $(DESTDIR)$(somedir)
|
||||
# so it does not work when $(somedir) is undefined and
|
||||
# $(DESTDIR) is not.
|
||||
# To support the latter case, we have to write
|
||||
# test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
|
||||
# so the `.' trick is pointless.
|
||||
mkdir_p='mkdir -p --'
|
||||
else
|
||||
# On NextStep and OpenStep, the `mkdir' command does not
|
||||
# recognize any option. It will interpret all options as
|
||||
# directories to create, and then abort because `.' already
|
||||
# exists.
|
||||
for d in ./-p ./--version;
|
||||
do
|
||||
test -d $d && rmdir $d
|
||||
done
|
||||
# $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
|
||||
if test -f "$ac_aux_dir/mkinstalldirs"; then
|
||||
mkdir_p='$(mkinstalldirs)'
|
||||
else
|
||||
mkdir_p='$(install_sh) -d'
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([mkdir_p])])
|
||||
|
||||
# Helper functions for option handling. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 3
|
||||
|
||||
# _AM_MANGLE_OPTION(NAME)
|
||||
# -----------------------
|
||||
AC_DEFUN([_AM_MANGLE_OPTION],
|
||||
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
|
||||
|
||||
# _AM_SET_OPTION(NAME)
|
||||
# ------------------------------
|
||||
# Set option NAME. Presently that only means defining a flag for this option.
|
||||
AC_DEFUN([_AM_SET_OPTION],
|
||||
[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
|
||||
|
||||
# _AM_SET_OPTIONS(OPTIONS)
|
||||
# ----------------------------------
|
||||
# OPTIONS is a space-separated list of Automake options.
|
||||
AC_DEFUN([_AM_SET_OPTIONS],
|
||||
[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
|
||||
|
||||
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
|
||||
# -------------------------------------------
|
||||
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
|
||||
AC_DEFUN([_AM_IF_OPTION],
|
||||
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
||||
|
||||
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 4
|
||||
|
||||
# AM_SANITY_CHECK
|
||||
# ---------------
|
||||
AC_DEFUN([AM_SANITY_CHECK],
|
||||
[AC_MSG_CHECKING([whether build environment is sane])
|
||||
# Just in case
|
||||
sleep 1
|
||||
echo timestamp > conftest.file
|
||||
# Do `set' in a subshell so we don't clobber the current shell's
|
||||
# arguments. Must try -L first in case configure is actually a
|
||||
# symlink; some systems play weird games with the mod time of symlinks
|
||||
# (eg FreeBSD returns the mod time of the symlink's containing
|
||||
# directory).
|
||||
if (
|
||||
set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
|
||||
if test "$[*]" = "X"; then
|
||||
# -L didn't work.
|
||||
set X `ls -t $srcdir/configure conftest.file`
|
||||
fi
|
||||
rm -f conftest.file
|
||||
if test "$[*]" != "X $srcdir/configure conftest.file" \
|
||||
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
|
||||
|
||||
# If neither matched, then we have a broken ls. This can happen
|
||||
# if, for instance, CONFIG_SHELL is bash and it inherits a
|
||||
# broken ls alias from the environment. This has actually
|
||||
# happened. Such a system could not be considered "sane".
|
||||
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
|
||||
alias in your environment])
|
||||
fi
|
||||
|
||||
test "$[2]" = conftest.file
|
||||
)
|
||||
then
|
||||
# Ok.
|
||||
:
|
||||
else
|
||||
AC_MSG_ERROR([newly created file is older than distributed files!
|
||||
Check your system clock])
|
||||
fi
|
||||
AC_MSG_RESULT(yes)])
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# AM_PROG_INSTALL_STRIP
|
||||
# ---------------------
|
||||
# One issue with vendor `install' (even GNU) is that you can't
|
||||
# specify the program used to strip binaries. This is especially
|
||||
# annoying in cross-compiling environments, where the build's strip
|
||||
# is unlikely to handle the host's binaries.
|
||||
# Fortunately install-sh will honor a STRIPPROG variable, so we
|
||||
# always use install-sh in `make install-strip', and initialize
|
||||
# STRIPPROG with the value of the STRIP variable (set by the user).
|
||||
AC_DEFUN([AM_PROG_INSTALL_STRIP],
|
||||
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
||||
# Installed binaries are usually stripped using `strip' when the user
|
||||
# run `make install-strip'. However `strip' might not be the right
|
||||
# tool to use in cross-compilation environments, therefore Automake
|
||||
# will honor the `STRIP' environment variable to overrule this program.
|
||||
dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
|
||||
if test "$cross_compiling" != no; then
|
||||
AC_CHECK_TOOL([STRIP], [strip], :)
|
||||
fi
|
||||
INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
|
||||
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||||
|
||||
# Check how to create a tarball. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 2
|
||||
|
||||
# _AM_PROG_TAR(FORMAT)
|
||||
# --------------------
|
||||
# Check how to create a tarball in format FORMAT.
|
||||
# FORMAT should be one of `v7', `ustar', or `pax'.
|
||||
#
|
||||
# Substitute a variable $(am__tar) that is a command
|
||||
# writing to stdout a FORMAT-tarball containing the directory
|
||||
# $tardir.
|
||||
# tardir=directory && $(am__tar) > result.tar
|
||||
#
|
||||
# Substitute a variable $(am__untar) that extract such
|
||||
# a tarball read from stdin.
|
||||
# $(am__untar) < result.tar
|
||||
AC_DEFUN([_AM_PROG_TAR],
|
||||
[# Always define AMTAR for backward compatibility.
|
||||
AM_MISSING_PROG([AMTAR], [tar])
|
||||
m4_if([$1], [v7],
|
||||
[am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
|
||||
[m4_case([$1], [ustar],, [pax],,
|
||||
[m4_fatal([Unknown tar format])])
|
||||
AC_MSG_CHECKING([how to create a $1 tar archive])
|
||||
# Loop over all known methods to create a tar archive until one works.
|
||||
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
|
||||
_am_tools=${am_cv_prog_tar_$1-$_am_tools}
|
||||
# Do not fold the above two line into one, because Tru64 sh and
|
||||
# Solaris sh will not grok spaces in the rhs of `-'.
|
||||
for _am_tool in $_am_tools
|
||||
do
|
||||
case $_am_tool in
|
||||
gnutar)
|
||||
for _am_tar in tar gnutar gtar;
|
||||
do
|
||||
AM_RUN_LOG([$_am_tar --version]) && break
|
||||
done
|
||||
am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
|
||||
am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
|
||||
am__untar="$_am_tar -xf -"
|
||||
;;
|
||||
plaintar)
|
||||
# Must skip GNU tar: if it does not support --format= it doesn't create
|
||||
# ustar tarball either.
|
||||
(tar --version) >/dev/null 2>&1 && continue
|
||||
am__tar='tar chf - "$$tardir"'
|
||||
am__tar_='tar chf - "$tardir"'
|
||||
am__untar='tar xf -'
|
||||
;;
|
||||
pax)
|
||||
am__tar='pax -L -x $1 -w "$$tardir"'
|
||||
am__tar_='pax -L -x $1 -w "$tardir"'
|
||||
am__untar='pax -r'
|
||||
;;
|
||||
cpio)
|
||||
am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
|
||||
am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
|
||||
am__untar='cpio -i -H $1 -d'
|
||||
;;
|
||||
none)
|
||||
am__tar=false
|
||||
am__tar_=false
|
||||
am__untar=false
|
||||
;;
|
||||
esac
|
||||
|
||||
# If the value was cached, stop now. We just wanted to have am__tar
|
||||
# and am__untar set.
|
||||
test -n "${am_cv_prog_tar_$1}" && break
|
||||
|
||||
# tar/untar a dummy directory, and stop if the command works
|
||||
rm -rf conftest.dir
|
||||
mkdir conftest.dir
|
||||
echo GrepMe > conftest.dir/file
|
||||
AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
|
||||
rm -rf conftest.dir
|
||||
if test -s conftest.tar; then
|
||||
AM_RUN_LOG([$am__untar <conftest.tar])
|
||||
grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
|
||||
fi
|
||||
done
|
||||
rm -rf conftest.dir
|
||||
|
||||
AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
|
||||
AC_MSG_RESULT([$am_cv_prog_tar_$1])])
|
||||
AC_SUBST([am__tar])
|
||||
AC_SUBST([am__untar])
|
||||
]) # _AM_PROG_TAR
|
||||
|
||||
m4_include([acinclude.m4])
|
|
@ -136,7 +136,7 @@ void EndpointAppPBX::vbox_index_read(int num)
|
|||
|
||||
e_vbox_index_num = 0;
|
||||
|
||||
SPRINT(filename, "%s/%s/%s/vbox/index", INSTALL_DATA, options.extensions_dir, e_vbox);
|
||||
SPRINT(filename, "%s/%s/vbox/index", EXTENSION_DATA, e_vbox);
|
||||
if (!(fp = fopen(filename, "r")))
|
||||
{
|
||||
PDEBUG(DEBUG_EPOINT, "EPOINT(%d) no files in index\n", ea_endpoint->ep_serial);
|
||||
|
@ -194,8 +194,8 @@ void EndpointAppPBX::vbox_index_remove(int num)
|
|||
|
||||
PDEBUG(DEBUG_EPOINT, "EPOINT(%d) removing entrie #%d\n", ea_endpoint->ep_serial, num);
|
||||
|
||||
SPRINT(filename1, "%s/%s/%s/vbox/index", INSTALL_DATA, options.extensions_dir, e_vbox);
|
||||
SPRINT(filename2, "%s/%s/%s/vbox/index-temp", INSTALL_DATA, options.extensions_dir, e_vbox);
|
||||
SPRINT(filename1, "%s/%s/vbox/index", EXTENSION_DATA, e_vbox);
|
||||
SPRINT(filename2, "%s/%s/vbox/index-temp", EXTENSION_DATA, e_vbox);
|
||||
if (!(fpr = fopen(filename1, "r")))
|
||||
{
|
||||
return;
|
||||
|
@ -348,12 +348,12 @@ void EndpointAppPBX::action_dialing_vbox_play(void)
|
|||
|
||||
case '1':
|
||||
PDEBUG(DEBUG_EPOINT, "EPOINT(%d) do store/delete.\n", ea_endpoint->ep_serial);
|
||||
SPRINT(filename, "%s/%s/%s/vbox/%s", INSTALL_DATA, options.extensions_dir, e_vbox, e_vbox_index_file);
|
||||
SPRINT(filename, "%s/%s/vbox/%s", EXTENSION_DATA, e_vbox, e_vbox_index_file);
|
||||
|
||||
/* move file */
|
||||
if (e_vbox_state == VBOX_STATE_STORE_ASK)
|
||||
{
|
||||
SPRINT(filename, "%s/%s/%s/recordings", INSTALL_DATA, options.extensions_dir, e_vbox);
|
||||
SPRINT(filename, "%s/%s/recordings", EXTENSION_DATA, e_vbox);
|
||||
if (mkdir(filename, 0755) < 0)
|
||||
{
|
||||
if (errno != EEXIST)
|
||||
|
@ -362,7 +362,7 @@ void EndpointAppPBX::action_dialing_vbox_play(void)
|
|||
goto done;
|
||||
}
|
||||
}
|
||||
SPRINT(filename2, "%s/%s/%s/recordings/%s", INSTALL_DATA, options.extensions_dir, e_vbox, e_vbox_index_file);
|
||||
SPRINT(filename2, "%s/%s/recordings/%s", EXTENSION_DATA, e_vbox, e_vbox_index_file);
|
||||
rename(filename, filename2);
|
||||
e_vbox_state = VBOX_STATE_STORE_DONE;
|
||||
if (e_ext.vbox_language)
|
||||
|
@ -922,7 +922,7 @@ void EndpointAppPBX::set_play_vbox(const char *file, int offset)
|
|||
char filename[256];
|
||||
struct lcr_msg *message;
|
||||
|
||||
SPRINT(filename, "%s/%s/%s/vbox/%s", INSTALL_DATA, options.extensions_dir, e_vbox, file);
|
||||
SPRINT(filename, "%s/%s/vbox/%s", EXTENSION_DATA, e_vbox, file);
|
||||
|
||||
/* remove .wav */
|
||||
if (!strcmp(filename+strlen(filename)-4, ".wav")) /* filename is always more than 4 digits long */
|
||||
|
|
11
alawulaw.h
11
alawulaw.h
|
@ -1,4 +1,13 @@
|
|||
|
||||
/*****************************************************************************\
|
||||
** **
|
||||
** PBX4Linux **
|
||||
** **
|
||||
**---------------------------------------------------------------------------**
|
||||
** Copyright: Andreas Eversberg **
|
||||
** **
|
||||
** alawulaw header file **
|
||||
** **
|
||||
\*****************************************************************************/
|
||||
extern signed int *audio_law_to_s32;
|
||||
extern unsigned char audio_s16_to_law[65536];
|
||||
extern short audio_alaw_relations[];
|
||||
|
|
17
autogen.sh
17
autogen.sh
|
@ -1,15 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
|
||||
# call autoconf, autoheader and automake
|
||||
echo autoheader..
|
||||
autoheader || exit $?
|
||||
echo aclocal..
|
||||
aclocal || exit $?
|
||||
echo autoconf..
|
||||
autoconf || exit $?
|
||||
echo automake..
|
||||
automake || exit $?
|
||||
|
||||
#./configure
|
||||
#make distcheck
|
||||
aclocal
|
||||
autoheader
|
||||
automake --foreign --copy --add-missing
|
||||
autoconf
|
||||
|
|
|
@ -0,0 +1,249 @@
|
|||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Define to 1 if you have the <assert.h> header file. */
|
||||
#undef HAVE_ASSERT_H
|
||||
|
||||
/* Define to 1 if you have the <asterisk/channel.h> header file. */
|
||||
#undef HAVE_ASTERISK_CHANNEL_H
|
||||
|
||||
/* Define to 1 if you have the <ctype.h> header file. */
|
||||
#undef HAVE_CTYPE_H
|
||||
|
||||
/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
|
||||
*/
|
||||
#undef HAVE_DIRENT_H
|
||||
|
||||
/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
|
||||
#undef HAVE_DOPRNT
|
||||
|
||||
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
#undef HAVE_FCNTL_H
|
||||
|
||||
/* Define to 1 if you have the `fork' function. */
|
||||
#undef HAVE_FORK
|
||||
|
||||
/* Define to 1 if you have the `gettimeofday' function. */
|
||||
#undef HAVE_GETTIMEOFDAY
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define if you have libcrypto */
|
||||
#undef HAVE_LIBCRYPTO
|
||||
|
||||
/* Define to 1 if you have the `m' library (-lm). */
|
||||
#undef HAVE_LIBM
|
||||
|
||||
/* Define to 1 if you have the `ncurses' library (-lncurses). */
|
||||
#undef HAVE_LIBNCURSES
|
||||
|
||||
/* Define to 1 if you have the `pthread' library (-lpthread). */
|
||||
#undef HAVE_LIBPTHREAD
|
||||
|
||||
/* Define to 1 if `lstat' has the bug that it succeeds when given the
|
||||
zero-length file name argument. */
|
||||
#undef HAVE_LSTAT_EMPTY_STRING_BUG
|
||||
|
||||
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
|
||||
to 0 otherwise. */
|
||||
#undef HAVE_MALLOC
|
||||
|
||||
/* Define to 1 if you have the `memmove' function. */
|
||||
#undef HAVE_MEMMOVE
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the `memset' function. */
|
||||
#undef HAVE_MEMSET
|
||||
|
||||
/* Define to 1 if you have the <mISDNuser/mbuffer.h> header file. */
|
||||
#undef HAVE_MISDNUSER_MBUFFER_H
|
||||
|
||||
/* Define to 1 if you have the `mkdir' function. */
|
||||
#undef HAVE_MKDIR
|
||||
|
||||
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
|
||||
#undef HAVE_NDIR_H
|
||||
|
||||
/* Define to 1 if you have the <netinet/in.h> header file. */
|
||||
#undef HAVE_NETINET_IN_H
|
||||
|
||||
/* Define to 1 if you have the <openssl/rsa.h> header file. */
|
||||
#undef HAVE_OPENSSL_RSA_H
|
||||
|
||||
/* Define to 1 if you have the `socket' function. */
|
||||
#undef HAVE_SOCKET
|
||||
|
||||
/* Define to 1 if stdbool.h conforms to C99. */
|
||||
#undef HAVE_STDBOOL_H
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the `strcasecmp' function. */
|
||||
#undef HAVE_STRCASECMP
|
||||
|
||||
/* Define to 1 if you have the `strchr' function. */
|
||||
#undef HAVE_STRCHR
|
||||
|
||||
/* Define to 1 if you have the `strerror' function. */
|
||||
#undef HAVE_STRERROR
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define to 1 if you have the `strncasecmp' function. */
|
||||
#undef HAVE_STRNCASECMP
|
||||
|
||||
/* Define to 1 if you have the `strstr' function. */
|
||||
#undef HAVE_STRSTR
|
||||
|
||||
/* Define to 1 if you have the `strtol' function. */
|
||||
#undef HAVE_STRTOL
|
||||
|
||||
/* Define to 1 if you have the `strtoul' function. */
|
||||
#undef HAVE_STRTOUL
|
||||
|
||||
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
|
||||
*/
|
||||
#undef HAVE_SYS_DIR_H
|
||||
|
||||
/* Define to 1 if you have the <sys/file.h> header file. */
|
||||
#undef HAVE_SYS_FILE_H
|
||||
|
||||
/* Define to 1 if you have the <sys/ioctl.h> header file. */
|
||||
#undef HAVE_SYS_IOCTL_H
|
||||
|
||||
/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
|
||||
*/
|
||||
#undef HAVE_SYS_NDIR_H
|
||||
|
||||
/* Define to 1 if you have the <sys/socket.h> header file. */
|
||||
#undef HAVE_SYS_SOCKET_H
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/time.h> header file. */
|
||||
#undef HAVE_SYS_TIME_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
|
||||
#undef HAVE_SYS_WAIT_H
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Define to 1 if you have the `vfork' function. */
|
||||
#undef HAVE_VFORK
|
||||
|
||||
/* Define to 1 if you have the <vfork.h> header file. */
|
||||
#undef HAVE_VFORK_H
|
||||
|
||||
/* Define to 1 if you have the `vprintf' function. */
|
||||
#undef HAVE_VPRINTF
|
||||
|
||||
/* Define to 1 if `fork' works. */
|
||||
#undef HAVE_WORKING_FORK
|
||||
|
||||
/* Define to 1 if `vfork' works. */
|
||||
#undef HAVE_WORKING_VFORK
|
||||
|
||||
/* Define to 1 if the system has the type `_Bool'. */
|
||||
#undef HAVE__BOOL
|
||||
|
||||
/* Define to 1 if `lstat' dereferences a symlink specified with a trailing
|
||||
slash. */
|
||||
#undef LSTAT_FOLLOWS_SLASHED_SYMLINK
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* Define as the return type of signal handlers (`int' or `void'). */
|
||||
#undef RETSIGTYPE
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
|
||||
#undef TIME_WITH_SYS_TIME
|
||||
|
||||
/* Define to 1 if your <sys/time.h> declares `struct tm'. */
|
||||
#undef TM_IN_SYS_TIME
|
||||
|
||||
/* Enable extensions on AIX 3, Interix. */
|
||||
#ifndef _ALL_SOURCE
|
||||
# undef _ALL_SOURCE
|
||||
#endif
|
||||
/* Enable GNU extensions on systems that have them. */
|
||||
#ifndef _GNU_SOURCE
|
||||
# undef _GNU_SOURCE
|
||||
#endif
|
||||
/* Enable threading extensions on Solaris. */
|
||||
#ifndef _POSIX_PTHREAD_SEMANTICS
|
||||
# undef _POSIX_PTHREAD_SEMANTICS
|
||||
#endif
|
||||
/* Enable extensions on HP NonStop. */
|
||||
#ifndef _TANDEM_SOURCE
|
||||
# undef _TANDEM_SOURCE
|
||||
#endif
|
||||
/* Enable general extensions on Solaris. */
|
||||
#ifndef __EXTENSIONS__
|
||||
# undef __EXTENSIONS__
|
||||
#endif
|
||||
|
||||
|
||||
/* Version number of package */
|
||||
#undef VERSION
|
||||
|
||||
/* Define to 1 if on MINIX. */
|
||||
#undef _MINIX
|
||||
|
||||
/* Define to 2 if the system does not provide POSIX.1 features except with
|
||||
this defined. */
|
||||
#undef _POSIX_1_SOURCE
|
||||
|
||||
/* Define to 1 if you need to in order for `stat' and other things to work. */
|
||||
#undef _POSIX_SOURCE
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
#undef const
|
||||
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||
#ifndef __cplusplus
|
||||
#undef inline
|
||||
#endif
|
||||
|
||||
/* Define to rpl_malloc if the replacement function should be used. */
|
||||
#undef malloc
|
||||
|
||||
/* Define to `int' if <sys/types.h> does not define. */
|
||||
#undef pid_t
|
||||
|
||||
/* Define as `fork' if `vfork' does not work. */
|
||||
#undef vfork
|
File diff suppressed because it is too large
Load Diff
68
configure.ac
68
configure.ac
|
@ -2,6 +2,7 @@
|
|||
|
||||
dnl This file is part of linux-call-router
|
||||
dnl Copyright (C) 2007 Joerg Habenicht (j.habenicht@gmx.de)
|
||||
dnl Copyright (C) 2008 Peter Schlaile (peter -at- schlaile.de)
|
||||
|
||||
dnl This program is free software; you can redistribute it and/or
|
||||
dnl modify it under the terms of the GNU General Public License as
|
||||
|
@ -23,23 +24,22 @@ dnl Boston, MA 02110-1301, USA.
|
|||
dnl This keeps being the first instruction.
|
||||
dnl Change the 2nd argument if the version increases
|
||||
dnl 1st + 2nd argument is used for distribution package name
|
||||
AC_INIT(lcr, 0.1.20071001, pbx4linux@koeln.ccc.de)
|
||||
AC_PREREQ(2.61)
|
||||
AC_INIT(lcr, 1.2, andreas@eversberg.eu)
|
||||
AC_PREREQ(2.59)
|
||||
AC_CONFIG_SRCDIR([main.c])
|
||||
AC_CONFIG_HEADER([config.h])
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
|
||||
# fix warnings from autoconf + automake
|
||||
AC_GNU_SOURCE
|
||||
AC_USE_SYSTEM_EXTENSIONS
|
||||
AM_INIT_AUTOMAKE([dist-bzip2])
|
||||
# AC_USE_SYSTEM_EXTENSIONS
|
||||
AM_INIT_AUTOMAKE(lcr,1.2)
|
||||
|
||||
|
||||
|
||||
# Checks for programs.
|
||||
dnl AC_CHECK_COMPILERS contains AC_PROG_CC AC_PROG_CPP and AC_PROG_CXX
|
||||
AC_CHECK_COMPILERS
|
||||
dnl AC_PROG_CXX
|
||||
dnl AC_PROG_CC
|
||||
AC_PROG_CPP
|
||||
AC_PROG_CXX
|
||||
AC_PROG_CC
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_MAKE_SET
|
||||
dnl required, if per binary CFLAGS are used
|
||||
|
@ -53,11 +53,22 @@ dnl AC_PRESERVE_HELP_ORDER
|
|||
# check for asterisk
|
||||
AC_ARG_WITH([asterisk],
|
||||
[AS_HELP_STRING([--with-asterisk],
|
||||
[compile with built-in Asterisk channel driver @<:@default=no@:>@])
|
||||
[compile with built-in Asterisk channel driver @<:@default=check@:>@])
|
||||
],
|
||||
[with_asterisk_channel_driver="yes"],
|
||||
[with_asterisk_channel_driver="no"])
|
||||
AM_CONDITIONAL(ENABLE_ASTERISK_CHANNEL_DRIVER, test "x$with_asterisk_channel_driver" == "xyes" )
|
||||
[],
|
||||
[with_asterisk="check"])
|
||||
|
||||
AS_IF([test "x$with_asterisk" != xno],
|
||||
[AC_CHECK_HEADERS([asterisk/channel.h],
|
||||
[with_asterisk="yes"],
|
||||
[if test "x$with_asterisk" != xcheck ; then
|
||||
AC_MSG_FAILURE(
|
||||
[--with-asterisk was given, but test for header-file asterisk/channel.h failed])
|
||||
fi
|
||||
])
|
||||
])
|
||||
|
||||
AM_CONDITIONAL(ENABLE_ASTERISK_CHANNEL_DRIVER, test "x$with_asterisk" == "xyes" )
|
||||
|
||||
# check for crypto
|
||||
AC_ARG_WITH([ssl],
|
||||
|
@ -83,41 +94,17 @@ AS_IF([test "x$with_ssl" != xno],
|
|||
)
|
||||
]
|
||||
)
|
||||
AM_CONDITIONAL(WITH_CRYPTO, test "x$LIBCRYPTO" == "x-lcrypto" )
|
||||
|
||||
# self written test for mISDNuser lib
|
||||
AC_PATH_MISDNUSER
|
||||
|
||||
# self written test for mISDN kernel header
|
||||
AC_PATH_MISDNKERNEL
|
||||
|
||||
|
||||
|
||||
|
||||
# Checks for libraries.
|
||||
dnl FIXME: Replace `main' with a function in `-ldl':
|
||||
dnl AC_CHECK_LIB([dl], [main])
|
||||
dnl FIXME: Replace `main' with a function in `-lh323_linux_x86_r':
|
||||
dnl AC_CHECK_LIB([h323_linux_x86_r], [main])
|
||||
dnl FIXME: Replace `main' with a function in `-lisdnnet':
|
||||
dnl AC_CHECK_LIB([isdnnet], [main])
|
||||
# FIXME: Replace `main' with a function in `-lm':
|
||||
AC_CHECK_LIB([m], [main])
|
||||
dnl FIXME: Replace `main' with a function in `-lmISDN':
|
||||
dnl AC_CHECK_LIB([mISDN], [main])
|
||||
# FIXME: Replace `main' with a function in `-lncurses':
|
||||
AC_CHECK_LIB([ncurses], [main])
|
||||
dnl FIXME: Replace `main' with a function in `-lpt_linux_x86_r':
|
||||
dnl AC_CHECK_LIB([pt_linux_x86_r], [main])
|
||||
# FIXME: Replace `main' with a function in `-lpthread':
|
||||
AC_CHECK_LIB([pthread], [main])
|
||||
|
||||
# Checks for header files.
|
||||
AC_HEADER_DIRENT
|
||||
AC_HEADER_STDC
|
||||
AC_HEADER_SYS_WAIT
|
||||
AC_CHECK_HEADERS([fcntl.h netinet/in.h stdlib.h string.h sys/file.h sys/ioctl.h sys/socket.h sys/time.h unistd.h ctype.h assert.h])
|
||||
AC_HEADER_ASSERT
|
||||
AC_CHECK_HEADERS([fcntl.h netinet/in.h stdlib.h string.h sys/file.h sys/ioctl.h sys/socket.h sys/time.h unistd.h ctype.h assert.h mISDNuser/mbuffer.h assert.h])
|
||||
|
||||
# Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_HEADER_STDBOOL
|
||||
|
@ -140,11 +127,6 @@ AC_FUNC_STRTOD
|
|||
AC_FUNC_VPRINTF
|
||||
AC_CHECK_FUNCS([gettimeofday memmove memset mkdir socket strcasecmp strchr strerror strncasecmp strstr strtol strtoul])
|
||||
|
||||
AC_SUBST(misdnuser_libraries)
|
||||
AC_SUBST(misdnuser_includes)
|
||||
AC_SUBST(misdnkernel_includes)
|
||||
AC_SUBST(all_includes)
|
||||
AC_SUBST(all_libraries)
|
||||
|
||||
AC_CONFIG_FILES([Makefile])
|
||||
AC_OUTPUT
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#portnum 2
|
||||
#portnum 3
|
||||
|
||||
|
||||
# Example of an PTP ISDN interface on port 0
|
||||
# Layer-2-Hold is required to keep link alive.
|
||||
|
||||
|
@ -22,6 +23,7 @@
|
|||
#ptp
|
||||
#layer2hold yes
|
||||
|
||||
|
||||
# Example of an internal ISDN interface on port 1, which accepts all extensions
|
||||
|
||||
#[Int]
|
||||
|
@ -69,6 +71,7 @@
|
|||
# This is required if the connected line doesn't screen caller IDs.
|
||||
# Also this interface will connect bchannel during call setup, so tones are
|
||||
# required.
|
||||
|
||||
#[Ext]
|
||||
#screen-out unknown 300 national 21250993300
|
||||
#screen-out unknown 2* national 212509932*
|
||||
|
@ -83,17 +86,20 @@
|
|||
# We prefer to use directed channels first, then we request any channel.
|
||||
# Outgoing calls on both-way-channels shall be indicated as "any channel".
|
||||
# (Siemens EWSD will select bot-way-channels when indicated that way.)
|
||||
|
||||
#[Ext]
|
||||
#portnum 0
|
||||
#layer2hold
|
||||
#channel-in 1,2,3,4,5,6,7,8,9,10,22,23,24,25,26,27,28,29,30,31
|
||||
#channel-out force,11,12,13,14,15,17,18,19,20,21,any
|
||||
|
||||
|
||||
# Example of an ISDN interface that runs in NT-mode, but provides tones during
|
||||
# setup. Also we provide tones during setup also.
|
||||
# This is usefull to interconnect to another PBX.
|
||||
# Additinally the timeout values for the different call states are adjusted to 60 seconds.
|
||||
# They are: setup, dialing, proceeding, alerting, disconnect
|
||||
|
||||
#[PBX]
|
||||
#portnum 4
|
||||
#nt
|
||||
|
@ -102,13 +108,29 @@
|
|||
#tones yes
|
||||
#timeouts 60 60 60 60 60
|
||||
|
||||
|
||||
# Example of an interface on port 0 connected to another LCR
|
||||
# This can be done by direct cross cable (terminated of course) or via L1oIP.
|
||||
# Since the remote side (NT-mode) normally doesn't accept informations like
|
||||
# redirected number or display facility, use 'te-special' to even transmit that
|
||||
# against the ISDN specifications. A remote LCR can handle that.
|
||||
# Now all information elements can be transmitted in both directions.
|
||||
|
||||
#[Ext]
|
||||
#portnum 0
|
||||
#te-special
|
||||
|
||||
|
||||
# Alternatively give port name. You will find the name with 'isdninfo' tool.
|
||||
|
||||
#[Int2]
|
||||
#portname hfc-s_usb.1
|
||||
#nt
|
||||
|
||||
|
||||
# Hint: Enter "lcr interface" for quick help on interface options.
|
||||
|
||||
|
||||
# Add your interfaces here:
|
||||
|
||||
|
||||
|
|
|
@ -49,10 +49,6 @@
|
|||
# Don't use spaces to seperate!
|
||||
#fetch_tones tones_american,tones_german,vbox_english,vbox_german
|
||||
|
||||
# Extensions directory where all configuration files and messages for all
|
||||
# extensions are stored (default= extensions).
|
||||
#extensions_dir extensions
|
||||
|
||||
# Prefix to dial national call (default= 0).
|
||||
# If you omit the prefix, all subscriber numbers are national numbers.
|
||||
# (example: Danmark)
|
||||
|
|
55
dss1.cpp
55
dss1.cpp
|
@ -27,6 +27,7 @@ Pdss1::Pdss1(int type, struct mISDNport *mISDNport, char *portname, struct port_
|
|||
{
|
||||
p_callerinfo.itype = (mISDNport->ifport->interface->extension)?INFO_ITYPE_ISDN_EXTENSION:INFO_ITYPE_ISDN;
|
||||
p_m_d_ntmode = mISDNport->ntmode;
|
||||
p_m_d_tespecial = mISDNport->tespecial;
|
||||
p_m_d_l3id = 0;
|
||||
p_m_d_ces = -1;
|
||||
p_m_d_queue = NULL;
|
||||
|
@ -34,7 +35,7 @@ Pdss1::Pdss1(int type, struct mISDNport *mISDNport, char *portname, struct port_
|
|||
p_m_d_collect_cause = 0;
|
||||
p_m_d_collect_location = 0;
|
||||
|
||||
PDEBUG(DEBUG_ISDN, "Created new mISDNPort(%s). Currently %d objects use, %s port #%d\n", portname, mISDNport->use, (mISDNport->ntmode)?"NT":"TE", p_m_portnum);
|
||||
PDEBUG(DEBUG_ISDN, "Created new mISDNPort(%s). Currently %d objects use, %s%s port #%d\n", portname, mISDNport->use, (mISDNport->ntmode)?"NT":"TE", (mISDNport->tespecial)?" (special)":"", p_m_portnum);
|
||||
}
|
||||
|
||||
|
||||
|
@ -466,8 +467,7 @@ void Pdss1::setup_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m)
|
|||
dec_ie_called_pn(l3m, &called_type, &called_plan, (unsigned char *)p_dialinginfo.id, sizeof(p_dialinginfo.id));
|
||||
dec_ie_keypad(l3m, (unsigned char *)keypad, sizeof(keypad));
|
||||
/* te-mode: CNIP (calling name identification presentation) */
|
||||
if (!p_m_d_ntmode)
|
||||
dec_facility_centrex(l3m, (unsigned char *)p_callerinfo.name, sizeof(p_callerinfo.name));
|
||||
dec_facility_centrex(l3m, (unsigned char *)p_callerinfo.name, sizeof(p_callerinfo.name));
|
||||
dec_ie_useruser(l3m, &useruser_protocol, useruser, &useruser_len);
|
||||
dec_ie_complete(l3m, &p_dialinginfo.sending_complete);
|
||||
dec_ie_redir_nr(l3m, &redir_type, &redir_plan, &redir_present, &redir_screen, &redir_reason, (unsigned char *)p_redirinfo.id, sizeof(p_redirinfo.id));
|
||||
|
@ -975,8 +975,7 @@ void Pdss1::connect_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m)
|
|||
dec_ie_connected_pn(l3m, &type, &plan, &present, &screen, (unsigned char *)p_connectinfo.id, sizeof(p_connectinfo.id));
|
||||
dec_ie_display(l3m, (unsigned char *)p_connectinfo.display, sizeof(p_connectinfo.display));
|
||||
/* te-mode: CONP (connected name identification presentation) */
|
||||
if (!p_m_d_ntmode)
|
||||
dec_facility_centrex(l3m, (unsigned char *)p_connectinfo.name, sizeof(p_connectinfo.name));
|
||||
dec_facility_centrex(l3m, (unsigned char *)p_connectinfo.name, sizeof(p_connectinfo.name));
|
||||
end_trace();
|
||||
|
||||
/* select channel */
|
||||
|
@ -1891,7 +1890,7 @@ void Pdss1::message_information(unsigned int epoint_id, int message_id, union pa
|
|||
l3m = create_l3msg();
|
||||
l1l2l3_trace_header(p_m_mISDNport, this, L3_INFORMATION_REQ, DIRECTION_OUT);
|
||||
enc_ie_called_pn(l3m, 0, 1, (unsigned char *)param->information.id);
|
||||
if (p_m_d_ntmode)
|
||||
if (p_m_d_ntmode || p_m_d_tespecial)
|
||||
enc_ie_display(l3m, (unsigned char *)param->information.display);
|
||||
end_trace();
|
||||
p_m_mISDNport->ml3->to_layer3(p_m_mISDNport->ml3, MT_INFORMATION, p_m_d_l3id, l3m);
|
||||
|
@ -1946,7 +1945,7 @@ void Pdss1::message_setup(unsigned int epoint_id, int message_id, union paramete
|
|||
/* sending information */
|
||||
l3m = create_l3msg();
|
||||
l1l2l3_trace_header(p_m_mISDNport, this, L3_INFORMATION_REQ, DIRECTION_OUT);
|
||||
if (p_m_d_ntmode)
|
||||
if (p_m_d_ntmode || p_m_d_tespecial)
|
||||
enc_ie_display(l3m, (unsigned char *)p_callerinfo.display);
|
||||
end_trace();
|
||||
p_m_mISDNport->ml3->to_layer3(p_m_mISDNport->ml3, MT_INFORMATION, p_m_d_l3id, l3m);
|
||||
|
@ -2129,7 +2128,7 @@ void Pdss1::message_setup(unsigned int epoint_id, int message_id, union paramete
|
|||
break;
|
||||
}
|
||||
/* sending redirecting number only in ntmode */
|
||||
if (type >= 0 && p_m_d_ntmode)
|
||||
if (type >= 0 && (p_m_d_ntmode || p_m_d_tespecial))
|
||||
enc_ie_redir_nr(l3m, type, plan, present, screen, reason, (unsigned char *)p_redirinfo.id);
|
||||
/* bearer capability */
|
||||
//printf("hlc=%d\n",p_capainfo.hlc);
|
||||
|
@ -2161,10 +2160,10 @@ void Pdss1::message_setup(unsigned int epoint_id, int message_id, union paramete
|
|||
}
|
||||
|
||||
/* display */
|
||||
if (p_callerinfo.display[0] && p_m_d_ntmode)
|
||||
if (p_callerinfo.display[0] && (p_m_d_ntmode || p_m_d_tespecial))
|
||||
enc_ie_display(l3m, (unsigned char *)p_callerinfo.display);
|
||||
/* nt-mode: CNIP (calling name identification presentation) */
|
||||
// if (p_callerinfo.name[0] && p_m_d_ntmode)
|
||||
// if (p_callerinfo.name[0] && (p_m_d_ntmode || p_m_d_tespecial))
|
||||
// enc_facility_centrex(&setup->FACILITY, dmsg, (unsigned char *)p_callerinfo.name, 1);
|
||||
end_trace();
|
||||
|
||||
|
@ -2180,7 +2179,7 @@ void Pdss1::message_facility(unsigned int epoint_id, int message_id, union param
|
|||
l3_msg *l3m;
|
||||
|
||||
/* facility will not be sent to external lines */
|
||||
if (!p_m_d_ntmode)
|
||||
if (!p_m_d_ntmode && !p_m_d_tespecial)
|
||||
return;
|
||||
|
||||
/* sending facility */
|
||||
|
@ -2266,14 +2265,14 @@ void Pdss1::message_notify(unsigned int epoint_id, int message_id, union paramet
|
|||
l1l2l3_trace_header(p_m_mISDNport, this, L3_NOTIFY_REQ, DIRECTION_OUT);
|
||||
enc_ie_notify(l3m, notify);
|
||||
/* sending redirection number only in ntmode */
|
||||
if (type >= 0 && p_m_d_ntmode)
|
||||
if (type >= 0 && (p_m_d_ntmode || p_m_d_tespecial))
|
||||
enc_ie_redir_dn(l3m, type, plan, present, (unsigned char *)param->notifyinfo.id);
|
||||
if (param->notifyinfo.display[0] && p_m_d_ntmode)
|
||||
if (param->notifyinfo.display[0] && (p_m_d_ntmode || p_m_d_tespecial))
|
||||
enc_ie_display(l3m, (unsigned char *)param->notifyinfo.display);
|
||||
end_trace();
|
||||
p_m_mISDNport->ml3->to_layer3(p_m_mISDNport->ml3, MT_NOTIFY, p_m_d_l3id, l3m);
|
||||
}
|
||||
} else if (p_m_d_ntmode)
|
||||
} else if (p_m_d_ntmode || p_m_d_tespecial)
|
||||
{
|
||||
/* sending information */
|
||||
l3m = create_l3msg();
|
||||
|
@ -2308,7 +2307,7 @@ void Pdss1::message_overlap(unsigned int epoint_id, int message_id, union parame
|
|||
|| p_capainfo.bearer_capa==INFO_BC_AUDIO
|
||||
|| p_capainfo.bearer_capa==INFO_BC_DATAUNRESTRICTED_TONES)
|
||||
if (p_m_mISDNport->tones)
|
||||
enc_ie_progress(l3m, 0, p_m_d_ntmode?1:5, 8);
|
||||
enc_ie_progress(l3m, 0, (p_m_d_ntmode)?1:5, 8);
|
||||
end_trace();
|
||||
p_m_mISDNport->ml3->to_layer3(p_m_mISDNport->ml3, MT_SETUP_ACKNOWLEDGE, p_m_d_l3id, l3m);
|
||||
|
||||
|
@ -2331,7 +2330,7 @@ void Pdss1::message_proceeding(unsigned int epoint_id, int message_id, union par
|
|||
|| p_capainfo.bearer_capa==INFO_BC_AUDIO
|
||||
|| p_capainfo.bearer_capa==INFO_BC_DATAUNRESTRICTED_TONES)
|
||||
if (p_m_mISDNport->tones)
|
||||
enc_ie_progress(l3m, 0, p_m_d_ntmode?1:5, 8);
|
||||
enc_ie_progress(l3m, 0, (p_m_d_ntmode)?1:5, 8);
|
||||
end_trace();
|
||||
p_m_mISDNport->ml3->to_layer3(p_m_mISDNport->ml3, MT_CALL_PROCEEDING, p_m_d_l3id, l3m);
|
||||
|
||||
|
@ -2356,7 +2355,7 @@ void Pdss1::message_alerting(unsigned int epoint_id, int message_id, union param
|
|||
|| p_capainfo.bearer_capa==INFO_BC_AUDIO
|
||||
|| p_capainfo.bearer_capa==INFO_BC_DATAUNRESTRICTED_TONES)
|
||||
if (p_m_mISDNport->tones)
|
||||
enc_ie_progress(l3m, 0, p_m_d_ntmode?1:5, 8);
|
||||
enc_ie_progress(l3m, 0, (p_m_d_ntmode)?1:5, 8);
|
||||
end_trace();
|
||||
p_m_mISDNport->ml3->to_layer3(p_m_mISDNport->ml3, MT_CALL_PROCEEDING, p_m_d_l3id, l3m);
|
||||
new_state(PORT_STATE_IN_PROCEEDING);
|
||||
|
@ -2373,7 +2372,7 @@ void Pdss1::message_alerting(unsigned int epoint_id, int message_id, union param
|
|||
|| p_capainfo.bearer_capa==INFO_BC_AUDIO
|
||||
|| p_capainfo.bearer_capa==INFO_BC_DATAUNRESTRICTED_TONES)
|
||||
if (p_m_mISDNport->tones)
|
||||
enc_ie_progress(l3m, 0, p_m_d_ntmode?1:5, 8);
|
||||
enc_ie_progress(l3m, 0, (p_m_d_ntmode)?1:5, 8);
|
||||
end_trace();
|
||||
p_m_mISDNport->ml3->to_layer3(p_m_mISDNport->ml3, MT_ALERTING, p_m_d_l3id, l3m);
|
||||
|
||||
|
@ -2412,7 +2411,7 @@ void Pdss1::message_connect(unsigned int epoint_id, int message_id, union parame
|
|||
/* sending information */
|
||||
l3m = create_l3msg();
|
||||
l1l2l3_trace_header(p_m_mISDNport, this, L3_INFORMATION_REQ, DIRECTION_OUT);
|
||||
if (p_m_d_ntmode)
|
||||
if (p_m_d_ntmode || p_m_d_tespecial)
|
||||
enc_ie_display(l3m, (unsigned char *)p_connectinfo.display);
|
||||
end_trace();
|
||||
p_m_mISDNport->ml3->to_layer3(p_m_mISDNport->ml3, MT_INFORMATION, p_m_d_l3id, l3m);
|
||||
|
@ -2475,13 +2474,13 @@ void Pdss1::message_connect(unsigned int epoint_id, int message_id, union parame
|
|||
if (type >= 0)
|
||||
enc_ie_connected_pn(l3m, type, plan, present, screen, (unsigned char *)p_connectinfo.id);
|
||||
/* display */
|
||||
if (p_connectinfo.display[0] && p_m_d_ntmode)
|
||||
if (p_connectinfo.display[0] && (p_m_d_ntmode || p_m_d_tespecial))
|
||||
enc_ie_display(l3m, (unsigned char *)p_connectinfo.display);
|
||||
/* nt-mode: CONP (connected name identification presentation) */
|
||||
// if (p_connectinfo.name[0] && p_m_d_ntmode)
|
||||
// if (p_connectinfo.name[0] && (p_m_d_ntmode || p_m_d_tespecial))
|
||||
// enc_facility_centrex(&connect->FACILITY, dmsg, (unsigned char *)p_connectinfo.name, 0);
|
||||
/* date & time */
|
||||
if (p_m_d_ntmode)
|
||||
if (p_m_d_ntmode || p_m_d_tespecial)
|
||||
{
|
||||
epoint = find_epoint_id(epoint_id);
|
||||
enc_ie_date(l3m, now, p_settings.no_seconds);
|
||||
|
@ -2542,7 +2541,7 @@ if (/* ||*/ p_state==PORT_STATE_OUT_SETUP)
|
|||
|| p_capainfo.bearer_capa==INFO_BC_AUDIO
|
||||
|| p_capainfo.bearer_capa==INFO_BC_DATAUNRESTRICTED_TONES)
|
||||
if (p_m_mISDNport->tones)
|
||||
enc_ie_progress(l3m, 0, p_m_d_ntmode?1:5, 8);
|
||||
enc_ie_progress(l3m, 0, (p_m_d_ntmode)?1:5, 8);
|
||||
end_trace();
|
||||
p_m_mISDNport->ml3->to_layer3(p_m_mISDNport->ml3, MT_CALL_PROCEEDING, p_m_d_l3id, l3m);
|
||||
new_state(PORT_STATE_IN_PROCEEDING);
|
||||
|
@ -2556,13 +2555,13 @@ if (/* ||*/ p_state==PORT_STATE_OUT_SETUP)
|
|||
|| p_capainfo.bearer_capa==INFO_BC_AUDIO
|
||||
|| p_capainfo.bearer_capa==INFO_BC_DATAUNRESTRICTED_TONES)
|
||||
if (p_m_mISDNport->tones)
|
||||
enc_ie_progress(l3m, 0, p_m_d_ntmode?1:5, 8);
|
||||
enc_ie_progress(l3m, 0, (p_m_d_ntmode)?1:5, 8);
|
||||
/* send cause */
|
||||
enc_ie_cause(l3m, (!p_m_mISDNport->locally && param->disconnectinfo.location==LOCATION_PRIVATE_LOCAL)?LOCATION_PRIVATE_REMOTE:param->disconnectinfo.location, param->disconnectinfo.cause);
|
||||
/* send display */
|
||||
if (param->disconnectinfo.display[0])
|
||||
p = param->disconnectinfo.display;
|
||||
if (p) if (*p && p_m_d_ntmode)
|
||||
if (p) if (*p && (p_m_d_ntmode || p_m_d_tespecial))
|
||||
enc_ie_display(l3m, (unsigned char *)p);
|
||||
end_trace();
|
||||
p_m_mISDNport->ml3->to_layer3(p_m_mISDNport->ml3, MT_DISCONNECT, p_m_d_l3id, l3m);
|
||||
|
@ -2637,7 +2636,7 @@ wirklich erst proceeding?:
|
|||
|| p_capainfo.bearer_capa==INFO_BC_AUDIO
|
||||
|| p_capainfo.bearer_capa==INFO_BC_DATAUNRESTRICTED_TONES)
|
||||
if (p_m_mISDNport->tones)
|
||||
enc_ie_progress(l3m, 0, p_m_d_ntmode?1:5, 8);
|
||||
enc_ie_progress(l3m, 0, (p_m_d_ntmode)?1:5, 8);
|
||||
end_trace();
|
||||
p_m_mISDNport->ml3->to_layer3(p_m_mISDNport->ml3, MT_CALL_PROCEEDING, p_m_d_l3id, l3m);
|
||||
}
|
||||
|
@ -2651,14 +2650,14 @@ wirklich erst proceeding?:
|
|||
|| p_capainfo.bearer_capa==INFO_BC_AUDIO
|
||||
|| p_capainfo.bearer_capa==INFO_BC_DATAUNRESTRICTED_TONES)
|
||||
if (p_m_mISDNport->tones)
|
||||
enc_ie_progress(l3m, 0, p_m_d_ntmode?1:5, 8);
|
||||
enc_ie_progress(l3m, 0, (p_m_d_ntmode)?1:5, 8);
|
||||
/* send cause */
|
||||
enc_ie_cause(l3m, (p_m_mISDNport->locally && param->disconnectinfo.location==LOCATION_PRIVATE_LOCAL)?LOCATION_PRIVATE_LOCAL:param->disconnectinfo.location, param->disconnectinfo.cause);
|
||||
/* send display */
|
||||
epoint = find_epoint_id(epoint_id);
|
||||
if (param->disconnectinfo.display[0])
|
||||
p = param->disconnectinfo.display;
|
||||
if (p) if (*p && p_m_d_ntmode)
|
||||
if (p) if (*p && (p_m_d_ntmode || p_m_d_tespecial))
|
||||
enc_ie_display(l3m, (unsigned char *)p);
|
||||
end_trace();
|
||||
p_m_mISDNport->ml3->to_layer3(p_m_mISDNport->ml3, MT_DISCONNECT, p_m_d_l3id, l3m);
|
||||
|
|
1
dss1.h
1
dss1.h
|
@ -22,6 +22,7 @@ class Pdss1 : public PmISDN
|
|||
int message_epoint(unsigned int epoint_id, int message, union parameter *param);
|
||||
|
||||
int p_m_d_ntmode; /* flags the nt-mode */
|
||||
int p_m_d_tespecial; /* special te-mode with all nt-mode IEs */
|
||||
struct lcr_msg *p_m_d_queue; /* queue for SETUP if link is down */
|
||||
struct lcr_msg *p_m_d_notify_pending; /* queue for NOTIFY if not connected */
|
||||
|
||||
|
|
16
extension.c
16
extension.c
|
@ -51,7 +51,7 @@ int read_extension(struct extension *ext, char *num)
|
|||
if (number[0] == '\0')
|
||||
return(0);
|
||||
|
||||
SPRINT(filename, "%s/%s/%s/settings", INSTALL_DATA, options.extensions_dir, number);
|
||||
SPRINT(filename, "%s/%s/settings", EXTENSION_DATA, number);
|
||||
|
||||
if (!(fp = fopen(filename, "r")))
|
||||
{
|
||||
|
@ -923,7 +923,7 @@ int write_extension(struct extension *ext, char *number)
|
|||
if (number[0] == '\0')
|
||||
return(0);
|
||||
|
||||
SPRINT(filename, "%s/%s/%s/settings", INSTALL_DATA, options.extensions_dir, number);
|
||||
SPRINT(filename, "%s/%s/settings", EXTENSION_DATA, number);
|
||||
|
||||
if (!(fp = fopen(filename, "w")))
|
||||
{
|
||||
|
@ -1337,7 +1337,7 @@ int write_log(char *number, char *callerid, char *calledid, time_t start, time_t
|
|||
if (callerid[0] == '\0')
|
||||
callerid = (char *)"<unknown>";
|
||||
|
||||
SPRINT(filename, "%s/%s/%s/log", INSTALL_DATA, options.extensions_dir, number);
|
||||
SPRINT(filename, "%s/%s/log", EXTENSION_DATA, number);
|
||||
|
||||
if (!(fp = fopen(filename, "a")))
|
||||
{
|
||||
|
@ -1378,7 +1378,7 @@ int parse_phonebook(char *number, char **abbrev_pointer, char **phone_pointer, c
|
|||
char buffer[1024];
|
||||
int found = 0, found_if_more_digits = 0;
|
||||
|
||||
SPRINT(filename, "%s/%s/%s/phonebook", INSTALL_DATA, options.extensions_dir, number);
|
||||
SPRINT(filename, "%s/%s/phonebook", EXTENSION_DATA, number);
|
||||
|
||||
if (!(fp = fopen(filename, "r")))
|
||||
{
|
||||
|
@ -1518,7 +1518,7 @@ int parse_secrets(char *number, char *remote_id, char **auth_pointer, char **cry
|
|||
char buffer[4096];
|
||||
int found = 0;
|
||||
|
||||
SPRINT(filename, "%s/%s/%s/secrets", INSTALL_DATA, options.extensions_dir, number);
|
||||
SPRINT(filename, "%s/%s/secrets", EXTENSION_DATA, number);
|
||||
|
||||
if (!(fp = fopen(filename, "r")))
|
||||
{
|
||||
|
@ -1661,7 +1661,7 @@ char *parse_directory(char *number, int type)
|
|||
char buffer[256];
|
||||
int found = 0;
|
||||
|
||||
SPRINT(filename, "%s/directory.list", INSTALL_DATA);
|
||||
SPRINT(filename, "%s/directory.list", CONFIG_DATA);
|
||||
|
||||
if (!(fp = fopen(filename, "r")))
|
||||
{
|
||||
|
@ -1817,7 +1817,7 @@ int parse_callbackauth(char *number, struct caller_info *callerinfo)
|
|||
static char caller_type[32], caller_id[64];
|
||||
int found = 0;
|
||||
|
||||
SPRINT(filename, "%s/%s/%s/callbackauth", INSTALL_DATA, options.extensions_dir, number);
|
||||
SPRINT(filename, "%s/%s/callbackauth", EXTENSION_DATA, number);
|
||||
|
||||
if (!(fp = fopen(filename, "r")))
|
||||
{
|
||||
|
@ -1909,7 +1909,7 @@ void append_callbackauth(char *number, struct caller_info *callerinfo)
|
|||
FILE *fp = NULL;
|
||||
char filename[256];
|
||||
|
||||
SPRINT(filename, "%s/%s/%s/callbackauth", INSTALL_DATA, options.extensions_dir, number);
|
||||
SPRINT(filename, "%s/%s/callbackauth", EXTENSION_DATA, number);
|
||||
|
||||
if (callerinfo->id[0]=='\0')
|
||||
{
|
||||
|
|
8
genext.c
8
genext.c
|
@ -69,7 +69,7 @@ int main(int argc, char *argv[])
|
|||
return(0);
|
||||
}
|
||||
|
||||
SPRINT(pathname, "%s/%s/%s", INSTALL_DATA, options.extensions_dir, argv[1]);
|
||||
SPRINT(pathname, "%s/%s", EXTENSION_DATA, argv[1]);
|
||||
if (mkdir(pathname, 0755) < 0)
|
||||
{
|
||||
if (errno == EEXIST)
|
||||
|
@ -90,7 +90,7 @@ int main(int argc, char *argv[])
|
|||
ext.facility = 1;
|
||||
write_extension(&ext, argv[1]);
|
||||
|
||||
SPRINT(pathname, "%s/%s/%s/phonebook", INSTALL_DATA, options.extensions_dir, argv[1]);
|
||||
SPRINT(pathname, "%s/%s/phonebook", EXTENSION_DATA, argv[1]);
|
||||
if (!(fp = fopen(pathname, "w")))
|
||||
{
|
||||
PERROR("Failed to write phonebook example '%s'.\n", pathname);
|
||||
|
@ -112,7 +112,7 @@ int main(int argc, char *argv[])
|
|||
fclose(fp);
|
||||
}
|
||||
|
||||
SPRINT(pathname, "%s/%s/%s/secrets", INSTALL_DATA, options.extensions_dir, argv[1]);
|
||||
SPRINT(pathname, "%s/%s/secrets", EXTENSION_DATA, argv[1]);
|
||||
if (!(fp = fopen(pathname, "w")))
|
||||
{
|
||||
PERROR("Failed to write secrets example '%s'.\n", pathname);
|
||||
|
@ -136,7 +136,7 @@ int main(int argc, char *argv[])
|
|||
fprintf(fp, "021250993 manual blowfish 0x012345678\n");
|
||||
fclose(fp);
|
||||
}
|
||||
printf("Extension %s created at %s/%s/%s/.\n", argv[1], INSTALL_DATA, options.extensions_dir, argv[1]);
|
||||
printf("Extension %s created at %s/%s/.\n", argv[1], EXTENSION_DATA, argv[1]);
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
|
35
interface.c
35
interface.c
|
@ -208,6 +208,29 @@ static int inter_nt(struct interface *interface, char *filename, int line, char
|
|||
ifport->nt = 1;
|
||||
return(0);
|
||||
}
|
||||
static int inter_tespecial(struct interface *interface, char *filename, int line, char *parameter, char *value)
|
||||
{
|
||||
struct interface_port *ifport;
|
||||
|
||||
/* port in chain ? */
|
||||
if (!interface->ifport)
|
||||
{
|
||||
SPRINT(interface_error, "Error in %s (line %d): parameter '%s' expects previous 'port' definition.\n", filename, line, parameter);
|
||||
return(-1);
|
||||
}
|
||||
/* goto end of chain */
|
||||
ifport = interface->ifport;
|
||||
while(ifport->next)
|
||||
ifport = ifport->next;
|
||||
/* add value */
|
||||
if (value[0])
|
||||
{
|
||||
SPRINT(interface_error, "Error in %s (line %d): parameter '%s' expects no value.\n", filename, line, parameter);
|
||||
return(-1);
|
||||
}
|
||||
ifport->tespecial = 1;
|
||||
return(0);
|
||||
}
|
||||
static int inter_tones(struct interface *interface, char *filename, int line, char *parameter, char *value)
|
||||
{
|
||||
if (!strcasecmp(value, "yes"))
|
||||
|
@ -920,6 +943,14 @@ struct interface_param interface_param[] = {
|
|||
"This is required on interfaces that support both NT-mode and TE-mode.\n"
|
||||
"This parameter must follow a 'port' parameter."},
|
||||
|
||||
{"te-special", &inter_tespecial, "",
|
||||
"The given port uses a modified TE-mode.\n"
|
||||
"All information elements that are allowed Network->User will then be\n"
|
||||
"transmitted User->Network also. This is usefull to pass all informations\n"
|
||||
"between two interconnected LCRs, like 'redirected number' or 'display'.\n"
|
||||
"Note that this is not compliant with ISDN protocol.\n"
|
||||
"This parameter must follow a 'port' parameter."},
|
||||
|
||||
{"layer2hold", &inter_l2hold, "yes | no",
|
||||
"The given port will continuously try to establish layer 2 link and hold it.\n"
|
||||
"It is required for PTP links in most cases, therefore it is default.\n"
|
||||
|
@ -1002,7 +1033,7 @@ struct interface *read_interfaces(void)
|
|||
if (interface_newlist != NULL)
|
||||
FATAL("list is not empty.\n");
|
||||
interface_error[0] = '\0';
|
||||
SPRINT(filename, "%s/interface.conf", INSTALL_DATA);
|
||||
SPRINT(filename, "%s/interface.conf", CONFIG_DATA);
|
||||
|
||||
if (!(fp = fopen(filename,"r")))
|
||||
{
|
||||
|
@ -1325,7 +1356,7 @@ void load_port(struct interface_port *ifport)
|
|||
struct mISDNport *mISDNport;
|
||||
|
||||
/* open new port */
|
||||
mISDNport = mISDNport_open(ifport->portnum, ifport->portname, ifport->ptp, ifport->nt, ifport->l2hold, ifport->interface);
|
||||
mISDNport = mISDNport_open(ifport->portnum, ifport->portname, ifport->ptp, ifport->nt, ifport->tespecial, ifport->l2hold, ifport->interface);
|
||||
if (mISDNport)
|
||||
{
|
||||
/* link port */
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
** interface header file **
|
||||
** **
|
||||
\*****************************************************************************/
|
||||
|
||||
enum { /* interface type */
|
||||
IF_TYPE_DIRECT,
|
||||
IF_TYPE_EXTENSION,
|
||||
|
@ -49,6 +48,7 @@ struct interface_port {
|
|||
int ptp; /* force load stack in PTP mode */
|
||||
int ptmp; /* force load stack in PTP mode */
|
||||
int nt; /* load stack in NT-mode */
|
||||
int tespecial; /* special TE-mode behavior */
|
||||
int l2hold; /* hold layer 2 (1=force, -1=disable */
|
||||
int channel_force; /* forces channel by protocol */
|
||||
int nodtmf; /* disables DTMF */
|
||||
|
|
|
@ -64,13 +64,13 @@ int mISDN_initialize(void)
|
|||
/* open debug, if enabled and not only stack debugging */
|
||||
if (options.deb)
|
||||
{
|
||||
SPRINT(filename, "%s/debug.log", INSTALL_DATA);
|
||||
SPRINT(filename, "%s/debug.log", LOG_DIR);
|
||||
debug_fp = fopen(filename, "a");
|
||||
}
|
||||
|
||||
if (options.deb & DEBUG_STACK)
|
||||
{
|
||||
SPRINT(filename, "%s/debug_mISDN.log", INSTALL_DATA);
|
||||
SPRINT(filename, "%s/debug_mISDN.log", LOG_DIR);
|
||||
mISDN_debug_init(0xffffffff, filename, filename, filename);
|
||||
} else
|
||||
mISDN_debug_init(0, NULL, NULL, NULL);
|
||||
|
@ -2125,7 +2125,7 @@ int do_layer3(struct mlayer3 *ml3, unsigned int cmd, unsigned int pid, struct l3
|
|||
/*
|
||||
* global function to add a new card (port)
|
||||
*/
|
||||
struct mISDNport *mISDNport_open(int port, char *portname, int ptp, int force_nt, int l2hold, struct interface *interface)
|
||||
struct mISDNport *mISDNport_open(int port, char *portname, int ptp, int force_nt, int te_special, int l2hold, struct interface *interface)
|
||||
{
|
||||
int ret;
|
||||
struct mISDNport *mISDNport, **mISDNportp;
|
||||
|
@ -2353,6 +2353,7 @@ struct mISDNport *mISDNport_open(int port, char *portname, int ptp, int force_nt
|
|||
mISDNport->b_num = devinfo.nrbchan;
|
||||
mISDNport->portnum = port;
|
||||
mISDNport->ntmode = nt;
|
||||
mISDNport->tespecial = te_special;
|
||||
mISDNport->pri = pri;
|
||||
mISDNport->ptp = ptp;
|
||||
mISDNport->l2hold = l2hold;
|
||||
|
|
5
mISDN.h
5
mISDN.h
|
@ -42,7 +42,8 @@ struct mISDNport {
|
|||
int l2hold; /* set, if layer 2 must be hold/checked */
|
||||
time_t l2establish; /* time until establishing after link failure */
|
||||
int use; /* counts the number of port that uses this port */
|
||||
int ntmode; /* is TRUE if port is nt mode */
|
||||
int ntmode; /* is TRUE if port is NT mode */
|
||||
int tespecial; /* is TRUE if port uses special TE mode */
|
||||
int pri; /* is TRUE if port is a primary rate interface */
|
||||
int tones; /* TRUE if tones are sent outside connect state */
|
||||
int earlyb; /* TRUE if tones are received outside connect state */
|
||||
|
@ -79,7 +80,7 @@ calls with no bchannel (call waiting, call on hold).
|
|||
/* mISDN none-object functions */
|
||||
int mISDN_initialize(void);
|
||||
void mISDN_deinitialize(void);
|
||||
struct mISDNport *mISDNport_open(int port, char *portname, int ptp, int force_nt, int l2hold, struct interface *interface);
|
||||
struct mISDNport *mISDNport_open(int port, char *portname, int ptp, int force_nt, int te_special, int l2hold, struct interface *interface);
|
||||
void mISDNport_close_all(void);
|
||||
void mISDNport_close(struct mISDNport *mISDNport);
|
||||
void mISDN_port_reorder(void);
|
||||
|
|
3
main.h
3
main.h
|
@ -29,12 +29,13 @@
|
|||
#include <sys/file.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/resource.h>
|
||||
#include <config.h>
|
||||
|
||||
#define NAME "LCR"
|
||||
|
||||
#define DEFAULT_ENDPOINT_APP EndpointAppPBX
|
||||
|
||||
#define VERSION_STRING "1.1 (Summer 2008)"
|
||||
#define VERSION_STRING VERSION
|
||||
|
||||
extern int memuse;
|
||||
extern int mmemuse;
|
||||
|
|
|
@ -0,0 +1,111 @@
|
|||
#! /bin/sh
|
||||
# mkinstalldirs --- make directory hierarchy
|
||||
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
|
||||
# Created: 1993-05-16
|
||||
# Public domain
|
||||
|
||||
errstatus=0
|
||||
dirmode=""
|
||||
|
||||
usage="\
|
||||
Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
|
||||
|
||||
# process command line arguments
|
||||
while test $# -gt 0 ; do
|
||||
case $1 in
|
||||
-h | --help | --h*) # -h for help
|
||||
echo "$usage" 1>&2
|
||||
exit 0
|
||||
;;
|
||||
-m) # -m PERM arg
|
||||
shift
|
||||
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
|
||||
dirmode=$1
|
||||
shift
|
||||
;;
|
||||
--) # stop option processing
|
||||
shift
|
||||
break
|
||||
;;
|
||||
-*) # unknown option
|
||||
echo "$usage" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
*) # first non-opt arg
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
for file
|
||||
do
|
||||
if test -d "$file"; then
|
||||
shift
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
case $# in
|
||||
0) exit 0 ;;
|
||||
esac
|
||||
|
||||
case $dirmode in
|
||||
'')
|
||||
if mkdir -p -- . 2>/dev/null; then
|
||||
echo "mkdir -p -- $*"
|
||||
exec mkdir -p -- "$@"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
|
||||
echo "mkdir -m $dirmode -p -- $*"
|
||||
exec mkdir -m "$dirmode" -p -- "$@"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
for file
|
||||
do
|
||||
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
|
||||
shift
|
||||
|
||||
pathcomp=
|
||||
for d
|
||||
do
|
||||
pathcomp="$pathcomp$d"
|
||||
case $pathcomp in
|
||||
-*) pathcomp=./$pathcomp ;;
|
||||
esac
|
||||
|
||||
if test ! -d "$pathcomp"; then
|
||||
echo "mkdir $pathcomp"
|
||||
|
||||
mkdir "$pathcomp" || lasterr=$?
|
||||
|
||||
if test ! -d "$pathcomp"; then
|
||||
errstatus=$lasterr
|
||||
else
|
||||
if test ! -z "$dirmode"; then
|
||||
echo "chmod $dirmode $pathcomp"
|
||||
lasterr=""
|
||||
chmod "$dirmode" "$pathcomp" || lasterr=$?
|
||||
|
||||
if test ! -z "$lasterr"; then
|
||||
errstatus=$lasterr
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
pathcomp="$pathcomp/"
|
||||
done
|
||||
done
|
||||
|
||||
exit $errstatus
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# End:
|
||||
# mkinstalldirs ends here
|
13
options.c
13
options.c
|
@ -26,7 +26,6 @@ struct options options = {
|
|||
"00", /* international prefix */
|
||||
"tones_american", /* directory of tones */
|
||||
"", /* directories of tones to fetch */
|
||||
"extensions", /* directory of extensions */
|
||||
"", /* dummy caller id */
|
||||
0, /* use tones by dsp.o */
|
||||
0, /* by default use priority 0 */
|
||||
|
@ -51,7 +50,7 @@ int read_options(void)
|
|||
unsigned int line,i;
|
||||
char buffer[256];
|
||||
|
||||
SPRINT(filename, "%s/options.conf", INSTALL_DATA);
|
||||
SPRINT(filename, "%s/options.conf", CONFIG_DATA);
|
||||
|
||||
if (!(fp=fopen(filename,"r")))
|
||||
{
|
||||
|
@ -176,15 +175,7 @@ int read_options(void)
|
|||
} else
|
||||
if (!strcmp(option,"extensions_dir"))
|
||||
{
|
||||
if (param[0]==0)
|
||||
{
|
||||
SPRINT(options_error, "Error in %s (line %d): parameter for option %s missing.\n",filename,line,option);
|
||||
goto error;
|
||||
}
|
||||
if (param[strlen(param)-1] == '/')
|
||||
param[strlen(param)-1]=0;
|
||||
SCPY(options.extensions_dir, param);
|
||||
|
||||
// obsolete
|
||||
} else
|
||||
if (!strcmp(option,"national"))
|
||||
{
|
||||
|
|
|
@ -19,7 +19,6 @@ struct options {
|
|||
|
||||
char tones_dir[64]; /* directory of all tones/patterns */
|
||||
char fetch_tones[256]; /* directories of tones to fetch */
|
||||
char extensions_dir[64]; /* directory of extensions */
|
||||
char dummyid[32]; /* caller id for external calls if not available */
|
||||
int dsptones; /* tones will be generated via dsp.o 1=american 2=ger */
|
||||
int schedule; /* run process in realtime @ given priority */
|
||||
|
|
16
port.cpp
16
port.cpp
|
@ -361,13 +361,13 @@ void Port::set_tone(const char *dir, const char *name)
|
|||
p_tone_fetched = NULL;
|
||||
return;
|
||||
}
|
||||
SPRINT(filename, "%s/%s/%s", INSTALL_DATA, p_tone_dir, p_tone_name);
|
||||
SPRINT(filename, "%s/%s/%s", SHARE_DATA, p_tone_dir, p_tone_name);
|
||||
if ((fh=open_tone(filename, &p_tone_codec, 0, 0)) >= 0)
|
||||
{
|
||||
close(fh);
|
||||
return;
|
||||
}
|
||||
SPRINT(filename, "%s/%s/%s_loop", INSTALL_DATA, p_tone_dir, p_tone_name);
|
||||
SPRINT(filename, "%s/%s/%s_loop", SHARE_DATA, p_tone_dir, p_tone_name);
|
||||
if ((fh=open_tone(filename, &p_tone_codec, 0, 0)) >= 0)
|
||||
{
|
||||
close(fh);
|
||||
|
@ -423,7 +423,7 @@ void Port::set_vbox_tone(const char *dir, const char *name)
|
|||
PDEBUG(DEBUG_PORT, "PORT(%s) opening fetched tone: %s\n", p_name, p_tone_name);
|
||||
return;
|
||||
}
|
||||
SPRINT(filename, "%s/%s/%s", INSTALL_DATA, p_tone_dir, p_tone_name);
|
||||
SPRINT(filename, "%s/%s/%s", SHARE_DATA, p_tone_dir, p_tone_name);
|
||||
if ((p_tone_fh=open_tone(filename, &p_tone_codec, &p_tone_size, &p_tone_left)) >= 0)
|
||||
{
|
||||
fhuse++;
|
||||
|
@ -515,7 +515,7 @@ int Port::read_audio(unsigned char *buffer, int length)
|
|||
/* if file does not exist */
|
||||
if (!(p_tone_fetched=open_tone_fetched(p_tone_dir, filename, &p_tone_codec, &p_tone_size, &p_tone_left)))
|
||||
{
|
||||
SPRINT(filename, "%s/%s/%s", INSTALL_DATA, p_tone_dir, p_tone_name);
|
||||
SPRINT(filename, "%s/%s/%s", SHARE_DATA, p_tone_dir, p_tone_name);
|
||||
/* if file does not exist */
|
||||
if ((p_tone_fh=open_tone(filename, &p_tone_codec, &p_tone_size, &p_tone_left)) < 0)
|
||||
{
|
||||
|
@ -611,7 +611,7 @@ try_loop:
|
|||
SPRINT(filename, "%s_loop", p_tone_name);
|
||||
if (!(p_tone_fetched=open_tone_fetched(p_tone_dir, filename, &p_tone_codec, &p_tone_size, &p_tone_left)))
|
||||
{
|
||||
SPRINT(filename, "%s/%s/%s_loop", INSTALL_DATA, p_tone_dir, p_tone_name);
|
||||
SPRINT(filename, "%s/%s/%s_loop", SHARE_DATA, p_tone_dir, p_tone_name);
|
||||
/* if file does not exist */
|
||||
if ((p_tone_fh=open_tone(filename, &p_tone_codec, &p_tone_size, &p_tone_left)) < 0)
|
||||
{
|
||||
|
@ -725,9 +725,9 @@ int Port::open_record(int type, int vbox, int skip, char *extension, int anon_ig
|
|||
}
|
||||
|
||||
if (vbox != 0)
|
||||
SPRINT(filename, "%s/%s/%s/vbox", INSTALL_DATA, options.extensions_dir, p_record_extension);
|
||||
SPRINT(filename, "%s/%s/vbox", EXTENSION_DATA, p_record_extension);
|
||||
else
|
||||
SPRINT(filename, "%s/%s/%s/recordings", INSTALL_DATA, options.extensions_dir, p_record_extension);
|
||||
SPRINT(filename, "%s/%s/recordings", EXTENSION_DATA, p_record_extension);
|
||||
if (mkdir(filename, 0755) < 0)
|
||||
{
|
||||
if (errno != EEXIST)
|
||||
|
@ -969,7 +969,7 @@ void Port::close_record(int beep, int mute)
|
|||
|
||||
if (p_record_vbox == 2)
|
||||
{
|
||||
SPRINT(indexname, "%s/%s/%s/vbox/index", INSTALL_DATA, options.extensions_dir, p_record_extension);
|
||||
SPRINT(indexname, "%s/%s/vbox/index", EXTENSION_DATA, p_record_extension);
|
||||
if ((fp = fopen(indexname,"a")))
|
||||
{
|
||||
fduse++;
|
||||
|
|
4
route.c
4
route.c
|
@ -875,7 +875,7 @@ struct route_ruleset *ruleset_parse(void)
|
|||
j<<=1;
|
||||
}
|
||||
|
||||
SPRINT(filename[0], "%s/routing.conf", INSTALL_DATA);
|
||||
SPRINT(filename[0], "%s/routing.conf", CONFIG_DATA);
|
||||
|
||||
if (!(fp[0]=fopen(filename[0],"r")))
|
||||
{
|
||||
|
@ -943,7 +943,7 @@ struct route_ruleset *ruleset_parse(void)
|
|||
if (key[0] == '/')
|
||||
SCPY(filename[nesting+1], key);
|
||||
else
|
||||
SPRINT(filename[nesting+1], "%s/%s", INSTALL_DATA, key);
|
||||
SPRINT(filename[nesting+1], "%s/%s", CONFIG_DATA, key);
|
||||
if (!(fp[nesting+1]=fopen(filename[nesting+1],"r")))
|
||||
{
|
||||
PERROR("Cannot open %s\n", filename[nesting+1]);
|
||||
|
|
8
todo.txt
8
todo.txt
|
@ -1,12 +1,6 @@
|
|||
|
||||
chan_lcr:
|
||||
call transfer and other functional protocols
|
||||
|
||||
- das cli
|
||||
- config file
|
||||
- einbau von b-channel-features
|
||||
|
||||
|
||||
call transfer
|
||||
display message during nothing/play
|
||||
|
||||
doku:
|
||||
|
|
2
tones.c
2
tones.c
|
@ -463,7 +463,7 @@ int fetch_tones(void)
|
|||
SCPY((*toneset_nextpointer)->directory, p);
|
||||
tonesettone_nextpointer = &(*toneset_nextpointer)->first;
|
||||
|
||||
SPRINT(path, "%s/%s", INSTALL_DATA, p);
|
||||
SPRINT(path, "%s/%s", SHARE_DATA, p);
|
||||
dir = opendir(path);
|
||||
if (dir == NULL)
|
||||
{
|
||||
|
|
4
vbox.cpp
4
vbox.cpp
|
@ -257,11 +257,11 @@ int VBoxPort::message_epoint(unsigned int epoint_id, int message_id, union param
|
|||
if (c[1] == '/')
|
||||
SPRINT(filename, c+1);
|
||||
else
|
||||
SPRINT(filename, "%s/%s/%s/vbox/%s", INSTALL_DATA, options.extensions_dir, p_vbox_ext.number);
|
||||
SPRINT(filename, "%s/%s/vbox/%s", EXTENSION_DATA, p_vbox_ext.number);
|
||||
*c = '\0';
|
||||
} else
|
||||
{
|
||||
SPRINT(filename, "%s/%s/%s/vbox/announcement", INSTALL_DATA, options.extensions_dir, p_vbox_ext.number);
|
||||
SPRINT(filename, "%s/%s/vbox/announcement", EXTENSION_DATA, p_vbox_ext.number);
|
||||
}
|
||||
vbox_trace_header(this, "SETUP to VBox", DIRECTION_OUT);
|
||||
add_trace("from", "id", "%s", param->setup.callerinfo.id);
|
||||
|
|
147
watch.c
147
watch.c
|
@ -1,147 +0,0 @@
|
|||
/*****************************************************************************\
|
||||
** **
|
||||
** Linux-Call-Router **
|
||||
** **
|
||||
**---------------------------------------------------------------------------**
|
||||
** Copyright: Andreas Eversberg **
|
||||
** **
|
||||
** LCR Watchdog **
|
||||
** **
|
||||
\*****************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#include <stdarg.h>
|
||||
#include <time.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
#include "save.h"
|
||||
|
||||
time_t now;
|
||||
#define GET_NOW() \
|
||||
{ \
|
||||
now = time(&now); \
|
||||
}
|
||||
|
||||
int quit = 0;
|
||||
|
||||
void sighandler(int sigset)
|
||||
{
|
||||
if (sigset == SIGHUP)
|
||||
return;
|
||||
if (sigset == SIGPIPE)
|
||||
return;
|
||||
printf("Signal received: %d\n", sigset);
|
||||
quit = 1;
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int debug = 0;
|
||||
int ret;
|
||||
char command[256], file[64] = "pbx";
|
||||
|
||||
printf("** PBX-Watch ***\n\n");
|
||||
|
||||
/* show options */
|
||||
if (argc <= 1)
|
||||
{
|
||||
usage:
|
||||
printf("\n");
|
||||
printf("Usage: pbxwatch (run | debug) [fork]\n");
|
||||
printf("run = Starts PBX4Linux (pbx) and restart it on every crash.\n");
|
||||
printf("debug = Starts PBX4Linux using debugger an restarts it on every crash.\n");
|
||||
printf(" Log files and back trace are moved into a seperate directory.\n");
|
||||
printf("fork = Option to make pbxwatch running as daemon.\n");
|
||||
printf("\n");
|
||||
return(0);
|
||||
}
|
||||
|
||||
if (!(strcasecmp(argv[1],"run")))
|
||||
debug = 0;
|
||||
else
|
||||
if (!(strcasecmp(argv[1],"debug")))
|
||||
debug = 1;
|
||||
else
|
||||
goto usage;
|
||||
|
||||
/* do fork */
|
||||
if (argc > 2)
|
||||
if (!(strcasecmp(argv[2],"fork")))
|
||||
{
|
||||
/* do daemon fork */
|
||||
pid_t pid;
|
||||
|
||||
pid = fork();
|
||||
|
||||
if (pid < 0)
|
||||
{
|
||||
fprintf(stderr, "Cannot fork!\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
if (pid != 0)
|
||||
{
|
||||
printf("PBX-Watch: Starting daemon.\n");
|
||||
exit(0);
|
||||
}
|
||||
usleep(200000);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
/* signal handlers */
|
||||
signal(SIGINT,sighandler);
|
||||
signal(SIGHUP,sighandler);
|
||||
signal(SIGTERM,sighandler);
|
||||
signal(SIGPIPE,sighandler);
|
||||
|
||||
while(42)
|
||||
{
|
||||
/* RUN */
|
||||
printf("*** RUNNING PBX4LINUX ***\n");
|
||||
if (debug)
|
||||
{
|
||||
/* write debugger batch list */
|
||||
SPRINT(command, "echo > /tmp/pbxwatch.batch -e \"handle SIGPIPE nostop\\\\nfile %s\\\\nrun start\\\\nbt\\\\n\"", file);
|
||||
system(command);
|
||||
SPRINT(command, "gdb --quiet --batch -x \"/tmp/pbxwatch.batch\" 2>&1 | tee %s/crashreport", INSTALL_DATA);
|
||||
printf("*** DEBUGGER STARTED ***\n");
|
||||
ret = system(command);
|
||||
printf("*** DEBUGGER FINISHED ***\n");
|
||||
} else
|
||||
{
|
||||
SCPY(command, file);
|
||||
ret = system(command);
|
||||
if (ret != 11)
|
||||
{
|
||||
printf("*** PBX4LINUX exitted with return code %d ***\n", ret);
|
||||
break;
|
||||
}
|
||||
printf("*** PBX4LINUX CRASHED ***\n");
|
||||
}
|
||||
|
||||
/* LOG */
|
||||
printf("*** WRITING LOG ***\n");
|
||||
GET_NOW();
|
||||
SPRINT(command, "mkdir \"%s/%d\" && mv \"%s/crashreport\" \"%s/%d\" && cp -a \"%s/debug*.log\" \"%s/%d\"\n", INSTALL_DATA, now, INSTALL_DATA, INSTALL_DATA, now, INSTALL_DATA, INSTALL_DATA, now);
|
||||
system(command);
|
||||
|
||||
/* DELAY */
|
||||
printf("*** SLEEPING 10 SECONDS UNTIL RESTART ***\n");
|
||||
sleep(10);
|
||||
if (quit)
|
||||
break;
|
||||
}
|
||||
|
||||
signal(SIGINT,SIG_DFL);
|
||||
signal(SIGHUP,SIG_DFL);
|
||||
signal(SIGTERM,SIG_DFL);
|
||||
signal(SIGPIPE,SIG_DFL);
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue