Commit Graph

58 Commits

Author SHA1 Message Date
Kevin P. Fleming
187f6d485a the gcc optimizer frequently finds broken code (use of uninitalized variables, unreachable code, etc.), which is good. however, developers usually compile with the optimizer turned off, because if they need to debug the resulting code, optimized code makes that process very difficult. this means that we get code changes committed that weren't adequately checked over for these sorts of problems.
with this build system change, if (and only if) --enable-dev-mode was used and DONT_OPTIMIZE is turned on, when a source file is compiled it will actually be preprocessed (into a .i or .ii file), then compiled once with optimization (with the result sent to /dev/null) and again without optimization (but only if the first compile succeeded, of course).

while making these changes, i did some cleanup work in Makefile.rules to move commonly-used combinations of flag variables into their own variables, to make the file easier to read and maintain



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@157859 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-19 21:34:47 +00:00
Kevin P. Fleming
31a9e3085d ignore warnings for prototypes in GTK headers
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@126395 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-29 18:05:34 +00:00
Kevin P. Fleming
553070456b fix up various compiler warnings found with gcc-4.3:
- the output of flex includes a static function called 'input' that is not used, so for the moment we'll stop having the compiler tell us about unused variables in the flex source files (a better fix would be to improve our flex post-processing to remove the unused function)

- main/stdtime/localtime.c makes assumptions about signed integer overflow, and gcc-4.3's improved optimizer tries to take advantage of handling potential overflow conditions at compile time; for now, suppress these optimizations until we can fiure out if the code needs improvement

- main/udptl.c has some references to uninitialized variables; in one case there was no bug, but in the other it was certainly possibly for unexpected behavior to occur

- main/editline/readline.c had an unused variable



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@107352 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-11 11:04:29 +00:00
Kevin P. Fleming
5b8cef7ecb ensure that all remaining multi-object modules are built using their proper CFLAGS and include directory paths
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@102627 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-06 11:48:48 +00:00
Steve Murphy
b04af32888 Applied the same fixes for ael.flex as was done in 97849 for ast_expr2.fl; overrode the normally generate yyfree func with our own version that checks the pointer for non-null before passing to free(). Also takes care of a little problem with 2.5.33 and the use of the __STDC_VERSION__ macro.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@97889 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-10 21:37:10 +00:00
Kevin P. Fleming
fd1e942f53 fix some copy-and-paste leftovers
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@93183 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-17 07:21:08 +00:00
Kevin P. Fleming
627f595c58 In http://lists.digium.com/pipermail/asterisk-dev/2007-December/031145.html,
rizzo brought up some issues related to the way that the metadata required
for menuselect and the rest of the build system is extracted from the source
files. Since I had a few hours to kill on an airplane today, I decided to
improve this situation... so now the system caches the extracted metadata
and uses it to build the menuselect 'tree' as much as it can. The result
of this is that when a single source file is changed, only the metadata for
that file needs to be extracted again, and the rest is used from the cache
files. I also reduced the number of forked processes required to do the
metadata extraction; it was actually possible to do most of what we needed
in the Makefiles themselves without using any shell scripts at all! On my
laptop, these changes resulted in an 80% decrease in the time required
for the 'menuselect.makeopts' automatic check to occur after editing a single
source file.

While doing this work I also cleaned up a few minor things in the Makefiles,
adding a check for 'awk' to the configure script and changed all remaining
places we use 'grep' or 'awk' to use the ones found by the configure script,
and changed the 'prep_tarball' script to build the menuselect metadata so
that tarballs of Asterisk will include it and won't require the user to
wait while it is extracted after unpacking.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@93180 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-17 06:44:51 +00:00
Kevin P. Fleming
ec2e4f2216 fix a few build system bugs, and convert Makefiles to be compatible with GNU make 3.80
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@44055 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-29 22:47:40 +00:00
Kevin P. Fleming
704397dc3c don't abuse CFLAGS and LDFLAGS for build of Asterisk components, because they are also then used for non-Asterisk components (like menuselect); use our own variables instead
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@44008 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-29 18:25:49 +00:00
Kevin P. Fleming
d12f54f90b GNU make already knows how to quietly ignore non-existent files in 'include' directives
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41209 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-26 23:58:47 +00:00
Kevin P. Fleming
0a27d8bfe5 merge new_loader_completion branch, including (at least):
- restructured build tree and makefiles to eliminate recursion problems
  - support for embedded modules
  - support for static builds
  - simpler cross-compilation support
  - simpler module/loader interface (no exported symbols)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@40722 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-21 02:11:39 +00:00
