📄 makefile
字号:
## Asterisk -- A telephony toolkit for Linux.# # Top level Makefile## Copyright (C) 1999-2005, Mark Spencer## Mark Spencer <markster@digium.com>## This program is free software, distributed under the terms of# the GNU General Public License#.EXPORT_ALL_VARIABLES:# Create OPTIONS variableOPTIONS=# If cross compiling, define these to suit# CROSS_COMPILE=/opt/montavista/pro/devkit/arm/xscale_be/bin/xscale_be-# CROSS_COMPILE_BIN=/opt/montavista/pro/devkit/arm/xscale_be/bin/# CROSS_COMPILE_TARGET=/opt/montavista/pro/devkit/arm/xscale_be/targetCC=$(CROSS_COMPILE)gccHOST_CC=gcc# CROSS_ARCH=Linux# CROSS_PROC=arm# SUB_PROC=xscale # or maverickifeq ($(CROSS_COMPILE),) OSARCH=$(shell uname -s) OSREV=$(shell uname -r) OSCPU=$(shell uname -m)else OSARCH=$(CROSS_ARCH) OSREV=$(CROSS_REV)endif# Remember the MAKELEVEL at the topMAKETOPLEVEL?=$(MAKELEVEL)PWD=$(shell pwd)ifneq ($(findstring dont-optimize,$(MAKECMDGOALS)),dont-optimize)######### More GSM codec optimization######### Uncomment to enable MMXTM optimizations for x86 architecture CPU's######### which support MMX instructions. This should be newer pentiums,######### ppro's, etc, as well as the AMD K6 and K7. #K6OPT = -DK6OPT#Tell gcc to optimize the codeOPTIMIZE+=-O6endif#Overwite config files on "make samples"OVERWRITE=y#Include debug and macro symbols in the executables (-g) and profiling info (-pg)DEBUG=-g3 #-pg#Set NOCRYPTO to yes if you do not want to have crypto support or #dependencies#NOCRYPTO=yes# If you are running a radio application, define RADIO_RELAX so that the DTMF# will be received more reliably#OPTIONS += -DRADIO_RELAX# If you don't have a lot of memory (e.g. embedded Asterisk), define LOW_MEMORY# to reduce the size of certain static buffers#ifneq ($(CROSS_COMPILE),)#OPTIONS += -DLOW_MEMORY#endif# Optional debugging parametersDEBUG_THREADS = #-DDUMP_SCHEDULER #-DDEBUG_SCHEDULER #-DDEBUG_THREADS #-DDO_CRASH #-DDETECT_DEADLOCKS# Uncomment next one to enable ast_frame tracing (for debugging)TRACE_FRAMES = #-DTRACE_FRAMES# Uncomment next one to enable malloc debugging# You can view malloc debugging with:# *CLI> show memory allocations [filename]# *CLI> show memory summary [filename]#MALLOC_DEBUG = #-include $(PWD)/include/asterisk/astmm.hINSTALL=install# Where to install asterisk after compiling# Default -> leave emptyINSTALL_PREFIX?=# Staging directory# Files are copied here temporarily during the install process# For example, make DESTDIR=/tmp/asterisk woud put things in# /tmp/asterisk/etc/asterisk# XXX watch out, put no spaces or comments after the valueDESTDIR?=#DESTDIR?=/tmp/asterisk# Original busydetect routineBUSYDETECT = #-DBUSYDETECT# Improved busydetect routine, comment the previous one if you use this oneBUSYDETECT+= #-DBUSYDETECT_MARTIN # Detect the busy signal looking only at tone lengths# For example if you have 3 beeps 100ms tone, 100ms silence separated by 500 ms of silenceBUSYDETECT+= #-DBUSYDETECT_TONEONLY# Inforce the detection of busy singal (get rid of false hangups)# Don't use together with -DBUSYDETECT_TONEONLYBUSYDETECT+= #-DBUSYDETECT_COMPARE_TONE_AND_SILENCEifneq ($(OSARCH),SunOS) ASTLIBDIR=$(INSTALL_PREFIX)/usr/lib/asterisk ASTVARLIBDIR=$(INSTALL_PREFIX)/var/lib/asterisk ASTETCDIR=$(INSTALL_PREFIX)/etc/asterisk ASTSPOOLDIR=$(INSTALL_PREFIX)/var/spool/asterisk ASTLOGDIR=$(INSTALL_PREFIX)/var/log/asterisk ASTHEADERDIR=$(INSTALL_PREFIX)/usr/include/asterisk ASTCONFPATH=$(ASTETCDIR)/asterisk.conf ASTBINDIR=$(INSTALL_PREFIX)/usr/bin ASTSBINDIR=$(INSTALL_PREFIX)/usr/sbin ASTVARRUNDIR=$(INSTALL_PREFIX)/var/run ASTMANDIR=$(INSTALL_PREFIX)/usr/share/man MODULES_DIR=$(ASTLIBDIR)/modules AGI_DIR=$(ASTVARLIBDIR)/agi-binelse ASTLIBDIR=$(INSTALL_PREFIX)/opt/asterisk/lib ASTVARLIBDIR=$(INSTALL_PREFIX)/var/opt/asterisk/lib ASTETCDIR=$(INSTALL_PREFIX)/etc/opt/asterisk ASTSPOOLDIR=$(INSTALL_PREFIX)/var/opt/asterisk/spool ASTLOGDIR=$(INSTALL_PREFIX)/var/opt/asterisk/log ASTHEADERDIR=$(INSTALL_PREFIX)/opt/asterisk/usr/include/asterisk ASTCONFPATH=$(ASTETCDIR)/asterisk.conf ASTBINDIR=$(INSTALL_PREFIX)/opt/asterisk/usr/bin ASTSBINDIR=$(INSTALL_PREFIX)/opt/asterisk/usr/sbin ASTVARRUNDIR=$(INSTALL_PREFIX)/var/opt/asterisk/run ASTMANDIR=$(INSTALL_PREFIX)/opt/asterisk/usr/share/man MODULES_DIR=$(ASTLIBDIR)/modules AGI_DIR=$(ASTVARLIBDIR)/agi-binendifASTCFLAGS=# Pentium Pro Optimize#PROC=i686# Pentium & VIA processors optimize#PROC=i586#PROC=k6#PROC=ppc#Uncomment this to use the older DSP routines#ASTCFLAGS+=-DOLD_DSP_ROUTINES# Determine by a grep 'DocumentRoot' of your httpd.conf fileHTTP_DOCSDIR=/var/www/html# Determine by a grep 'ScriptAlias' of your httpd.conf fileHTTP_CGIDIR=/var/www/cgi-bin# If the file .asterisk.makeopts is present in your home directory, you can# include all of your favorite Makefile options so that every time you download# a new version of Asterisk, you don't have to edit the makefile to set them. # The file, /etc/asterisk.makeopts will also be included, but can be overridden# by the file in your home directory.ifneq ($(wildcard /etc/asterisk.makeopts),) include /etc/asterisk.makeoptsendififneq ($(wildcard ~/.asterisk.makeopts),) include ~/.asterisk.makeoptsendififeq ($(OSARCH),Linux) ifeq ($(CROSS_COMPILE),) PROC?=$(shell uname -m) else PROC=$(CROSS_PROC) endif ifeq ($(PROC),x86_64) # You must have GCC 3.4 to use k8, otherwise use athlon PROC=k8 #PROC=athlon endif ifeq ($(PROC),sparc64) #The problem with sparc is the best stuff is in newer versions of gcc (post 3.0) only. #This works for even old (2.96) versions of gcc and provides a small boost either way. #A ultrasparc cpu is really v9 but the stock debian stable 3.0 gcc doesn't support it. #So we go lowest common available by gcc and go a step down, still a step up from #the default as we now have a better instruction set to work with. - Belgarath PROC=ultrasparc OPTIONS+=$(shell if $(CC) -mtune=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-mtune=$(PROC)"; fi) OPTIONS+=$(shell if $(CC) -mcpu=v8 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-mcpu=v8"; fi) OPTIONS+=-fomit-frame-pointer endif ifeq ($(PROC),arm) # The Cirrus logic is the only heavily shipping arm processor with a real floating point unit ifeq ($(SUB_PROC),maverick) OPTIONS+=-fsigned-char -mcpu=ep9312 else ifeq ($(SUB_PROC),xscale) OPTIONS+=-fsigned-char -mcpu=xscale else OPTIONS+=-fsigned-char endif endif endif MPG123TARG=linuxendifGREP=grepLN=lnID=idifeq ($(OSARCH),SunOS) GREP=/usr/xpg4/bin/grep M4=/usr/local/bin/m4 ID=/usr/xpg4/bin/id LN=/usr/xpg4/bin/ln INSTALL=ginstallendifINCLUDE+=-Iinclude -I../includeASTCFLAGS+=-pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPYASTCFLAGS+=$(OPTIMIZE)ASTOBJ=-o asteriskifeq ($(findstring BSD,$(OSARCH)),BSD) PROC=$(shell uname -m) ASTCFLAGS+=-I$(CROSS_COMPILE_TARGET)/usr/local/include -L$(CROSS_COMPILE_TARGET)/usr/local/libendififneq ($(PROC),ultrasparc) ASTCFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi)endififeq ($(PROC),ppc) ASTCFLAGS+=-fsigned-charendififneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/osp/osp.h),) ASTCFLAGS+=-DOSP_SUPPORT -I$(CROSS_COMPILE_TARGET)/usr/local/include/ospelse ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/osp/osp.h),) ASTCFLAGS+=-DOSP_SUPPORT -I$(CROSS_COMPILE_TARGET)/usr/include/osp endifendififeq ($(OSARCH),FreeBSD) BSDVERSION=$(shell make -V OSVERSION -f $(CROSS_COMPILE_TARGET)/usr/share/mk/bsd.port.subdir.mk) ASTCFLAGS+=$(shell if test $(BSDVERSION) -lt 500016 ; then echo "-D_THREAD_SAFE"; fi) LIBS+=$(shell if test $(BSDVERSION) -lt 502102 ; then echo "-lc_r"; else echo "-pthread"; fi) ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/spandsp),) ASTCFLAGS+=-I$(CROSS_COMPILE_TARGET)/usr/local/include/spandsp endif MPG123TARG=freebsd # XXX FreeBSD paths PREFIX?=/usr/local ASTLIBDIR=$(INSTALL_PREFIX)$(PREFIX)/lib/asterisk ASTVARLIBDIR=$(INSTALL_PREFIX)$(PREFIX)/share/asterisk ASTETCDIR=$(INSTALL_PREFIX)$(PREFIX)/etc/asterisk ASTSPOOLDIR=$(INSTALL_PREFIX)/var/spool/asterisk ASTLOGDIR=$(INSTALL_PREFIX)/var/log/asterisk ASTHEADERDIR=$(INSTALL_PREFIX)$(PREFIX)/include/asterisk ASTCONFPATH=$(ASTETCDIR)/asterisk.conf ASTBINDIR=$(INSTALL_PREFIX)$(PREFIX)/bin ASTSBINDIR=$(INSTALL_PREFIX)$(PREFIX)/sbin ASTVARRUNDIR=$(INSTALL_PREFIX)/var/run ASTMANDIR=$(INSTALL_PREFIX)$(PREFIX)/man # XXX end FreeBSD pathsendif # FreeBSDifeq ($(OSARCH),NetBSD) ASTCFLAGS+=-pthread INCLUDE+=-I$(CROSS_COMPILE_TARGET)/usr/pkg/include MPG123TARG=netbsdendififeq ($(OSARCH),OpenBSD) ASTCFLAGS+=-pthreadendififeq ($(OSARCH),SunOS) ASTCFLAGS+=-Wcast-align -DSOLARIS INCLUDE+=-Iinclude/solaris-compat -I$(CROSS_COMPILE_TARGET)/opt/ssl/include -I$(CROSS_COMPILE_TARGET)/usr/local/ssl/include ifeq ($(OSCPU),sun4u) OPTIMIZE+=-mcpu=v9 -mcpu=ultrasparc endifendififeq ($(findstring CYGWIN,$(OSARCH)),CYGWIN) CYGLOADER=cygwin_a OSARCH=CYGWIN ASTOBJ=-shared -o asterisk.dll -Wl,--out-implib=libasterisk.dll.a -Wl,--export-all-symbols ASTLINK= LIBS+=-lpthread -lncurses -lm -lresolv ASTSBINDIR=$(MODULES_DIR) PROC=$(shell uname -m)endififndef WITHOUT_ZAPTELifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/linux/zaptel.h)$(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/zaptel.h)$(wildcard $(CROSS_COMPILE_TARGET)/usr/pkg/include/zaptel.h),) ASTCFLAGS+=-DZAPTEL_OPTIMIZATIONSendifendif # WITHOUT_ZAPTELLIBEDIT=editline/libedit.aifneq ($(wildcard .version),) ASTERISKVERSION:=$(shell cat .version) ASTERISKVERSIONNUM:=$(shell awk -F. '{printf "%02d%02d%02d", $$1, $$2, $$3}' .version) RPMVERSION:=$(shell sed 's/[-\/:]/_/g' .version)else RPMVERSION=unknownendif# CVS mirrors of SVN have .svnrevision files showing# which SVN revision they are based on, and .svnbranch# showing the branch they are made fromifneq ($(wildcard .svnrevision),) ASTERISKVERSIONNUM=999999 ASTERISKVERSION:=SVN-$(shell cat .svnbranch)-r$(shell cat .svnrevision)else ifneq ($(wildcard .svn),) ASTERISKVERSIONNUM=999999 ASTERISKVERSION=SVN-$(shell build_tools/make_svn_branch_name) endifendifASTCFLAGS+= $(DEBUG_THREADS)ASTCFLAGS+= $(TRACE_FRAMES)ASTCFLAGS+= $(MALLOC_DEBUG)ASTCFLAGS+= $(BUSYDETECT)ASTCFLAGS+= $(OPTIONS)ifneq ($(findstring dont-optimize,$(MAKECMDGOALS)),dont-optimize)ASTCFLAGS+= -fomit-frame-pointer endifSUBDIRS=res channels pbx apps codecs formats agi cdr funcs utils stdtimeOBJS=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 \ ulaw.o alaw.o callerid.o fskmodem.o image.o app.o \ cdr.o tdd.o acl.o rtp.o manager.o asterisk.o \ dsp.o chanvars.o indications.o autoservice.o db.o privacy.o \ astmm.o enum.o srv.o dns.o aescrypt.o aestab.o aeskey.o \ utils.o plc.o jitterbuf.o dnsmgr.o devicestate.o \ netsock.o slinfactory.o ast_expr2.o ast_expr2f.o \ cryptostub.o write_data_file.oifeq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/sys/poll.h),) OBJS+= poll.o ASTCFLAGS+=-DPOLLCOMPATendififeq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/dlfcn.h),) OBJS+= dlfcn.o ASTCFLAGS+=-DDLFCNCOMPATendififeq ($(OSARCH),Linux) LIBS+=-ldl -lpthread -lncurses -lm -lresolv #-lnjamdelse ifeq ($(OSARCH),SunOS) LIBS+=-lm -lcurses else LIBS+=-lncurses -lm endifendififeq ($(OSARCH),Darwin) LIBS+=-lresolv ASTCFLAGS+=-D__Darwin__ AUDIO_LIBS=-framework CoreAudio ASTLINK=-Wl,-dynamic SOLINK=-dynamic -bundle -undefined suppress -force_flat_namespace OBJS+= poll.o ASTCFLAGS+=-DPOLLCOMPATelse#These are used for all but Darwin ASTLINK=-Wl,-E SOLINK=-shared -Xlinker -xendififeq ($(OSARCH),FreeBSD) LIBS+=-lcryptoendififeq ($(OSARCH),NetBSD) LIBS+=-lpthread -lcrypto -lm -L$(CROSS_COMPILE_TARGET)/usr/pkg/lib -lncursesendififeq ($(OSARCH),OpenBSD) LIBS+=-lcrypto -lpthread -lm -lncursesendififeq ($(OSARCH),SunOS) LIBS+=-lpthread -ldl -lnsl -lsocket -lresolv -L$(CROSS_COMPILE_TARGET)/opt/ssl/lib -L$(CROSS_COMPILE_TARGET)/usr/local/ssl/lib OBJS+=strcompat.o ASTLINK= SOLINK=-shared -fpic -L$(CROSS_COMPILE_TARGET)/opt/ssl/lib -L$(CROSS_COMPILE_TARGET)/usr/local/ssl/libendififeq ($(MAKETOPLEVEL),$(MAKELEVEL)) CFLAGS+=$(ASTCFLAGS)endif# This is used when generating the doxygen documentationifneq ($(wildcard /usr/local/bin/dot)$(wildcard /usr/bin/dot),) HAVEDOT=yeselse HAVEDOT=noendifLIBS+=-lssl#this is link db when get dataLIBS+= -L/usr/local/pgsql/lib -lpq_all: all @echo " +--------- Asterisk Build Complete ---------+" @echo " + Asterisk has successfully been built, but +" @echo " + cannot be run before being installed by +" @echo " + running: +" @echo " + +" @echo " + $(MAKE) install +" @echo " +-------------------------------------------+" all: cleantest depend asterisk subdirs #ifneq ($(wildcard tags),)ctags: tags#endififneq ($(wildcard TAGS),)all: TAGSendifnoclean: depend asterisk subdirseditline/config.h: cd editline && unset CFLAGS LIBS && CFLAGS="$(OPTIMIZE)" ./configure ; \editline/libedit.a: FORCE cd editline && unset CFLAGS LIBS && test -f config.h || CFLAGS="$(OPTIMIZE)" ./configure $(MAKE) -C editline libedit.adb1-ast/libdb1.a: FORCE @if [ -d db1-ast ]; then \ $(MAKE) -C db1-ast libdb1.a ; \ else \
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -