app_conference.so : $(OBJS) $(CC) -pg $(SOLINK) -o $@ $(OBJS) where SOLINK is -dynamic -bundle -undefined suppress -force_flat_namespace yields ... gcc -pg -dynamic -bundle -undefined suppress -force_flat_namespace -o app_conference.so app_conference.o conference.o member.o frame.o cli.o libspeex/preprocess.o libspeex/misc.o libspeex/smallft.o /usr/bin/ld: app_conference.o has local relocation entries in non-writable section (__TEXT,__text) collect2: ld returned 1 exit status make: *** [app_conference.so] Error 1 ======================================== app_conference.so : $(OBJS) ifeq (${OSARCH},Darwin) $(CC) -pg -Xlinker -x -o $@ $(OBJS) yields ... gcc -pg -Xlinker -x -o app_conference.so app_conference.o conference.o member.o frame.o cli.o libspeex/preprocess.o libspeex/misc.o libspeex/smallft.o /usr/bin/ld: Undefined symbols: _main _ast_log _ast_register_application _ast_softhangup _ast_unregister_application _ast_update_use_count ___use_ast_pthread_create_instead__ _ast_frdup _ast_frfree _ast_frisolate _ast_translate _ast_translator_build_path _ast_translator_free_path ___ast_smoother_feed _ast_answer _ast_closestream _ast_read _ast_readframe _ast_set_read_format _ast_set_write_format _ast_smoother_free _ast_smoother_new _ast_smoother_read _ast_waitfor _ast_write _manager_event _ast_cli _ast_cli_register _ast_cli_unregister _ast_copy_string _ast_openstream collect2: ld returned 1 exit status make: *** [app_conference.so] Error 1 ======================================== app_conference.so : $(OBJS) ifeq (${OSARCH},Darwin) $(CC) -pg -x -o $@ $(OBJS) yields ... gcc -pipe -Wall -Wmissing-prototypes -Wmissing-declarations -g -I/Users/benjamin/asterisk-1.0.10/include/asterisk -D_REENTRANT -D_GNU_SOURCE -O3 -ffast-math -funroll-all-loops -fprefetch-loop-arrays -fsingle-precision-constant -mcpu=7450 -faltivec -mabi=altivec -mdynamic-no-pic -DCRYPTO -DAPP_CONFERENCE_DEBUG -Ilibspeex -DSILDET=2 -c -o libspeex/smallft.o libspeex/smallft.c gcc -pg -x -o app_conference.so app_conference.o conference.o member.o frame.o cli.o libspeex/preprocess.o libspeex/misc.o libspeex/smallft.o powerpc-apple-darwin8-gcc-4.0.0: app_conference.so: No such file or directory powerpc-apple-darwin8-gcc-4.0.0: language -o not recognized powerpc-apple-darwin8-gcc-4.0.0: language -o not recognized powerpc-apple-darwin8-gcc-4.0.0: language -o not recognized powerpc-apple-darwin8-gcc-4.0.0: language -o not recognized powerpc-apple-darwin8-gcc-4.0.0: language -o not recognized powerpc-apple-darwin8-gcc-4.0.0: language -o not recognized powerpc-apple-darwin8-gcc-4.0.0: language -o not recognized powerpc-apple-darwin8-gcc-4.0.0: language -o not recognized powerpc-apple-darwin8-gcc-4.0.0: language -o not recognized powerpc-apple-darwin8-gcc-4.0.0: language -o not recognized powerpc-apple-darwin8-gcc-4.0.0: language -o not recognized powerpc-apple-darwin8-gcc-4.0.0: language -o not recognized powerpc-apple-darwin8-gcc-4.0.0: language -o not recognized powerpc-apple-darwin8-gcc-4.0.0: language -o not recognized powerpc-apple-darwin8-gcc-4.0.0: language -o not recognized powerpc-apple-darwin8-gcc-4.0.0: language -o not recognized make: *** [app_conference.so] Error 1 ======================================== # $Id: Makefile,v 1.9 2005/10/27 17:53:35 stevek Exp $ # # Makefile, based on the Asterisk Makefile, Coypright (C) 1999, Mark Spencer # # Copyright (C) 2002,2003 Junghanns.NET GmbH # # Klaus-Peter Junghanns # # This program is free software and may be modified and # distributed under the terms of the GNU Public License. # .EXPORT_ALL_VARIABLES: # # app_conference defines which can be passed on the command-line # INSTALL_PREFIX := /usr INSTALL_MODULES_DIR := $(INSTALL_PREFIX)/lib/asterisk/modules #ASTERISK_INCLUDE_DIR := $(HOME)/local/asterisk/asterisk/include ASTERISK_INCLUDE_DIR := $(HOME)/asterisk-1.0.10/include/asterisk # turn app_conference debugging on or off ( 0 == OFF, 1 == ON ) APP_CONFERENCE_DEBUG := 1 # 0 = OFF 1 = astdsp 2 = speex SILDET := 2 # # app_conference objects to build # OBJS = app_conference.o conference.o member.o frame.o cli.o SHAREDOS = app_conference.so # # standard compile settings # PROC = $(shell uname -m) INSTALL = install CC = gcc INCLUDE = -I$(ASTERISK_INCLUDE_DIR) LIBS = -ldl -lpthread -lm DEBUG := -g CFLAGS = -pipe -Wall -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #CFLAGS += -O2 #CFLAGS += -O3 -march=pentium3 -msse -mfpmath=sse,387 -ffast-math # PERF: below is 10% faster than -O2 or -O3 alone. #CFLAGS += -O3 -ffast-math -funroll-loops # below is another 5% faster or so. CFLAGS += -O3 -ffast-math -funroll-all-loops -fprefetch-loop-arrays -fsingle-precision-constant # this is fun for PPC CFLAGS += -mcpu=7450 -faltivec -mabi=altivec -mdynamic-no-pic # this is fun for x86 #CFLAGS += -march=pentium3 -msse -mfpmath=sse,387 # adding -msse -mfpmath=sse has little effect. #CFLAGS += -O3 -msse -mfpmath=sse #CFLAGS += $(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi) CFLAGS += $(shell if uname -m | grep -q ppc; then echo "-fsigned-char"; fi) CFLAGS += -DCRYPTO ifeq ($(APP_CONFERENCE_DEBUG), 1) CFLAGS += -DAPP_CONFERENCE_DEBUG endif # # additional flag values for silence detection # ifeq ($(SILDET), 2) OBJS += libspeex/preprocess.o libspeex/misc.o libspeex/smallft.o CFLAGS += -Ilibspeex -DSILDET=2 endif ifeq ($(SILDET), 1) CFLAGS += -DSILDET=1 endif # this is taken from the Asterisk Makefile ... OSARCH=$(shell uname -s) ifeq (${OSARCH},Darwin) SOLINK=-dynamic -bundle -undefined suppress -force_flat_namespace else SOLINK=-shared -Xlinker -x endif # # targets # all: $(SHAREDOS) clean: rm -f *.so *.o $(OBJS) app_conference.so : $(OBJS) $(CC) -pg $(SOLINK) -o $@ $(OBJS) vad_test: vad_test.o libspeex/preprocess.o libspeex/misc.o libspeex/smallft.o $(CC) $(PROFILE) -o $@ $^ -lm install: all for x in $(SHAREDOS); do $(INSTALL) -m 755 $$x $(INSTALL_MODULES_DIR) ; done /usr/sbin/asterisk -rx "restart now" # config: all # cp conf.conf /etc/asterisk/ ======================================== complete output ... # make clean ; make install rm -f *.so *.o app_conference.o conference.o member.o frame.o cli.o libspeex/preprocess.o libspeex/misc.o libspeex/smallft.o gcc -pipe -Wall -Wmissing-prototypes -Wmissing-declarations -g -I/Users/benjamin/asterisk-1.0.10/include/asterisk -D_REENTRANT -D_GNU_SOURCE -O3 -ffast-math -funroll-all-loops -fprefetch-loop-arrays -fsingle-precision-constant -mcpu=7450 -faltivec -mabi=altivec -mdynamic-no-pic -DCRYPTO -DAPP_CONFERENCE_DEBUG -Ilibspeex -DSILDET=2 -c -o app_conference.o app_conference.c gcc -pipe -Wall -Wmissing-prototypes -Wmissing-declarations -g -I/Users/benjamin/asterisk-1.0.10/include/asterisk -D_REENTRANT -D_GNU_SOURCE -O3 -ffast-math -funroll-all-loops -fprefetch-loop-arrays -fsingle-precision-constant -mcpu=7450 -faltivec -mabi=altivec -mdynamic-no-pic -DCRYPTO -DAPP_CONFERENCE_DEBUG -Ilibspeex -DSILDET=2 -c -o conference.o conference.c conference.c: In function 'create_conf': conference.c:571: warning: assignment makes pointer from integer without a cast conference.c:621: warning: implicit declaration of function '__use_ast_pthread_create_instead__' conference.c:635: warning: assignment makes pointer from integer without a cast gcc -pipe -Wall -Wmissing-prototypes -Wmissing-declarations -g -I/Users/benjamin/asterisk-1.0.10/include/asterisk -D_REENTRANT -D_GNU_SOURCE -O3 -ffast-math -funroll-all-loops -fprefetch-loop-arrays -fsingle-precision-constant -mcpu=7450 -faltivec -mabi=altivec -mdynamic-no-pic -DCRYPTO -DAPP_CONFERENCE_DEBUG -Ilibspeex -DSILDET=2 -c -o member.o member.c member.c: In function 'process_outgoing': member.c:286: warning: format '%ld' expects type 'long int', but argument 7 has type 'suseconds_t' member.c:300: warning: format '%ld' expects type 'long int', but argument 7 has type 'suseconds_t' member.c:300: warning: format '%ld' expects type 'long int', but argument 9 has type 'suseconds_t' gcc -pipe -Wall -Wmissing-prototypes -Wmissing-declarations -g -I/Users/benjamin/asterisk-1.0.10/include/asterisk -D_REENTRANT -D_GNU_SOURCE -O3 -ffast-math -funroll-all-loops -fprefetch-loop-arrays -fsingle-precision-constant -mcpu=7450 -faltivec -mabi=altivec -mdynamic-no-pic -DCRYPTO -DAPP_CONFERENCE_DEBUG -Ilibspeex -DSILDET=2 -c -o frame.o frame.c gcc -pipe -Wall -Wmissing-prototypes -Wmissing-declarations -g -I/Users/benjamin/asterisk-1.0.10/include/asterisk -D_REENTRANT -D_GNU_SOURCE -O3 -ffast-math -funroll-all-loops -fprefetch-loop-arrays -fsingle-precision-constant -mcpu=7450 -faltivec -mabi=altivec -mdynamic-no-pic -DCRYPTO -DAPP_CONFERENCE_DEBUG -Ilibspeex -DSILDET=2 -c -o cli.o cli.c cli.c: In function 'conference_play_sound': cli.c:235: warning: implicit declaration of function 'ast_copy_string' gcc -pipe -Wall -Wmissing-prototypes -Wmissing-declarations -g -I/Users/benjamin/asterisk-1.0.10/include/asterisk -D_REENTRANT -D_GNU_SOURCE -O3 -ffast-math -funroll-all-loops -fprefetch-loop-arrays -fsingle-precision-constant -mcpu=7450 -faltivec -mabi=altivec -mdynamic-no-pic -DCRYPTO -DAPP_CONFERENCE_DEBUG -Ilibspeex -DSILDET=2 -c -o libspeex/preprocess.o libspeex/preprocess.c libspeex/preprocess.c:46:1: warning: "floor" redefined In file included from /usr/include/math.h:26, from libspeex/preprocess.c:34: /usr/include/architecture/ppc/math.h:658:1: warning: this is the location of the previous definition libspeex/preprocess.c:632: warning: no previous prototype for 'ephraim_malah' gcc -pipe -Wall -Wmissing-prototypes -Wmissing-declarations -g -I/Users/benjamin/asterisk-1.0.10/include/asterisk -D_REENTRANT -D_GNU_SOURCE -O3 -ffast-math -funroll-all-loops -fprefetch-loop-arrays -fsingle-precision-constant -mcpu=7450 -faltivec -mabi=altivec -mdynamic-no-pic -DCRYPTO -DAPP_CONFERENCE_DEBUG -Ilibspeex -DSILDET=2 -c -o libspeex/misc.o libspeex/misc.c gcc -pipe -Wall -Wmissing-prototypes -Wmissing-declarations -g -I/Users/benjamin/asterisk-1.0.10/include/asterisk -D_REENTRANT -D_GNU_SOURCE -O3 -ffast-math -funroll-all-loops -fprefetch-loop-arrays -fsingle-precision-constant -mcpu=7450 -faltivec -mabi=altivec -mdynamic-no-pic -DCRYPTO -DAPP_CONFERENCE_DEBUG -Ilibspeex -DSILDET=2 -c -o libspeex/smallft.o libspeex/smallft.c gcc -pg -dynamic -bundle -undefined suppress -force_flat_namespace -o app_conference.so app_conference.o conference.o member.o frame.o cli.o libspeex/preprocess.o libspeex/misc.o libspeex/smallft.o /usr/bin/ld: app_conference.o has local relocation entries in non-writable section (__TEXT,__text) collect2: ld returned 1 exit status make: *** [app_conference.so] Error 1