Kevin P. Fleming
000ba592b2 more Makefile cleanup and consistency stuff
don't reuse LIBS variable from top-level Makefile (oops)
build Asterisk binary after subdirs (preparing for embedded modules)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@37661 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-15 19:59:35 +00:00
Kevin P. Fleming
bc9ed9f5c4 various minor fixes
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@37277 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-07 00:48:40 +00:00
Kevin P. Fleming
4f826452cf make the build output less noisy (optional, can be controlled by the NOISY_BUILD variable in the top-level Makefile)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@37273 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-06 23:18:45 +00:00
Kevin P. Fleming
748431f7b6 move rules file to prepare for generic rules file
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@37222 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-06 21:04:28 +00:00
Kevin P. Fleming
a579371f43 use new (separate) dependencies file from menuselect
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@35895 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-06-25 08:50:14 +00:00
Russell Bryant
2f80e9db74 fix pbx_dundi build (issue #7424, jstrom)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@35875 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-06-25 01:25:52 +00:00
Kevin P. Fleming
e61d3d91f3 The Eurostar Commit! (it's amazing how much work you can get done on a 150 minute train ride from Paris to London <G>)
support the new location for zaptel.h and tonezone.h
use the dependency information output by menuselect to build Makefile rules for each module for header files and libraries
combine the common rules into a top-level Makefile.rules file
remove all (now) unnecessary stuff from subdir Makefiles
change translator API so that the newpvt() callback returns an int instead of a pointer (it no longer allocates memory)
alphabetize --with-<foo> options in configure script
enhance Net-SNMP support in configure script to provide a --with-netsnmp option
fix support for --with-pq so that if pg-config is not found when --with-pq is specified, an error will be generated
add 'optional package' usage to modules now that menuselect can output it
allow res_snmp to build by default, since the new loader changes coming soon will solve the function naming problem (and users can disable it via menuselect anyway)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@35832 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-06-24 19:43:31 +00:00
Russell Bryant
48ae9f0d4f - convert the 'uninstall' target to use separate targets to process each
subdirectory instead of a for loop
- remove the FORCE target from the main Makefile and add the couple places
  I used it to the .PHONY target.  .PHONY does the same thing and is a built-in
  more efficient way of doing it.
- add a bunch more targets to .PHONY ...


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@35503 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-06-22 15:38:13 +00:00
Russell Bryant
55e8a60363 - specify that 'depend' is a .PHONY target
- use separate targets instead of a for loop for doing 'make depend' for
  each sub directory


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@35501 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-06-22 15:08:08 +00:00
Russell Bryant
9db0520ff9 - specify that 'all' is a .PHONY target
- add a copyright header to the build_tools Makefile
- remove 'depend' from the 'all' target in agi/ and utils/ since it is handled
  by the main Makefile already


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@35479 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-06-22 14:09:18 +00:00
Russell Bryant
c399a06450 add the 'clean', 'clean-depend', and 'dist-clean' targets as .PHONY targets
since they are targets that do not have resulting files and are never listed
as prerequisites to real targets.  Using .PHONY in this manner improves make
performance by never having to check for resulting files.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@35415 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-06-22 11:27:03 +00:00
Russell Bryant
9f2a6516cf don't blow up in the sub Makefiles if menuselect.makeopts is not present. This
is valid in some cases, such as "make clean".


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@34738 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-06-19 00:14:16 +00:00
Russell Bryant
b6147a21b9 remove "depend" from the "all" targets in sub Makefiles. The main Makefile
already calls "make depend" for each of the subdirectories


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@34497 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-06-16 16:54:00 +00:00
Kevin P. Fleming
b31b0be819 various minor portability fixes (mostly from tholo for OpenBSD)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@33350 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-06-09 20:26:25 +00:00
Russell Bryant
503f99e2e8 remove the need to have to re-run make after a default menuselect.makeopts
file is generated.  This allows a fresh checkout of asterisk to be built
and installed with the standard "./configure && make && make install".


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@32798 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-06-07 16:03:31 +00:00
Kevin P. Fleming
e856010714 use module names, not file names, in menuselect
work around XML parsing bug in menuselect for default sounds package


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@32407 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-06-05 20:46:27 +00:00
Russell Bryant
f9e5541689 on a clean, we have to clean out the ael directory too
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@29731 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-23 17:09:51 +00:00
Kevin P. Fleming
7343d311f1 simplify CFLAGS handling for subdirectories
don't put paths into the include search path when they are not needed
don't auto-rebuild the AEL bison/flex output based on make dependencies (the generated files are already checked in, and the timestamps generated by a checkout will usually cause them to be overwritten)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@23582 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-30 11:40:06 +00:00
Kevin P. Fleming
dcccc2ed71 don't rely on default search paths for finding local include files
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@22438 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-25 18:29:02 +00:00
Kevin P. Fleming
5f58cc8770 Merge Steve Murphy's (murf) complete re-implementation of AEL, which is now no longer considered experimental :-)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@22273 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-24 17:41:27 +00:00
Kevin P. Fleming
574e14cbea 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
2006-04-24 17:11:45 +00:00
Kevin P. Fleming
e7c198453d ensure that dependencies are rebuilt after 'make update' so that builds don't break when files are removed/renamed
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@9691 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-02-12 16:52:42 +00:00
Kevin P. Fleming
407d3c289c use auto-build for pbx modules
correct install variable for format modules


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@9568 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-02-11 17:48:44 +00:00
Matt O'Gorman
7d03c33e0a Allows for user to uninstall asterisk binaries
bug 6177


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@9052 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-02-01 18:39:41 +00:00
Russell Bryant
4a7cec937d remove redundant CFLAGS for BSD which are already set in the main Makefile (issue #6250)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@8101 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-01-16 17:51:35 +00:00
Kevin P. Fleming
2c65582b66 remove extraneous svn:executable properties
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@7221 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-11-29 18:24:39 +00:00
Kevin P. Fleming
7ffb604a2f issue #4678
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6936 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-11-01 21:53:30 +00:00
Kevin P. Fleming
9519f6c5f4 clean up, use make functions instead of subshells, remove unused stuff
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6449 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-08-30 02:54:02 +00:00
Kevin P. Fleming
0e9d920a60 move tools used during build into build_tools subdirectory
clean up Makefile headers


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5942 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-06-20 17:26:08 +00:00
Mark Spencer
e0f057820a Add Asterisk Extension Language support (AEL) from Astricon talk
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5918 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-06-16 08:47:06 +00:00
Kevin P. Fleming
0fddec0421 remove obsolete module (still available in CVS history if needed) (inspired by bug #4127)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5581 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-05-05 01:03:24 +00:00
Mark Spencer
a0a2592025 Fix cross compiling (bug #3868)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5278 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-03-27 22:39:17 +00:00
Mark Spencer
fdfd69cca0 Add first pass at realtime
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4309 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2004-11-22 03:25:27 +00:00
Mark Spencer
82cbf28993 Add "Loopback" switch
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4070 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2004-10-24 02:53:24 +00:00
Mark Spencer
06dfca5d24 Add DUNDi.... (http://www.dundi.com)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4033 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2004-10-18 21:45:13 +00:00
Mark Spencer
9b702cc543 Don't build GTK console by default
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3966 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2004-10-09 21:04:31 +00:00
Mark Spencer
15c6bf0860 Add iax2 parsing for TNS/TON/PRES
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3877 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2004-10-02 01:56:08 +00:00
Mark Spencer
4ce283ff18 Make it build and run on MacOS X
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1673 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2003-10-26 18:50:49 +00:00
Mark Spencer
b5bcecce5d Add DESTDIR support (bug #200)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1664 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2003-10-25 17:27:53 +00:00