You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							551 lines
						
					
					
						
							20 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							551 lines
						
					
					
						
							20 KiB
						
					
					
				| dnl Process this file with autoconf to produce a configure script. | |
| dnl This version of log4cplus requires the follwing autotools versions: | |
| dnl autoconf-2.69 | |
| dnl automake-1.12 | |
| dnl libtool-2.4.2 | |
| 
 | |
| AC_INIT([log4cplus],[1.1.0]) | |
| AC_CANONICAL_TARGET | |
| AC_CONFIG_SRCDIR([src/logger.cxx]) | |
| AC_CONFIG_MACRO_DIR([m4]) | |
| AM_INIT_AUTOMAKE([1.12 no-define nostdinc gnu -Wall]) | |
| AM_PROG_AR | |
| 
 | |
| # | |
| # +1 : ? : +1  == new interface that does not break old one | |
| # +1 : ? : 0   == new interface that breaks old one | |
| #  ? : ? : 0   == no new interfaces, but breaks apps | |
| #  ? :+1 : ?   == just some internal changes, nothing breaks but might work | |
| #                 better | |
| # CURRENT : REVISION : AGE | |
| LT_VERSION=5:0:0 | |
| LT_RELEASE=1.1 | |
| AC_SUBST([LT_VERSION]) | |
| AC_SUBST([LT_RELEASE]) | |
| 
 | |
| dnl Use C++ std::locale and std::codecvt facet for string conversion. | |
| 
 | |
| AH_TEMPLATE([LOG4CPLUS_WORKING_LOCALE], | |
|   [Define for compilers/standard libraries that support more than | |
|    just the "C" locale.]) | |
| 
 | |
| AC_ARG_WITH([working-locale], | |
|   [AS_HELP_STRING([--with-working-locale], | |
|     [Use std::locale for char->wchar_t conversion.])], | |
|   [LOG4CPLUS_CHECK_YESNO([${withval}], [--with-working-locale])], | |
|   [with_working_locale=no]) | |
| 
 | |
| AS_IF([test "x$with_working_locale" = "xyes"], | |
|   [AC_DEFINE([LOG4CPLUS_WORKING_LOCALE], [1])], | |
|   []) | |
| 
 | |
| dnl Use C99 wcsrtombs() etc. functions for string conversion. | |
| 
 | |
| AH_TEMPLATE([LOG4CPLUS_WORKING_C_LOCALE], | |
|   [Define for C99 compilers/standard libraries that support more than | |
|    just the "C" locale.]) | |
| 
 | |
| AC_ARG_WITH([working-c-locale], | |
|   [AS_HELP_STRING([--with-working-c-locale], | |
|     [Use C99 locale facilities for char->wchar_t conversion.])], | |
|   [LOG4CPLUS_CHECK_YESNO([${withval}], [--with-working-c-locale])], | |
|   [with_working_c_locale=no]) | |
| 
 | |
| AS_IF([test "x$with_working_c_locale" = "xyes"], | |
|   [AC_DEFINE([LOG4CPLUS_WORKING_C_LOCALE], [1])], | |
|   []) | |
| 
 | |
| dnl Use iconv() function for string conversion. | |
| 
 | |
| AH_TEMPLATE([LOG4CPLUS_WITH_ICONV], | |
|   [Define when iconv() is available.]) | |
| 
 | |
| AC_ARG_WITH([iconv], | |
|   [AS_HELP_STRING([--with-iconv], | |
|     [Use iconv() for char->wchar_t conversion.])], | |
|   [LOG4CPLUS_CHECK_YESNO([${withval}], [--with-iconv])], | |
|   [with_iconv=no]) | |
| 
 | |
| AS_IF([test "x$with_iconv" = "xyes"], | |
|   [AC_DEFINE([LOG4CPLUS_WITH_ICONV], [1])], | |
|   []) | |
| 
 | |
| dnl Debugging or release build? | |
| 
 | |
| AC_ARG_ENABLE([debugging], | |
|   [AS_HELP_STRING([--enable-debugging], | |
|     [Turns off optimization and adds switches that generate debugging | |
|     information.])], | |
|   [LOG4CPLUS_CHECK_YESNO([${enableval}], [--enable-debugging])], | |
|   [enable_debugging=no]) | |
| 
 | |
| AH_TEMPLATE([LOG4CPLUS_DEBUGGING], | |
|   [Defined for --enable-debugging builds.]) | |
| 
 | |
| AS_IF([test "x$enable_debugging" = "xyes"], | |
|   [AC_DEFINE([LOG4CPLUS_DEBUGGING]) | |
|    LOG4CPLUS_NDEBUG=-UNDEBUG | |
|    AS_CASE(["$target_os"], | |
|      [linux*], | |
|      [dnl The -U_FORTIFY_SOURCE bit is here to avoid redefinition | |
|       dnl warning on Ubuntu where _FORTIFY_SOURCE is enabled by | |
|       dnl default. | |
|       AS_VAR_APPEND([CPPFLAGS], [" -U_FORTIFY_SOURCE"]) | |
|       AS_VAR_APPEND([CPPFLAGS], [" -D_FORTIFY_SOURCE=1"])])], | |
|   [LOG4CPLUS_NDEBUG=-DNDEBUG]) | |
| AC_SUBST([LOG4CPLUS_NDEBUG]) | |
| 
 | |
| dnl Turn warnings on/off? | |
| 
 | |
| AC_ARG_ENABLE([warnings], | |
|   [AC_HELP_STRING([--enable-warnings], | |
|     [Use compiler warnings option, e.g. -Wall. Enabled by default.])], | |
|   [LOG4CPLUS_CHECK_YESNO([${enableval}], [--enable-warnings])], | |
|   [enable_warnings=yes]) | |
| 
 | |
| dnl Check for c/c++ compilers. | |
| 
 | |
| AC_PROG_CXX | |
| AC_PROG_CXXCPP | |
| AC_LANG([C++]) | |
| 
 | |
| AS_VAR_APPEND([CPPFLAGS], [" -D_GNU_SOURCE=1"]) | |
| 
 | |
| AS_CASE(["$target_os"], | |
|   [mingw*], | |
|   [dnl Undefining __STRICT_ANSI__ is a workaround for MinGW | |
|    dnl compilation problem.  C++ <cwchar> header does not compile in | |
|    dnl GCC 4.4.0 because some functions like swprintf() are not | |
|    dnl visible. | |
|    AS_VAR_APPEND([CPPFLAGS], [" -U__STRICT_ANSI__"]) | |
|    AS_VAR_APPEND([CPPFLAGS], [" -DWIN32"]) | |
|    AS_VAR_APPEND([CPPFLAGS], [" -D_WIN32"]) | |
|    AS_VAR_APPEND([CPPFLAGS], [" -DMINGW_HAS_SECURE_API=1"])], | |
|   [cygwin*], | |
|   [dnl Undefining __STRICT_ANSI__ is a workaround for compilation | |
|    dnl problem.  C <stdio.h> header does not define vsnprintf() or | |
|    dnl _vsnprintf(). | |
|    AS_VAR_APPEND([CPPFLAGS], [" -U__STRICT_ANSI__"])]) | |
| 
 | |
| AC_ARG_ENABLE([profiling], | |
|   [AS_HELP_STRING([--enable-profiling], | |
|     [Compile with profiling compiler options.])], | |
|   [LOG4CPLUS_CHECK_YESNO([${enableval}], [--enable-profiling])], | |
|   [enable_profiling=no]) | |
| LOG4CPLUS_PROFILING_LDFLAGS= | |
| LOG4CPLUS_PROFILING_CXXFLAGS= | |
| 
 | |
| dnl Checks for programs. | |
| 
 | |
| AX_COMPILER_VENDOR | |
| 
 | |
| AS_IF([test "x$enable_warnings" = "xyes"], | |
|   [AS_CASE([$ax_cv_cxx_compiler_vendor], | |
|     dnl Skip all warnings detection for Solaris Studio compilers. It | |
|     dnl adds the -v option and that breaks PIC support detection. | |
|     [sun], [], | |
|     [AX_CXXFLAGS_WARN_ALL])]) | |
| 
 | |
| AS_CASE([$ax_cv_cxx_compiler_vendor], | |
|   [gnu|clang], | |
|   [AS_IF([test "x$enable_warnings" = "xyes"], | |
|      [AX_CXXFLAGS_GCC_OPTION([-Wextra]) | |
|       dnl The -ansi switch sets __STRICT_ANSI__ which disables some | |
|       dnl useful function declarations in MinGW and Cygwin headers. | |
|       dnl AX_CXXFLAGS_GCC_OPTION([-ansi]) | |
|       AX_CXXFLAGS_GCC_OPTION([-pedantic]) | |
|       AX_CXXFLAGS_GCC_OPTION([-Wstrict-aliasing]) | |
|       AX_CXXFLAGS_GCC_OPTION([-Wstrict-overflow]) | |
|       dnl AX_CXXFLAGS_GCC_OPTION([-Weffc++]) | |
|       AX_CXXFLAGS_GCC_OPTION([-Woverloaded-virtual]) | |
|       AS_CASE(["$target_os"], | |
|         dnl Disable -Wold-style-cast for MinGW as it generates too | |
|         dnl much noise there. | |
|         [mingw*], [], | |
|         [AX_CXXFLAGS_GCC_OPTION([-Wold-style-cast])]) | |
|       dnl AX_CXXFLAGS_GCC_OPTION([-Wabi]) | |
|       AX_CXXFLAGS_GCC_OPTION([-Wc++0x-compat]) | |
|       AX_CXXFLAGS_GCC_OPTION([-Wc++11-compat]) | |
|       dnl AX_CXXFLAGS_GCC_OPTION([-Wconversion]) | |
|       AX_CXXFLAGS_GCC_OPTION([-Wundef]) | |
|       AX_CXXFLAGS_GCC_OPTION([-Wshadow]) | |
|       AX_CXXFLAGS_GCC_OPTION([-Wformat]) | |
|       AX_CXXFLAGS_GCC_OPTION([-Wsuggest-attribute=format]) | |
|       dnl AX_CXXFLAGS_GCC_OPTION([-Wsuggest-attribute=pure]) | |
|       dnl AX_CXXFLAGS_GCC_OPTION([-Wsuggest-attribute=const]) | |
|       AX_CXXFLAGS_GCC_OPTION([-Wsuggest-attribute=noreturn]) | |
|       AX_CXXFLAGS_GCC_OPTION([-Wno-variadic-macros])]) | |
| 
 | |
|    AS_IF([test "x$enable_debugging" = "xyes"], | |
|      [AX_CXXFLAGS_GCC_OPTION([-g3]) | |
|       AX_CXXFLAGS_GCC_OPTION([-fkeep-inline-functions]) | |
|       AX_CXXFLAGS_GCC_OPTION([-fstack-check]) | |
|       AX_CXXFLAGS_GCC_OPTION([-fstack-protector]) | |
|       dnl -Wstack-protector results into not too interesting warnings. | |
|       dnl AX_CXXFLAGS_GCC_OPTION([-Wstack-protector]) | |
|       AX_CXXFLAGS_GCC_OPTION([-ftrapv])], | |
|      [AC_REQUIRE([AC_PROG_GREP]) | |
|       AS_IF([AS_ECHO_N(["$CXXFLAGS"]) dnl | |
|              | $GREP -e ['\(^\|[[:space:]]\)-O\([^[:space:]]*\([[:space:]]\|$\)\)'] >/dev/null], | |
|         [], | |
|         [AX_CXXFLAGS_GCC_OPTION([-O2])])]) | |
| 
 | |
|    dnl Try -pg profiling option. | |
|    AS_IF([test "x$enable_profiling" = "xyes"], | |
|      [AX_CXXFLAGS_GCC_OPTION([-pg],[], | |
|         [LOG4CPLUS_PROFILING_LDFLAGS="-pg" | |
|          LOG4CPLUS_PROFILING_CXXFLAGS="-pg"]) | |
|       AX_CXXFLAGS_GCC_OPTION([-g3])]) | |
| 
 | |
|    dnl The --enable-auto-import and --enable-runtime-pseudo-reloc | |
|    dnl options are required for log4cplus to work when compiled with | |
|    dnl Cygwin's GCC 4.3.x. | |
|    AS_CASE(["$target_os"], | |
|      [cygwin*|mingw*], | |
|      [LDFLAGS="${LDFLAGS} -Wl,--enable-auto-import" | |
|       LDFLAGS="${LDFLAGS} -Wl,--enable-runtime-pseudo-reloc"])], | |
| 
 | |
|   [sun], | |
|   [AS_IF([test "x$enable_warnings" = "xyes"], | |
|      [dnl This test is disabled. See comment before | |
|       dnl AX_CXXFLAGS_WARN_ALL invocation. | |
|       dnl AX_CXXFLAGS_SUN_OPTION([-v]) | |
|       AX_CXXFLAGS_SUN_OPTION([+w])]) | |
| 
 | |
|    dnl Sun CC does support -g flag. | |
|    AS_IF([test "x$enable_debugging" = "xyes"], | |
|      [AX_CXXFLAGS_SUN_OPTION([-g])]) | |
| 
 | |
|    dnl Try -pg profiling option. | |
|    AS_IF([test "x$enable_profiling" = "xyes"], | |
|      [AX_CXXFLAGS_SUN_OPTION([-pg],[], | |
|         [LOG4CPLUS_PROFILING_LDFLAGS="-pg" | |
|          LOG4CPLUS_PROFILING_CXXFLAGS="-pg"]) | |
|       AX_CXXFLAGS_SUN_OPTION([-g])]) | |
| 
 | |
|    dnl This is here for compilation with _GNU_SOURCE=1 on Linux. Their | |
|    dnl headers then use zero length arrays which are not supported by | |
|    dnl C++ itself. | |
|    AX_CXXFLAGS_SUN_OPTION([-features=zla]) | |
| 
 | |
|    dnl This is for __func__ symbol. However it is disabled as it would | |
|    dnl force user code to use the switch as well. | |
|    dnl AX_CXXFLAGS_SUN_OPTION([-features=extensions]) | |
| 
 | |
|    dnl log4cplus does not work with the default C++ library | |
|    dnl implementation from Sun everywhere. E.g., on Linux it seems to | |
|    dnl be missing std::FILE, etc., in the std:: namespace but on | |
|    dnl Solaris it works. Thus we use the available STLport that they | |
|    dnl also ship unless the user specifies own | |
|    dnl -library=(stlport4|stdcxx4|Cstd) switch. | |
| 
 | |
|    AC_REQUIRE([AC_PROG_GREP]) | |
|    AS_IF([AS_ECHO_N(["$CXXFLAGS"]) dnl | |
|           | $GREP -e '-library=\(stlport4\|stdcxx4\|Cstd\)' >/dev/null], | |
|      [], | |
|      [AX_CXXFLAGS_SUN_OPTION([-library=stlport4])]) | |
| 
 | |
|    dnl Adding -library=Crun is always necessary. | |
|    AX_CXXFLAGS_SUN_OPTION([-library=Crun])]) | |
| 
 | |
