2 # Asterisk -- A telephony toolkit for Linux.
4 # Makefile to build main Asterisk binary
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 -include $(ASTTOPDIR
)/menuselect.makeopts
$(ASTTOPDIR
)/menuselect.makedeps
$(ASTTOPDIR
)/makeopts.embed_rules
18 include $(ASTTOPDIR
)/Makefile.moddir_rules
20 OBJS
= io.o sched.o logger.o frame.o loader.o config.o channel.o \
21 translate.o file.o pbx.o cli.o md5.o term.o \
22 ulaw.o alaw.o callerid.o fskmodem.o image.o app.o \
23 cdr.o tdd.o acl.o rtp.o udptl.o manager.o asterisk.o \
24 dsp.o chanvars.o indications.o autoservice.o db.o privacy.o \
25 astmm.o enum.o srv.o dns.o aescrypt.o aestab.o aeskey.o \
26 utils.o plc.o jitterbuf.o dnsmgr.o devicestate.o \
27 netsock.o slinfactory.o ast_expr2.o ast_expr2f.o \
28 cryptostub.o sha1.o http.o fixedjitterbuf.o abstract_jb.o \
29 strcompat.o threadstorage.o dial.o astobj2.o global_datastores.o \
32 # we need to link in the objects statically, not as a library, because
33 # otherwise modules will not have them available if none of the static
35 OBJS
+=stdtime
/localtime.o
37 # At the moment say.o is an optional component which can be overridden
41 ifneq ($(findstring darwin
,$(OSARCH
)),)
43 ASTCFLAGS
+=-DPOLLCOMPAT
45 ifeq ($(wildcard /usr
/include/sys
/poll.h
),)
47 ASTCFLAGS
+=-DPOLLCOMPAT
51 ifneq ($(findstring $(OSARCH
), linux-gnu uclinux linux-uclibc linux-gnueabi
),)
52 ifneq ($(findstring LOADABLE_MODULES
,$(MENUSELECT_CFLAGS
)),)
58 AST_LIBS
+=-lpthread
$(EDITLINE_LIB
) -lm
-lresolv
60 AST_LIBS
+=$(EDITLINE_LIB
) -lm
63 ifneq ($(findstring darwin
,$(OSARCH
)),)
65 ifneq ($(findstring LOADABLE_MODULES
,$(MENUSELECT_CFLAGS
)),)
69 # These are used for all but Darwin
70 ifneq ($(findstring LOADABLE_MODULES
,$(MENUSELECT_CFLAGS
)),)
71 ASTLINK
+=-Wl
,--export-dynamic
73 ASTLINK
+=${GC_LDFLAGS}
75 ifneq ($(findstring BSD
,$(OSARCH
)),)
76 LDFLAGS
+=-L
/usr
/local
/lib
80 ifeq ($(OSARCH
),FreeBSD
)
84 ifeq ($(OSARCH
),NetBSD
)
85 AST_LIBS
+=-lpthread
-lcrypto
-lm
-L
/usr
/pkg
/lib
$(EDITLINE_LIB
)
88 ifeq ($(OSARCH
),OpenBSD
)
89 AST_LIBS
+=-lcrypto
-lpthread
-lm
$(EDITLINE_LIB
)
92 ifeq ($(OSARCH
),SunOS
)
93 AST_LIBS
+=-lpthread
-ldl
-lnsl
-lsocket
-lresolv
-L
/opt
/ssl
/lib
-L
/usr
/local
/ssl
/lib
98 cd editline
&& test -f config.h || CFLAGS
="$(PTHREAD_CFLAGS) $(subst $(ASTTOPDIR),../../,$(ASTCFLAGS:-Werror=))" LDFLAGS
="$(ASTLDFLAGS)" .
/configure
--build
=$(BUILD_PLATFORM
) --host
=$(HOST_PLATFORM
) --with-ncurses
=$(NCURSES_DIR
) --with-curses
=$(CURSES_DIR
) --with-termcap
=$(TERMCAP_DIR
) --with-tinfo
=$(TINFO_DIR
)
99 $(MAKE
) -C editline libedit.a
102 CFLAGS
="$(subst $(ASTTOPDIR),../../,$(ASTCFLAGS))" LDFLAGS
="$(ASTLDFLAGS)" $(MAKE
) -C db1-ast libdb1.a
104 ast_expr2.c ast_expr2.h
:
105 bison
-o
$@
-d
--name-prefix
=ast_yy ast_expr2.y
108 flex
-o
$@
--full ast_expr2.fl
# moved the correction of yyfree into the flex input file itself.
109 sed
's@#if __STDC_VERSION__ >= 199901L@#if !defined __STDC_VERSION__ || __STDC_VERSION__ >= 199901L@' ast_expr2f.c
> zz
112 ast_expr2f.o
: ASTCFLAGS
+=-Wno-unused
114 testexpr2
: ast_expr2f.c ast_expr2.c ast_expr2.h
115 $(CC
) -g
-c
-Iinclude
-DSTANDALONE ast_expr2f.c
116 $(CC
) -g
-c
-Iinclude
-DSTANDALONE ast_expr2.c
117 $(CC
) -g
-o testexpr2 ast_expr2f.o ast_expr2.o
118 rm ast_expr2.o ast_expr2f.o
120 asterisk.o channel.o
: ASTCFLAGS
+=$(ZAPTEL_INCLUDE
) $(DAHDI_INCLUDE
)
122 stdtime
/localtime.o
: ASTCFLAGS
+=$(AST_NO_STRICT_OVERFLOW
)
124 AST_EMBED_LDSCRIPTS
:=$(sort $(EMBED_LDSCRIPTS
))
125 AST_EMBED_LDFLAGS
:=$(foreach dep
,$(EMBED_LDFLAGS
),$(value
$(dep
)))
126 AST_EMBED_LIBS
:=$(foreach dep
,$(EMBED_LIBS
),$(value
$(dep
)))
127 OBJS
:=$(sort $(OBJS
))
129 ifneq ($(wildcard ..
/channels
/h323
/Makefile.ast
),)
130 include ..
/channels
/h323
/Makefile.ast
136 asterisk
: $(OBJS
) editline
/libedit.a db1-ast
/libdb1.a
$(AST_EMBED_LDSCRIPTS
)
137 @
$(ASTTOPDIR
)/build_tools
/make_build_h
> $(ASTTOPDIR
)/include/asterisk
/build.h.tmp
138 @if cmp
-s
$(ASTTOPDIR
)/include/asterisk
/build.h.tmp
$(ASTTOPDIR
)/include/asterisk
/build.h
; then echo
; else \
139 mv
$(ASTTOPDIR
)/include/asterisk
/build.h.tmp
$(ASTTOPDIR
)/include/asterisk
/build.h
; \
141 @
rm -f
$(ASTTOPDIR
)/include/asterisk
/build.h.tmp
142 @
$(CC
) -c
-o buildinfo.o
$(ASTCFLAGS
) buildinfo.c
143 $(ECHO_PREFIX
) echo
" [LD] $^ -> $@"
144 ifneq ($(findstring chan_h323
,$(MENUSELECT_CHANNELS
)),)
145 $(CMD_PREFIX
) $(CC
) $(STATIC_BUILD
) -o
$@
$(ASTLINK
) $(AST_EMBED_LDFLAGS
) $(ASTLDFLAGS
) $^ buildinfo.o
$(AST_LIBS
) $(AST_EMBED_LIBS
)
147 $(CMD_PREFIX
) $(CXX
) $(STATIC_BUILD
) -o
$@
$(ASTLINK
) $(AST_EMBED_LDFLAGS
) $(ASTLDFLAGS
) $(H323LDFLAGS
) $^ buildinfo.o
$(AST_LIBS
) $(AST_EMBED_LIBS
) $(H323LDLIBS
)
149 $(CMD_PREFIX
) $(ASTTOPDIR
)/build_tools
/strip_nonapi
$@ ||
rm $@
154 @if
[ -f editline
/Makefile
]; then
$(MAKE
) -C editline
distclean ; fi
155 @
$(MAKE
) -C db1-ast
clean
156 @
$(MAKE
) -C stdtime
clean