1999-12-05 07:16:40 +00:00
#
2012-10-18 14:17:40 +00:00
# Asterisk -- An open source telephony toolkit.
2012-01-30 21:21:16 +00:00
#
1999-12-05 07:16:40 +00:00
# Top level Makefile
#
2010-07-24 20:49:39 +00:00
# Copyright (C) 1999-2010, Digium, Inc.
1999-12-05 07:16:40 +00:00
#
2005-06-06 18:29:57 +00:00
# Mark Spencer <markster@digium.com>
1999-12-05 07:16:40 +00:00
#
# This program is free software, distributed under the terms of
# the GNU General Public License
#
2006-07-15 20:12:28 +00:00
# All Makefiles use the following variables:
#
2009-07-21 13:28:04 +00:00
# ASTCFLAGS - compiler options provided by the user (if any)
# _ASTCFLAGS - compiler options provided by the build system
# ASTLDFLAGS - linker flags (not libraries) provided by the user (if any)
# _ASTLDFLAGS - linker flags (not libraries) provided by the build system
2006-07-15 20:12:28 +00:00
# LIBS - additional libraries, at top-level for all links,
# on a single object just for that object
2012-01-30 21:21:16 +00:00
# SOLINK - linker flags used only for creating dynamically loadable modules
# as .so files
2021-10-30 21:04:37 -04:00
# DYLINK - linker flags used only for creating shared libraries
2012-01-30 21:21:16 +00:00
# (.so files on Unix-type platforms, .dylib on Darwin)
2006-07-15 20:12:28 +00:00
#
2009-07-21 13:28:04 +00:00
# Values for ASTCFLAGS and ASTLDFLAGS can be specified in the
2006-09-29 18:54:21 +00:00
# environment when running make, as follows:
#
2007-12-18 08:20:17 +00:00
# $ ASTCFLAGS="-Werror" make ...
#
2009-07-21 13:28:04 +00:00
# or as a variable value on the make command line itself:
2007-12-18 08:20:17 +00:00
#
# $ make ASTCFLAGS="-Werror" ...
2007-12-10 04:18:07 +00:00
2007-12-10 01:54:40 +00:00
export A S T T O P D I R # Top level dir, used in subdirs' Makefiles
2006-09-29 18:54:21 +00:00
export ASTERISKVERSION
export ASTERISKVERSIONNUM
2007-12-10 01:54:40 +00:00
#--- values used for default paths
# DESTDIR is the staging (or final) directory where files are copied
# during the install process. Define it before 'export', otherwise
# export will set it to the empty string making ?= fail.
2011-12-07 20:15:29 +00:00
# Trying to run asterisk from the DESTDIR is completely unsupported
# behavior.
2007-12-10 01:54:40 +00:00
# WARNING: do not put spaces or comments after the value.
DESTDIR ?= $( INSTALL_PATH)
export DESTDIR
2012-03-08 16:12:11 +00:00
export I N S T A L L _ P A T H # Additional prefix for the following paths
2020-10-29 12:25:27 +01:00
export ASTCACHEDIR
2012-03-08 16:12:11 +00:00
export A S T E T C D I R # Path for config files
2006-09-29 18:54:21 +00:00
export ASTVARRUNDIR
export ASTSPOOLDIR
export ASTVARLIBDIR
export ASTDATADIR
2008-01-24 22:58:10 +00:00
export ASTDBDIR
2006-09-29 18:54:21 +00:00
export ASTLOGDIR
2006-11-28 18:28:07 +00:00
export ASTLIBDIR
2012-01-30 21:21:16 +00:00
export ASTMODDIR
2006-11-28 18:28:07 +00:00
export ASTMANDIR
export ASTHEADERDIR
export ASTSBINDIR
2006-09-29 18:54:21 +00:00
export AGI_DIR
export ASTCONFPATH
2010-05-05 00:22:32 +00:00
export ASTKEYDIR
2007-12-10 01:54:40 +00:00
2012-03-08 16:12:11 +00:00
export O S A R C H # Operating system
2007-12-10 01:54:40 +00:00
2012-03-08 16:12:11 +00:00
export N O I S Y _ B U I L D # Used in Makefile.rules
export M E N U S E L E C T _ C F L A G S # Options selected in menuselect.
export A S T _ D E V M O D E # Set to "yes" for additional compiler
# and runtime checks
2012-03-08 16:21:49 +00:00
export A S T _ D E V M O D E _ S T R I C T # Enables shadow warnings (-Wshadow)
2007-12-10 01:54:40 +00:00
2012-03-08 16:12:11 +00:00
export _ S O L I N K # linker flags for all shared objects
export S O L I N K # linker flags for loadable modules
export D Y L I N K # linker flags for shared libraries
2007-12-10 01:54:40 +00:00
#--- paths to various commands
2013-04-08 18:24:50 +00:00
# The makeopts include below tries to set these if they're found during
# configure.
2006-09-29 18:54:21 +00:00
export CC
export CXX
export AR
export RANLIB
export HOST_CC
2010-06-04 19:40:00 +00:00
export BUILD_CC
2006-09-29 18:54:21 +00:00
export INSTALL
2006-11-01 22:54:15 +00:00
export STRIP
2006-12-01 23:20:17 +00:00
export DOWNLOAD
2007-12-17 07:25:35 +00:00
export AWK
2007-08-22 18:54:30 +00:00
export GREP
2008-11-19 00:27:45 +00:00
export MD5
2010-02-18 04:20:11 +00:00
export WGET_EXTRA_ARGS
2012-01-30 21:21:16 +00:00
export LDCONFIG
export LDCONFIG_FLAGS
2012-06-25 17:59:34 +00:00
export PYTHON
2016-10-03 10:30:43 -06:00
export TAR
export PATCH
export SED
export NM
2022-03-25 08:33:30 -06:00
export FIND
export BASENAME
export DIRNAME
export XMLLINT
export XMLSTARLET
1999-12-05 07:16:40 +00:00
2018-01-19 19:14:53 +01:00
# makeopts is required unless the goal is just {dist{-}}clean
i f e q ( $( MAKECMDGOALS ) , c l e a n )
e l s e i f e q ( $( MAKECMDGOALS ) , d i s t c l e a n )
e l s e i f e q ( $( MAKECMDGOALS ) , d i s t - c l e a n )
e l s e
2016-01-27 09:29:13 -07:00
i n c l u d e m a k e o p t s
e n d i f
2006-08-21 02:11:39 +00:00
2009-08-28 20:01:21 +00:00
# start the primary CFLAGS and LDFLAGS with any that were provided
# to the configure script
2014-10-19 17:09:38 +00:00
_ASTCFLAGS := $( CONFIG_CFLAGS) $( CONFIG_SIGNED_CHAR)
2009-08-28 20:01:21 +00:00
_ASTLDFLAGS := $( CONFIG_LDFLAGS)
2007-08-22 16:22:27 +00:00
# Some build systems, such as the one in openwrt, like to pass custom target
2009-08-28 20:01:21 +00:00
# CFLAGS and LDFLAGS in the COPTS and LDOPTS variables; these should also
# go before any build-system computed flags, since they are defaults, not
# overrides
_ASTCFLAGS += $( COPTS)
_ASTLDFLAGS += $( LDOPTS)
2007-08-22 16:22:27 +00:00
2008-11-01 21:10:07 +00:00
# libxml2 cflags
2009-07-21 13:28:04 +00:00
_ASTCFLAGS += $( LIBXML2_INCLUDE)
2008-11-01 21:10:07 +00:00
2017-06-06 14:54:43 -05:00
# BIND_8_COMPAT
_ASTCFLAGS += $( BIND8_CFLAGS)
2006-07-06 23:18:45 +00:00
#Uncomment this to see all build commands instead of 'quiet' output
#NOISY_BUILD=yes
2008-01-29 17:22:47 +00:00
empty :=
space := $( empty) $( empty)
ASTTOPDIR := $( subst $( space) ,\$ ( space) ,$( CURDIR) )
2006-02-23 22:38:47 +00:00
2021-10-30 21:04:37 -04:00
# Overwrite config files on "make samples" or other config installation targets
2005-11-07 22:33:12 +00:00
OVERWRITE = y
2003-03-18 06:00:18 +00:00
2006-04-06 17:13:00 +00:00
# Include debug and macro symbols in the executables (-g) and profiling info (-pg)
2006-05-11 13:15:10 +00:00
DEBUG = -g3
2003-03-18 06:00:18 +00:00
2006-04-07 07:04:05 +00:00
# Asterisk.conf is located in ASTETCDIR or by using the -C flag
# when starting Asterisk
ASTCONFPATH = $( ASTETCDIR) /asterisk.conf
2006-04-15 22:53:53 +00:00
AGI_DIR = $( ASTDATADIR) /agi-bin
2006-04-07 07:04:05 +00:00
# If you use Apache, you may determine by a grep 'DocumentRoot' of your httpd.conf file
HTTP_DOCSDIR = /var/www/html
# Determine by a grep 'ScriptAlias' of your Apache httpd.conf file
HTTP_CGIDIR = /var/www/cgi-bin
1999-12-05 07:16:40 +00:00
2010-04-02 18:57:58 +00:00
# If your platform's linker expects a prefix on symbols generated from compiling C
# source files, set LINKER_SYMBOL_PREFIX to that value. On some systems, exported symbols
# from C source files are prefixed with '_', for example. If this value is not set
# properly, the linker scripts that live in the '*.exports' files in various places
# in this tree will unintentionally suppress symbols that should be visible
# in the final binary objects.
LINKER_SYMBOL_PREFIX =
2006-04-06 17:13:00 +00:00
# Uncomment this to use the older DSP routines
2009-07-21 13:28:04 +00:00
#_ASTCFLAGS+=-DOLD_DSP_ROUTINES
2005-07-14 19:40:15 +00:00
2014-09-18 15:07:12 +00:00
# Default install directory for DAHDI hooks.
DAHDI_UDEV_HOOK_DIR = /usr/share/dahdi/span_config.d
2005-07-14 19:40:15 +00:00
# If the file .asterisk.makeopts is present in your home directory, you can
2006-04-24 17:11:45 +00:00
# include all of your favorite menuselect options so that every time you download
2012-01-30 21:21:16 +00:00
# a new version of Asterisk, you don't have to run menuselect to set them.
2006-04-24 17:11:45 +00:00
# The file /etc/asterisk.makeopts will also be included but can be overridden
2005-07-18 18:34:52 +00:00
# by the file in your home directory.
2015-04-14 03:36:03 -04:00
i f e q ( $( wildcard menuselect .makeopts ) , )
USER_MAKEOPTS = $( wildcard ~/.asterisk.makeopts)
GLOBAL_MAKEOPTS = $( wildcard /etc/asterisk.makeopts)
e l s e
USER_MAKEOPTS =
GLOBAL_MAKEOPTS =
e n d i f
2006-04-24 17:11:45 +00:00
2011-08-17 19:30:50 +00:00
MOD_SUBDIR_CFLAGS = " -I $( ASTTOPDIR) /include "
OTHER_SUBDIR_CFLAGS = " -I $( ASTTOPDIR) /include "
2005-07-14 19:40:15 +00:00
2007-12-10 01:54:40 +00:00
# Create OPTIONS variable, but probably we can assign directly to ASTCFLAGS
OPTIONS =
2009-07-21 13:28:04 +00:00
i f e q ( $( findstring -save -temps ,$ ( _ASTCFLAGS ) $ ( ASTCFLAGS ) ) , )
i f e q ( $( findstring -pipe ,$ ( _ASTCFLAGS ) $ ( ASTCFLAGS ) ) , )
_ASTCFLAGS += -pipe
2008-07-29 23:00:45 +00:00
endif
e n d i f
2009-07-21 13:28:04 +00:00
i f e q ( $( findstring -Wall ,$ ( _ASTCFLAGS ) $ ( ASTCFLAGS ) ) , )
_ASTCFLAGS += -Wall
2007-10-29 22:05:17 +00:00
e n d i f
2015-03-12 12:40:23 +00:00
_ASTCFLAGS += -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $( AST_NESTED_FUNCTIONS) $( AST_CLANG_BLOCKS) $( DEBUG)
2011-01-06 17:50:57 +00:00
ADDL_TARGETS =
2006-04-24 17:11:45 +00:00
i f e q ( $( AST_DEVMODE ) , y e s )
2009-07-21 13:28:04 +00:00
_ASTCFLAGS += -Werror
_ASTCFLAGS += -Wunused
_ASTCFLAGS += $( AST_DECLARATION_AFTER_STATEMENT)
2012-06-01 16:33:25 +00:00
_ASTCFLAGS += $( AST_TRAMPOLINES)
2012-01-30 21:21:16 +00:00
_ASTCFLAGS += -Wundef
2009-07-21 13:28:04 +00:00
_ASTCFLAGS += -Wmissing-format-attribute
2009-08-01 01:04:06 +00:00
_ASTCFLAGS += -Wformat= 2
2012-03-08 16:21:49 +00:00
ifeq ( $( AST_DEVMODE_STRICT) ,yes)
_ASTCFLAGS += -Wshadow
endif
2017-03-30 10:51:14 -04:00
ifneq ( $( DISABLE_XMLDOC) ,yes)
ADDL_TARGETS += validate-docs
endif
2006-04-24 17:11:45 +00:00
e n d i f
2018-03-08 16:14:11 +01:00
i f e q ( $( OSARCH ) , N e t B S D )
_ASTCFLAGS += -isystem /usr/pkg/include
e l s e i f n e q ( $( findstring BSD ,$ ( OSARCH ) ) , )
2009-08-04 14:53:00 +00:00
_ASTCFLAGS += -isystem /usr/local/include
2005-09-26 02:08:06 +00:00
e n d i f
2005-11-05 18:58:27 +00:00
i f e q ( $( OSARCH ) , F r e e B S D )
2006-08-25 20:10:56 +00:00
# -V is understood by BSD Make, not by GNU make.
BSDVERSION = $( shell make -V OSVERSION -f /usr/share/mk/bsd.port.subdir.mk)
2009-07-21 13:28:04 +00:00
_ASTCFLAGS += $( shell if test $( BSDVERSION) -lt 500016 ; then echo "-D_THREAD_SAFE" ; fi )
2006-08-21 02:11:39 +00:00
e n d i f
2004-06-22 17:42:14 +00:00
2005-11-05 18:58:27 +00:00
i f e q ( $( OSARCH ) , N e t B S D )
2018-03-03 10:53:12 +01:00
_ASTCFLAGS += -pthread -D__LIBPTHREAD_SOURCE__ -I/usr/pkg/include
2004-08-31 13:32:11 +00:00
e n d i f
2005-11-05 18:58:27 +00:00
i f e q ( $( OSARCH ) , O p e n B S D )
2009-07-21 13:28:04 +00:00
_ASTCFLAGS += -pthread -ftrampolines
2003-04-27 18:13:11 +00:00
e n d i f
2005-08-30 02:54:02 +00:00
2020-03-18 11:49:39 +02:00
i f e q ( $( OSARCH ) , l i n u x - u c l i b c )
AST_LIBS += -lpthread -ldl
e n d i f
2005-11-05 18:58:27 +00:00
i f e q ( $( OSARCH ) , S u n O S )
2009-11-03 19:59:46 +00:00
_ASTCFLAGS += -Wcast-align -DSOLARIS -I../include/solaris-compat -I/opt/ssl/include -I/usr/local/ssl/include -D_XPG4_2 -D__EXTENSIONS__
2004-12-14 23:36:30 +00:00
e n d i f
2002-06-21 01:40:13 +00:00
2018-03-07 13:13:42 -06:00
i f e q ( $( GREP ) , )
else ifeq ($(GREP), : )
e l s e
2013-04-08 18:24:50 +00:00
ASTERISKVERSION := $( shell GREP = $( GREP) AWK = $( AWK) GIT = $( GIT) build_tools/make_version .)
e n d i f
i f n e q ( $( AWK ) , )
i f n e q ( $( wildcard .version ) , )
2020-08-06 11:51:10 -06:00
ASTERISKVERSIONNUM := $( shell $( SED) -e 's/^certified\///' -e 's/-cert/./' .version | $( AWK) -F. '{printf "%01d%02d%02d", $$1, $$2, $$3}' )
2013-04-08 18:24:50 +00:00
endif
2005-08-30 02:54:02 +00:00
e n d i f
2005-07-12 02:08:03 +00:00
2006-06-19 15:17:32 +00:00
i f n e q ( $( wildcard .svn ) , )
2007-12-10 01:54:40 +00:00
ASTERISKVERSIONNUM := 999999
2005-08-30 02:54:02 +00:00
e n d i f
2003-02-04 16:35:12 +00:00
2017-03-30 10:51:14 -04:00
i f n e q ( $( DISABLE_XMLDOC ) , y e s )
CORE_XMLDOC = doc/core-en_US.xml
FULL_XMLDOC = doc/full-en_US.xml
e l s e
CORE_XMLDOC =
FULL_XMLDOC =
e n d i f
2009-07-21 13:28:04 +00:00
_ASTCFLAGS += $( OPTIONS)
2005-12-27 06:24:28 +00:00
2016-01-18 20:54:28 -07:00
MOD_SUBDIRS := third-party channels pbx apps codecs formats cdr cel bridges funcs tests main res addons $( LOCAL_MOD_SUBDIRS)
2014-10-31 03:09:48 +00:00
OTHER_SUBDIRS := utils agi contrib
2007-11-17 14:44:03 +00:00
SUBDIRS := $( OTHER_SUBDIRS) $( MOD_SUBDIRS)
2006-06-22 12:48:25 +00:00
SUBDIRS_INSTALL := $( SUBDIRS:%= %-install)
2006-06-22 14:31:52 +00:00
SUBDIRS_CLEAN := $( SUBDIRS:%= %-clean)
2007-10-01 21:54:41 +00:00
SUBDIRS_DIST_CLEAN := $( SUBDIRS:%= %-dist-clean)
2006-06-22 15:38:13 +00:00
SUBDIRS_UNINSTALL := $( SUBDIRS:%= %-uninstall)
2007-12-17 07:25:35 +00:00
MOD_SUBDIRS_MENUSELECT_TREE := $( MOD_SUBDIRS:%= %-menuselect-tree)
2005-08-30 02:54:02 +00:00
2006-08-21 02:11:39 +00:00
i f n e q ( $( findstring darwin ,$ ( OSARCH ) ) , )
2013-06-19 22:52:23 +00:00
_ASTCFLAGS += -D__Darwin__ -mmacosx-version-min= 10.6
2015-06-02 15:07:08 -05:00
_SOLINK = -mmacosx-version-min= 10.6 -Wl,-undefined,dynamic_lookup
2013-01-18 22:42:38 +00:00
_SOLINK += /usr/lib/bundle1.o
2012-01-30 21:21:16 +00:00
SOLINK = -bundle $( _SOLINK)
2015-06-02 15:07:08 -05:00
DYLINK = -Wl,-dylib $( _SOLINK)
2010-01-11 22:06:38 +00:00
_ASTLDFLAGS += -L/usr/local/lib
2005-08-31 03:32:15 +00:00
e l s e
2006-04-06 17:13:00 +00:00
# These are used for all but Darwin
2008-10-14 10:33:14 +00:00
SOLINK = -shared
2012-01-30 21:21:16 +00:00
DYLINK = $( SOLINK)
2018-03-08 16:14:11 +01:00
ifeq ( $( OSARCH) ,NetBSD)
_ASTLDFLAGS += -L/usr/pkg/lib
else ifneq ( $( findstring BSD,$( OSARCH) ) ,)
2009-07-27 15:38:59 +00:00
_ASTLDFLAGS += -L/usr/local/lib
2006-01-27 05:33:20 +00:00
endif
2003-10-27 20:00:41 +00:00
e n d i f
2005-08-30 02:54:02 +00:00
2013-01-18 21:35:09 +00:00
# Include rpath settings
_ASTLDFLAGS += $( AST_RPATH)
2005-11-05 18:58:27 +00:00
i f e q ( $( OSARCH ) , S u n O S )
2008-07-03 22:23:04 +00:00
SOLINK = -shared -fpic -L/usr/local/ssl/lib -lrt
2012-01-30 21:21:16 +00:00
DYLINK = $( SOLINK)
2005-09-08 00:34:19 +00:00
e n d i f
2008-10-18 10:27:22 +00:00
i f e q ( $( OSARCH ) , O p e n B S D )
SOLINK = -shared -fpic
2012-01-30 21:21:16 +00:00
DYLINK = $( SOLINK)
2008-10-18 10:27:22 +00:00
e n d i f
2007-12-17 07:25:35 +00:00
# comment to print directories during submakes
2007-12-17 16:48:01 +00:00
#PRINT_DIR=yes
2007-12-17 07:25:35 +00:00
2009-06-16 20:50:41 +00:00
i f n e q ( $( INSIDE_EMACS ) , )
PRINT_DIR = yes
e n d i f
2008-01-03 23:14:15 +00:00
SILENTMAKE := $( MAKE) --quiet --no-print-directory
2007-12-17 16:48:01 +00:00
i f n e q ( $( PRINT_DIR ) $( NOISY_BUILD ) , )
2008-08-11 16:14:29 +00:00
SUBMAKE := $( MAKE)
2007-12-17 16:48:01 +00:00
e l s e
2008-01-03 23:14:15 +00:00
SUBMAKE := $( MAKE) --quiet --no-print-directory
2007-12-17 16:48:01 +00:00
e n d i f
2007-12-17 07:25:35 +00:00
2022-06-01 20:03:06 -06:00
mkfile_path := $( abspath $( lastword $( MAKEFILE_LIST) ) )
mkfile_dir := $( dir $( mkfile_path) )
2007-11-05 18:00:24 +00:00
# $(MAKE) is printed in several places, and we want it to be a
# fixed size string. Define a variable whose name has also the
# same size, so we can easily align text.
i f e q ( $( MAKE ) , g m a k e )
mK = "gmake"
e l s e
mK = " make"
e n d i f
2013-02-04 19:52:14 +00:00
all : _all
2012-01-30 21:21:16 +00:00
@echo " +--------- Asterisk Build Complete ---------+"
@echo " + Asterisk has successfully been built, and +"
2006-09-09 03:27:21 +00:00
@echo " + can be installed by running: +"
2000-01-05 20:03:55 +00:00
@echo " + +"
2012-01-30 21:21:16 +00:00
@echo " + $( mK) install + "
@echo " +-------------------------------------------+"
2000-01-05 20:03:55 +00:00
2013-02-04 19:52:14 +00:00
full : _full
2012-06-25 17:59:34 +00:00
@echo " +--------- Asterisk Build Complete ---------+"
@echo " + Asterisk has successfully been built, and +"
@echo " + can be installed by running: +"
@echo " + +"
@echo " + $( mK) install + "
@echo " +-------------------------------------------+"
2017-03-30 10:51:14 -04:00
_all : makeopts $( SUBDIRS ) $( CORE_XMLDOC ) $( ADDL_TARGETS )
2006-09-22 23:45:14 +00:00
2017-03-30 10:51:14 -04:00
_full : makeopts $( SUBDIRS ) $( FULL_XMLDOC ) $( ADDL_TARGETS )
2012-06-25 17:59:34 +00:00
2006-08-21 03:58:02 +00:00
makeopts : configure
2006-04-24 17:11:45 +00:00
@echo "****"
2012-01-30 21:21:16 +00:00
@echo " **** The configure script must be executed before running ' $( MAKE) '. "
2007-05-09 13:24:38 +00:00
@echo "**** Please run \"./configure\"."
2006-04-24 17:11:45 +00:00
@echo "****"
2006-04-24 17:24:03 +00:00
@exit 1
2006-04-24 17:11:45 +00:00
2009-10-23 14:02:42 +00:00
menuselect.makeopts : menuselect /menuselect menuselect -tree makeopts build_tools /menuselect -deps $( GLOBAL_MAKEOPTS ) $( USER_MAKEOPTS )
2015-04-14 03:36:03 -04:00
i f e q ( $( filter %.menuselect ,$ ( MAKECMDGOALS ) ) , )
2009-12-10 21:01:39 +00:00
m e n u s e l e c t / m e n u s e l e c t - - c h e c k - d e p s $@
2009-10-23 14:02:42 +00:00
m e n u s e l e c t / m e n u s e l e c t - - c h e c k - d e p s $@ $( GLOBAL_MAKEOPTS ) $( USER_MAKEOPTS )
2010-02-15 23:43:28 +00:00
e n d i f
2006-06-26 14:38:55 +00:00
2007-12-17 07:25:35 +00:00
$(MOD_SUBDIRS_MENUSELECT_TREE) :
2009-06-09 18:08:53 +00:00
+@$( SUBMAKE) -C $( @:-menuselect-tree= ) SUBDIR = $( @:-menuselect-tree= ) moduleinfo
+@$( SUBMAKE) -C $( @:-menuselect-tree= ) SUBDIR = $( @:-menuselect-tree= ) makeopts
2002-09-02 15:20:28 +00:00
2023-09-13 14:08:02 -06:00
$(SUBDIRS) : makeopts .lastclean main /version .c include /asterisk /build .h defaults .h
2005-04-29 15:18:10 +00:00
2007-11-17 11:57:52 +00:00
i f e q ( $( findstring $ ( OSARCH ) , mingw 32 cygwin ) , )
2016-01-18 20:54:28 -07:00
main : third -party
2007-11-17 11:57:52 +00:00
e l s e
2007-11-17 19:00:07 +00:00
# Windows: we need to build main (i.e. the asterisk dll) first,
# followed by res, followed by the other directories, because
# dll symbols must be resolved during linking and not at runtime.
D1 := $( filter-out main,$( MOD_SUBDIRS) )
D1 := $( filter-out res,$( D1) )
2007-11-17 11:57:52 +00:00
2007-11-17 19:00:07 +00:00
$(D1) : res
2007-11-17 11:57:52 +00:00
res : main
e n d i f
2005-04-29 15:18:10 +00:00
2013-02-04 19:52:14 +00:00
$(MOD_SUBDIRS) : makeopts
2009-09-24 18:19:41 +00:00
+@_ASTCFLAGS= " $( MOD_SUBDIR_CFLAGS) $( _ASTCFLAGS) " ASTCFLAGS = " $( ASTCFLAGS) " _ASTLDFLAGS = " $( _ASTLDFLAGS) " ASTLDFLAGS = " $( ASTLDFLAGS) " $( SUBMAKE) --no-builtin-rules -C $@ SUBDIR = $@ all
2005-04-29 15:18:10 +00:00
2013-02-04 19:52:14 +00:00
$(OTHER_SUBDIRS) : makeopts
2009-09-24 18:19:41 +00:00
+@_ASTCFLAGS= " $( OTHER_SUBDIR_CFLAGS) $( _ASTCFLAGS) " ASTCFLAGS = " $( ASTCFLAGS) " _ASTLDFLAGS = " $( _ASTLDFLAGS) " ASTLDFLAGS = " $( ASTLDFLAGS) " $( SUBMAKE) --no-builtin-rules -C $@ SUBDIR = $@ all
2005-04-29 15:18:10 +00:00
2013-04-15 17:26:49 +00:00
defaults.h : makeopts .lastclean build_tools /make_defaults_h
2006-05-10 14:35:38 +00:00
@build_tools/make_defaults_h > $@ .tmp
2007-12-16 10:34:55 +00:00
@cmp -s $@ .tmp $@ || mv $@ .tmp $@
2006-05-10 14:35:38 +00:00
@rm -f $@ .tmp
2005-06-06 03:04:58 +00:00
2023-09-13 14:08:02 -06:00
main/version.c : FORCE include /asterisk /buildopts .h menuselect .makeopts .lastclean
2008-01-05 22:09:06 +00:00
@build_tools/make_version_c > $@ .tmp
2007-12-16 10:34:55 +00:00
@cmp -s $@ .tmp $@ || mv $@ .tmp $@
2006-05-10 14:35:38 +00:00
@rm -f $@ .tmp
2001-05-09 03:11:22 +00:00
2013-04-15 17:26:49 +00:00
include/asterisk/buildopts.h : menuselect .makeopts .lastclean
2006-05-11 09:50:41 +00:00
@build_tools/make_buildopts_h > $@ .tmp
2007-12-16 10:34:55 +00:00
@cmp -s $@ .tmp $@ || mv $@ .tmp $@
2006-05-11 09:50:41 +00:00
@rm -f $@ .tmp
2013-04-15 17:26:49 +00:00
# build.h must depend on .lastclean, or parallel make may wipe it out after it's
# been created.
include/asterisk/build.h : .lastclean
@build_tools/make_build_h > $@
2006-10-22 04:44:43 +00:00
2006-06-22 14:31:52 +00:00
$(SUBDIRS_CLEAN) :
2009-06-09 18:08:53 +00:00
+@$( SUBMAKE) -C $( @:-clean= ) clean
1999-12-05 07:16:40 +00:00
2007-10-01 21:54:41 +00:00
$(SUBDIRS_DIST_CLEAN) :
2009-06-09 18:08:53 +00:00
+@$( SUBMAKE) -C $( @:-dist-clean= ) dist-clean
2007-10-01 21:54:41 +00:00
2008-11-15 19:45:19 +00:00
clean : $( SUBDIRS_CLEAN ) _clean
_clean :
2005-06-06 03:04:58 +00:00
rm -f defaults.h
rm -f include/asterisk/build.h
2008-01-05 22:09:06 +00:00
rm -f main/version.c
2012-06-25 17:59:34 +00:00
rm -f doc/core-en_US.xml
rm -f doc/full-en_US.xml
2013-09-03 17:19:30 +00:00
rm -f doc/rest-api/*.wiki
2015-05-07 13:54:35 -06:00
rm -f doxygen.log
rm -rf latex
2013-09-03 17:19:30 +00:00
rm -f rest-api-templates/*.pyc
2006-06-24 04:42:35 +00:00
@$( MAKE) -C menuselect clean
2006-09-09 03:27:21 +00:00
cp -f .cleancount .lastclean
1999-12-05 07:16:40 +00:00
2006-07-01 14:25:43 +00:00
dist-clean : distclean
2006-04-28 17:39:54 +00:00
2008-11-15 19:45:19 +00:00
distclean : $( SUBDIRS_DIST_CLEAN ) _clean
2006-06-24 04:42:35 +00:00
@$( MAKE) -C menuselect dist-clean
2006-06-22 14:31:52 +00:00
@$( MAKE) -C sounds dist-clean
2006-08-23 03:07:34 +00:00
rm -f menuselect.makeopts makeopts menuselect-tree menuselect.makedeps
2008-03-17 17:31:46 +00:00
rm -f config.log config.status config.cache
2006-06-23 02:15:35 +00:00
rm -rf autom4te.cache
2006-07-01 14:29:06 +00:00
rm -f include/asterisk/autoconfig.h
2006-05-11 09:50:41 +00:00
rm -f include/asterisk/buildopts.h
2006-06-23 08:32:19 +00:00
rm -rf doc/api
2021-11-23 15:05:55 +01:00
rm -f doc/Doxyfile
2006-07-01 04:37:52 +00:00
rm -f build_tools/menuselect-deps
2006-04-24 17:11:45 +00:00
2017-03-30 10:51:14 -04:00
datafiles : _all $( CORE_XMLDOC )
2011-08-17 19:30:50 +00:00
CFLAGS = " $( _ASTCFLAGS) $( ASTCFLAGS) " build_tools/mkpkgconfig " $( DESTDIR) $( libdir) /pkgconfig " ;
2010-07-23 13:26:41 +00:00
2013-10-18 21:51:01 +00:00
# # Recursively install contents of the static-http directory, in case
# # extra content is provided there. See contrib/scripts/get_swagger_ui.sh
find static-http | while read x; do \
if test -d $$ x; then \
$( INSTALL) -m 755 -d " $( DESTDIR) $( ASTDATADIR) / $$ x " ; \
else \
$( INSTALL) -m 644 $$ x " $( DESTDIR) $( ASTDATADIR) / $$ x " ; \
fi \
2006-04-01 08:49:54 +00:00
done
2017-03-30 10:51:14 -04:00
i f n e q ( $( DISABLE_XMLDOC ) , y e s )
2011-08-17 19:30:50 +00:00
$( INSTALL ) - m 6 4 4 d o c / c o r e - e n _ U S . x m l "$(DESTDIR)$(ASTDATADIR)/static-http" ;
2013-12-11 12:31:57 +00:00
$( INSTALL ) - m 6 4 4 d o c / a p p d o c s x m l . x s l t "$(DESTDIR)$(ASTDATADIR)/static-http" ;
2017-03-30 10:51:14 -04:00
e n d i f
2008-01-07 17:09:23 +00:00
i f [ - d d o c / t e x / a s t e r i s k ] ; t h e n \
2010-12-27 20:42:01 +00:00
$( INSTALL ) - d "$(DESTDIR)$(ASTDATADIR)/static-http/docs" ; \
2010-07-23 13:26:41 +00:00
f o r n i n d o c / t e x / a s t e r i s k / * ; d o \
2010-12-27 20:42:01 +00:00
$( INSTALL ) - m 6 4 4 $$ n "$(DESTDIR)$(ASTDATADIR)/static-http/docs" ; \
2010-07-23 13:26:41 +00:00
d o n e \
2008-01-07 17:09:23 +00:00
f i
2001-09-24 21:29:03 +00:00
f o r x i n i m a g e s / * . j p g ; d o \
2011-08-17 19:30:50 +00:00
$( INSTALL ) - m 6 4 4 $$ x "$(DESTDIR)$(ASTDATADIR)/images" ; \
2001-09-24 21:29:03 +00:00
d o n e
2006-06-07 21:05:05 +00:00
$( MAKE ) - C s o u n d s i n s t a l l
2013-04-22 14:58:53 +00:00
f i n d r e s t - a p i - n a m e "*.json" | w h i l e r e a d x ; d o \
$( INSTALL ) - m 6 4 4 $$ x "$(DESTDIR)$(ASTDATADIR)/rest-api" ; \
d o n e
2001-09-24 21:29:03 +00:00
2022-02-14 06:31:25 -07:00
DOC_MOD_SUBDIRS := $( filter-out third-party,$( MOD_SUBDIRS) )
XML_core_en_US := $( shell build_tools/make_xml_documentation --command= print_dependencies --source-tree= . --mod-subdirs= " $( DOC_MOD_SUBDIRS) " )
# core-en_US.xml is the normal documentation created with asterisk builds.
2013-04-15 17:26:49 +00:00
doc/core-en_US.xml : makeopts .lastclean $( XML_core_en_US )
2022-02-14 06:31:25 -07:00
@build_tools/make_xml_documentation --command= create_xml --source-tree= . --mod-subdirs= " $( DOC_MOD_SUBDIRS) " \
2022-03-25 13:00:48 -06:00
--with-moduleinfo --output-file= $@
2008-11-01 21:10:07 +00:00
2022-02-14 06:31:25 -07:00
# The full-en_US.xml target is only called by the wiki documentation generation process
# and does special post-processing in preparation for uploading to the wiki.
# It creates full-en_US.xml but then re-creates core-en_US.xml as well.
doc/full-en_US.xml : makeopts .lastclean $( XML_core_en_US )
2012-06-25 17:59:34 +00:00
ifeq ($(PYTHON), : )
@echo "--------------------------------------------------------------------------"
@echo "--- Please install python to build full documentation ---"
@echo "--------------------------------------------------------------------------"
e l s e
2022-02-14 06:31:25 -07:00
@ b u i l d _ t o o l s / m a k e _ x m l _ d o c u m e n t a t i o n --command = create_xml --source-tree= . --mod-subdirs= " $( DOC_MOD_SUBDIRS) " \
2022-03-25 13:00:48 -06:00
--for-wiki --output-file= $@ --core-output-file= ./doc/core-en_US.xml
2012-06-25 17:59:34 +00:00
e n d i f
2008-11-02 05:55:46 +00:00
validate-docs : doc /core -en_US .xml
2010-07-17 13:10:47 +00:00
ifeq ($(XMLSTARLET)$(XMLLINT), :: )
@echo "--------------------------------------------------------------------------"
@echo "--- Please install xmllint or xmlstarlet to validate the documentation ---"
@echo "--------------------------------------------------------------------------"
2008-11-02 05:55:46 +00:00
e l s e
2010-07-17 13:10:47 +00:00
ifneq ($(XMLLINT), : )
$( XMLLINT) --dtdvalid doc/appdocsxml.dtd --noout $<
else
2008-11-04 20:12:41 +00:00
$( XMLSTARLET) val -d doc/appdocsxml.dtd $<
2010-07-17 13:10:47 +00:00
endif
2008-11-02 05:55:46 +00:00
e n d i f
2012-01-30 21:21:16 +00:00
update :
2005-12-02 01:01:11 +00:00
@if [ -d .svn ] ; then \
echo "Updating from Subversion..." ; \
2008-01-16 18:06:14 +00:00
fromrev = " `svn info | $( AWK) '/Revision: / {print $$ 2}'` " ; \
2005-12-02 01:01:11 +00:00
svn update | tee update.out; \
2008-01-16 18:06:14 +00:00
torev = " `svn info | $( AWK) '/Revision: / {print $$ 2}'` " ; \
echo " `date` Updated from revision $$ {fromrev} to $$ {torev}. " >> update.log; \
2005-12-02 01:01:11 +00:00
rm -f .version; \
if [ ` grep -c ^C update.out` -gt 0 ] ; then \
echo ; echo "The following files have conflicts:" ; \
grep ^C update.out | cut -b4- ; \
2005-03-11 08:24:23 +00:00
fi ; \
2005-12-02 01:01:11 +00:00
rm -f update.out; \
2003-02-04 16:35:12 +00:00
else \
2005-12-02 01:01:11 +00:00
echo "Not under version control" ; \
2003-02-04 16:35:12 +00:00
fi
2005-04-27 16:27:53 +00:00
NEWHEADERS = $( notdir $( wildcard include/asterisk/*.h) )
2011-08-17 19:30:50 +00:00
OLDHEADERS = $( filter-out $( NEWHEADERS) $( notdir $( DESTDIR) $( ASTHEADERDIR) ) ,$( notdir $( wildcard $( DESTDIR) $( ASTHEADERDIR) /*.h) ) )
2020-10-29 12:25:27 +01:00
INSTALLDIRS = " $( ASTLIBDIR) " " $( ASTMODDIR) " " $( ASTSBINDIR) " " $( ASTCACHEDIR) " " $( ASTETCDIR) " " $( ASTVARRUNDIR) " \
2012-06-12 18:41:50 +00:00
" $( ASTSPOOLDIR) " " $( ASTSPOOLDIR) /dictate " " $( ASTSPOOLDIR) /meetme " \
" $( ASTSPOOLDIR) /monitor " " $( ASTSPOOLDIR) /system " " $( ASTSPOOLDIR) /tmp " \
2013-07-03 17:58:45 +00:00
" $( ASTSPOOLDIR) /voicemail " " $( ASTSPOOLDIR) /recording " \
2012-06-12 18:41:50 +00:00
" $( ASTLOGDIR) " " $( ASTLOGDIR) /cdr-csv " " $( ASTLOGDIR) /cdr-custom " \
" $( ASTLOGDIR) /cel-custom " " $( ASTDATADIR) " " $( ASTDATADIR) /documentation " \
" $( ASTDATADIR) /documentation/thirdparty " " $( ASTDATADIR) /firmware " \
" $( ASTDATADIR) /firmware/iax " " $( ASTDATADIR) /images " " $( ASTDATADIR) /keys " \
2013-04-22 14:58:53 +00:00
" $( ASTDATADIR) /phoneprov " " $( ASTDATADIR) /rest-api " " $( ASTDATADIR) /static-http " \
2016-01-18 20:54:28 -07:00
" $( ASTDATADIR) /sounds " " $( ASTDATADIR) /moh " " $( ASTMANDIR) /man8 " " $( AGI_DIR) " " $( ASTDBDIR) " \
2020-04-15 13:15:21 -05:00
" $( ASTDATADIR) /third-party " " ${ ASTDATADIR } /keys/stir_shaken "
2005-04-27 16:27:53 +00:00
2008-04-18 20:01:47 +00:00
installdirs :
2012-06-12 18:41:50 +00:00
@for i in $( INSTALLDIRS) ; do \
2012-06-13 14:31:24 +00:00
if [ ! -z " $$ {i} " -a ! -d " $( DESTDIR) $$ {i} " ] ; then \
2012-06-12 18:41:50 +00:00
$( INSTALL) -d " $( DESTDIR) $$ {i} " ; \
fi ; \
done
2008-04-18 20:01:47 +00:00
2012-01-30 21:21:16 +00:00
main-bininstall :
+@DESTDIR= " $( DESTDIR) " ASTSBINDIR = " $( ASTSBINDIR) " ASTLIBDIR = " $( ASTLIBDIR) " $( SUBMAKE) -C main bininstall
2013-02-04 19:52:14 +00:00
bininstall : _all installdirs $( SUBDIRS_INSTALL ) main -bininstall
2015-09-04 13:51:46 -05:00
$( INSTALL) -m 755 contrib/scripts/astversion " $( DESTDIR) $( ASTSBINDIR) / "
2011-08-17 19:30:50 +00:00
$( INSTALL) -m 755 contrib/scripts/astgenkey " $( DESTDIR) $( ASTSBINDIR) / "
$( INSTALL) -m 755 contrib/scripts/autosupport " $( DESTDIR) $( ASTSBINDIR) / "
2022-02-19 00:59:02 +03:00
i f n e q ( $( HAVE_SBIN_LAUNCHD ) , 1 )
. / b u i l d _ t o o l s / i n s t a l l _ s u b s t c o n t r i b / s c r i p t s / s a f e _ a s t e r i s k "$(DESTDIR)$(ASTSBINDIR)/safe_asterisk" ;
e n d i f
2010-07-23 13:26:41 +00:00
2017-03-30 10:51:14 -04:00
i f n e q ( $( DISABLE_XMLDOC ) , y e s )
2011-08-17 19:30:50 +00:00
$( INSTALL ) - m 6 4 4 d o c / c o r e - * . x m l "$(DESTDIR)$(ASTDATADIR)/documentation"
2013-12-11 12:31:57 +00:00
$( INSTALL ) - m 6 4 4 d o c / a p p d o c s x m l . x s l t "$(DESTDIR)$(ASTDATADIR)/documentation"
2011-08-17 19:30:50 +00:00
$( INSTALL ) - m 6 4 4 d o c / a p p d o c s x m l . d t d "$(DESTDIR)$(ASTDATADIR)/documentation"
2017-03-30 10:51:14 -04:00
e n d i f
2011-08-17 19:30:50 +00:00
$( INSTALL ) - m 6 4 4 d o c / a s t e r i s k . 8 "$(DESTDIR)$(ASTMANDIR)/man8"
2013-10-02 18:28:03 +00:00
$( INSTALL ) - m 6 4 4 d o c / a s t d b * . 8 "$(DESTDIR)$(ASTMANDIR)/man8"
2011-08-17 19:30:50 +00:00
$( INSTALL ) - m 6 4 4 c o n t r i b / s c r i p t s / a s t g e n k e y . 8 "$(DESTDIR)$(ASTMANDIR)/man8"
$( INSTALL ) - m 6 4 4 c o n t r i b / s c r i p t s / a u t o s u p p o r t . 8 "$(DESTDIR)$(ASTMANDIR)/man8"
$( INSTALL ) - m 6 4 4 c o n t r i b / s c r i p t s / s a f e _ a s t e r i s k . 8 "$(DESTDIR)$(ASTMANDIR)/man8"
2006-10-24 05:24:32 +00:00
i f [ - f c o n t r i b / f i r m w a r e / i a x / i a x y . b i n ] ; t h e n \
2011-08-17 19:30:50 +00:00
$( INSTALL ) - m 6 4 4 c o n t r i b / f i r m w a r e / i a x / i a x y . b i n "$(DESTDIR)$(ASTDATADIR)/firmware/iax/iaxy.bin" ; \
2006-10-24 05:24:32 +00:00
f i
2014-09-18 15:07:12 +00:00
i f e q ( $( HAVE_DAHDI ) , 1 )
2014-07-03 14:08:02 +00:00
$( INSTALL ) - d $( DESTDIR ) / $( DAHDI_UDEV_HOOK_DIR )
$( INSTALL ) - m 6 4 4 c o n t r i b / s c r i p t s / d a h d i _ s p a n _ c o n f i g _ h o o k $( DESTDIR ) $( DAHDI_UDEV_HOOK_DIR ) / 4 0 - a s t e r i s k
2014-09-18 15:07:12 +00:00
e n d i f
2006-04-29 11:42:31 +00:00
2006-06-22 12:33:50 +00:00
$(SUBDIRS_INSTALL) :
2016-01-18 20:54:28 -07:00
+@DESTDIR= " $( DESTDIR) " ASTSBINDIR = " $( ASTSBINDIR) " ASTDATADIR = " $( ASTDATADIR) " $( SUBMAKE) -C $( @:-install= ) install
2005-05-01 01:43:44 +00:00
2007-12-10 04:18:07 +00:00
NEWMODS := $( foreach d,$( MOD_SUBDIRS) ,$( notdir $( wildcard $( d) /*.so) ) )
2012-01-30 21:21:16 +00:00
OLDMODS = $( filter-out $( NEWMODS) $( notdir $( DESTDIR) $( ASTMODDIR) ) ,$( notdir $( wildcard $( DESTDIR) $( ASTMODDIR) /*.so) ) )
2018-01-28 10:02:41 +01:00
ifneq ($(BASH), : )
FILMODS = $( filter-out $( shell ./build_tools/list_valid_installed_externals) ,$( OLDMODS) )
e l s e
FILMODS = $( OLDMODS)
e n d i f
BADMODS = $( strip $( FILMODS) )
2005-05-01 01:43:44 +00:00
oldmodcheck :
2016-08-01 19:55:33 -06:00
@if [ -n " $( BADMODS) " ] ; then \
2005-04-27 16:27:53 +00:00
echo " WARNING WARNING WARNING" ; \
echo "" ; \
echo " Your Asterisk modules directory, located at" ; \
2012-01-30 21:21:16 +00:00
echo " $( DESTDIR) $( ASTMODDIR) " ; \
2005-04-27 16:27:53 +00:00
echo " contains modules that were not installed by this " ; \
echo " version of Asterisk. Please ensure that these" ; \
echo " modules are compatible with this version before" ; \
echo " attempting to run Asterisk." ; \
echo "" ; \
2016-08-01 19:55:33 -06:00
for f in $( BADMODS) ; do \
2005-04-27 16:27:53 +00:00
echo " $$ f " ; \
done ; \
echo "" ; \
echo " WARNING WARNING WARNING" ; \
fi
2003-02-04 16:35:12 +00:00
2017-02-23 14:49:17 -07:00
ld-cache-update :
2018-03-07 13:13:42 -06:00
i f e q ( $( LDCONFIG ) , )
else ifeq ($(LDCONFIG), : )
e l s e
2017-03-28 20:01:16 +02:00
i f e q ( $( DESTDIR ) , ) # DESTDIR means binary archive creation; ldconfig should be run on postinst
2018-01-16 13:34:23 +01:00
@if [ $$ ( id -u) -eq 0 ] ; then \
2017-03-28 20:01:16 +02:00
$( LDCONFIG) " $( ASTLIBDIR) / " ; \
2017-02-23 14:49:17 -07:00
else \
echo " WARNING WARNING WARNING" ; \
echo "" ; \
echo " You cannot rebuild the system linker cache unless you are root. " ; \
2017-03-28 20:01:16 +02:00
echo " You MUST do one of the following..." ; \
2017-02-23 14:49:17 -07:00
echo " * Re-run 'make install' as root. " ; \
2017-03-28 20:01:16 +02:00
echo " * Run 'ldconfig $( ASTLIBDIR) ' as root. " ; \
echo " * Run asterisk with 'LD_LIBRARY_PATH= $( ASTLIBDIR) asterisk' " ; \
2017-02-23 14:49:17 -07:00
echo "" ; \
echo " WARNING WARNING WARNING" ; \
fi
e n d i f
2017-03-28 20:01:16 +02:00
e n d i f
export _oldlibdir =
export _oldmoddir =
i f e q ( $( findstring 64,$ ( HOST_CPU ) ) , 6 4 )
# Strip any trailing '/' so the dir and notdir functions work correctly
_current_libdir = $( patsubst %/,%,$( DESTDIR) $( ASTLIBDIR) )
# Only process if the paths end in lib64 or lib.
# If we're installing to lib64, check lib for orphans.
# If we're installing to lib, check lib64 for orphans.
# Otherwise, leave _oldlibdir empty.
ifeq ( $( notdir $( _current_libdir) ) ,lib64)
_oldlibdir = $( dir $( _current_libdir) ) lib
else ifeq ( $( notdir $( _current_libdir) ) ,lib)
_oldlibdir = $( dir $( _current_libdir) ) lib64
endif
2017-02-23 14:49:17 -07:00
2017-03-28 20:01:16 +02:00
# Strip any trailing '/' so the dir and notdir functions work correctly
_current_moddir = $( patsubst %/,%,$( DESTDIR) $( ASTMODDIR) )
# Only process if the paths contain /lib64/ or /lib/.
# If we're installing to lib64, check lib for orphans.
# If we're installing to lib, check lib64 for orphans.
# Otherwise, leave _oldmoddir empty.
ifeq ( $( findstring /lib64/,$( _current_moddir) ) ,/lib64/)
_oldmoddir = $( subst /lib64/,/lib/,$( _current_moddir) )
else ifeq ( $( findstring /lib/,$( _current_moddir) ) ,/lib/)
_oldmoddir = $( subst /lib/,/lib64/,$( _current_moddir) )
endif
e n d i f
2017-02-27 11:25:01 -07:00
check-old-libdir :
2017-03-28 20:01:16 +02:00
@test -n " $( _oldlibdir) " -a -d " $( _oldlibdir) " || exit 0 ; \
oldfiles = ` find " $( _oldlibdir) " -name libasterisk* -print -quit -o \( -path *asterisk/modules/* -a -name *.so \) -print -quit 2>/dev/null` ; \
2017-02-27 11:25:01 -07:00
if [ " x $$ oldfiles " != "x" ] ; then \
echo " WARNING WARNING WARNING" ; \
echo "" ; \
echo " Installation is to: " ; \
echo " $( DESTDIR) $( ASTLIBDIR) " ; \
echo " but there are asterisk shared libraries in: " ; \
echo " $( _oldlibdir) " ; \
echo " or" ; \
echo " $( _oldlibdir) /asterisk/modules " ; \
echo "" ; \
echo " It is unlikely that asterisk will start." ; \
echo "" ; \
echo " You should do one of the following..." ; \
echo " * Run 'make uninstall' to remove the incorrect libraries" ; \
echo " then run 'make install' again." ; \
echo " * Manually remove the libraries from" ; \
echo " $( _oldlibdir) " ; \
echo " and run 'ldconfig' to rebuild the linker cache." ; \
echo "" ; \
echo " WARNING WARNING WARNING" ; \
fi
2008-02-26 18:10:20 +00:00
badshell :
2014-10-12 07:57:06 +00:00
i f n e q ( $( filter ~%,$ ( DESTDIR ) ) , )
2008-02-26 18:10:20 +00:00
@ e c h o "Your shell doesn't do ~ expansion when expected (specifically, when doing \"make install DESTDIR=~/path\")."
@ e c h o "Try replacing ~ with \$$HOME, as in \"make install DESTDIR=\$$HOME/path\"."
@ e x i t 1
e n d i f
2022-06-01 20:03:06 -06:00
versioncheck :
i f e q ( $( ASTERISKVERSION ) , U N K N O W N _ _ g i t _ c h e c k _ f a i l )
@ e c h o "Asterisk Version is unknown due to a git error. If you are running make"
@ e c h o "as a different user than the project owner, this can be resolved by"
@echo "running the following command as the user currently executing make : "$$USER
@echo "git config --global --add safe.directory " $( mkfile_dir:/= )
@exit 1
e n d i f
install : badshell versioncheck bininstall datafiles
2005-09-30 14:48:41 +00:00
@if [ -x /usr/sbin/asterisk-post-install ] ; then \
2011-08-17 19:30:50 +00:00
/usr/sbin/asterisk-post-install " $( DESTDIR) " . ; \
2005-09-30 14:48:41 +00:00
fi
2012-01-30 21:21:16 +00:00
@echo " +---- Asterisk Installation Complete -------+"
2006-04-29 11:42:31 +00:00
@echo " + +"
@echo " + YOU MUST READ THE SECURITY DOCUMENT +"
@echo " + +"
2012-01-30 21:21:16 +00:00
@echo " + Asterisk has successfully been installed. +"
@echo " + If you would like to install the sample +"
2006-04-29 11:42:31 +00:00
@echo " + configuration files (overwriting any +"
2012-01-30 21:21:16 +00:00
@echo " + existing config files), run: +"
2006-04-29 11:42:31 +00:00
@echo " + +"
2015-10-30 13:22:23 -05:00
@echo " + For generic reference documentation: +"
@echo " + $( mK) samples + "
@echo " + +"
@echo " + For a sample basic PBX: +"
@echo " + $( mK) basic-pbx + "
@echo " + +"
2006-04-29 11:42:31 +00:00
@echo " + +"
@echo " +----------------- or ---------------------+"
@echo " + +"
@echo " + You can go ahead and install the asterisk +"
@echo " + program documentation now or later run: +"
@echo " + +"
2007-11-05 18:00:24 +00:00
@echo " + $( mK) progdocs + "
2006-04-29 11:42:31 +00:00
@echo " + +"
@echo " + **Note** This requires that you have +"
@echo " + doxygen installed on your local system +"
@echo " +-------------------------------------------+"
@$( MAKE) -s oldmodcheck
2017-02-23 14:49:17 -07:00
@$( MAKE) -s ld-cache-update
2017-02-27 11:25:01 -07:00
@$( MAKE) -s check-old-libdir
2003-02-04 16:35:12 +00:00
2008-10-01 14:44:12 +00:00
isntall : install
2006-09-22 23:45:14 +00:00
upgrade : bininstall
2003-02-04 16:35:12 +00:00
2002-06-21 01:40:13 +00:00
2015-10-30 13:22:23 -05:00
# Install configuration files from the specified directory
# Parameters:
# (1) the configuration directory to install from
# (2) the extension to strip off
d e f i n e I N S T A L L _ C O N F I G S
2018-07-23 14:49:33 -04:00
@ f o r x i n $( 1) / * $( 2) ; d o \
2015-10-30 13:22:23 -05:00
dst = " $( DESTDIR) $( ASTETCDIR) /` $( BASENAME) $$ x $( 2) ` " ; \
2011-08-25 15:30:46 +00:00
if [ -f " $$ {dst} " ] ; then \
2004-11-19 14:04:57 +00:00
if [ " $( OVERWRITE) " = "y" ] ; then \
2011-08-25 15:30:46 +00:00
if cmp -s " $$ {dst} " " $$ x " ; then \
2004-11-20 06:47:33 +00:00
echo " Config file $$ x is unchanged " ; \
continue ; \
fi ; \
2011-08-25 15:30:46 +00:00
mv -f " $$ {dst} " " $$ {dst}.old " ; \
2004-11-19 14:04:57 +00:00
else \
echo " Skipping config file $$ x " ; \
continue ; \
fi ; \
2000-01-05 20:03:55 +00:00
fi ; \
2007-11-05 19:22:56 +00:00
echo " Installing file $$ x " ; \
2011-08-25 15:30:46 +00:00
$( INSTALL) -m 644 " $$ x " " $$ {dst} " ; \
2015-10-30 13:22:23 -05:00
done ; \
2010-05-05 00:22:32 +00:00
if [ " $( OVERWRITE) " = "y" ] ; then \
2010-07-23 13:26:41 +00:00
echo "Updating asterisk.conf" ; \
2020-10-29 12:25:27 +01:00
sed -e 's|^astcachedir.*$$|astcachedir => $(ASTCACHEDIR)|' \
-e 's|^astetcdir.*$$|astetcdir => $(ASTETCDIR)|' \
2012-01-30 21:21:16 +00:00
-e 's|^astmoddir.*$$|astmoddir => $(ASTMODDIR)|' \
2010-05-05 20:48:15 +00:00
-e 's|^astvarlibdir.*$$|astvarlibdir => $(ASTVARLIBDIR)|' \
-e 's|^astdbdir.*$$|astdbdir => $(ASTDBDIR)|' \
-e 's|^astkeydir.*$$|astkeydir => $(ASTKEYDIR)|' \
-e 's|^astdatadir.*$$|astdatadir => $(ASTDATADIR)|' \
-e 's|^astagidir.*$$|astagidir => $(AGI_DIR)|' \
-e 's|^astspooldir.*$$|astspooldir => $(ASTSPOOLDIR)|' \
-e 's|^astrundir.*$$|astrundir => $(ASTVARRUNDIR)|' \
-e 's|^astlogdir.*$$|astlogdir => $(ASTLOGDIR)|' \
2012-09-11 18:09:22 +00:00
-e 's|^astsbindir.*$$|astsbindir => $(ASTSBINDIR)|' \
2011-08-17 19:30:50 +00:00
" $( DESTDIR) $( ASTCONFPATH) " > " $( DESTDIR) $( ASTCONFPATH) .tmp " ; \
$( INSTALL) -m 644 " $( DESTDIR) $( ASTCONFPATH) .tmp " " $( DESTDIR) $( ASTCONFPATH) " ; \
rm -f " $( DESTDIR) $( ASTCONFPATH) .tmp " ; \
2015-10-30 13:22:23 -05:00
fi
e n d e f
2019-07-16 06:55:49 -06:00
install-headers :
# Will create all components of "$(DESTDIR)$(ASTHEADERDIR)/doxygen" including "$(DESTDIR)$(includedir)"
$( INSTALL) -d " $( DESTDIR) $( ASTHEADERDIR) /doxygen "
$( INSTALL) -m 644 include/asterisk.h " $( DESTDIR) $( includedir) "
$( INSTALL) -m 644 include/asterisk/*.h " $( DESTDIR) $( ASTHEADERDIR) "
$( INSTALL) -m 644 include/asterisk/doxygen/*.h " $( DESTDIR) $( ASTHEADERDIR) /doxygen "
if [ -n " $( OLDHEADERS) " ] ; then \
for h in $( OLDHEADERS) ; do rm -f " $( DESTDIR) $( ASTHEADERDIR) / $$ h " ; done \
fi
2018-07-23 14:49:33 -04:00
install-configs :
@if test -z " $( CONFIG_SRC) " -o ! -d " $( CONFIG_SRC) " ; then \
>& 2 echo "CONFIG_SRC must be set to a directory." ; \
exit 1; \
fi
@echo " Installing config files from $( CONFIG_SRC) /* $( CONFIG_EXTEN) "
$( call INSTALL_CONFIGS,$( CONFIG_SRC) ,$( CONFIG_EXTEN) )
2015-10-30 13:22:23 -05:00
# XXX why *.adsi is installed first ?
adsi :
@echo Installing adsi config files...
$( INSTALL) -d " $( DESTDIR) $( ASTETCDIR) "
@for x in configs/samples/*.adsi; do \
dst = " $( DESTDIR) $( ASTETCDIR) /` $( BASENAME) $$ x` " ; \
if [ -f " $$ {dst} " ] ; then \
echo " Overwriting $$ x " ; \
else \
echo " Installing $$ x " ; \
fi ; \
$( INSTALL) -m 644 " $$ x " " $( DESTDIR) $( ASTETCDIR) /` $( BASENAME) $$ x` " ; \
done
samples : adsi
@echo Installing other config files...
2018-07-23 14:49:33 -04:00
$( call INSTALL_CONFIGS,configs/samples,.sample)
2011-08-17 19:30:50 +00:00
$( INSTALL) -d " $( DESTDIR) $( ASTSPOOLDIR) /voicemail/default/1234/INBOX "
build_tools/make_sample_voicemail " $( DESTDIR) / $( ASTDATADIR) " " $( DESTDIR) / $( ASTSPOOLDIR) "
2008-07-10 20:56:20 +00:00
@for x in phoneprov/*; do \
dst = " $( DESTDIR) $( ASTDATADIR) / $$ x " ; \
2011-08-17 19:30:50 +00:00
if [ -f " $$ {dst} " ] ; then \
2008-07-10 20:56:20 +00:00
if [ " $( OVERWRITE) " = "y" ] ; then \
2011-08-17 19:30:50 +00:00
if cmp -s " $$ {dst} " " $$ x " ; then \
2008-07-10 20:56:20 +00:00
echo " Config file $$ x is unchanged " ; \
continue ; \
fi ; \
2011-08-17 19:30:50 +00:00
mv -f " $$ {dst} " " $$ {dst}.old " ; \
2008-07-10 20:56:20 +00:00
else \
echo " Skipping config file $$ x " ; \
continue ; \
fi ; \
fi ; \
echo " Installing file $$ x " ; \
2011-08-17 19:30:50 +00:00
$( INSTALL) -m 644 " $$ x " " $$ {dst} " ; \
2008-07-10 20:56:20 +00:00
done
2001-09-24 21:29:03 +00:00
2015-10-30 13:22:23 -05:00
basic-pbx :
@echo Installing basic-pbx config files...
2018-07-23 14:49:33 -04:00
$( call INSTALL_CONFIGS,configs/basic-pbx)
2015-10-30 13:22:23 -05:00
2002-06-21 01:40:13 +00:00
webvmail :
2011-08-17 19:30:50 +00:00
@[ -d " $( DESTDIR) $( HTTP_DOCSDIR) / " ] || ( printf "http docs directory not found.\nUpdate assignment of variable HTTP_DOCSDIR in Makefile!\n" && exit 1 )
@[ -d " $( DESTDIR) $( HTTP_CGIDIR) " ] || ( printf "cgi-bin directory not found.\nUpdate assignment of variable HTTP_CGIDIR in Makefile!\n" && exit 1 )
$( INSTALL) -m 4755 contrib/scripts/vmail.cgi " $( DESTDIR) $( HTTP_CGIDIR) /vmail.cgi "
$( INSTALL) -d " $( DESTDIR) $( HTTP_DOCSDIR) /_asterisk "
2002-06-21 01:40:13 +00:00
for x in images/*.gif; do \
2011-08-17 19:30:50 +00:00
$( INSTALL) -m 644 $$ x " $( DESTDIR) $( HTTP_DOCSDIR) /_asterisk/ " ; \
2002-06-21 01:40:13 +00:00
done
2012-01-30 21:21:16 +00:00
@echo " +--------- Asterisk Web Voicemail ----------+"
2002-06-21 01:40:13 +00:00
@echo " + +"
@echo " + Asterisk Web Voicemail is installed in +"
2005-07-12 02:08:03 +00:00
@echo " + your cgi-bin directory: +"
@echo " + $( DESTDIR) $( HTTP_CGIDIR) "
@echo " + IT USES A SETUID ROOT PERL SCRIPT, SO +"
@echo " + IF YOU DON'T LIKE THAT, UNINSTALL IT! +"
@echo " + +"
@echo " + Other static items have been stored in: +"
@echo " + $( DESTDIR) $( HTTP_DOCSDIR) "
@echo " + +"
@echo " + If these paths do not match your httpd +"
@echo " + installation, correct the definitions +"
@echo " + in your Makefile of HTTP_CGIDIR and +"
@echo " + HTTP_DOCSDIR +"
2002-06-21 01:40:13 +00:00
@echo " + +"
2012-01-30 21:21:16 +00:00
@echo " +-------------------------------------------+"
2002-06-21 01:40:13 +00:00
2001-09-24 21:29:03 +00:00
progdocs :
2012-10-13 15:06:39 +00:00
ifeq ($(DOXYGEN), : )
@echo "Doxygen is not installed. Please install and re-run the configuration script."
e l s e
2021-11-23 15:05:55 +01:00
@ c p d o c / D o x y f i l e . i n d o c / D o x y f i l e
2012-10-13 15:06:39 +00:00
ifeq ($(DOT), : )
@echo "DOT is not installed. Doxygen will not produce any diagrams. Please install and re-run the configuration script."
e l s e
2021-11-23 15:05:55 +01:00
@ e c h o "HAVE_DOT = YES" > > d o c / D o x y f i l e
2012-10-13 15:06:39 +00:00
e n d i f
2021-11-23 15:05:55 +01:00
i f n e q ( $( NOISY_BUILD ) , y e s )
@ e c h o "EXTRACT_ALL = YES" > > d o c / D o x y f i l e
e n d i f
i f e q ( $( AST_DEVMODE ) , y e s )
@ e c h o "INTERNAL_DOCS = YES" > > d o c / D o x y f i l e
@ e c h o "WARN_NO_PARAMDOC = YES" > > d o c / D o x y f i l e
e n d i f
i f e q ( $( ASTERISKVERSION ) , U N K N O W N _ _ a n d _ p r o b a b l y _ u n s u p p o r t e d )
@ e c h o "Asterisk Version is unknown, not configuring Doxygen PROJECT_NUMBER."
2022-06-01 20:03:06 -06:00
e l s e i f e q ( $( ASTERISKVERSION ) , U N K N O W N _ _ g i t _ c h e c k _ f a i l )
@ e c h o "Asterisk Version is unknown due to a git error. If you are running make"
@ e c h o "as a different user than the project owner, this can be resolved by"
@echo "running the following command as the user currently executing make : "$$USER
@echo "git config --global --add safe.directory " $( mkfile_dir:/= )
@echo "not configuring Doxygen PROJECT_NUMBER."
2012-10-13 16:05:12 +00:00
e l s e
2021-11-23 15:05:55 +01:00
@ e c h o "PROJECT_NUMBER = $(ASTERISKVERSION)" > > d o c / D o x y f i l e
2012-10-13 16:05:12 +00:00
e n d i f
2021-11-23 15:05:55 +01:00
@ e c h o "Generating C-API documentation. This will take a while."
@ d o x y g e n d o c / D o x y f i l e
@ e c h o "Generation complete. Any warnings are in ./doxygen.log."
2012-10-13 15:06:39 +00:00
e n d i f
2002-06-21 01:40:13 +00:00
2008-07-24 04:51:42 +00:00
install-logrotate :
2011-08-17 19:30:50 +00:00
if [ ! -d " $( DESTDIR) $( ASTETCDIR) /../logrotate.d " ] ; then \
$( INSTALL) -d " $( DESTDIR) $( ASTETCDIR) /../logrotate.d " ; \
2008-07-24 04:51:42 +00:00
fi
2008-07-24 05:21:00 +00:00
sed 's#__LOGDIR__#$(ASTLOGDIR)#g' < contrib/scripts/asterisk.logrotate | sed 's#__SBINDIR__#$(ASTSBINDIR)#g' > contrib/scripts/asterisk.logrotate.tmp
2011-08-17 19:30:50 +00:00
$( INSTALL) -m 0644 contrib/scripts/asterisk.logrotate.tmp " $( DESTDIR) $( ASTETCDIR) /../logrotate.d/asterisk "
2008-07-24 05:21:00 +00:00
rm -f contrib/scripts/asterisk.logrotate.tmp
2008-07-24 04:51:42 +00:00
2002-06-21 01:40:13 +00:00
config :
2016-07-18 11:14:59 +02:00
@if [ -f /etc/redhat-release -o -f /etc/fedora-release ] ; then \
2016-05-18 18:58:20 +03:00
./build_tools/install_subst contrib/init.d/rc.redhat.asterisk " $( DESTDIR) /etc/rc.d/init.d/asterisk " ; \
if [ ! -f " $( DESTDIR) /etc/sysconfig/asterisk " ] ; then \
$( INSTALL) -m 644 contrib/init.d/etc_default_asterisk " $( DESTDIR) /etc/sysconfig/asterisk " ; \
fi ; \
if [ -z " $( DESTDIR) " ] ; then \
/sbin/chkconfig --add asterisk ; \
fi ; \
elif [ -f /etc/debian_version ] ; then \
./build_tools/install_subst contrib/init.d/rc.debian.asterisk " $( DESTDIR) /etc/init.d/asterisk " ; \
if [ ! -f " $( DESTDIR) /etc/default/asterisk " ] ; then \
$( INSTALL) -m 644 contrib/init.d/etc_default_asterisk " $( DESTDIR) /etc/default/asterisk " ; \
fi ; \
if [ -z " $( DESTDIR) " ] ; then \
/usr/sbin/update-rc.d asterisk defaults 50 91 ; \
fi ; \
elif [ -f /etc/gentoo-release ] ; then \
./build_tools/install_subst contrib/init.d/rc.gentoo.asterisk " $( DESTDIR) /etc/init.d/asterisk " ; \
if [ -z " $( DESTDIR) " ] ; then \
/sbin/rc-update add asterisk default ; \
fi ; \
elif [ -f /etc/mandrake-release -o -f /etc/mandriva-release ] ; then \
./build_tools/install_subst contrib/init.d/rc.mandriva.asterisk " $( DESTDIR) /etc/rc.d/init.d/asterisk " ; \
if [ ! -f /etc/sysconfig/asterisk ] ; then \
$( INSTALL) -m 644 contrib/init.d/etc_default_asterisk " $( DESTDIR) /etc/sysconfig/asterisk " ; \
fi ; \
if [ -z " $( DESTDIR) " ] ; then \
/sbin/chkconfig --add asterisk ; \
fi ; \
elif [ -f /etc/SuSE-release -o -f /etc/novell-release ] ; then \
./build_tools/install_subst contrib/init.d/rc.suse.asterisk " $( DESTDIR) /etc/init.d/asterisk " ; \
if [ ! -f /etc/sysconfig/asterisk ] ; then \
$( INSTALL) -m 644 contrib/init.d/etc_default_asterisk " $( DESTDIR) /etc/sysconfig/asterisk " ; \
fi ; \
if [ -z " $( DESTDIR) " ] ; then \
/sbin/chkconfig --add asterisk ; \
fi ; \
2018-08-16 11:04:36 -03:00
elif [ -f /etc/os-release ] && [ "opensuse" = " $( shell . /etc/os-release 2>/dev/null && echo $$ ID) " ] ; then \
2018-03-02 14:05:25 +01:00
./build_tools/install_subst contrib/init.d/rc.suse.asterisk " $( DESTDIR) /etc/init.d/asterisk " ; \
if [ ! -f /etc/sysconfig/asterisk ] ; then \
$( INSTALL) -m 644 contrib/init.d/etc_default_asterisk " $( DESTDIR) /etc/sysconfig/asterisk " ; \
fi ; \
if [ -z " $( DESTDIR) " ] ; then \
/sbin/chkconfig --add asterisk ; \
fi ; \
2016-05-18 18:58:20 +03:00
elif [ -f /etc/arch-release -o -f /etc/arch-release ] ; then \
./build_tools/install_subst contrib/init.d/rc.archlinux.asterisk " $( DESTDIR) /etc/init.d/asterisk " ; \
2018-03-23 19:15:09 +01:00
elif [ -f /etc/slackware-version ] ; then \
./build_tools/install_subst contrib/init.d/rc.slackware.asterisk " $( DESTDIR) /etc/rc.d/rc.asterisk " ; \
2018-08-16 11:04:36 -03:00
elif [ -f /etc/os-release ] && [ "slackware" = " $( shell . /etc/os-release 2>/dev/null && echo $$ ID) " ] ; then \
2018-03-23 19:15:09 +01:00
./build_tools/install_subst contrib/init.d/rc.slackware.asterisk " $( DESTDIR) /etc/rc.d/rc.asterisk " ; \
2016-05-18 18:58:20 +03:00
elif [ -d " $( DESTDIR) /Library/LaunchDaemons " ] ; then \
if [ ! -f " $( DESTDIR) /Library/LaunchDaemons/org.asterisk.asterisk.plist " ] ; then \
./build_tools/install_subst contrib/init.d/org.asterisk.asterisk.plist " $( DESTDIR) /Library/LaunchDaemons/org.asterisk.asterisk.plist " ; \
fi ; \
if [ ! -f " $( DESTDIR) /Library/LaunchDaemons/org.asterisk.muted.plist " ] ; then \
./build_tools/install_subst contrib/init.d/org.asterisk.muted.plist " $( DESTDIR) /Library/LaunchDaemons/org.asterisk.muted.plist " ; \
fi ; \
2006-05-05 22:49:55 +00:00
else \
2016-05-18 18:58:20 +03:00
echo "We could not install init scripts for your distribution." ; \
2006-05-05 22:49:55 +00:00
fi
2002-06-21 01:40:13 +00:00
2006-06-07 20:54:30 +00:00
sounds :
$( MAKE) -C sounds all
2005-01-17 04:48:51 +00:00
# If the cleancount has been changed, force a make clean.
2012-01-30 21:21:16 +00:00
# .cleancount is the global clean count, and .lastclean is the
2005-04-01 21:18:39 +00:00
# last clean count we had
2005-01-17 04:48:51 +00:00
2013-04-15 17:26:49 +00:00
.lastclean : .cleancount
@$( MAKE) clean
2011-07-06 20:58:12 +00:00
@[ -f " $( DESTDIR) $( ASTDBDIR) /astdb.sqlite3 " ] || [ ! -f " $( DESTDIR) $( ASTDBDIR) /astdb " ] || [ ! -f menuselect.makeopts ] || grep -q MENUSELECT_UTILS = .*astdb2sqlite3 menuselect.makeopts || ( sed -i.orig -e's/MENUSELECT_UTILS=\(.*\)/MENUSELECT_UTILS=\1 astdb2sqlite3/' menuselect.makeopts && echo "Updating menuselect.makeopts to include astdb2sqlite3" && echo "Original version backed up to menuselect.makeopts.orig" )
2006-02-01 18:39:41 +00:00
2022-06-01 20:03:06 -06:00
2006-06-22 15:38:13 +00:00
$(SUBDIRS_UNINSTALL) :
2016-01-18 20:54:28 -07:00
+@DESTDIR= " $( DESTDIR) " ASTSBINDIR = " $( ASTSBINDIR) " ASTDATADIR = " $( ASTDATADIR) " $( SUBMAKE) -C $( @:-uninstall= ) uninstall
2006-06-22 15:38:13 +00:00
2012-01-30 21:21:16 +00:00
main-binuninstall :
+@DESTDIR= " $( DESTDIR) " ASTSBINDIR = " $( ASTSBINDIR) " ASTLIBDIR = " $( ASTLIBDIR) " $( SUBMAKE) -C main binuninstall
2019-07-16 06:55:49 -06:00
uninstall-headers :
rm -rf " $( DESTDIR) $( ASTHEADERDIR) "
rm -f " $( DESTDIR) $( includedir) /asterisk.h "
2012-01-30 21:21:16 +00:00
_uninstall : $( SUBDIRS_UNINSTALL ) main -binuninstall
rm -f " $( DESTDIR) $( ASTMODDIR) / " *
2017-03-28 20:01:16 +02:00
test -n " $( _oldmoddir) " -a -d " $( _oldmoddir) " && rm -f " $( _oldmoddir) / " * || :
2011-08-17 19:30:50 +00:00
rm -f " $( DESTDIR) $( ASTSBINDIR) /astgenkey "
rm -f " $( DESTDIR) $( ASTSBINDIR) /autosupport "
rm -rf " $( DESTDIR) $( ASTDATADIR) /firmware "
rm -f " $( DESTDIR) $( ASTMANDIR) /man8/asterisk.8 "
rm -f " $( DESTDIR) $( ASTMANDIR) /man8/astgenkey.8 "
rm -f " $( DESTDIR) $( ASTMANDIR) /man8/autosupport.8 "
rm -f " $( DESTDIR) $( ASTMANDIR) /man8/safe_asterisk.8 "
2014-09-18 15:07:12 +00:00
i f e q ( $( HAVE_DAHDI ) , 1 )
r m - f $( DESTDIR ) $( DAHDI_UDEV_HOOK_DIR ) / 4 0 - a s t e r i s k
e n d i f
2006-06-07 21:05:05 +00:00
$( MAKE ) - C s o u n d s u n i n s t a l l
2018-03-07 13:13:42 -06:00
i f e q ( $( LDCONFIG ) , )
else ifeq ($(LDCONFIG), : )
e l s e
2018-01-17 15:17:38 +01:00
$(LDCONFIG) "$(ASTLIBDIR)/" || :
2017-02-23 14:49:17 -07:00
e n d i f
2006-02-01 18:39:41 +00:00
2011-08-25 19:01:39 +00:00
uninstall : _uninstall
2012-01-30 21:21:16 +00:00
@echo " +--------- Asterisk Uninstall Complete -----+"
@echo " + Asterisk binaries, sounds, man pages, +"
@echo " + headers, modules, and firmware builds, +"
@echo " + have all been uninstalled. +"
2006-02-01 18:39:41 +00:00
@echo " + +"
@echo " + To remove ALL traces of Asterisk, +"
@echo " + including configuration, spool +"
@echo " + directories, and logs, run the following +"
@echo " + command: +"
@echo " + +"
2012-01-30 21:21:16 +00:00
@echo " + $( mK) uninstall-all + "
@echo " +-------------------------------------------+"
2006-02-01 18:39:41 +00:00
2019-07-16 06:55:49 -06:00
uninstall-all : _uninstall uninstall -headers
2012-01-30 21:34:52 +00:00
rm -rf " $( DESTDIR) $( ASTMODDIR) "
2017-03-28 20:01:16 +02:00
test -n " $( _oldmoddir) " -a -d " $( _oldmoddir) " && rm -rf " $( _oldmoddir) " || :
2011-08-17 19:30:50 +00:00
rm -rf " $( DESTDIR) $( ASTVARLIBDIR) "
rm -rf " $( DESTDIR) $( ASTDATADIR) "
rm -rf " $( DESTDIR) $( ASTSPOOLDIR) "
rm -rf " $( DESTDIR) $( ASTETCDIR) "
rm -rf " $( DESTDIR) $( ASTLOGDIR) "
2006-04-24 17:11:45 +00:00
2006-11-11 15:33:06 +00:00
menuconfig : menuselect
2008-03-05 23:21:52 +00:00
cmenuconfig : cmenuselect
2007-03-15 23:56:10 +00:00
gmenuconfig : gmenuselect
2008-03-05 22:50:00 +00:00
nmenuconfig : nmenuselect
2008-06-28 14:34:07 +00:00
menuselect : menuselect /cmenuselect menuselect /nmenuselect menuselect /gmenuselect
@if [ -x menuselect/nmenuselect ] ; then \
$( MAKE) nmenuselect; \
elif [ -x menuselect/cmenuselect ] ; then \
$( MAKE) cmenuselect; \
elif [ -x menuselect/gmenuselect ] ; then \
$( MAKE) gmenuselect; \
2008-06-28 14:46:08 +00:00
else \
2008-06-28 14:56:56 +00:00
echo "No menuselect user interface found. Install ncurses," ; \
echo "newt or GTK libraries to build one and re-rerun" ; \
2011-01-12 15:59:28 +00:00
echo "'./configure' and 'make menuselect'." ; \
2008-06-28 14:34:07 +00:00
fi
2006-04-24 17:11:45 +00:00
2009-12-10 21:01:39 +00:00
cmenuselect : menuselect /cmenuselect menuselect -tree menuselect .makeopts
-@menuselect/cmenuselect menuselect.makeopts && ( echo "menuselect changes saved!" ; rm -f channels/h323/Makefile.ast main/asterisk) || echo "menuselect changes NOT saved!"
2008-03-05 23:21:52 +00:00
2009-12-10 21:01:39 +00:00
gmenuselect : menuselect /gmenuselect menuselect -tree menuselect .makeopts
-@menuselect/gmenuselect menuselect.makeopts && ( echo "menuselect changes saved!" ; rm -f channels/h323/Makefile.ast main/asterisk) || echo "menuselect changes NOT saved!"
2007-03-15 23:56:10 +00:00
2009-12-10 21:01:39 +00:00
nmenuselect : menuselect /nmenuselect menuselect -tree menuselect .makeopts
-@menuselect/nmenuselect menuselect.makeopts && ( echo "menuselect changes saved!" ; rm -f channels/h323/Makefile.ast main/asterisk) || echo "menuselect changes NOT saved!"
2008-03-05 22:50:00 +00:00
2007-12-18 08:20:17 +00:00
# options for make in menuselect/
2015-05-10 09:26:30 +02:00
MAKE_MENUSELECT = CC = " $( BUILD_CC) " CXX = " $( CXX) " LD = "" AR = "" RANLIB = "" \
2012-05-09 19:26:08 +00:00
CFLAGS = " $( BUILD_CFLAGS) " LDFLAGS = " $( BUILD_LDFLAGS) " \
$( MAKE) -C menuselect CONFIGURE_SILENT = "--silent"
2007-12-18 08:20:17 +00:00
2013-04-15 17:26:49 +00:00
menuselect/menuselect : menuselect /makeopts .lastclean
2009-06-09 18:08:53 +00:00
+$( MAKE_MENUSELECT) menuselect
2006-04-24 17:11:45 +00:00
2013-04-15 17:26:49 +00:00
menuselect/cmenuselect : menuselect /makeopts .lastclean
2009-06-09 18:08:53 +00:00
+$( MAKE_MENUSELECT) cmenuselect
2008-03-05 23:21:52 +00:00
2013-04-15 17:26:49 +00:00
menuselect/gmenuselect : menuselect /makeopts .lastclean
2009-06-09 18:08:53 +00:00
+$( MAKE_MENUSELECT) gmenuselect
2007-11-07 11:15:42 +00:00
2013-04-15 17:26:49 +00:00
menuselect/nmenuselect : menuselect /makeopts .lastclean
2009-06-09 18:08:53 +00:00
+$( MAKE_MENUSELECT) nmenuselect
2008-03-05 22:50:00 +00:00
2013-04-15 17:26:49 +00:00
menuselect/makeopts : makeopts .lastclean
2009-06-09 18:08:53 +00:00
+$( MAKE_MENUSELECT) makeopts
2007-03-15 23:56:10 +00:00
2017-03-24 08:43:05 -04:00
menuselect-tree : $( foreach dir ,$ ( filter -out main ,$ ( MOD_SUBDIRS ) ) ,$ ( wildcard $ ( dir ) /*.c ) $ ( wildcard $ ( dir ) /*.cc ) $ ( wildcard $ ( dir ) /*.xml ) ) build_tools /cflags .xml build_tools /cflags -devmode .xml sounds /sounds .xml utils /utils .xml agi /agi .xml configure makeopts
2006-08-21 02:11:39 +00:00
@echo "Generating input for menuselect ..."
2007-12-17 07:25:35 +00:00
@echo "<?xml version=\"1.0\"?>" > $@
@echo >> $@
@echo "<menu name=\"Asterisk Module and Build Option Selection\">" >> $@
2009-06-09 18:08:53 +00:00
+@for dir in $( sort $( filter-out main,$( MOD_SUBDIRS) ) ) ; do $( SILENTMAKE) -C $$ { dir} SUBDIR = $$ { dir} moduleinfo >> $@ ; done
2007-12-17 07:25:35 +00:00
@cat build_tools/cflags.xml >> $@
2009-06-09 18:08:53 +00:00
+@for dir in $( sort $( filter-out main,$( MOD_SUBDIRS) ) ) ; do $( SILENTMAKE) -C $$ { dir} SUBDIR = $$ { dir} makeopts >> $@ ; done
2008-03-19 17:15:14 +00:00
@if [ " ${ AST_DEVMODE } " = "yes" ] ; then \
cat build_tools/cflags-devmode.xml >> $@ ; \
fi
2009-10-22 19:33:32 +00:00
@cat utils/utils.xml >> $@
2009-10-23 16:40:30 +00:00
@cat agi/agi.xml >> $@
2007-12-17 07:25:35 +00:00
@cat sounds/sounds.xml >> $@
@echo "</menu>" >> $@
2006-06-22 15:38:13 +00:00
2013-04-22 14:58:53 +00:00
# We don't want to require Python or Pystache for every build, so this is its
# own target.
2013-07-03 16:32:41 +00:00
ari-stubs :
2013-04-22 14:58:53 +00:00
ifeq ($(PYTHON), : )
@echo "--------------------------------------------------------------------------"
2013-07-03 16:32:41 +00:00
@echo "--- Please install python to build ARI stubs ---"
2013-04-22 14:58:53 +00:00
@echo "--------------------------------------------------------------------------"
@false
e l s e
2015-04-29 07:17:00 -04:00
@ $( INSTALL ) - d d o c / r e s t - a p i
2013-07-03 16:32:41 +00:00
$( PYTHON ) r e s t - a p i - t e m p l a t e s / m a k e _ a r i _ s t u b s . p y \
2023-06-26 06:55:49 -06:00
- - r e s o u r c e s r e s t - a p i / r e s o u r c e s . j s o n - - s o u r c e - d i r $( ASTTOPDIR ) \
- - d e s t - d i r $( ASTTOPDIR ) / d o c / r e s t - a p i - - d o c s - p r e f i x . . /
2013-04-22 14:58:53 +00:00
e n d i f
2016-01-21 17:40:47 -05:00
check-alembic : makeopts
@find contrib/ast-db-manage/ -name '*.pyc' -delete
@ALEMBIC= $( ALEMBIC) build_tools/make_check_alembic config cdr voicemail >& 2
2018-07-23 14:49:33 -04:00
.PHONY : install -configs
2019-07-16 06:55:49 -06:00
.PHONY : install -headers
2009-10-23 14:02:42 +00:00
.PHONY : menuselect
.PHONY : main
.PHONY : sounds
.PHONY : clean
.PHONY : dist -clean
.PHONY : distclean
.PHONY : all
2012-01-17 19:45:19 +00:00
.PHONY : _all
2013-02-04 19:52:14 +00:00
.PHONY : full
.PHONY : _full
2009-10-23 14:02:42 +00:00
.PHONY : uninstall
.PHONY : _uninstall
.PHONY : uninstall -all
2019-07-16 06:55:49 -06:00
.PHONY : uninstall -headers
2009-10-23 14:02:42 +00:00
.PHONY : badshell
.PHONY : installdirs
2021-11-23 15:05:55 +01:00
.PHONY : progdocs
2009-10-23 14:02:42 +00:00
.PHONY : validate -docs
.PHONY : _clean
2013-07-03 16:32:41 +00:00
.PHONY : ari -stubs
2015-10-30 13:22:23 -05:00
.PHONY : basic -pbx
2016-01-21 17:40:47 -05:00
.PHONY : check -alembic
2017-02-23 14:49:17 -07:00
.PHONY : ld -cache -update
2017-02-27 11:25:01 -07:00
.PHONY : check -old -libdir
2009-10-23 14:02:42 +00:00
.PHONY : $( SUBDIRS_INSTALL )
.PHONY : $( SUBDIRS_DIST_CLEAN )
.PHONY : $( SUBDIRS_CLEAN )
.PHONY : $( SUBDIRS_UNINSTALL )
.PHONY : $( SUBDIRS )
2008-07-30 15:32:14 +00:00
FORCE :
2017-11-09 14:24:46 -05:00
# This only stops targets within the root Makefile from building in parallel.
.NOTPARALLEL :