| AX_DECLSPEC([LOG4CPLUS_DECLSPEC]) | |
| AS_IF([test "x$ac_cv_declspec" = "xyes" dnl | |
|   || test "x$ac_cv__attribute__visibility" = "xyes" dnl | |
|   || test "x$ac_cv__global" = "xyes"], | |
|   [AS_CASE([$ax_cv_cxx_compiler_vendor], | |
|     [gnu|clang], | |
|     [AX_CXXFLAGS_GCC_OPTION([-fvisibility=hidden])], | |
| 
 | |
|     [sun], | |
|     [AX_CXXFLAGS_SUN_OPTION([-xldscope=hidden])])]) | |
| 
 | |
| AX_C99_VARIADIC_MACROS | |
| AH_TEMPLATE([LOG4CPLUS_HAVE_C99_VARIADIC_MACROS]) | |
| AS_IF([test "x$ac_cv_c99_variadic_macros" = "xyes"], | |
|   [AC_DEFINE([LOG4CPLUS_HAVE_C99_VARIADIC_MACROS])]) | |
| 
 | |
| AX_GNU_VARIADIC_MACROS | |
| AH_TEMPLATE([LOG4CPLUS_HAVE_GNU_VARIADIC_MACROS]) | |
| AS_IF([test "x$ac_cv_gnu_variadic_macros" = "xyes"], | |
|   [AC_DEFINE([LOG4CPLUS_HAVE_GNU_VARIADIC_MACROS])]) | |
| 
 | |
| AX___FUNCTION___MACRO | |
| AH_TEMPLATE([LOG4CPLUS_HAVE_FUNCTION_MACRO]) | |
| AS_IF([test "x$ac_cv_have___function___macro" = "xyes"], | |
|   [AC_DEFINE([LOG4CPLUS_HAVE_FUNCTION_MACRO])]) | |
| 
 | |
| AX___PRETTY_FUNCTION___MACRO | |
| AH_TEMPLATE([LOG4CPLUS_HAVE_PRETTY_FUNCTION_MACRO]) | |
| AS_IF([test "x$ac_cv_have___pretty_function___macro" = "xyes"], | |
|   [AC_DEFINE([LOG4CPLUS_HAVE_PRETTY_FUNCTION_MACRO])]) | |
| 
 | |
| AX___FUNC___SYMBOL | |
| AH_TEMPLATE([LOG4CPLUS_HAVE_FUNC_SYMBOL]) | |
| AS_IF([test "x$ac_cv_have___func___symbol" = "xyes"], | |
|   [AC_DEFINE([LOG4CPLUS_HAVE_FUNC_SYMBOL])]) | |
| 
 | |
| 
 | |
| dnl Checks for libraries. | |
| 
 | |
| AC_SEARCH_LIBS([strerror], [cposix]) | |
| AC_SEARCH_LIBS([nanosleep], [rt]) | |
| AC_SEARCH_LIBS([clock_nanosleep], [rt posix4]) | |
| AC_SEARCH_LIBS([clock_gettime], [rt posix4]) | |
| dnl On some systems libcompat exists only as a static library which | |
| dnl breaks compilation of shared library log4cplus. | |
| dnl AC_SEARCH_LIBS([ftime], [compat]) | |
| AC_SEARCH_LIBS([gethostbyname], [nsl]) | |
| AC_SEARCH_LIBS([setsockopt], [socket]) | |
| AS_IF([test "x$with_iconv" = "xyes"], | |
|   [AC_SEARCH_LIBS([iconv_open], [iconv], [], | |
|      [AC_SEARCH_LIBS([libiconv_open], [iconv])])]) | |
| 
 | |
| dnl Windows/MinGW specific. | |
| 
 | |
