mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| dnl check RAII requirements
 | |
| dnl
 | |
| dnl gcc / llvm-gcc: -fnested-functions
 | |
| dnl clang : -fblocks / -fblocks and -lBlocksRuntime"
 | |
| AC_DEFUN([AST_CHECK_RAII], [
 | |
| 	AC_MSG_CHECKING([for RAII support])
 | |
| 	AST_C_COMPILER_FAMILY=""
 | |
| 	AC_LINK_IFELSE(
 | |
| 		[AC_LANG_PROGRAM([], [
 | |
| 			int main() {
 | |
| 				#if defined(__clang__)
 | |
| 				choke
 | |
| 				#endif
 | |
| 				return 0;
 | |
| 			}
 | |
| 			])
 | |
| 		],[
 | |
| 			dnl Nested functions required for RAII implementation
 | |
| 			AC_MSG_CHECKING(for gcc -fnested-functions)
 | |
| 			AC_COMPILE_IFELSE(
 | |
| 				dnl Prototype needed due to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36774
 | |
| 				[
 | |
| 					AC_LANG_PROGRAM([], [auto void foo(void); void foo(void) {}])
 | |
| 				],[
 | |
| 					AST_NESTED_FUNCTIONS=""
 | |
| 					AC_MSG_RESULT(no)
 | |
| 				],[
 | |
| 					AST_NESTED_FUNCTIONS="-fnested-functions"
 | |
| 					AC_MSG_RESULT(yes)
 | |
| 				]
 | |
| 			)
 | |
| 			AC_SUBST(AST_NESTED_FUNCTIONS)
 | |
| 			AST_C_COMPILER_FAMILY="gcc"
 | |
| 		],[
 | |
| 			AC_MSG_CHECKING(for clang -fblocks)
 | |
| 			if test "`echo 'int main(){return ^{return 42;}();}' | ${CC} -o /dev/null -fblocks -x c - 2>&1`" = ""; then
 | |
| 				AST_CLANG_BLOCKS_LIBS=""
 | |
| 				AST_CLANG_BLOCKS="-Wno-unknown-warning-option -fblocks"
 | |
| 				AC_MSG_RESULT(yes)
 | |
| 			elif test "`echo 'int main(){return ^{return 42;}();}' | ${CC} -o /dev/null -fblocks -x c -lBlocksRuntime - 2>&1`" = ""; then
 | |
| 				AST_CLANG_BLOCKS_LIBS="-lBlocksRuntime"
 | |
| 				AST_CLANG_BLOCKS="-fblocks"
 | |
| 				AC_MSG_RESULT(yes)
 | |
| 			else
 | |
| 				AC_MSG_ERROR([BlocksRuntime is required for clang, please install libblocksruntime])
 | |
| 			fi
 | |
| 			AC_SUBST(AST_CLANG_BLOCKS_LIBS)
 | |
| 			AC_SUBST(AST_CLANG_BLOCKS)
 | |
| 			AST_C_COMPILER_FAMILY="clang"
 | |
| 		]
 | |
| 	)
 | |
| 	if test -z "${AST_C_COMPILER_FAMILY}"; then
 | |
| 		AC_MSG_ERROR([Compiler ${CC} not supported. Mminimum required gcc-4.3 / llvm-gcc-4.3 / clang-3.3 + libblocksruntime-dev])
 | |
| 	fi
 | |
| 	AC_SUBST(AST_C_COMPILER_FAMILY)
 | |
| ])
 |