Replace ast_say_* functionn with function pointers, so that modules

can override them.
On passing, fix a potential problem in the top level Makefile:

if a static library is not referenced by any of the core objects,
it is not linked in the main program, and will not be available
to modules, which leads to failure at runtime when the modules
are loaded.
This is the case of stdtime/localtime.o, which supplies some core
symbolx, but is only linked in as a library. Fix the problem by
linking in the object.

NOTE: this is intended as a temporary aid to replace the
existing say.c with a newer implementation. Once the
task is completed, we may decide whether or not the ast_say*()
functions should be pluggable or not and possibly revert
part of this change.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@14382 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Luigi Rizzo
2006-03-23 14:28:16 +00:00
parent 408a6e25e4
commit dde76c531c
4 changed files with 104 additions and 35 deletions

View File

@@ -357,7 +357,7 @@ endif
SUBDIRS=res channels pbx apps codecs formats agi cdr funcs utils stdtime
OBJS=io.o sched.o logger.o frame.o loader.o config.o channel.o \
translate.o file.o say.o pbx.o cli.o md5.o term.o \
translate.o file.o pbx.o cli.o md5.o term.o \
ulaw.o alaw.o callerid.o fskmodem.o image.o app.o \
cdr.o tdd.o acl.o rtp.o udptl.o manager.o asterisk.o \
dsp.o chanvars.o indications.o autoservice.o db.o privacy.o \
@@ -366,6 +366,15 @@ OBJS=io.o sched.o logger.o frame.o loader.o config.o channel.o \
netsock.o slinfactory.o ast_expr2.o ast_expr2f.o \
cryptostub.o sha1.o
# we need to link in the objects statically, not as a library, because
# otherwise modules will not have them available if none of the static
# objects use it.
OBJS+= stdtime/localtime.o
# At the moment say.o is an optional component which can be overridden
# by a module.
OBJS+= say.o
ifeq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/sys/poll.h),)
OBJS+= poll.o
ASTCFLAGS+=-DPOLLCOMPAT