--- iaxclient/lib/Makefile.orig 2006-06-10 16:57:08.000000000 +0200 +++ iaxclient/lib/Makefile 2006-06-10 17:07:48.000000000 +0200 @@ -1,57 +1,13 @@ -# -# iaxclient: a cross-platform IAX softphone library -# -# Copyrights: -# Copyright (C) 2003 HorizonLive.com, (c) 2004, Horizon Wimba, Inc. -# -# Contributors <see README for complete list> -# Steve Kann <stevek@stevek.com> -# Michael Van Donselaar <mvand@vandonselaar.org> -# Shawn Lawrence <shawn.lawrence@terracecomm.com> -# -# -# This program is free software, distributed under the terms of -# the GNU Lesser (Library) General Public License -# +CC = gcc +CFLAGS = $(RPM_OPT_FLAGS) -DCODEC_ILBC -DIAXC_IAX2 -DSPEEX_PREPROCESS -DSPEEX_EC +CFLAGS+= -I. -I/usr/include/speex -I/usr/include/gsm -I/usr/include/iax -I/usr/include/ilbc +CFLAGS+= -DLIBVER='"CVS-$(shell date +%Y/%m/%d-%H:%M)"' +LIBS = -lgsm -lportaudio -lportmixer -lspeex -liax -lilbc -lm -lpthread +AR = ar +RANLIB = ranlib +VERSION=1.0 - - -CODEC_ILBC=0 - -SPEEX_PREPROCESS=1 -SPAN_EC=0 -SPEEX_EC=1 -MEC2_EC=0 - -USE_NEWJB=1 - -USE_VIDEO=0 - -CFLAGS= -I. -Igsm/inc \ - -Iportaudio/pa_common -Iportaudio/pablio -Iportmixer/px_common \ - -Ilibspeex/include --std=c99 -Wall -Wmissing-noreturn - -#CFLAGS:= $(CFLAGS) -g -Wall -Wpointer-arith -CFLAGS:= $(CFLAGS) -g -O2 - -CFLAGS:= $(CFLAGS) -DLIBVER='"SVN $(shell svnversion)"' - -ifeq ($(SPEEX_PREPROCESS),1) -CFLAGS:= $(CFLAGS) -DSPEEX_PREPROCESS=1 -endif - -ifeq ($(USE_NEWJB),1) -CFLAGS:= $(CFLAGS) -DNEWJB -endif - -# debug flags -# CFLAGS := $(CFLAGS) -DDEBUG_SUPPORT -DDEBUG_DEFAULT -DEXTREME_DEBUG -D_DEBUG -# CFLAGS := $(CFLAGS) -DDEBUG_SUPPORT -DDEBUG_DEFAULT -D_DEBUG - -OBJS=\ - portaudio/pa_common/pa_lib.o \ - portaudio/pablio/pablio.o \ - portaudio/pablio/ringbuffer.o \ +OBJS= \ spandsp/plc.o \ audio_encode.o \ audio_portaudio.o \ @@ -61,293 +17,22 @@ codec_alaw.o \ codec_speex.o \ jitterbuf.o \ - iaxclient_lib.o - -OBJS_GSM=\ - gsm/src/add.o \ - gsm/src/code.o \ - gsm/src/debug.o \ - gsm/src/decode.o \ - gsm/src/gsm_create.o \ - gsm/src/gsm_decode.o \ - gsm/src/gsm_destroy.o \ - gsm/src/gsm_encode.o \ - gsm/src/gsm_explode.o \ - gsm/src/gsm_implode.o \ - gsm/src/gsm_option.o \ - gsm/src/gsm_print.o \ - gsm/src/long_term.o \ - gsm/src/lpc.o \ - gsm/src/preprocess.o \ - gsm/src/rpe.o \ - gsm/src/short_term.o \ - gsm/src/table.o - -OBJS_LIBSPEEX=\ - libspeex/nb_celp.o \ - libspeex/sb_celp.o \ - libspeex/lpc.o \ - libspeex/ltp.o \ - libspeex/lsp.o \ - libspeex/quant_lsp.o \ - libspeex/lsp_tables_nb.o \ - libspeex/gain_table.o \ - libspeex/gain_table_lbr.o \ - libspeex/cb_search.o \ - libspeex/filters.o \ - libspeex/bits.o \ - libspeex/modes.o \ - libspeex/speex.o \ - libspeex/vq.o \ - libspeex/high_lsp_tables.o \ - libspeex/vbr.o \ - libspeex/hexc_table.o \ - libspeex/exc_5_256_table.o \ - libspeex/exc_5_64_table.o \ - libspeex/exc_8_128_table.o \ - libspeex/exc_10_32_table.o \ - libspeex/exc_10_16_table.o \ - libspeex/exc_20_32_table.o \ - libspeex/hexc_10_32_table.o \ - libspeex/misc.o \ - libspeex/speex_header.o \ - libspeex/speex_callbacks.o \ - libspeex/math_approx.o \ - libspeex/stereo.o \ - libspeex/preprocess.o \ - libspeex/smallft.o \ - libspeex/lbr_48k_tables.o \ - libspeex/jitter.o \ - libspeex/mdf.o - -OBJS_ILBC=\ - iLBC/anaFilter.o\ - iLBC/iCBSearch.o\ - iLBC/packing.o\ - iLBC/constants.o\ - iLBC/gainquant.o\ - iLBC/iLBC_decode.o\ - iLBC/StateConstructW.o \ - iLBC/createCB.o\ - iLBC/getCBvec.o\ - iLBC/iLBC_encode.o\ - iLBC/StateSearchW.o\ - iLBC/doCPLC.o\ - iLBC/helpfun.o\ - iLBC/syntFilter.o\ - iLBC/enhancer.o\ - iLBC/hpInput.o\ - iLBC/LPCdecode.o\ - iLBC/filter.o\ - iLBC/hpOutput.o\ - iLBC/LPCencode.o\ - iLBC/FrameClassify.o\ - iLBC/iCBConstruct.o\ - iLBC/lsf.o - -OBJS_VIDEO=\ - video.o\ - video_portvideo.o\ - PortVideoSDL/common/cameraTool.o\ - PortVideoSDL/common/RingBuffer.o\ - PortVideoSDL/common/FrameInverter.o\ - codec_theora.o - - -OBJS:= $(OBJS) $(OBJS_GSM) $(OBJS_LIBSPEEX) - -ifeq ($(CODEC_ILBC),1) -OBJS:= $(OBJS) $(OBJS_ILBC) codec_ilbc.o -CFLAGS:= $(CFLAGS) -DCODEC_ILBC -endif - -OBJS_WIN32=\ - winfuncs.o \ - portmixer/px_win_wmme/px_win_wmme.o \ - portaudio/pa_win_wmme/pa_win_wmme.o - -OBJS_LINUX=\ - unixfuncs.o \ - portmixer/px_unix_oss/px_unix_oss.o \ - portaudio/pa_unix_oss/pa_unix_oss.o \ - portaudio/pa_unix_oss/pa_unix.o - -OBJS_SOLARIS=\ - unixfuncs.o \ - portmixer/px_solaris/px_solaris.o \ - portaudio/pa_unix_oss/pa_unix_solaris.o \ - portaudio/pa_unix_oss/pa_unix.o - -OBJS_MACOSX=\ - unixfuncs.o \ - portmixer/px_mac_core/px_mac_core.o \ - portaudio/pa_common/pa_convert.o \ - portaudio/pa_mac_core/pa_mac_core.o - -OBJS_IAX2=\ - libiax2/src/md5.o \ - libiax2/src/iax.o \ - libiax2/src/iax2-parser.o \ - - - -LIB=libiaxclient.a - -RANLIB= echo - -all: $(LIB) - -# glean the platform -# We will define this as either Linux, Win32, SOLARIS, or MacOSX -ifneq (,$(findstring Linux,$(shell uname))) -OSTYPE=LINUX -else -ifneq (,$(findstring Darwin,$(shell uname))) -OSTYPE=MACOSX -else -# CYGWIN reports CYGWIN_NT-5.0 under Win2K -ifneq (,$(findstring WIN,$(shell uname))) -OSTYPE=WIN32 -else -ifneq (,$(findstring MINGW,$(shell uname))) -OSTYPE=WIN32 -else -ifneq (,$(findstring SunOS,$(shell uname))) -OSTYPE=SOLARIS -else -$(warning OSTYPE cannot be detected, assuming Linux) -OSTYPE=LINUX -endif -endif -endif -endif -endif - -# Setup platform-specific stuff based on gleaning -ifeq ($(OSTYPE),WIN32) -OBJS:= $(OBJS) $(OBJS_WIN32) -CFLAGS:= -mno-cygwin $(CFLAGS) -DYNLDFLAGS= -mno-cygwin -lwinmm -lwsock32 -lcomdlg32 -luser32 -lgdi32 -lole32 -lcomctl32 -lctl3d32 \ - -lstdc++ -lshell32 -loleaut32 -ladvapi32 -luuid -Wl,--output-def,iaxclient.def,--add-stdcall-alias,--enable-stdcall-fixup,--out-implib,libiaxclient.a -DYNCFLAGS=-DBUILDING_DLL -DYNLIB=iaxclient.dll -endif - -ifeq ($(OSTYPE),LINUX) -OBJS:= $(OBJS) $(OBJS_LINUX) -DYNCFLAGS=-fPIC -DYNLIB=libiaxclient.so -# change below to 1 to include audio_alsa; -AUDIO_ALSA=0 -endif - -ifeq ($(OSTYPE),SOLARIS) -OBJS:= $(OBJS) $(OBJS_SOLARIS) -# only SPARC solaris machines need the alignment stuff -ifeq (sparc,$(findstring sparc,$(shell uname -a))) -CFLAGS:= $(CFLAGS) -DALIGN32 -endif -DYNCFLAGS=-fPIC -DYNLIB=libiaxclient.so -CC=gcc -endif - -ifeq ($(OSTYPE),MACOSX) -OBJS:= $(OBJS) $(OBJS_MACOSX) -RANLIB= ranlib -# comment these lines in to build against version 10.2.7. -#CC=MACOSX_DEPLOYMENT_TARGET=10.2 NEXT_ROOT=/Developer/SDKs/MacOSX10.2.7.sdk cc -#CFLAGS:= $(CFLAGS) -isystem /Developer/SDKs/MacOSX10.2.7.sdk/usr/include -# Build Universal Binaries on MacOSX -CC=NEXT_ROOT=/Developer/SDKs/MacOSX10.4u.sdk/ MACOSX_DEPLOYMENT_TARGET=10.3 gcc -arch i386 -arch ppc -DYNLIB=libiaxclient.dylib -endif - -ifeq ($(USE_VIDEO),1) - OBJS:= $(OBJS) $(OBJS_VIDEO) - CFLAGS:= $(CFLAGS) -DIAXC_VIDEO - LIBS:= $(LIBS) -lavcodec -ltheora - ifeq ($(OSTYPE),LINUX) - OBJS:= $(OBJS) PortVideoSDL/linux/linuxfwCamera.o PortVideoSDL/linux/v4linuxCamera.o - endif - ifeq ($(OSTYPE),WIN32) - CFLAGS:= $(CFLAGS) -IPortVideoSDL/win32/dslib/include -Ic:/DX90SDK/include-gcc -Ic:/DX90SDK/Samples/C++/DirectShow/BaseClasses - OBJS:= $(OBJS) PortVideoSDL/win32/dslibCamera.cpp - endif - ifeq ($(OSTYPE),MACOSX) - CFLAGS:= $(CFLAGS) -I../../theora/include -I/sw/include - OBJS:= $(OBJS) PortVideoSDL/macosx/macvdCamera.o PortVideoSDL/macosx/vdigGrab.o - endif -endif - - -ifeq ($(AUDIO_ALSA),1) -OBJS:= $(OBJS) audio_alsa.o -CFLAGS:= $(CFLAGS) -DAUDIO_ALSA -endif - - -OBJS:= $(OBJS) $(OBJS_IAX2) -#CFLAGS:= $(CFLAGS) -Ilibiax2/src -DIAXC_IAX2 -DLIBIAX -DDEBUG_SUPPORT -CFLAGS:= $(CFLAGS) -Ilibiax2/src -DLIBIAX - -ifeq ($(SPAN_EC),1) -OBJS:= $(OBJS) ec/echo.o -CFLAGS:= $(CFLAGS) -DSPAN_EC=1 -endif - -ifeq ($(SPEEX_EC),1) -CFLAGS:= $(CFLAGS) -DSPEEX_EC=1 -endif - -ifeq ($(MEC2_EC),1) -CFLAGS:= $(CFLAGS) -DUSE_MEC2=1 -endif - -CFLAGS:= $(CFLAGS) -D$(OSTYPE) - - -# Treat some included libraries specially: -# compile gsm w/o warnings, because it was written to less strict warning systems. -gsm/%.o: gsm/%.c - $(CC) -c $(CPPFLAGS) $(CFLAGS) -w $< -o $@ - - - -$(LIB): $(OBJS) - rm -f $(LIB) - ar cru $(LIB) $(OBJS) - $(RANLIB) $(LIB) - -MSLIB=iaxclient.lib -MGLIBDIR=c:/mingw/lib -GCCLIBDIR=$(MGLIBDIR)/gcc-lib/mingw32/3.2/ - -GCCLIB=$(GCCLIBDIR)/libgcc.a - -CXXFLAGS=$(CFLAGS) - -$(MSLIB): $(OBJS) -# rm -f $(MSLIB) - cp $(GCCLIB) $(MSLIB) - ar rs $(MSLIB) $(OBJS) - - -shared: CFLAGS := $(CFLAGS) $(DYNCFLAGS) -#shared: clean libiaxclient.a -shared: libiaxclient.a -ifeq ($(OSTYPE),MACOSX) - $(CC) -single_module -dylib -dynamiclib -o $(DYNLIB) $(OBJS) $(DYNLDFLAGS) -framework CoreAudio -framework AudioToolbox -framework System -else - $(CC) -shared -o $(DYNLIB) $(OBJS) $(DYNLDFLAGS) -endif - - + iaxclient_lib.o \ + codec_ilbc.o \ + unixfuncs.o + +all: shared static + +static: $(OBJS) + $(AR) -ruv libiaxclient.a $(OBJS) + $(RANLIB) libiaxclient.a + +shared: $(OBJS) + $(CC) $(CFLAGS) -shared -Wl,-soname=libiaxclient.so.0 -o \ + libiaxclient.so.0.$(VERSION) $(OBJS) $(LIBS) -plat: - echo Platform is $(OSTYPE) - echo OBJS are $(OBJS) - echo OBJS_LINUX are $(OBJS_LINUX) +%.o: %.c + $(CC) -c $(CFLAGS) $< -o $@ clean: - rm -f $(OBJS) $(LIB) + rm -f $(OBJS) shared static