| AC_LANG_PUSH([C]) | |
| AC_HAVE_LIBRARY([kernel32]) | |
| AC_HAVE_LIBRARY([advapi32]) | |
| AC_HAVE_LIBRARY([ws2_32]) | |
| AC_LANG_POP([C]) | |
| 
 | |
| dnl Checks for header files. | |
| 
 | |
| AC_HEADER_STDC | |
| 
 | |
| LOG4CPLUS_CHECK_HEADER([sys/types.h], [LOG4CPLUS_HAVE_SYS_TYPES_H]) | |
| LOG4CPLUS_CHECK_HEADER([sys/socket.h], [LOG4CPLUS_HAVE_SYS_SOCKET_H]) | |
| LOG4CPLUS_CHECK_HEADER([sys/time.h], [LOG4CPLUS_HAVE_SYS_TIME_H]) | |
| LOG4CPLUS_CHECK_HEADER([sys/timeb.h], [LOG4CPLUS_HAVE_SYS_TIMEB_H]) | |
| LOG4CPLUS_CHECK_HEADER([sys/stat.h], [LOG4CPLUS_HAVE_SYS_STAT_H]) | |
| LOG4CPLUS_CHECK_HEADER([sys/syscall.h], [LOG4CPLUS_HAVE_SYS_SYSCALL_H]) | |
| LOG4CPLUS_CHECK_HEADER([sys/file.h], [LOG4CPLUS_HAVE_SYS_FILE_H]) | |
| LOG4CPLUS_CHECK_HEADER([syslog.h], [LOG4CPLUS_HAVE_SYSLOG_H]) | |
| LOG4CPLUS_CHECK_HEADER([arpa/inet.h], [LOG4CPLUS_HAVE_ARPA_INET_H]) | |
| LOG4CPLUS_CHECK_HEADER([netinet/in.h], [LOG4CPLUS_HAVE_NETINET_IN_H]) | |
| LOG4CPLUS_CHECK_HEADER([netinet/tcp.h], [LOG4CPLUS_HAVE_NETINET_TCP_H]) | |
| LOG4CPLUS_CHECK_HEADER([netdb.h], [LOG4CPLUS_HAVE_NETDB_H]) | |
| LOG4CPLUS_CHECK_HEADER([unistd.h], [LOG4CPLUS_HAVE_UNISTD_H]) | |
| LOG4CPLUS_CHECK_HEADER([fcntl.h], [LOG4CPLUS_HAVE_FCNTL_H]) | |
| LOG4CPLUS_CHECK_HEADER([stdio.h], [LOG4CPLUS_HAVE_STDIO_H]) | |
| LOG4CPLUS_CHECK_HEADER([stdarg.h], [LOG4CPLUS_HAVE_STDARG_H]) | |
| LOG4CPLUS_CHECK_HEADER([stdlib.h], [LOG4CPLUS_HAVE_STDLIB_H]) | |
| LOG4CPLUS_CHECK_HEADER([wchar.h], [LOG4CPLUS_HAVE_WCHAR_H]) | |
| LOG4CPLUS_CHECK_HEADER([time.h], [LOG4CPLUS_HAVE_TIME_H]) | |
| LOG4CPLUS_CHECK_HEADER([errno.h], [LOG4CPLUS_HAVE_ERRNO_H]) | |
| LOG4CPLUS_CHECK_HEADER([limits.h], [LOG4CPLUS_HAVE_LIMITS_H]) | |
| AS_IF([test "x$with_iconv" = "xyes"], | |
|   [LOG4CPLUS_CHECK_HEADER([iconv.h], [LOG4CPLUS_HAVE_ICONV_H])]) | |
| 
 | |
| dnl Check for the existance of type socklen_t. | |
| 
 | |
| AX_TYPE_SOCKLEN_T | |
| 
 | |
| dnl Check for single-threaded compilation | |
| 
 | |
| AH_TEMPLATE([LOG4CPLUS_USE_PTHREADS]) | |
| AC_ARG_ENABLE([threads], | |
|   [AS_HELP_STRING([--enable-threads=yes/no], | |
|     [Use this option to create a singled-threaded version of this library])], | |
|   [LOG4CPLUS_CHECK_YESNO([${enableval}], [--enable-threads])], | |
|   [enable_threads=yes]) | |
| 
 | |
