2 # Asterisk -- A telephony toolkit for Linux.
6 # Copyright (C) 1999-2006, Digium, Inc.
8 # Mark Spencer <markster@digium.com>
10 # This program is free software, distributed under the terms of
11 # the GNU General Public License
14 # All Makefiles use the following variables:
16 # LDFLAGS - linker flags (not libraries), used for all links
17 # LIBS - additional libraries, at top-level for all links,
18 # on a single object just for that object
19 # SOLINK - linker flags used only for creating shared objects (.so files),
20 # used for all .so links
23 .EXPORT_ALL_VARIABLES
:
27 #Uncomment this to see all build commands instead of 'quiet' output
30 # Create OPTIONS variable
33 ASTTOPDIR
:=$(shell pwd
)
35 # Overwite config files on "make samples"
38 # Include debug and macro symbols in the executables (-g) and profiling info (-pg)
42 # Files are copied here temporarily during the install process
43 # For example, make DESTDIR=/tmp/asterisk woud put things in
44 # /tmp/asterisk/etc/asterisk
45 # !!! Watch out, put no spaces or comments after the value !!!
46 #DESTDIR?=/tmp/asterisk
48 # Define standard directories for various platforms
49 # These apply if they are not redefined in asterisk.conf
50 ifeq ($(OSARCH
),SunOS
)
51 ASTETCDIR
=/var
/etc
/asterisk
52 ASTLIBDIR
=/opt
/asterisk
/lib
53 ASTVARLIBDIR
=/var
/opt
/asterisk
54 ASTSPOOLDIR
=/var
/spool
/asterisk
55 ASTLOGDIR
=/var
/log
/asterisk
56 ASTHEADERDIR
=/opt
/asterisk
/include
57 ASTBINDIR
=/opt
/asterisk
/bin
58 ASTSBINDIR
=/opt
/asterisk
/sbin
59 ASTVARRUNDIR
=/var
/run
/asterisk
60 ASTMANDIR
=/opt
/asterisk
/man
62 ASTETCDIR
=$(sysconfdir
)/asterisk
63 ASTLIBDIR
=$(libdir)/asterisk
64 ASTHEADERDIR
=$(includedir)/asterisk
67 ASTSPOOLDIR
=$(localstatedir
)/spool
/asterisk
68 ASTLOGDIR
=$(localstatedir
)/log
/asterisk
69 ASTVARRUNDIR
=$(localstatedir
)/run
71 ifeq ($(OSARCH
),FreeBSD
)
72 ASTVARLIBDIR
=$(prefix)/share
/asterisk
74 ASTVARLIBDIR
=$(localstatedir
)/lib
/asterisk
77 ASTDATADIR?
=$(ASTVARLIBDIR
)
79 # Asterisk.conf is located in ASTETCDIR or by using the -C flag
80 # when starting Asterisk
81 ASTCONFPATH
=$(ASTETCDIR
)/asterisk.conf
82 MODULES_DIR
=$(ASTLIBDIR
)/modules
83 AGI_DIR
=$(ASTDATADIR
)/agi-bin
85 # If you use Apache, you may determine by a grep 'DocumentRoot' of your httpd.conf file
86 HTTP_DOCSDIR
=/var
/www
/html
87 # Determine by a grep 'ScriptAlias' of your Apache httpd.conf file
88 HTTP_CGIDIR
=/var
/www
/cgi-bin
92 # Uncomment this to use the older DSP routines
93 #ASTCFLAGS+=-DOLD_DSP_ROUTINES
95 # If the file .asterisk.makeopts is present in your home directory, you can
96 # include all of your favorite menuselect options so that every time you download
97 # a new version of Asterisk, you don't have to run menuselect to set them.
98 # The file /etc/asterisk.makeopts will also be included but can be overridden
99 # by the file in your home directory.
101 GLOBAL_MAKEOPTS
=$(wildcard /etc
/asterisk.makeopts
)
102 USER_MAKEOPTS
=$(wildcard ~
/.asterisk.makeopts
)
104 MOD_SUBDIR_CFLAGS
=-I..
/include -I..
/main
105 OTHER_SUBDIR_CFLAGS
=-I..
/include
107 ifeq ($(OSARCH
),linux-gnu
)
108 ifeq ($(PROC
),x86_64
)
109 # You must have GCC 3.4 to use k8, otherwise use athlon
114 ifeq ($(PROC
),sparc64
)
115 #The problem with sparc is the best stuff is in newer versions of gcc (post 3.0) only.
116 #This works for even old (2.96) versions of gcc and provides a small boost either way.
117 #A ultrasparc cpu is really v9 but the stock debian stable 3.0 gcc doesn't support it.
118 #So we go lowest common available by gcc and go a step down, still a step up from
119 #the default as we now have a better instruction set to work with. - Belgarath
121 OPTIONS
+=$(shell if
$(CC
) -mtune
=$(PROC
) -S
-o
/dev
/null
-xc
/dev
/null
>/dev
/null
2>&1; then echo
"-mtune=$(PROC)"; fi
)
122 OPTIONS
+=$(shell if
$(CC
) -mcpu
=v8
-S
-o
/dev
/null
-xc
/dev
/null
>/dev
/null
2>&1; then echo
"-mcpu=v8"; fi
)
123 OPTIONS
+=-fomit-frame-pointer
127 # The Cirrus logic is the only heavily shipping arm processor with a real floating point unit
128 ifeq ($(SUB_PROC
),maverick
)
129 OPTIONS
+=-fsigned-char
-mcpu
=ep9312
131 ifeq ($(SUB_PROC
),xscale
)
132 OPTIONS
+=-fsigned-char
-mcpu
=xscale
134 OPTIONS
+=-fsigned-char
142 ifeq ($(OSARCH
),SunOS
)
147 ASTCFLAGS
+=-pipe
-Wall
-Wstrict-prototypes
-Wmissing-prototypes
-Wmissing-declarations
$(DEBUG
)
149 ifeq ($(AST_DEVMODE
),yes
)
150 ASTCFLAGS
+=-Werror
-Wunused
153 ifneq ($(findstring BSD
,$(OSARCH
)),)
154 ASTCFLAGS
+=-I
/usr
/local
/include -L
/usr
/local
/lib
157 ifneq ($(PROC
),ultrasparc
)
158 ASTCFLAGS
+=$(shell if
$(CC
) -march
=$(PROC
) -S
-o
/dev
/null
-xc
/dev
/null
>/dev
/null
2>&1; then echo
"-march=$(PROC)"; fi
)
162 ASTCFLAGS
+=-fsigned-char
165 ifeq ($(OSARCH
),FreeBSD
)
166 # -V is understood by BSD Make, not by GNU make.
167 BSDVERSION
=$(shell make
-V OSVERSION
-f
/usr
/share
/mk
/bsd.port.subdir.mk
)
168 ASTCFLAGS
+=$(shell if
test $(BSDVERSION
) -lt
500016 ; then echo
"-D_THREAD_SAFE"; fi
)
169 AST_LIBS
+=$(shell if
test $(BSDVERSION
) -lt
502102 ; then echo
"-lc_r"; else echo
"-pthread"; fi
)
172 ifeq ($(OSARCH
),NetBSD
)
173 ASTCFLAGS
+=-pthread
-I
/usr
/pkg
/include
176 ifeq ($(OSARCH
),OpenBSD
)
180 ifeq ($(OSARCH
),SunOS
)
181 ASTCFLAGS
+=-Wcast-align
-DSOLARIS
-I..
/include/solaris-compat
-I
/opt
/ssl
/include -I
/usr
/local
/ssl
/include
184 ASTERISKVERSION
:=$(shell build_tools
/make_version .
)
186 ifneq ($(wildcard .version
),)
187 ASTERISKVERSIONNUM
:=$(shell awk
-F.
'{printf "%02d%02d%02d", $$1, $$2, $$3}' .version
)
188 RPMVERSION
:=$(shell sed
's/[-\/:]/_/g' .version
)
193 ifneq ($(wildcard .svn
),)
194 ASTERISKVERSIONNUM
=999999
197 ASTCFLAGS
+=$(MALLOC_DEBUG
)$(BUSYDETECT
)$(OPTIONS
)
199 MOD_SUBDIRS
:=res channels pbx apps codecs formats cdr funcs main
200 OTHER_SUBDIRS
:=utils agi
201 SUBDIRS
:=$(OTHER_SUBDIRS
) $(MOD_SUBDIRS
)
202 SUBDIRS_INSTALL
:=$(SUBDIRS
:%=%-install)
203 SUBDIRS_CLEAN
:=$(SUBDIRS
:%=%-clean)
204 SUBDIRS_CLEAN_DEPEND
:=$(SUBDIRS
:%=%-clean-depend
)
205 MOD_SUBDIRS_DEPEND
:=$(MOD_SUBDIRS
:%=%-depend
)
206 OTHER_SUBDIRS_DEPEND
:=$(OTHER_SUBDIRS
:%=%-depend
)
207 SUBDIRS_DEPEND
:=$(OTHER_SUBDIRS_DEPEND
) $(MOD_SUBDIRS_DEPEND
)
208 SUBDIRS_UNINSTALL
:=$(SUBDIRS
:%=%-uninstall)
209 MOD_SUBDIRS_EMBED_LDSCRIPT
:=$(MOD_SUBDIRS
:%=%-embed-ldscript
)
210 MOD_SUBDIRS_EMBED_LDFLAGS
:=$(MOD_SUBDIRS
:%=%-embed-ldflags
)
211 MOD_SUBDIRS_EMBED_LIBS
:=$(MOD_SUBDIRS
:%=%-embed-libs
)
213 ifneq ($(findstring darwin
,$(OSARCH
)),)
214 ASTCFLAGS
+=-D__Darwin__
215 AUDIO_LIBS
=-framework CoreAudio
216 SOLINK
=-dynamic
-bundle
-undefined suppress
-force_flat_namespace
218 # These are used for all but Darwin
219 SOLINK
=-shared
-Xlinker
-x
220 ifneq ($(findstring BSD
,$(OSARCH
)),)
221 LDFLAGS
+=-L
/usr
/local
/lib
225 ifeq ($(OSARCH
),SunOS
)
226 SOLINK
=-shared
-fpic
-L
/usr
/local
/ssl
/lib
229 # This is used when generating the doxygen documentation
236 all: cleantest
$(SUBDIRS
)
237 @echo
" +--------- Asterisk Build Complete ---------+"
238 @echo
" + Asterisk has successfully been built, but +"
239 @echo
" + cannot be run before being installed by +"
240 @echo
" + running: +"
242 @echo
" + make install +"
243 @echo
" +-------------------------------------------+"
247 @echo
"**** The configure script must be executed before running 'make'."
251 menuselect.makeopts
: menuselect
/menuselect menuselect-tree
252 menuselect
/menuselect
--check-deps
$(GLOBAL_MAKEOPTS
) $(USER_MAKEOPTS
) menuselect.makeopts
254 $(MOD_SUBDIRS_EMBED_LDSCRIPT
):
255 @echo
"EMBED_LDSCRIPTS+="`$(MAKE) --quiet --no-print-directory -C $(@:-embed-ldscript=) SUBDIR=$(@:-embed-ldscript=) __embed_ldscript` >> makeopts.embed_rules
257 $(MOD_SUBDIRS_EMBED_LDFLAGS
):
258 @echo
"EMBED_LDFLAGS+="`$(MAKE) --quiet --no-print-directory -C $(@:-embed-ldflags=) SUBDIR=$(@:-embed-ldflags=) __embed_ldflags` >> makeopts.embed_rules
260 $(MOD_SUBDIRS_EMBED_LIBS
):
261 @echo
"EMBED_LIBS+="`$(MAKE) --quiet --no-print-directory -C $(@:-embed-libs=) SUBDIR=$(@:-embed-libs=) __embed_libs` >> makeopts.embed_rules
263 makeopts.embed_rules
: menuselect.makeopts
264 @echo
"Generating embedded module rules ..."
266 @
$(MAKE
) --no-print-directory
$(MOD_SUBDIRS_EMBED_LDSCRIPT
)
267 @
$(MAKE
) --no-print-directory
$(MOD_SUBDIRS_EMBED_LDFLAGS
)
268 @
$(MAKE
) --no-print-directory
$(MOD_SUBDIRS_EMBED_LIBS
)
270 $(SUBDIRS
): depend makeopts.embed_rules
272 # ensure that all module subdirectories are processed before 'main' during
273 # a parallel build, since if there are modules selected to be embedded the
274 # directories containing them must be completed before the main Asterisk
275 # binary can be built
276 main
: $(filter-out main
,$(MOD_SUBDIRS
))
279 @CFLAGS
="$(MOD_SUBDIR_CFLAGS)$(ASTCFLAGS)" $(MAKE
) --no-print-directory
-C
$@ SUBDIR
=$@
all
282 @CFLAGS
="$(OTHER_SUBDIR_CFLAGS)$(ASTCFLAGS)" $(MAKE
) --no-print-directory
-C
$@ SUBDIR
=$@
all
285 @build_tools
/make_defaults_h
> $@.tmp
286 @if cmp
-s
$@.tmp
$@
; then
: ; else \
291 include/asterisk
/version.h
:
292 @build_tools
/make_version_h
> $@.tmp
293 @if cmp
-s
$@.tmp
$@
; then
: ; else \
298 include/asterisk
/buildopts.h
: menuselect.makeopts
299 @build_tools
/make_buildopts_h
> $@.tmp
300 @if cmp
-s
$@.tmp
$@
; then
: ; else \
305 $(SUBDIRS_CLEAN_DEPEND
):
306 @
$(MAKE
) --no-print-directory
-C
$(@
:-clean-depend
=) clean-depend
309 @
$(MAKE
) --no-print-directory
-C
$(@
:-clean=) clean
311 clean-depend
: $(SUBDIRS_CLEAN_DEPEND
)
313 clean: $(SUBDIRS_CLEAN
) clean-depend
315 rm -f
include/asterisk
/build.h
316 rm -f
include/asterisk
/version.h
318 @
$(MAKE
) -C menuselect
clean
320 dist-clean
: distclean
323 @
$(MAKE
) -C menuselect dist-clean
324 @
$(MAKE
) -C sounds dist-clean
325 rm -f menuselect.makeopts makeopts menuselect-tree menuselect.makedeps
326 rm -f makeopts.embed_rules
327 rm -f config.log config.status
328 rm -rf autom4te.cache
329 rm -f
include/asterisk
/autoconfig.h
330 rm -f
include/asterisk
/buildopts.h
332 rm -f build_tools
/menuselect-deps
335 if
[ x
`$(ID) -un` = xroot
]; then CFLAGS
="$(ASTCFLAGS)" sh build_tools
/mkpkgconfig
$(DESTDIR
)/usr
/lib
/pkgconfig
; fi
336 # Should static HTTP be installed during make samples or even with its own target ala
337 # webvoicemail? There are portions here that *could* be customized but might also be
338 # improved a lot. I'll put it here for now.
339 mkdir
-p
$(DESTDIR
)$(ASTDATADIR
)/static-http
340 for x in static-http
/*; do \
341 $(INSTALL
) -m
644 $$x $(DESTDIR
)$(ASTDATADIR
)/static-http
; \
343 mkdir
-p
$(DESTDIR
)$(ASTDATADIR
)/images
344 for x in images
/*.jpg
; do \
345 $(INSTALL
) -m
644 $$x $(DESTDIR
)$(ASTDATADIR
)/images
; \
347 mkdir
-p
$(DESTDIR
)$(AGI_DIR
)
348 $(MAKE
) -C sounds
install
351 @if
[ -d .svn
]; then \
352 echo
"Updating from Subversion..." ; \
353 svn update | tee update.out
; \
355 if
[ `grep -c ^C update.out` -gt
0 ]; then \
356 echo
; echo
"The following files have conflicts:" ; \
357 grep ^C update.out | cut
-b4-
; \
360 $(MAKE
) clean-depend
; \
362 echo
"Not under version control"; \
365 NEWHEADERS
=$(notdir $(wildcard include/asterisk
/*.h
))
366 OLDHEADERS
=$(filter-out $(NEWHEADERS
),$(notdir $(wildcard $(DESTDIR
)$(ASTHEADERDIR
)/*.h
)))
369 mkdir
-p
$(DESTDIR
)$(MODULES_DIR
)
370 mkdir
-p
$(DESTDIR
)$(ASTSBINDIR
)
371 mkdir
-p
$(DESTDIR
)$(ASTETCDIR
)
372 mkdir
-p
$(DESTDIR
)$(ASTBINDIR
)
373 mkdir
-p
$(DESTDIR
)$(ASTVARRUNDIR
)
374 mkdir
-p
$(DESTDIR
)$(ASTSPOOLDIR
)/voicemail
375 mkdir
-p
$(DESTDIR
)$(ASTSPOOLDIR
)/dictate
376 mkdir
-p
$(DESTDIR
)$(ASTSPOOLDIR
)/system
377 mkdir
-p
$(DESTDIR
)$(ASTSPOOLDIR
)/tmp
378 mkdir
-p
$(DESTDIR
)$(ASTSPOOLDIR
)/meetme
379 mkdir
-p
$(DESTDIR
)$(ASTSPOOLDIR
)/monitor
380 $(INSTALL
) -m
755 main
/asterisk
$(DESTDIR
)$(ASTSBINDIR
)/
381 $(LN
) -sf asterisk
$(DESTDIR
)$(ASTSBINDIR
)/rasterisk
382 $(INSTALL
) -m
755 contrib
/scripts
/astgenkey
$(DESTDIR
)$(ASTSBINDIR
)/
383 $(INSTALL
) -m
755 contrib
/scripts
/autosupport
$(DESTDIR
)$(ASTSBINDIR
)/
384 if
[ ! -f
$(DESTDIR
)$(ASTSBINDIR
)/safe_asterisk
]; then \
385 cat contrib
/scripts
/safe_asterisk | sed
's|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;' > $(DESTDIR
)$(ASTSBINDIR
)/safe_asterisk
;\
386 chmod
755 $(DESTDIR
)$(ASTSBINDIR
)/safe_asterisk
;\
388 $(INSTALL
) -d
$(DESTDIR
)$(ASTHEADERDIR
)
389 $(INSTALL
) -m
644 include/asterisk.h
$(DESTDIR
)$(includedir)
390 $(INSTALL
) -m
644 include/asterisk
/*.h
$(DESTDIR
)$(ASTHEADERDIR
)
391 if
[ -n
"$(OLDHEADERS)" ]; then \
392 rm -f
$(addprefix $(DESTDIR
)$(ASTHEADERDIR
)/,$(OLDHEADERS
)) ;\
394 mkdir
-p
$(DESTDIR
)$(ASTLOGDIR
)/cdr-csv
395 mkdir
-p
$(DESTDIR
)$(ASTLOGDIR
)/cdr-custom
396 mkdir
-p
$(DESTDIR
)$(ASTDATADIR
)/keys
397 mkdir
-p
$(DESTDIR
)$(ASTDATADIR
)/firmware
398 mkdir
-p
$(DESTDIR
)$(ASTDATADIR
)/firmware
/iax
399 mkdir
-p
$(DESTDIR
)$(ASTMANDIR
)/man8
400 $(INSTALL
) -m
644 keys
/iaxtel.pub
$(DESTDIR
)$(ASTDATADIR
)/keys
401 $(INSTALL
) -m
644 keys
/freeworlddialup.pub
$(DESTDIR
)$(ASTDATADIR
)/keys
402 $(INSTALL
) -m
644 doc
/asterisk
.8 $(DESTDIR
)$(ASTMANDIR
)/man8
403 $(INSTALL
) -m
644 contrib
/scripts
/astgenkey
.8 $(DESTDIR
)$(ASTMANDIR
)/man8
404 $(INSTALL
) -m
644 contrib
/scripts
/autosupport
.8 $(DESTDIR
)$(ASTMANDIR
)/man8
405 $(INSTALL
) -m
644 contrib
/scripts
/safe_asterisk
.8 $(DESTDIR
)$(ASTMANDIR
)/man8
406 $(INSTALL
) -m
644 contrib
/firmware
/iax
/iaxy.bin
$(DESTDIR
)$(ASTDATADIR
)/firmware
/iax
/iaxy.bin
; \
409 @
$(MAKE
) -C
$(@
:-install=) install
411 NEWMODS
=$(notdir $(wildcard */*.so
))
412 OLDMODS
=$(filter-out $(NEWMODS
),$(notdir $(wildcard $(DESTDIR
)$(MODULES_DIR
)/*.so
)))
415 @if
[ -n
"$(OLDMODS)" ]; then \
416 echo
" WARNING WARNING WARNING" ;\
418 echo
" Your Asterisk modules directory, located at" ;\
419 echo
" $(DESTDIR)$(MODULES_DIR)" ;\
420 echo
" contains modules that were not installed by this " ;\
421 echo
" version of Asterisk. Please ensure that these" ;\
422 echo
" modules are compatible with this version before" ;\
423 echo
" attempting to run Asterisk." ;\
425 for f in
$(OLDMODS
); do \
429 echo
" WARNING WARNING WARNING" ;\
432 install: all datafiles bininstall
$(SUBDIRS_INSTALL
)
433 @if
[ -x
/usr
/sbin
/asterisk-post-install
]; then \
434 /usr
/sbin
/asterisk-post-install
$(DESTDIR
) .
; \
436 @echo
" +---- Asterisk Installation Complete -------+"
438 @echo
" + YOU MUST READ THE SECURITY DOCUMENT +"
440 @echo
" + Asterisk has successfully been installed. +"
441 @echo
" + If you would like to install the sample +"
442 @echo
" + configuration files (overwriting any +"
443 @echo
" + existing config files), run: +"
445 @echo
" + $(MAKE) samples +"
447 @echo
" +----------------- or ---------------------+"
449 @echo
" + You can go ahead and install the asterisk +"
450 @echo
" + program documentation now or later run: +"
452 @echo
" + $(MAKE) progdocs +"
454 @echo
" + **Note** This requires that you have +"
455 @echo
" + doxygen installed on your local system +"
456 @echo
" +-------------------------------------------+"
457 @
$(MAKE
) -s oldmodcheck
459 upgrade
: all bininstall
462 mkdir
-p
$(DESTDIR
)$(ASTETCDIR
)
463 for x in configs
/*.adsi
; do \
464 if
[ ! -f
$(DESTDIR
)$(ASTETCDIR
)/$$x ]; then \
465 $(INSTALL
) -m
644 $$x $(DESTDIR
)$(ASTETCDIR
)/`$(BASENAME) $$x` ; \
470 mkdir
-p
$(DESTDIR
)$(ASTETCDIR
)
471 for x in configs
/*.sample
; do \
472 if
[ -f
$(DESTDIR
)$(ASTETCDIR
)/`$(BASENAME) $$x .sample` ]; then \
473 if
[ "$(OVERWRITE)" = "y" ]; then \
474 if cmp
-s
$(DESTDIR
)$(ASTETCDIR
)/`$(BASENAME) $$x .sample` $$x ; then \
475 echo
"Config file $$x is unchanged"; \
478 mv
-f
$(DESTDIR
)$(ASTETCDIR
)/`$(BASENAME) $$x .sample` $(DESTDIR
)$(ASTETCDIR
)/`$(BASENAME) $$x .sample`.old
; \
480 echo
"Skipping config file $$x"; \
484 $(INSTALL
) -m
644 $$x $(DESTDIR
)$(ASTETCDIR
)/`$(BASENAME) $$x .sample` ;\
486 if
[ "$(OVERWRITE)" = "y" ] ||
[ ! -f
$(DESTDIR
)$(ASTCONFPATH
) ]; then \
488 echo
"[directories]" ; \
489 echo
"astetcdir => $(ASTETCDIR)" ; \
490 echo
"astmoddir => $(MODULES_DIR)" ; \
491 echo
"astvarlibdir => $(ASTVARLIBDIR)" ; \
492 echo
"astdatadir => $(ASTDATADIR)" ; \
493 echo
"astagidir => $(AGI_DIR)" ; \
494 echo
"astspooldir => $(ASTSPOOLDIR)" ; \
495 echo
"astrundir => $(ASTVARRUNDIR)" ; \
496 echo
"astlogdir => $(ASTLOGDIR)" ; \
498 echo
"; Changing the following lines may compromise your security." ; \
500 echo
";astctlpermissions = 0660" ; \
501 echo
";astctlowner = root" ; \
502 echo
";astctlgroup = apache" ; \
503 echo
";astctl = asterisk.ctl" ; \
504 echo
";[options]" ; \
505 echo
";internal_timing = yes" ; \
506 ) > $(DESTDIR
)$(ASTCONFPATH
) ; \
508 echo
"Skipping asterisk.conf creation"; \
510 mkdir
-p
$(DESTDIR
)$(ASTSPOOLDIR
)/voicemail
/default
/1234/INBOX
511 :> $(DESTDIR
)$(ASTSPOOLDIR
)/voicemail
/default
/1234/unavail.gsm
512 for x in vm-theperson digits
/1 digits
/2 digits
/3 digits
/4 vm-isunavail
; do \
513 cat
$(DESTDIR
)$(ASTDATADIR
)/sounds
/$$x.gsm
>> $(DESTDIR
)$(ASTSPOOLDIR
)/voicemail
/default
/1234/unavail.gsm
; \
515 :> $(DESTDIR
)$(ASTSPOOLDIR
)/voicemail
/default
/1234/busy.gsm
516 for x in vm-theperson digits
/1 digits
/2 digits
/3 digits
/4 vm-isonphone
; do \
517 cat
$(DESTDIR
)$(ASTDATADIR
)/sounds
/$$x.gsm
>> $(DESTDIR
)$(ASTSPOOLDIR
)/voicemail
/default
/1234/busy.gsm
; \
521 @
[ -d
$(DESTDIR
)$(HTTP_DOCSDIR
)/ ] ||
( printf
"http docs directory not found.\nUpdate assignment of variable HTTP_DOCSDIR in Makefile!\n" && exit
1 )
522 @
[ -d
$(DESTDIR
)$(HTTP_CGIDIR
) ] ||
( printf
"cgi-bin directory not found.\nUpdate assignment of variable HTTP_CGIDIR in Makefile!\n" && exit
1 )
523 $(INSTALL
) -m
4755 -o root
-g root contrib
/scripts
/vmail.cgi
$(DESTDIR
)$(HTTP_CGIDIR
)/vmail.cgi
524 mkdir
-p
$(DESTDIR
)$(HTTP_DOCSDIR
)/_asterisk
525 for x in images
/*.gif
; do \
526 $(INSTALL
) -m
644 $$x $(DESTDIR
)$(HTTP_DOCSDIR
)/_asterisk
/; \
528 @echo
" +--------- Asterisk Web Voicemail ----------+"
530 @echo
" + Asterisk Web Voicemail is installed in +"
531 @echo
" + your cgi-bin directory: +"
532 @echo
" + $(DESTDIR)$(HTTP_CGIDIR)"
533 @echo
" + IT USES A SETUID ROOT PERL SCRIPT, SO +"
534 @echo
" + IF YOU DON'T LIKE THAT, UNINSTALL IT! +"
536 @echo
" + Other static items have been stored in: +"
537 @echo
" + $(DESTDIR)$(HTTP_DOCSDIR)"
539 @echo
" + If these paths do not match your httpd +"
540 @echo
" + installation, correct the definitions +"
541 @echo
" + in your Makefile of HTTP_CGIDIR and +"
542 @echo
" + HTTP_DOCSDIR +"
544 @echo
" +-------------------------------------------+"
547 sed
"s/^Version:.*/Version: $(RPMVERSION)/g" redhat
/asterisk.spec
> asterisk.spec
; \
551 __rpm
: include/asterisk
/version.h
include/asterisk
/buildopts.h spec
552 rm -rf
/tmp
/asterisk
; \
553 mkdir
-p
/tmp
/asterisk
/redhat
/RPMS
/i386
; \
554 $(MAKE
) DESTDIR
=/tmp
/asterisk
install ; \
555 $(MAKE
) DESTDIR
=/tmp
/asterisk samples
; \
556 mkdir
-p
/tmp
/asterisk
/etc
/rc.d
/init.d
; \
557 cp
-f contrib
/init.d
/rc.redhat.asterisk
/tmp
/asterisk
/etc
/rc.d
/init.d
/asterisk
; \
558 rpmbuild
--rcfile
/usr
/lib
/rpm
/rpmrc
:redhat
/rpmrc
-bb asterisk.spec
561 (cat contrib
/asterisk-ng-doxygen
; echo
"HAVE_DOT=$(HAVEDOT)"; \
562 echo
"PROJECT_NUMBER=$(ASTERISKVERSION)") | doxygen
-
565 @if
[ "${OSARCH}" = "linux-gnu" ]; then \
566 if
[ -f
/etc
/redhat-release
-o
-f
/etc
/fedora-release
]; then \
567 $(INSTALL
) -m
755 contrib
/init.d
/rc.redhat.asterisk
/etc
/rc.d
/init.d
/asterisk
; \
568 /sbin
/chkconfig
--add asterisk
; \
569 elif
[ -f
/etc
/debian_version
]; then \
570 $(INSTALL
) -m
755 contrib
/init.d
/rc.debian.asterisk
/etc
/init.d
/asterisk
; \
571 /usr
/sbin
/update-rc.d asterisk start
10 2 3 4 5 . stop
91 2 3 4 5 .
; \
572 elif
[ -f
/etc
/gentoo-release
]; then \
573 $(INSTALL
) -m
755 contrib
/init.d
/rc.gentoo.asterisk
/etc
/init.d
/asterisk
; \
574 /sbin
/rc-update add asterisk default
; \
575 elif
[ -f
/etc
/mandrake-release
]; then \
576 $(INSTALL
) -m
755 contrib
/init.d
/rc.mandrake.asterisk
/etc
/rc.d
/init.d
/asterisk
; \
577 /sbin
/chkconfig
--add asterisk
; \
578 elif
[ -f
/etc
/SuSE-release
-o
-f
/etc
/novell-release
]; then \
579 $(INSTALL
) -m
755 contrib
/init.d
/rc.suse.asterisk
/etc
/init.d
/asterisk
; \
580 /sbin
/chkconfig
--add asterisk
; \
581 elif
[ -f
/etc
/slackware-version
]; then \
582 echo
"Slackware is not currently supported, although an init script does exist for it." \
584 echo
"We could not install init scripts for your distribution."; \
587 echo
"We could not install init scripts for your operating system."; \
590 $(MOD_SUBDIRS_DEPEND
):
591 @CFLAGS
="$(MOD_SUBDIR_CFLAGS)$(ASTCFLAGS)" $(MAKE
) --no-print-directory
-C
$(@
:-depend
=) depend
593 $(OTHER_SUBDIRS_DEPEND
):
594 @CFLAGS
="$(OTHER_SUBDIR_CFLAGS)$(ASTCFLAGS)" $(MAKE
) --no-print-directory
-C
$(@
:-depend
=) depend
596 depend
: include/asterisk
/version.h
include/asterisk
/buildopts.h defaults.h
$(SUBDIRS_DEPEND
)
599 $(MAKE
) -C sounds
all
601 # If the cleancount has been changed, force a make clean.
602 # .cleancount is the global clean count, and .lastclean is the
603 # last clean count we had
606 @if
! cmp
-s .cleancount .lastclean
; then \
607 $(MAKE
) clean; cp
-f .cleancount .lastclean
;\
611 $(SUBDIRS_UNINSTALL
):
612 @
$(MAKE
) --no-print-directory
-C
$(@
:-uninstall=) uninstall
614 _uninstall
: $(SUBDIRS_UNINSTALL
)
615 rm -f
$(DESTDIR
)$(MODULES_DIR
)/*
616 rm -f
$(DESTDIR
)$(ASTSBINDIR
)/*asterisk
*
617 rm -f
$(DESTDIR
)$(ASTSBINDIR
)/astgenkey
618 rm -f
$(DESTDIR
)$(ASTSBINDIR
)/autosupport
619 rm -rf
$(DESTDIR
)$(ASTHEADERDIR
)
620 rm -rf
$(DESTDIR
)$(ASTDATADIR
)/firmware
621 rm -rf
$(DESTDIR
)$(ASTMANDIR
)/man8
622 $(MAKE
) -C sounds
uninstall
624 uninstall: _uninstall
625 @echo
" +--------- Asterisk Uninstall Complete -----+"
626 @echo
" + Asterisk binaries, sounds, man pages, +"
627 @echo
" + headers, modules, and firmware builds, +"
628 @echo
" + have all been uninstalled. +"
630 @echo
" + To remove ALL traces of Asterisk, +"
631 @echo
" + including configuration, spool +"
632 @echo
" + directories, and logs, run the following +"
633 @echo
" + command: +"
635 @echo
" + $(MAKE) uninstall-all +"
636 @echo
" +-------------------------------------------+"
638 uninstall-all
: _uninstall
639 rm -rf
$(DESTDIR
)$(ASTLIBDIR
)
640 rm -rf
$(DESTDIR
)$(ASTVARLIBDIR
)
641 rm -rf
$(DESTDIR
)$(ASTDATADIR
)
642 rm -rf
$(DESTDIR
)$(ASTSPOOLDIR
)
643 rm -rf
$(DESTDIR
)$(ASTETCDIR
)
644 rm -rf
$(DESTDIR
)$(ASTLOGDIR
)
646 menuselect
: menuselect
/menuselect menuselect-tree
647 -@menuselect
/menuselect
$(GLOBAL_MAKEOPTS
) $(USER_MAKEOPTS
) menuselect.makeopts
&& echo
"menuselect changes saved!" || echo
"menuselect changes NOT saved!"
649 menuselect
/menuselect
: makeopts menuselect
/menuselect.c menuselect
/menuselect_curses.c menuselect
/menuselect_stub.c menuselect
/menuselect.h menuselect
/linkedlists.h makeopts
650 @unset CC LD AR RANLIB
&& $(MAKE
) -C menuselect CONFIGURE_SILENT
="--silent"
652 menuselect-tree
: $(foreach dir,$(filter-out main
,$(MOD_SUBDIRS
)),$(wildcard $(dir)/*.c
) $(wildcard $(dir)/*.
cc)) build_tools
/cflags.xml sounds
/sounds.xml build_tools
/embed_modules.xml
653 @echo
"Generating input for menuselect ..."
654 @build_tools
/prep_moduledeps
> $@
656 .PHONY
: menuselect main sounds
clean clean-depend dist-clean
distclean all prereqs depend cleantest
uninstall _uninstall uninstall-all dont-optimize
$(SUBDIRS_INSTALL
) $(SUBDIRS_CLEAN
) $(SUBDIRS_CLEAN_DEPEND
) $(SUBDIRS_DEPEND
) $(SUBDIRS_UNINSTALL
) $(SUBDIRS
) $(MOD_SUBDIRS_EMBED_LDSCRIPT
) $(MOD_SUBDIRS_EMBED_LDFLAGS
) $(MOD_SUBDIRS_EMBED_LIBS
)