mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
Thanks to the fine work of Russell Bryant and Dancho Lazarov, we now have autoconf and menuselect tools for Asterisk!
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@22267 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
171
Makefile
171
Makefile
@@ -49,7 +49,7 @@ PWD=$(shell pwd)
|
||||
# Remember the MAKELEVEL at the top
|
||||
MAKETOPLEVEL?=$(MAKELEVEL)
|
||||
|
||||
ifneq ($(findstring dont-optimize,$(MAKECMDGOALS)),dont-optimize)
|
||||
ifeq ($(findstring dont-optimize,$(MAKECMDGOALS)),)
|
||||
# More GSM codec optimization
|
||||
# Uncomment to enable MMXTM optimizations for x86 architecture CPU's
|
||||
# which support MMX instructions. This should be newer pentiums,
|
||||
@@ -97,13 +97,6 @@ DEBUG_THREADS += #-DDEBUG_CHANNEL_LOCKS
|
||||
# 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.h
|
||||
|
||||
# Where to install asterisk after compiling
|
||||
# Default -> leave empty
|
||||
INSTALL_PREFIX?=
|
||||
@@ -182,26 +175,39 @@ HTTP_CGIDIR=/var/www/cgi-bin
|
||||
|
||||
ASTCFLAGS=
|
||||
|
||||
# Define this to use files larger than 2GB (useful for sound files longer than 37 hours and logfiles)
|
||||
ASTCFLAGS+=-D_FILE_OFFSET_BITS=64
|
||||
|
||||
# Uncomment this to use the older DSP routines
|
||||
#ASTCFLAGS+=-DOLD_DSP_ROUTINES
|
||||
|
||||
# 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
|
||||
# include all of your favorite menuselect options so that every time you download
|
||||
# a new version of Asterisk, you don't have to run menuselect 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.makeopts
|
||||
GLOBAL_MAKEOPTS=$(wildcard /etc/asterisk.makeopts)
|
||||
USER_MAKEOPTS=$(wildcard ~/.asterisk.makeopts)
|
||||
|
||||
ifneq ($(wildcard menuselect.makeopts),)
|
||||
include menuselect.makeopts
|
||||
endif
|
||||
|
||||
ifneq ($(wildcard ~/.asterisk.makeopts),)
|
||||
include ~/.asterisk.makeopts
|
||||
ifneq ($(wildcard makeopts),)
|
||||
include makeopts
|
||||
endif
|
||||
|
||||
ASTCFLAGS+=$(MENUSELECT_CFLAGS)
|
||||
TOPDIR_CFLAGS=-include include/autoconfig.h
|
||||
MOD_SUBDIR_CFLAGS=-include ../include/autoconfig.h
|
||||
|
||||
# *CLI> show memory allocations [filename]
|
||||
# *CLI> show memory summary [filename]
|
||||
ifneq ($(findstring -DMALLOC_DEBUG,$(ASTCFLAGS)),)
|
||||
TOPDIR_CFLAGS+=-include include/asterisk/astmm.h
|
||||
MOD_SUBDIR_CFLAGS+=-include ../include/asterisk/astmm.h
|
||||
endif
|
||||
|
||||
MOD_SUBDIR_CFLAGS+=-fPIC
|
||||
|
||||
ifeq ($(OSARCH),Linux)
|
||||
ifeq ($(PROC),x86_64)
|
||||
# You must have GCC 3.4 to use k8, otherwise use athlon
|
||||
@@ -247,9 +253,13 @@ ifeq ($(OSARCH),SunOS)
|
||||
endif
|
||||
|
||||
INCLUDE+=-Iinclude -I../include
|
||||
ASTCFLAGS+=-pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
|
||||
ASTCFLAGS+=-pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) #-DMAKE_VALGRIND_HAPPY
|
||||
ASTCFLAGS+=$(OPTIMIZE)
|
||||
ASTCFLAGS+=# -Werror -Wunused
|
||||
|
||||
ifeq ($(AST_DEVMODE),yes)
|
||||
ASTCFLAGS+=-Werror -Wunused
|
||||
endif
|
||||
|
||||
ifeq ($(shell gcc -v 2>&1 | grep 'gcc version' | cut -f3 -d' ' | cut -f1 -d.),4)
|
||||
ASTCFLAGS+= -Wno-pointer-sign
|
||||
endif
|
||||
@@ -267,14 +277,6 @@ ifeq ($(PROC),ppc)
|
||||
ASTCFLAGS+=-fsigned-char
|
||||
endif
|
||||
|
||||
ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/osp/osp.h),)
|
||||
ASTCFLAGS+=-DOSP_SUPPORT -I$(CROSS_COMPILE_TARGET)/usr/local/include/osp
|
||||
else
|
||||
ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/osp/osp.h),)
|
||||
ASTCFLAGS+=-DOSP_SUPPORT -I$(CROSS_COMPILE_TARGET)/usr/include/osp
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(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)
|
||||
@@ -300,27 +302,11 @@ ifeq ($(OSARCH),SunOS)
|
||||
INCLUDE+=-Iinclude/solaris-compat -I$(CROSS_COMPILE_TARGET)/usr/local/ssl/include
|
||||
endif
|
||||
|
||||
ifeq ($(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)
|
||||
endif
|
||||
|
||||
ifndef WITHOUT_ZAPTEL
|
||||
|
||||
ifneq ($(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_OPTIMIZATIONS
|
||||
endif
|
||||
|
||||
endif # WITHOUT_ZAPTEL
|
||||
|
||||
LIBEDIT=editline/libedit.a
|
||||
|
||||
ASTERISKVERSION:=$(shell build_tools/make_version .)
|
||||
|
||||
ifneq ($(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
|
||||
@@ -332,11 +318,9 @@ endif
|
||||
# showing the branch they are made from
|
||||
ifneq ($(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)
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -345,11 +329,12 @@ ASTCFLAGS+= $(TRACE_FRAMES)
|
||||
ASTCFLAGS+= $(MALLOC_DEBUG)
|
||||
ASTCFLAGS+= $(BUSYDETECT)
|
||||
ASTCFLAGS+= $(OPTIONS)
|
||||
ifneq ($(findstring dont-optimize,$(MAKECMDGOALS)),dont-optimize)
|
||||
ifeq ($(findstring dont-optimize,$(MAKECMDGOALS)),)
|
||||
ASTCFLAGS+= -fomit-frame-pointer
|
||||
endif
|
||||
|
||||
SUBDIRS=res channels pbx apps codecs formats agi cdr funcs utils stdtime
|
||||
MOD_SUBDIRS=res channels pbx apps codecs formats cdr funcs
|
||||
SUBDIRS:=$(MOD_SUBDIRS) utils stdtime agi
|
||||
|
||||
OBJS=io.o sched.o logger.o frame.o loader.o config.o channel.o \
|
||||
translate.o file.o pbx.o cli.o md5.o term.o \
|
||||
@@ -426,11 +411,11 @@ ifeq ($(OSARCH),SunOS)
|
||||
endif
|
||||
|
||||
ifeq ($(MAKETOPLEVEL),$(MAKELEVEL))
|
||||
CFLAGS+=$(ASTCFLAGS)
|
||||
CFLAGS+=$(ASTCFLAGS) $(TOPDIR_CFLAGS)
|
||||
endif
|
||||
|
||||
# This is used when generating the doxygen documentation
|
||||
ifneq ($(wildcard /usr/local/bin/dot)$(wildcard /usr/bin/dot),)
|
||||
ifneq ($(DOT),:)
|
||||
HAVEDOT=yes
|
||||
else
|
||||
HAVEDOT=no
|
||||
@@ -438,18 +423,38 @@ endif
|
||||
|
||||
INSTALL=install
|
||||
|
||||
CFLAGS+=-DT38_SUPPORT
|
||||
|
||||
_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 " + make install +"
|
||||
@echo " +-------------------------------------------+"
|
||||
|
||||
all: cleantest depend asterisk subdirs
|
||||
all: include/autoconfig.h menuselect.makeopts cleantest depend asterisk subdirs
|
||||
|
||||
configure:
|
||||
-@./bootstrap.sh
|
||||
|
||||
include/autoconfig.h: configure
|
||||
@CFLAGS="" ./configure
|
||||
@echo "****"
|
||||
@echo "**** The configure script was just executed, so 'make' needs to be"
|
||||
@echo "**** restarted."
|
||||
@echo "****"
|
||||
@echo exit 1
|
||||
|
||||
makeopts: configure
|
||||
@CFLAGS="" ./configure
|
||||
@echo "****"
|
||||
@echo "**** The configure script was just executed, so 'make' needs to be"
|
||||
@echo "**** restarted."
|
||||
@echo "****"
|
||||
@echo exit 1
|
||||
|
||||
menuselect.makeopts: build_tools/menuselect makeopts.xml
|
||||
@build_tools/menuselect --check-deps ${GLOBAL_MAKEOPTS} ${USER_MAKEOPTS} $@
|
||||
|
||||
#ifneq ($(wildcard tags),)
|
||||
ctags: tags
|
||||
@@ -459,16 +464,14 @@ ifneq ($(wildcard TAGS),)
|
||||
all: TAGS
|
||||
endif
|
||||
|
||||
noclean: depend asterisk subdirs
|
||||
|
||||
editline/config.h:
|
||||
cd editline && unset CFLAGS LIBS && ./configure ; \
|
||||
|
||||
editline/libedit.a: FORCE
|
||||
editline/libedit.a:
|
||||
cd editline && unset CFLAGS LIBS && test -f config.h || ./configure
|
||||
$(MAKE) -C editline libedit.a
|
||||
|
||||
db1-ast/libdb1.a: FORCE
|
||||
db1-ast/libdb1.a:
|
||||
$(MAKE) -C db1-ast libdb1.a
|
||||
|
||||
ifneq ($(wildcard .depend),)
|
||||
@@ -511,27 +514,24 @@ asterisk.html: asterisk.sgml
|
||||
asterisk.txt: asterisk.sgml
|
||||
docbook2txt asterisk.sgml
|
||||
|
||||
defaults.h: FORCE
|
||||
defaults.h: makeopts
|
||||
build_tools/make_defaults_h > $@.tmp
|
||||
if cmp -s $@.tmp $@ ; then echo ; else \
|
||||
mv $@.tmp $@ ; \
|
||||
fi
|
||||
rm -f $@.tmp
|
||||
|
||||
include/asterisk/version.h: FORCE
|
||||
include/asterisk/version.h:
|
||||
build_tools/make_version_h > $@.tmp
|
||||
if cmp -s $@.tmp $@ ; then echo; else \
|
||||
mv $@.tmp $@ ; \
|
||||
fi
|
||||
rm -f $@.tmp
|
||||
|
||||
stdtime/libtime.a: FORCE
|
||||
$(MAKE) -C stdtime libtime.a
|
||||
stdtime/libtime.a:
|
||||
CFLAGS="$(ASTCFLAGS) $(MOD_SUBDIR_CFLAGS)" $(MAKE) -C stdtime libtime.a
|
||||
|
||||
cygwin_a:
|
||||
$(MAKE) -C cygwin all
|
||||
|
||||
asterisk: $(CYGLOADER) editline/libedit.a db1-ast/libdb1.a stdtime/libtime.a $(OBJS)
|
||||
asterisk: editline/libedit.a db1-ast/libdb1.a stdtime/libtime.a $(OBJS)
|
||||
build_tools/make_build_h > include/asterisk/build.h.tmp
|
||||
if cmp -s include/asterisk/build.h.tmp include/asterisk/build.h ; then echo ; else \
|
||||
mv include/asterisk/build.h.tmp include/asterisk/build.h ; \
|
||||
@@ -544,7 +544,9 @@ muted: muted.o
|
||||
$(CC) $(AUDIO_LIBS) -o muted muted.o
|
||||
|
||||
subdirs:
|
||||
for x in $(SUBDIRS); do $(MAKE) -C $$x || exit 1 ; done
|
||||
for x in $(MOD_SUBDIRS); do CFLAGS="$(ASTCFLAGS) $(MOD_SUBDIR_CFLAGS)" $(MAKE) -C $$x || exit 1 ; done
|
||||
CFLAGS="$(ASTCFLAGS)" $(MAKE) -C utils
|
||||
CFLAGS="$(ASTCFLAGS) -include ../include/autoconfig.h" $(MAKE) -C agi
|
||||
|
||||
clean-depend:
|
||||
for x in $(SUBDIRS); do $(MAKE) -C $$x clean-depend || exit 1 ; done
|
||||
@@ -562,11 +564,18 @@ clean: clean-depend
|
||||
$(MAKE) -C db1-ast clean
|
||||
$(MAKE) -C stdtime clean
|
||||
|
||||
dist-clean: clean
|
||||
rm -f menuselect.makeopts makeopts makeopts.xml
|
||||
rm -f config.log config.status
|
||||
rm -f include/autoconfig.h
|
||||
$(MAKE) -C mxml clean
|
||||
$(MAKE) -C build_tools dist-clean
|
||||
|
||||
datafiles: all
|
||||
if [ x`$(ID) -un` = xroot ]; then sh build_tools/mkpkgconfig $(DESTDIR)/usr/lib/pkgconfig; fi
|
||||
# Should static HTTP be installed during make samples or even with its own target ala
|
||||
# webvoicemail? There are portions here that *could* be customized but might also be
|
||||
# improved a lot. I'll put it here for now.
|
||||
# Should static HTTP be installed during make samples or even with its own target ala
|
||||
# webvoicemail? There are portions here that *could* be customized but might also be
|
||||
# improved a lot. I'll put it here for now.
|
||||
mkdir -p $(DESTDIR)$(ASTDATADIR)/static-http
|
||||
for x in static-http/*; do \
|
||||
install -m 644 $$x $(DESTDIR)$(ASTDATADIR)/static-http ; \
|
||||
@@ -664,7 +673,6 @@ bininstall: all
|
||||
mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/meetme
|
||||
mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/monitor
|
||||
if [ -f asterisk ]; then $(INSTALL) -m 755 asterisk $(DESTDIR)$(ASTSBINDIR)/; fi
|
||||
if [ -f cygwin/asterisk.exe ]; then $(INSTALL) -m 755 cygwin/asterisk.exe $(DESTDIR)$(ASTSBINDIR)/; fi
|
||||
if [ -f asterisk.dll ]; then $(INSTALL) -m 755 asterisk.dll $(DESTDIR)$(ASTSBINDIR)/; fi
|
||||
ln -sf asterisk $(DESTDIR)$(ASTSBINDIR)/rasterisk
|
||||
$(INSTALL) -m 755 contrib/scripts/astgenkey $(DESTDIR)$(ASTSBINDIR)/
|
||||
@@ -887,7 +895,7 @@ valgrind: dont-optimize
|
||||
depend: include/asterisk/version.h .depend defaults.h
|
||||
for x in $(SUBDIRS); do $(MAKE) -C $$x depend || exit 1 ; done
|
||||
|
||||
.depend: include/asterisk/version.h
|
||||
.depend: include/asterisk/version.h defaults.h
|
||||
build_tools/mkdep $(CFLAGS) $(wildcard *.c)
|
||||
|
||||
.tags-depend:
|
||||
@@ -928,7 +936,6 @@ env:
|
||||
# If the cleancount has been changed, force a make clean.
|
||||
# .cleancount is the global clean count, and .lastclean is the
|
||||
# last clean count we had
|
||||
# We can avoid this by making noclean
|
||||
|
||||
cleantest:
|
||||
if cmp -s .cleancount .lastclean ; then echo ; else \
|
||||
@@ -967,3 +974,17 @@ uninstall-all: _uninstall
|
||||
rm -rf $(DESTDIR)$(ASTSPOOLDIR)
|
||||
rm -rf $(DESTDIR)$(ASTETCDIR)
|
||||
rm -rf $(DESTDIR)$(ASTLOGDIR)
|
||||
|
||||
menuselect: build_tools/menuselect makeopts.xml
|
||||
-@build_tools/menuselect ${GLOBAL_MAKEOPTS} ${USER_MAKEOPTS} menuselect.makeopts && echo "menuselect changes saved!" || echo "menuselect changes NOT saved!"
|
||||
|
||||
build_tools/menuselect: build_tools/menuselect.c build_tools/menuselect.h mxml/libmxml.a
|
||||
$(MAKE) -C build_tools menuselect
|
||||
|
||||
mxml/libmxml.a:
|
||||
@cd mxml && unset CFLAGS && test -f config.h || ./configure
|
||||
$(MAKE) -C mxml libmxml.a
|
||||
|
||||
makeopts.xml: $(foreach dir,$(MOD_SUBDIRS),$(dir)/*.c) build_tools/cflags.xml
|
||||
@echo "Generating list of available modules ..."
|
||||
@build_tools/prep_moduledeps > $@
|
||||
|
Reference in New Issue
Block a user