| AS_IF([test "x$enable_threads" = "xyes"], | |
| dnl Multi threaded library. | |
|   [AC_MSG_NOTICE([Creating a multi-threaded library.]) | |
|    AC_MSG_NOTICE([Threads support:]) | |
| 
 | |
|    AS_VAR_APPEND([CPPFLAGS], [" -D_REENTRANT"]) | |
| 
 | |
|    AS_CASE(["$target_os"], | |
|      [mingw*], [], | |
|      [AX_PTHREAD_CXX([], | |
|        [AC_MSG_ERROR([Requested threads support but no threads were found.])])]) | |
| 
 | |
|    AS_VAR_APPEND([CXXFLAGS], [" $PTHREAD_CXXFLAGS"]) | |
|    AS_VAR_APPEND([LIBS], [" $PTHREAD_LIBS"]) | |
| 
 | |
|    dnl required on HP-UX | |
|    AC_SEARCH_LIBS([sem_init], [rt]) | |
| 
 | |
|    AS_CASE([$ax_cv_cxx_compiler_vendor], | |
|      [gnu|clang], | |
|      [dnl GCC, empty case to avoid false positive for -qtls check. | |
|      ], | |
|      [sun], | |
|      [dnl Check for Sun's compiler's TLS option. | |
|       AX_CXXFLAGS_SUN_OPTION([-xthreadvar])], | |
|      [ibm], | |
|      [dnl Check for IBM's compiler's TLS option. | |
|       AX_CXXFLAGS_AIX_OPTION([-qtls])]) | |
| 
 | |
|    AX__SYNC | |
|    AH_TEMPLATE([LOG4CPLUS_HAVE___SYNC_ADD_AND_FETCH]) | |
|    AS_IF([test "x$ac_cv___sync_add_and_fetch" = "xyes"], | |
|      [AC_DEFINE([LOG4CPLUS_HAVE___SYNC_ADD_AND_FETCH])]) | |
|    AH_TEMPLATE([LOG4CPLUS_HAVE___SYNC_SUB_AND_FETCH]) | |
|    AS_IF([test "x$ac_cv___sync_sub_and_fetch" = "xyes"], | |
|      [AC_DEFINE([LOG4CPLUS_HAVE___SYNC_SUB_AND_FETCH])]) | |
|    AH_TEMPLATE([LOG4CPLUS_HAVE_CXX11_ATOMICS]) | |
|    AS_IF([test "x$ac_cv_cxx11_atomics" = "xyes"], | |
|      [AC_DEFINE([LOG4CPLUS_HAVE_CXX11_ATOMICS])]) | |
| 
 | |
|    AX_TLS_SUPPORT | |
|    AH_TEMPLATE([LOG4CPLUS_HAVE_TLS_SUPPORT]) | |
|    AH_TEMPLATE([LOG4CPLUS_THREAD_LOCAL_VAR]) | |
|    AS_IF([test "x$ac_cv_declspec_thread" = "xyes"], | |
|      [AC_DEFINE([LOG4CPLUS_HAVE_TLS_SUPPORT]) | |
|       AC_DEFINE([LOG4CPLUS_THREAD_LOCAL_VAR], [__declspec(thread)])], | |
|      [AS_IF([test "x$ac_cv__thread_keyword" = "xyes"], | |
|        [AC_DEFINE([LOG4CPLUS_HAVE_TLS_SUPPORT]) | |
|         AC_DEFINE([LOG4CPLUS_THREAD_LOCAL_VAR], [__thread])])])], | |
| 
 | |
| dnl Single threaded library. | |
|   [AC_MSG_NOTICE([Creating a single-threaded library]) | |
|    AC_DEFINE([LOG4CPLUS_SINGLE_THREADED], [1], | |
|      [Define if this is a single-threaded library.])]) | |
| 
 | |
| AM_CONDITIONAL([MULTI_THREADED], [test "x$enable_threads" = "xyes"]) | |
| 
 | |
| dnl Library functions checks are here because preprocessor symbols | |
| dnl like _REENTRANT can influence availability of some functions. | |
| 
 | |
| dnl Checks for library functions. | |
| 
 | |
