mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	* The autoconf-archive package contains macros useful for detecting C++
  standard and testing other C++ capabilities but that package was never
  included in the install_prereq script so many existing build environments
  won't have it.  Even if it is installed, older versions won't newer C++
  standards and will actually cause an error if you try to test for that
  version. To make it available for those environments, the
  ax_cxx_compile_stdcxx.m4 macro has copied from the latest release of
  autoconf-archive into the autoconf directory.
* A convenience wrapper(ast_cxx_check_std) around ax_cxx_compile_stdcxx was
  also added so checking the standard version and setting the
  asterisk-specific PBX_ variables becomes a one-liner:
  `AST_CXX_CHECK_STD([std], [force_latest_std])`.
  Calling that with a version of `17` for instance, will set PBX_CXX17
  to 0 or 1 depending on whether the current c++ compiler supports stdc++17.
  HAVE_CXX17 will also be 'defined" or not depending on the result.
* C++ compilers hardly ever default to the latest standard they support.  g++
  version 14 for instance supports up to C++23 but only uses C++17 by default.
  If you want to use C++23, you have to add `-std=gnu++=23` to the g++
  command line.  If you set the second argument of AST_CXX_CHECK_STD to "yes",
  the macro will automatically keep the highest `-std=gnu++` value that
  worked and pass that to the Makefiles.
* The autoconf-archive package was added to install_prereq for future use.
* Updated configure.ac to use AST_CXX_CHECK_STD() to check for C++
  versions 11, 14, 17, 20 and 23.
* Updated configure.ac to accept the `--enable-latest-cxx-std` option which
  will set the second option to AST_CXX_CHECK_STD() to "yes".  The default
  is "no".
* ast_copy_string() in strings.h declares the 'sz' variable as volatile and
  does an `sz--` on it later.  C++20 no longer allows the `++` and `--`
  increment and decrement operators to be used on variables declared as
  volatile however so that was changed to `sz -= 1`.
(cherry picked from commit fb45a473cf)
		
	
		
			
				
	
	
		
			123 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* autoconfig.h.in.  Generated from configure.ac by autoheader.  */
 | |
| 
 | |
| #ifndef MENUSELECT_AUTOCONFIG_H
 | |
| #define MENUSELECT_AUTOCONFIG_H
 | |
| 
 | |
| 
 | |
| /* Define to 1 if using 'alloca.c'. */
 | |
| #undef C_ALLOCA
 | |
| 
 | |
| /* Define to 1 if you have 'alloca', as a function or macro. */
 | |
| #undef HAVE_ALLOCA
 | |
| 
 | |
| /* Define to 1 if <alloca.h> works. */
 | |
| #undef HAVE_ALLOCA_H
 | |
| 
 | |
| /* Define to 1 if you have the 'asprintf' function. */
 | |
| #undef HAVE_ASPRINTF
 | |
| 
 | |
| /* Define to 1 if you have the curses library. */
 | |
| #undef HAVE_CURSES
 | |
| 
 | |
| /* Define to 1 if you have the 'getloadavg' function. */
 | |
| #undef HAVE_GETLOADAVG
 | |
| 
 | |
| /* Define if your system has the GTK2 libraries. */
 | |
| #undef HAVE_GTK2
 | |
| 
 | |
| /* Define to 1 if you have the <inttypes.h> header file. */
 | |
| #undef HAVE_INTTYPES_H
 | |
| 
 | |
| /* Define if your system has the LIBXML2 libraries. */
 | |
| #undef HAVE_LIBXML2
 | |
| 
 | |
| /* Define to 1 if you have the ncurses library. */
 | |
| #undef HAVE_NCURSES
 | |
| 
 | |
| /* Define to 1 if you have the newt library. */
 | |
| #undef HAVE_NEWT
 | |
| 
 | |
| /* Define to 1 if you have the 'setenv' function. */
 | |
| #undef HAVE_SETENV
 | |
| 
 | |
| /* Define to 1 if you have the <stdint.h> header file. */
 | |
| #undef HAVE_STDINT_H
 | |
| 
 | |
| /* Define to 1 if you have the <stdio.h> header file. */
 | |
| #undef HAVE_STDIO_H
 | |
| 
 | |
| /* Define to 1 if you have the <stdlib.h> header file. */
 | |
| #undef HAVE_STDLIB_H
 | |
| 
 | |
| /* Define to 1 if you have the 'strcasestr' function. */
 | |
| #undef HAVE_STRCASESTR
 | |
| 
 | |
| /* Define to 1 if you have the <strings.h> header file. */
 | |
| #undef HAVE_STRINGS_H
 | |
| 
 | |
| /* Define to 1 if you have the <string.h> header file. */
 | |
| #undef HAVE_STRING_H
 | |
| 
 | |
| /* Define to 1 if you have the 'strndup' function. */
 | |
| #undef HAVE_STRNDUP
 | |
| 
 | |
| /* Define to 1 if you have the 'strnlen' function. */
 | |
| #undef HAVE_STRNLEN
 | |
| 
 | |
| /* Define to 1 if you have the 'strsep' function. */
 | |
| #undef HAVE_STRSEP
 | |
| 
 | |
| /* Define to 1 if you have the <sys/stat.h> header file. */
 | |
| #undef HAVE_SYS_STAT_H
 | |
| 
 | |
| /* Define to 1 if you have the <sys/types.h> header file. */
 | |
| #undef HAVE_SYS_TYPES_H
 | |
| 
 | |
| /* Define to 1 if you have the terminfo library. */
 | |
| #undef HAVE_TINFO
 | |
| 
 | |
| /* Define to 1 if you have the <unistd.h> header file. */
 | |
| #undef HAVE_UNISTD_H
 | |
| 
 | |
| /* Define to 1 if you have the 'unsetenv' function. */
 | |
| #undef HAVE_UNSETENV
 | |
| 
 | |
| /* Define to 1 if you have the 'vasprintf' function. */
 | |
| #undef HAVE_VASPRINTF
 | |
| 
 | |
| /* Define to the address where bug reports for this package should be sent. */
 | |
| #undef PACKAGE_BUGREPORT
 | |
| 
 | |
| /* Define to the full name of this package. */
 | |
| #undef PACKAGE_NAME
 | |
| 
 | |
| /* Define to the full name and version of this package. */
 | |
| #undef PACKAGE_STRING
 | |
| 
 | |
| /* Define to the one symbol short name of this package. */
 | |
| #undef PACKAGE_TARNAME
 | |
| 
 | |
| /* Define to the home page for this package. */
 | |
| #undef PACKAGE_URL
 | |
| 
 | |
| /* Define to the version of this package. */
 | |
| #undef PACKAGE_VERSION
 | |
| 
 | |
| /* If using the C implementation of alloca, define if you know the
 | |
|    direction of stack growth for your system; otherwise it will be
 | |
|    automatically deduced at runtime.
 | |
| 	STACK_DIRECTION > 0 => grows toward higher addresses
 | |
| 	STACK_DIRECTION < 0 => grows toward lower addresses
 | |
| 	STACK_DIRECTION = 0 => direction of growth unknown */
 | |
| #undef STACK_DIRECTION
 | |
| 
 | |
| /* Define to 1 if all of the C89 standard headers exist (not just the ones
 | |
|    required in a freestanding environment). This macro is provided for
 | |
|    backward compatibility; new code need not use it. */
 | |
| #undef STDC_HEADERS
 | |
| 
 | |
| /* Define as 'unsigned int' if <stddef.h> doesn't define. */
 | |
| #undef size_t
 | |
| 
 | |
| #endif
 |