asterisk/makeopts.in

359 lines
7.1 KiB
Plaintext
Raw Normal View History

# NOTE: Names of _INCLUDE and _LIB entries in this file must be
# the exact uppercase equivalents of the names used for
# dependencies in menuselect for the same package.
CC=@PTHREAD_CC@
HOST_CC=cc
BUILD_CC=cc
CXX=@CXX@
INSTALL=@INSTALL@
Merged revisions 93180 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r93180 | kpfleming | 2007-12-16 22:44:51 -0800 (Sun, 16 Dec 2007) | 23 lines 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/trunk@93184 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-17 07:25:35 +00:00
AWK=@AWK@
BISON=@BISON@
FLEX=@FLEX@
GREP=@GREP@
PYTHON=@PYTHON@
MAKE=@GNU_MAKE@
AR=@AR@
RANLIB=@RANLIB@
FIND=@FIND@
COMPRESS=@COMPRESS@
BASENAME=@BASENAME@
SHELL=@SHELL@
LN=@LN@
DOXYGEN=@DOXYGEN@
DOT=@DOT@
STRIP=@STRIP@
WGET=@WGET@
FETCH=@FETCH@
DOWNLOAD=@DOWNLOAD@
SOUNDS_CACHE_DIR=@SOUNDS_CACHE_DIR@
RUBBER=@RUBBER@
CATDVI=@CATDVI@
KPATHSEA=@KPATHSEA@
XMLLINT=@XMLLINT@
XMLSTARLET=@XMLSTARLET@
MD5=@MD5@
SHA1SUM=@SHA1SUM@
OPENSSL=@OPENSSL@
Address OpenSSL initialization issues when using third-party libraries. When Asterisk is used with various third-party libraries (CURL, PostgresSQL, many others) that have the ability themselves to use OpenSSL, it is possible for conflicts to arise in how the OpenSSL libraries are initialized and shutdown. This patch addresses these conflicts by 'wrapping' the important functions from the OpenSSL libraries in a new shared library that is part of Asterisk itself, and is loaded in such a way as to ensure that *all* calls to these functions will be dispatched through the Asterisk wrapper functions, not the native functions. This new library is optional, but enabled by default. See the CHANGES file for documentation on how to disable it. Along the way, this patch also makes a few other minor changes: * Changes MODULES_DIR to ASTMODDIR throughout the build system, in order to more closely match what is used during run-time configuration. * Corrects some errors in the configure script where AC_CHECK_TOOLS was used instead of AC_PATH_PROG. * Adds a new variable for linker flags in the build system (DYLINK), used for producing true shared libraries (as opposed to the dynamically loadable modules that the build system produces for 'regular' Asterisk modules). * Moves the Makefile bits that handle installation and uninstallation of the main Asterisk binary into main/Makefile from the top-level Makefile. * Moves a couple of useful preprocessor macros from optional_api.h to asterisk.h. Review: https://reviewboard.asterisk.org/r/1006/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@353317 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-01-30 21:21:16 +00:00
LDCONFIG=@LDCONFIG@
2012-10-18 20:13:17 +00:00
GIT=@GIT@
ALEMBIC=@ALEMBIC@
BUILD_PLATFORM=@BUILD_PLATFORM@
BUILD_CPU=@BUILD_CPU@
BUILD_VENDOR=@BUILD_VENDOR@
BUILD_OS=@BUILD_OS@
HOST_PLATFORM=@HOST_PLATFORM@
HOST_CPU=@HOST_CPU@
HOST_VENDOR=@HOST_VENDOR@
HOST_OS=@HOST_OS@
OSARCH=@OSARCH@
OSREV=@PBX_OSREV@
GC_CFLAGS=@GC_CFLAGS@
GC_LDFLAGS=@GC_LDFLAGS@
PTHREAD_CFLAGS=@PTHREAD_CFLAGS@
PTHREAD_LIBS=@PTHREAD_LIBS@
CONFIG_CFLAGS=@CONFIG_CFLAGS@
CONFIG_LDFLAGS=@CONFIG_LDFLAGS@
CONFIG_SIGNED_CHAR=@CONFIG_SIGNED_CHAR@
GNU_LD=@GNU_LD@
WEAKREF=@PBX_WEAKREF@
HAVE_DYNAMIC_LIST=@PBX_DYNAMIC_LIST@
prefix = @prefix@
exec_prefix = @exec_prefix@
datarootdir = @datarootdir@
datadir = @datadir@
includedir = @includedir@
infodir = @infodir@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
ASTSBINDIR = @astsbindir@
ASTETCDIR = @astetcdir@
ASTHEADERDIR = @astheaderdir@
ASTLIBDIR = @astlibdir@
Address OpenSSL initialization issues when using third-party libraries. When Asterisk is used with various third-party libraries (CURL, PostgresSQL, many others) that have the ability themselves to use OpenSSL, it is possible for conflicts to arise in how the OpenSSL libraries are initialized and shutdown. This patch addresses these conflicts by 'wrapping' the important functions from the OpenSSL libraries in a new shared library that is part of Asterisk itself, and is loaded in such a way as to ensure that *all* calls to these functions will be dispatched through the Asterisk wrapper functions, not the native functions. This new library is optional, but enabled by default. See the CHANGES file for documentation on how to disable it. Along the way, this patch also makes a few other minor changes: * Changes MODULES_DIR to ASTMODDIR throughout the build system, in order to more closely match what is used during run-time configuration. * Corrects some errors in the configure script where AC_CHECK_TOOLS was used instead of AC_PATH_PROG. * Adds a new variable for linker flags in the build system (DYLINK), used for producing true shared libraries (as opposed to the dynamically loadable modules that the build system produces for 'regular' Asterisk modules). * Moves the Makefile bits that handle installation and uninstallation of the main Asterisk binary into main/Makefile from the top-level Makefile. * Moves a couple of useful preprocessor macros from optional_api.h to asterisk.h. Review: https://reviewboard.asterisk.org/r/1006/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@353317 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-01-30 21:21:16 +00:00
ASTMODDIR = @astmoddir@
ASTMANDIR = @astmandir@
astvarlibdir = @astvarlibdir@
ASTVARLIBDIR = @astvarlibdir@
ASTDATADIR = @astdatadir@
ASTDBDIR = @astdbdir@
ASTKEYDIR = @astkeydir@
ASTSPOOLDIR = @astspooldir@
ASTLOGDIR = @astlogdir@
ASTVARRUNDIR = @astvarrundir@
AST_DEVMODE=@AST_DEVMODE@
AST_DEVMODE_STRICT=@AST_DEVMODE_STRICT@
NOISY_BUILD=@NOISY_BUILD@
AST_CODE_COVERAGE=@AST_CODE_COVERAGE@
Address OpenSSL initialization issues when using third-party libraries. When Asterisk is used with various third-party libraries (CURL, PostgresSQL, many others) that have the ability themselves to use OpenSSL, it is possible for conflicts to arise in how the OpenSSL libraries are initialized and shutdown. This patch addresses these conflicts by 'wrapping' the important functions from the OpenSSL libraries in a new shared library that is part of Asterisk itself, and is loaded in such a way as to ensure that *all* calls to these functions will be dispatched through the Asterisk wrapper functions, not the native functions. This new library is optional, but enabled by default. See the CHANGES file for documentation on how to disable it. Along the way, this patch also makes a few other minor changes: * Changes MODULES_DIR to ASTMODDIR throughout the build system, in order to more closely match what is used during run-time configuration. * Corrects some errors in the configure script where AC_CHECK_TOOLS was used instead of AC_PATH_PROG. * Adds a new variable for linker flags in the build system (DYLINK), used for producing true shared libraries (as opposed to the dynamically loadable modules that the build system produces for 'regular' Asterisk modules). * Moves the Makefile bits that handle installation and uninstallation of the main Asterisk binary into main/Makefile from the top-level Makefile. * Moves a couple of useful preprocessor macros from optional_api.h to asterisk.h. Review: https://reviewboard.asterisk.org/r/1006/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@353317 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-01-30 21:21:16 +00:00
AST_ASTERISKSSL=@AST_ASTERISKSSL@
AST_DECLARATION_AFTER_STATEMENT=@AST_DECLARATION_AFTER_STATEMENT@
AST_TRAMPOLINES=@AST_TRAMPOLINES@
AST_NO_STRICT_OVERFLOW=@AST_NO_STRICT_OVERFLOW@
AST_SHADOW_WARNINGS=@AST_SHADOW_WARNINGS@
AST_NESTED_FUNCTIONS=@AST_NESTED_FUNCTIONS@
Add support for the clang compiler; update RAII_VAR to use BlocksRuntime RAII_VAR, which is used extensively in Asterisk to manage reference counted resources, uses a GCC extension to automatically invoke a cleanup function when a variable loses scope. While this functionality is incredibly useful and has prevented a large number of memory leaks, it also prevents Asterisk from being compiled with clang. This patch updates the RAII_VAR macro such that it can be compiled with clang. It makes use of the BlocksRuntime, which allows for a closure to be created that performs the actual cleanup. Note that this does not attempt to address the numerous warnings that the clang compiler catches in Asterisk. Much thanks for this patch goes to: * The folks on StackOverflow who asked this question and Leushenko for providing the answer that formed the basis of this code: http://stackoverflow.com/questions/24959440/rewrite-gcc-cleanup-macro-with-nested-function-for-clang * Diederik de Groot, who has been extremely patient in working on getting this patch into Asterisk. Review: https://reviewboard.asterisk.org/r/4370/ ASTERISK-24133 ASTERISK-23666 ASTERISK-20399 ASTERISK-20850 #close Reported by: Diederik de Groot patches: RAII_CLANG.patch uploaded by Diederik de Groot (License 6600) ........ Merged revisions 432807 from http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged revisions 432808 from http://svn.asterisk.org/svn/asterisk/branches/13 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@432809 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2015-03-12 12:40:23 +00:00
AST_CLANG_BLOCKS=@AST_CLANG_BLOCKS@
AST_CLANG_BLOCKS_LIBS=@AST_CLANG_BLOCKS_LIBS@
Update configure.ac/Makefile for clang Created autoconf/ast_check_raii.m4: contains AST_CHECK_RAII which checks compiler requirements for RAII: gcc: -fnested-functions support clang: -fblocks (and if required -lBlocksRuntime) The original check was implemented in configure.ac and now has it's own file. This function also sets C_COMPILER_FAMILY to either gcc or clang for use by makefile Created autoconf/ast_check_strsep_array_bounds.m4 (contains AST_CHECK_STRSEP_ARRAY_BOUNDS): which checks if clang is able to handle the optimized strsep & strcmp functions (linux). If not, the standard libc implementation should be used instead. Clang + the optimized macro's work with: strsep(char *, char []), but not with strsepo(char *, char *). Instead of replacing all the occurences throughout the source code, not using the optimized macro version seemed easier See 'define __strcmp_gc(s1, s2, l2) in bits/string2.h': llvm-comment: Normally, this array-bounds warning are suppressed for macros, so that unused paths like the one that accesses __s1[3] are not warned about. But if you preprocess manually, and feed the result to another instance of clang, it will warn about all the possible forks of this particular if statement. Instead of switching of this optimization, another solution would be to run the preproces- sing step with -frewrite-includes, which should preserve enough information so that clang should still be able to suppress the diag- nostic at the compile step later on. See also "https://llvm.org/bugs/show_bug.cgi?id=20144" See also "https://llvm.org/bugs/show_bug.cgi?id=11536" Makefile.rules: If C_COMPILER_FAMILY=clang then add two warning suppressions: -Wno-unused-value -Wno-parentheses-equality In an earlier review (reviewboard: 4550 and 4554), they were deemed a nuisace and less than benefitial. configure.ac: Added AST_CHECK_RAII() see earlier Added AST_CHECK_STRSEP_ARRAY_BOUNDS() see earlier Removed moved content ASTERISK-24917 Change-Id: I12ea29d3bda2254ad3908e279b7effbbac6a97cb
2015-04-20 18:03:56 +00:00
C_COMPILER_FAMILY=@AST_C_COMPILER_FAMILY@
AST_RPATH=@AST_RPATH@
AST_FORTIFY_SOURCE=@AST_FORTIFY_SOURCE@
AST_MARCH_NATIVE=@AST_MARCH_NATIVE@
ALSA_INCLUDE=@ALSA_INCLUDE@
ALSA_LIB=@ALSA_LIB@
BFD_INCLUDE=@BFD_INCLUDE@
BFD_LIB=@BFD_LIB@
BLUETOOTH_INCLUDE=@BLUETOOTH_INCLUDE@
BLUETOOTH_LIB=@BLUETOOTH_LIB@
CURL_INCLUDE=@CURL_INCLUDE@
CURL_LIB=@CURL_LIB@
CURSES_INCLUDE=@CURSES_INCLUDE@
CURSES_LIB=@CURSES_LIB@
CURSES_DIR=@CURSES_DIR@
EDITLINE_LIB=@EDITLINE_LIB@
FREETDS_INCLUDE=@FREETDS_INCLUDE@
FREETDS_LIB=@FREETDS_LIB@
GENERIC_ODBC_INCLUDE=@GENERIC_ODBC_INCLUDE@
GENERIC_ODBC_LIB=@GENERIC_ODBC_LIB@
GMIME_INCLUDE=@GMIME_INCLUDE@
GMIME_LIB=@GMIME_LIB@
HOARD_LIB=@HOARD_LIB@
GSM_INTERNAL=@GSM_INTERNAL@
GSM_INCLUDE=@GSM_INCLUDE@
GSM_LIB=@GSM_LIB@
ILBC_INTERNAL=@ILBC_INTERNAL@
ILBC_INCLUDE=@ILBC_INCLUDE@
ILBC_LIB=@ILBC_LIB@
GTK2_INCLUDE=@GTK2_INCLUDE@
GTK2_LIB=@GTK2_LIB@
ICAL_INCLUDE=@ICAL_INCLUDE@
ICAL_LIB=@ICAL_LIB@
ICONV_INCLUDE=@ICONV_INCLUDE@
ICONV_LIB=@ICONV_LIB@
IKSEMEL_INCLUDE=@IKSEMEL_INCLUDE@
IKSEMEL_LIB=@IKSEMEL_LIB@
IMAP_TK_INCLUDE=@IMAP_TK_INCLUDE@
IMAP_TK_LIB=@IMAP_TK_LIB@
IODBC_INCLUDE=@IODBC_INCLUDE@
IODBC_LIB=@IODBC_LIB@
JACK_INCLUDE=@JACK_INCLUDE@
JACK_LIB=@JACK_LIB@
JANSSON_INCLUDE=@JANSSON_INCLUDE@
JANSSON_LIB=@JANSSON_LIB@
URIPARSER_INCLUDE=@URIPARSER_INCLUDE@
URIPARSER_LIB=@URIPARSER_LIB@
LDAP_INCLUDE=@LDAP_INCLUDE@
LDAP_LIB=@LDAP_LIB@
LIBEDIT_INTERNAL=@LIBEDIT_INTERNAL@
LIBEDIT_INCLUDE=@LIBEDIT_INCLUDE@
LIBEDIT_LIB=@LIBEDIT_LIB@
LUA_INCLUDE=@LUA_INCLUDE@
LUA_LIB=@LUA_LIB@
MYSQLCLIENT_INCLUDE=@MYSQLCLIENT_INCLUDE@
MYSQLCLIENT_LIB=@MYSQLCLIENT_LIB@
NBS_INCLUDE=@NBS_INCLUDE@
NBS_LIB=@NBS_LIB@
NCURSES_INCLUDE=@NCURSES_INCLUDE@
NCURSES_LIB=@NCURSES_LIB@
NCURSES_DIR=@NCURSES_DIR@
NEON_INCLUDE=@NEON_INCLUDE@
NEON_LIB=@NEON_LIB@
NEON29_INCLUDE=@NEON_INCLUDE@
NEON29_LIB=@NEON_LIB@
NETSNMP_INCLUDE=@NETSNMP_INCLUDE@
NETSNMP_LIB=@NETSNMP_LIB@
NEWT_INCLUDE=@NEWT_INCLUDE@
NEWT_LIB=@NEWT_LIB@
OGG_INCLUDE=@OGG_INCLUDE@
OGG_LIB=@OGG_LIB@
OPUS_INCLUDE=@OPUS_INCLUDE@
OPUS_LIB=@OPUS_LIB@
OSPTK_INCLUDE=@OSPTK_INCLUDE@
OSPTK_LIB=@OSPTK_LIB@
# ossaudio can optionally use ffmpeg, x11, sdl and sdl_image.
# Because sdl_image in turn depends on sdl, we don't duplicate the include
OSS_INCLUDE=@OSS_INCLUDE@ @FFMPEG_INCLUDE@ @SDL_INCLUDE@ @X11_INCLUDE@
OSS_LIB=@OSS_LIB@ @FFMPEG_LIB@ @SDL_LIB@ @SDL_IMAGE_LIB@ @X11_LIB@
PGSQL_INCLUDE=@PGSQL_INCLUDE@
PGSQL_LIB=@PGSQL_LIB@
PJPROJECT_INCLUDE=@PJPROJECT_INCLUDE@
PJPROJECT_LIB=@PJPROJECT_LIB@
POPT_INCLUDE=@POPT_INCLUDE@
POPT_LIB=@POPT_LIB@
PORTAUDIO_INCLUDE=@PORTAUDIO_INCLUDE@
PORTAUDIO_LIB=@PORTAUDIO_LIB@
PRI_INCLUDE=@PRI_INCLUDE@
PRI_LIB=@PRI_LIB@
RESAMPLE_INCLUDE=@RESAMPLE_INCLUDE@
RESAMPLE_LIB=@RESAMPLE_LIB@
RT_LIB=@RT_LIB@
SS7_INCLUDE=@SS7_INCLUDE@
SS7_LIB=@SS7_LIB@
OPENR2_INCLUDE=@OPENR2_INCLUDE@
OPENR2_LIB=@OPENR2_LIB@
PWLIB_INCLUDE=@PWLIB_INCLUDE@
PWLIB_LIB=@PWLIB_LIB@
COROSYNC_INCLUDE=@COROSYNC_INCLUDE@
COROSYNC_LIB=@COROSYNC_LIB@
RADIUS_INCLUDE=@RADIUS_INCLUDE@
RADIUS_LIB=@RADIUS_LIB@
FFMPEG_INCLUDE=@FFMPEG_INCLUDE@
FFMPEG_LIB=@FFMPEG_LIB@
X11_INCLUDE=@X11_INCLUDE@
X11_LIB=@X11_LIB@
SDL_INCLUDE=@SDL_INCLUDE@
SDL_LIB=@SDL_LIB@
SDL_IMAGE_INCLUDE=@SDL_IMAGE_INCLUDE@
SDL_IMAGE_LIB=@SDL_IMAGE_LIB@
SPANDSP_INCLUDE=@SPANDSP_INCLUDE@
SPANDSP_LIB=@SPANDSP_LIB@
SPEEX_INCLUDE=@SPEEX_INCLUDE@
SPEEX_LIB=@SPEEX_LIB@
SPEEXDSP_INCLUDE=@SPEEXDSP_INCLUDE@
SPEEXDSP_LIB=@SPEEXDSP_LIB@
SQLITE_INCLUDE=@SQLITE_INCLUDE@
SQLITE_LIB=@SQLITE_LIB@
SQLITE3_INCLUDE=@SQLITE3_INCLUDE@
SQLITE3_LIB=@SQLITE3_LIB@
SRTP_LIB=@SRTP_LIB@
SRTP_INCLUDE=@SRTP_INCLUDE@
OPENSSL_INCLUDE=@OPENSSL_INCLUDE@
OPENSSL_LIB=@OPENSSL_LIB@
CRYPT_INCLUDE=@CRYPT_INCLUDE@
CRYPT_LIB=@CRYPT_LIB@
CRYPTO_INCLUDE=@CRYPTO_INCLUDE@
CRYPTO_LIB=@CRYPTO_LIB@
TONEZONE_INCLUDE=@TONEZONE_INCLUDE@
TONEZONE_LIB=@TONEZONE_LIB@
UNBOUND_INCLUDE=@UNBOUND_INCLUDE@
UNBOUND_LIB=@UNBOUND_LIB@
UNIXODBC_INCLUDE=@UNIXODBC_INCLUDE@
UNIXODBC_LIB=@UNIXODBC_LIB@
UUID_INCLUDE=@UUID_INCLUDE@
UUID_LIB=@UUID_LIB@
VORBIS_INCLUDE=@VORBIS_INCLUDE@
VORBIS_LIB=@VORBIS_LIB@
VPB_INCLUDE=@VPB_INCLUDE@
VPB_LIB=@VPB_LIB@
HAVE_DAHDI=@PBX_DAHDI@
DAHDI_INCLUDE=@DAHDI_INCLUDE@
ZLIB_INCLUDE=@ZLIB_INCLUDE@
ZLIB_LIB=@ZLIB_LIB@
ISDNNET_INCLUDE=@ISDNNET_INCLUDE@
ISDNNET_LIB=@ISDNNET_LIB@
MISDN_INCLUDE=@MISDN_INCLUDE@
MISDN_LIB=@MISDN_LIB@
SUPPSERV_INCLUDE=@SUPPSERV_INCLUDE@
SUPPSERV_LIB=@SUPPSERV_LIB@
CAP_LIB=@CAP_LIB@
CAP_INCLUDE=@CAP_INCLUDE@
BKTR_INCLUDE=@BKTR_INCLUDE@
BKTR_LIB=@BKTR_LIB@
TERMCAP_INCLUDE=@TERMCAP_INCLUDE@
TERMCAP_LIB=@TERMCAP_LIB@
TERMCAP_DIR=@TERMCAP_DIR@
LIBXML2_INCLUDE=@LIBXML2_INCLUDE@
LIBXML2_LIB=@LIBXML2_LIB@
LIBXSLT_INCLUDE=@LIBXSLT_INCLUDE@
LIBXSLT_LIB=@LIBXSLT_LIB@
TINFO_INCLUDE=@TINFO_INCLUDE@
TINFO_LIB=@TINFO_LIB@
TINFO_DIR=@TINFO_DIR@
# if poll is not present, let the makefile know.
POLL_AVAILABLE=@HAS_POLL@
TIMERFD_INCLUDE=@TIMERFD_INCLUDE@