| LOG4CPLUS_CHECK_FUNCS([gmtime_r], [LOG4CPLUS_HAVE_GMTIME_R]) | |
| LOG4CPLUS_CHECK_FUNCS([localtime_r], [LOG4CPLUS_HAVE_LOCALTIME_R]) | |
| LOG4CPLUS_CHECK_FUNCS([gettimeofday], [LOG4CPLUS_HAVE_GETTIMEOFDAY]) | |
| LOG4CPLUS_CHECK_FUNCS([nanosleep], [LOG4CPLUS_HAVE_NANOSLEEP]) | |
| LOG4CPLUS_CHECK_FUNCS([clock_nanosleep], [LOG4CPLUS_HAVE_CLOCK_NANOSLEEP]) | |
| LOG4CPLUS_CHECK_FUNCS([clock_gettime], [LOG4CPLUS_HAVE_CLOCK_GETTIME]) | |
| LOG4CPLUS_CHECK_FUNCS([getpid], [LOG4CPLUS_HAVE_GETPID]) | |
| LOG4CPLUS_CHECK_FUNCS([ftime], [LOG4CPLUS_HAVE_FTIME]) | |
| LOG4CPLUS_CHECK_FUNCS([stat], [LOG4CPLUS_HAVE_STAT]) | |
| LOG4CPLUS_CHECK_FUNCS([lstat], [LOG4CPLUS_HAVE_LSTAT]) | |
| LOG4CPLUS_CHECK_FUNCS([fcntl], [LOG4CPLUS_HAVE_FCNTL]) | |
| LOG4CPLUS_CHECK_FUNCS([lockf], [LOG4CPLUS_HAVE_LOCKF]) | |
| LOG4CPLUS_CHECK_FUNCS([flock], [LOG4CPLUS_HAVE_FLOCK]) | |
| LOG4CPLUS_CHECK_FUNCS([htons], [LOG4CPLUS_HAVE_HTONS]) | |
| LOG4CPLUS_CHECK_FUNCS([ntohs], [LOG4CPLUS_HAVE_NTOHS]) | |
| LOG4CPLUS_CHECK_FUNCS([htonl], [LOG4CPLUS_HAVE_HTONL]) | |
| LOG4CPLUS_CHECK_FUNCS([ntohl], [LOG4CPLUS_HAVE_NTOHL]) | |
| LOG4CPLUS_CHECK_FUNCS([mbstowcs], [LOG4CPLUS_HAVE_MBSTOWCS]) | |
| LOG4CPLUS_CHECK_FUNCS([wcstombs], [LOG4CPLUS_HAVE_WCSTOMBS]) | |
| AS_IF([test "x$with_iconv" = "xyes"], | |
|   [LOG4CPLUS_CHECK_FUNCS([iconv_open], [LOG4CPLUS_HAVE_ICONV_OPEN]) | |
|    LOG4CPLUS_CHECK_FUNCS([iconv_close], [LOG4CPLUS_HAVE_ICONV_CLOSE]) | |
|    LOG4CPLUS_CHECK_FUNCS([iconv], [LOG4CPLUS_HAVE_ICONV]) | |
|    LOG4CPLUS_CHECK_FUNCS([libiconv_open], [LOG4CPLUS_HAVE_ICONV_OPEN]) | |
|    LOG4CPLUS_CHECK_FUNCS([libiconv_close], [LOG4CPLUS_HAVE_ICONV_CLOSE]) | |
|    LOG4CPLUS_CHECK_FUNCS([libiconv], [LOG4CPLUS_HAVE_ICONV])]) | |
| 
 | |
| dnl Various functions used by snprintf.cxx. | |
| 
 | |
| LOG4CPLUS_CHECK_FUNCS([vsnprintf], [LOG4CPLUS_HAVE_VSNPRINTF]) | |
| LOG4CPLUS_CHECK_FUNCS([_vsnprintf], [LOG4CPLUS_HAVE__VSNPRINTF]) | |
| LOG4CPLUS_CHECK_FUNCS([vsprintf_s], [LOG4CPLUS_HAVE_VSPRINTF_S]) | |
| LOG4CPLUS_CHECK_FUNCS([vswprintf_s], [LOG4CPLUS_HAVE_VSWPRINTF_S]) | |
| LOG4CPLUS_CHECK_FUNCS([vfprintf_s], [LOG4CPLUS_HAVE_VFPRINTF_S]) | |
| LOG4CPLUS_CHECK_FUNCS([vfwprintf_s], [LOG4CPLUS_HAVE_VFWPRINTF_S]) | |
| LOG4CPLUS_CHECK_FUNCS([_vsnprintf_s], [LOG4CPLUS_HAVE__VSNPRINTF_S]) | |
| LOG4CPLUS_CHECK_FUNCS([_vsnwprintf_s], [LOG4CPLUS_HAVE__VSNWPRINTF_S]) | |
| 
 | |
| dnl These should not be necessary, they ought to be in std:: namespace | |
| dnl via the <cstdio>, <cwchar> headers. | |
| 
 | |
| dnl AH_TEMPLATE([LOG4CPLUS_HAVE_VSPRINTF]) | |
| dnl AC_CHECK_FUNCS([vsprintf], [AC_DEFINE([LOG4CPLUS_HAVE_VSPRINTF])]) | |
| 
 | |
| dnl AH_TEMPLATE([LOG4CPLUS_HAVE_VFPRINTF]) | |
| dnl AC_CHECK_FUNCS([vfprintf], [AC_DEFINE([LOG4CPLUS_HAVE_VFPRINTF])]) | |
| 
 | |
| dnl AH_TEMPLATE([LOG4CPLUS_HAVE_VSWPRINTF]) | |
| dnl AC_CHECK_FUNCS([vswprintf], [AC_DEFINE([LOG4CPLUS_HAVE_VSWPRINTF])]) | |
| 
 | |
| AH_TEMPLATE([LOG4CPLUS_HAVE_ENAMETOOLONG]) | |
| AC_CACHE_CHECK([for ENAMETOOLONG], [ax_cv_have_enametoolong], | |
|   [AC_COMPILE_IFELSE( | |
|     [AC_LANG_PROGRAM([#include <errno.h>], [int value = ENAMETOOLONG;])], | |
|     [ax_cv_have_enametoolong=yes], | |
|     [ax_cv_have_enametoolong=no])]) | |
| AS_IF([test "x$ax_cv_have_enametoolong" = "xyes"], | |
|   [AC_DEFINE([LOG4CPLUS_HAVE_ENAMETOOLONG])]) | |
| 
 | |
| AH_TEMPLATE([LOG4CPLUS_HAVE_GETADDRINFO]) | |
| AX_GETADDRINFO | |
| AS_IF([test "x$ax_cv_have_getaddrinfo" = "xyes"], | |
|   [AC_DEFINE([LOG4CPLUS_HAVE_GETADDRINFO])]) | |
| 
 | |
| AH_TEMPLATE([LOG4CPLUS_HAVE_GETHOSTBYNAME_R]) | |
| AX_GETHOSTBYNAME_R | |
| AS_IF([test "x$ax_cv_have_gethostbyname_r" = "xyes"], | |
|   [AC_DEFINE([LOG4CPLUS_HAVE_GETHOSTBYNAME_R])]) | |
| 
 | |
| AH_TEMPLATE([LOG4CPLUS_HAVE_GETTID]) | |
| AC_CACHE_CHECK([for gettid], [ax_cv_have_gettid], | |
|   [AC_COMPILE_IFELSE( | |
|     [AC_LANG_PROGRAM([#include <sys/types.h> | |
| #include <sys/syscall.h> | |
| #include <unistd.h>], [int rv = syscall(SYS_gettid);])], | |
|     [ax_cv_have_gettid=yes], | |
|     [ax_cv_have_gettid=no])]) | |
| AS_IF([test "x$ax_cv_have_gettid" = "xyes"], | |
|   [AC_DEFINE([LOG4CPLUS_HAVE_GETTID])]) | |
| 
 | |
| dnl Qt4 setup using pkg-config. | |
| 
 | |
| PKG_PROG_PKG_CONFIG | |
| 
 | |
| AC_ARG_WITH([qt], | |
|   [AS_HELP_STRING([--with-qt], | |
|     [Build liblog4cplusqt4debugappender.])], | |
|   [LOG4CPLUS_CHECK_YESNO([${withval}], [--with-qt])], | |
|   [with_qt=no]) | |
| 
 | |
| AS_IF([test "x$with_qt" = "xyes"], | |
|   [PKG_CHECK_MODULES([QT], [QtCore >= 4.0.0])], | |
|   [QT_CFLAGS= | |
|    QT_LIBS=]) | |
| AM_CONDITIONAL([QT], [test "x$with_qt" = "xyes"]) | |
| AC_SUBST([QT_CFLAGS]) | |
| AC_SUBST([QT_LIBS]) | |
| 
 | |
| dnl Libtool setup. | |
| dnl Must be latest to catch rpath compiled in by changes made during | |
| dnl checks before. | |
| 
 | |
| LT_PREREQ([2.4.2]) | |
| LT_INIT([win32-dll]) | |
| 
 | |
| AH_TOP([#ifndef LOG4CPLUS_CONFIG_H]) | |
| AH_TOP([#define LOG4CPLUS_CONFIG_H]) | |
| AH_BOTTOM([#endif // LOG4CPLUS_CONFIG_H]) | |
| 
 | |
| AC_CONFIG_HEADERS([include/log4cplus/config.h]) | |
| AC_CONFIG_HEADERS([include/log4cplus/config/defines.hxx]) | |
| AC_CONFIG_FILES([Makefile | |
|            include/Makefile | |
|            src/Makefile | |
|            loggingserver/Makefile | |
|            qt4debugappender/Makefile | |
|            tests/Makefile | |
|            tests/appender_test/Makefile | |
|            tests/configandwatch_test/Makefile | |
|            tests/customloglevel_test/Makefile | |
|            tests/fileappender_test/Makefile | |
|            tests/filter_test/Makefile | |
|            tests/hierarchy_test/Makefile | |
|            tests/loglog_test/Makefile | |
|            tests/ndc_test/Makefile | |
|            tests/ostream_test/Makefile | |
|            tests/patternlayout_test/Makefile | |
|            tests/performance_test/Makefile | |
|            tests/priority_test/Makefile | |
|            tests/propertyconfig_test/Makefile | |
|            tests/socket_test/Makefile | |
|            tests/thread_test/Makefile | |
|            tests/timeformat_test/Makefile]) | |
| 
 | |
| AC_SUBST([LOG4CPLUS_PROFILING_LDFLAGS]) | |
| AC_SUBST([LOG4CPLUS_PROFILING_CXXFLAGS]) | |
| 
 | |
| AC_OUTPUT([log4cplus.pc])
 |