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.
		
		
		
		
		
			
		
			
				
					
					
						
							479 lines
						
					
					
						
							18 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							479 lines
						
					
					
						
							18 KiB
						
					
					
				
								#                                               -*- Autoconf -*-
							 | 
						|
								# Process this file with autoconf to produce a configure script.
							 | 
						|
								#
							 | 
						|
								
							 | 
						|
								#
							 | 
						|
								# Licensed to the Apache Software Foundation (ASF) under one or more
							 | 
						|
								# contributor license agreements.  See the NOTICE file distributed with
							 | 
						|
								# this work for additional information regarding copyright ownership.
							 | 
						|
								# The ASF licenses this file to You under the Apache License, Version 2.0
							 | 
						|
								# (the "License"); you may not use this file except in compliance with
							 | 
						|
								# the License.  You may obtain a copy of the License at
							 | 
						|
								#
							 | 
						|
								#      http://www.apache.org/licenses/LICENSE-2.0
							 | 
						|
								#
							 | 
						|
								# Unless required by applicable law or agreed to in writing, software
							 | 
						|
								# distributed under the License is distributed on an "AS IS" BASIS,
							 | 
						|
								# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
							 | 
						|
								# See the License for the specific language governing permissions and
							 | 
						|
								# limitations under the License.
							 | 
						|
								#
							 | 
						|
								
							 | 
						|
								#
							 | 
						|
								# $Id: configure.ac 1662881 2015-02-28 02:00:45Z scantor $
							 | 
						|
								#
							 | 
						|
								
							 | 
						|
								AC_PREREQ(2.60)
							 | 
						|
								AC_INIT([xerces-c],[3.1.2])
							 | 
						|
								AC_CONFIG_SRCDIR([src/Makefile.am])
							 | 
						|
								AC_CONFIG_LIBOBJ_DIR([src])
							 | 
						|
								AC_CONFIG_AUX_DIR([config])
							 | 
						|
								AC_CONFIG_MACRO_DIR([m4])
							 | 
						|
								AC_CONFIG_HEADERS([config.h src/xercesc/util/Xerces_autoconf_config.hpp])
							 | 
						|
								AC_CONFIG_FILES([Makefile \
							 | 
						|
								                 src/Makefile \
							 | 
						|
								                 src/xercesc/util/MsgLoaders/MsgCatalog/Makefile \
							 | 
						|
								                 tests/Makefile \
							 | 
						|
								                 samples/Makefile \
							 | 
						|
										 xerces-c.pc])
							 | 
						|
								
							 | 
						|
								# Check the target system
							 | 
						|
								AC_CANONICAL_HOST
							 | 
						|
								
							 | 
						|
								# Initialize automake
							 | 
						|
								AM_INIT_AUTOMAKE([foreign subdir-objects dist-bzip2 tar-ustar])
							 | 
						|
								AM_MAINTAINER_MODE
							 | 
						|
								
							 | 
						|
								# Check if rpath is disabled
							 | 
						|
								AC_MSG_CHECKING(whether to use rpath)
							 | 
						|
								AC_ARG_ENABLE(rpath,
							 | 
						|
									[AC_HELP_STRING([--disable-rpath],
							 | 
						|
											[Patches libtool to not use rpath in the libraries produced.])],
							 | 
						|
									[xerces_cv_rpath="$enable_rpath"], [xerces_cv_rpath="yes"])
							 | 
						|
								AC_MSG_RESULT($xerces_cv_rpath)
							 | 
						|
								
							 | 
						|
								# Checks for programs.
							 | 
						|
								AC_PROG_CXX
							 | 
						|
								# Use the C++ compiler for the compile tests
							 | 
						|
								AC_LANG(C++)
							 | 
						|
								# used by "make check"
							 | 
						|
								AC_PROG_SED
							 | 
						|
								#it would be nice to also check for PERL...
							 | 
						|
								#AC_PROG_PERL
							 | 
						|
								
							 | 
						|
								#skip detection of Fortran
							 | 
						|
								m4_undefine([AC_PROG_F77])
							 | 
						|
								m4_defun([AC_PROG_F77],[])
							 | 
						|
								
							 | 
						|
								AC_PROG_LN_S
							 | 
						|
								AC_LIBTOOL_WIN32_DLL
							 | 
						|
								AC_PROG_LIBTOOL
							 | 
						|
								AM_PROG_CC_C_O
							 | 
						|
								
							 | 
						|
								AS_IF([test x$AR = xfalse],
							 | 
						|
									AC_MSG_ERROR([Cannot find a valid 'ar' tool]))
							 | 
						|
								
							 | 
						|
								# Patch libtool to not use rpath if requested.
							 | 
						|
								#
							 | 
						|
								AC_CONFIG_COMMANDS([libtool-rpath-patch],
							 | 
						|
								[if test "$libtool_patch_use_rpath" = "no"; then
							 | 
						|
								   echo config.status: patching libtool to not use rpath
							 | 
						|
								   sed < libtool > libtool-2 's/^hardcode_libdir_flag_spec.*$'/'hardcode_libdir_flag_spec=" -D__LIBTOOL_NO_RPATH__ "/'
							 | 
						|
								   mv libtool-2 libtool
							 | 
						|
								   chmod 755 libtool
							 | 
						|
								fi],
							 | 
						|
								[libtool_patch_use_rpath=$xerces_cv_rpath])
							 | 
						|
								
							 | 
						|
								# Export information on whether we are building static/shared libraries.
							 | 
						|
								# enable_shared and enable_static are defined by AC_PROG_LIBTOOL.
							 | 
						|
								#
							 | 
						|
								AC_SUBST([BUILD_SHARED], [$enable_shared])
							 | 
						|
								AC_SUBST([BUILD_STATIC], [$enable_static])
							 | 
						|
								
							 | 
						|
								# Checks for header files.
							 | 
						|
								AC_HEADER_STDC
							 | 
						|
								AC_HEADER_TIME
							 | 
						|
								AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h inttypes.h langinfo.h limits.h locale.h \
							 | 
						|
								                  memory.h netdb.h netinet/in.h nl_types.h stddef.h stdint.h stdlib.h \
							 | 
						|
								                  string.h strings.h \
							 | 
						|
								                  sys/param.h sys/socket.h sys/time.h sys/timeb.h \
							 | 
						|
								                  unistd.h wchar.h wctype.h \
							 | 
						|
								                  CoreServices/CoreServices.h \
							 | 
						|
								                  endian.h machine/endian.h arpa/nameser_compat.h \
							 | 
						|
								                 ])
							 | 
						|
								
							 | 
						|
								# Checks for typedefs, structures, and compiler characteristics.
							 | 
						|
								AC_HEADER_STDBOOL
							 | 
						|
								AC_C_CONST
							 | 
						|
								AC_C_INLINE
							 | 
						|
								AC_C_VOLATILE
							 | 
						|
								
							 | 
						|
								AC_CHECK_SIZEOF(wchar_t)
							 | 
						|
								AC_CHECK_TYPE(size_t)
							 | 
						|
								AC_CHECK_TYPE(ssize_t)
							 | 
						|
								
							 | 
						|
								AC_TYPE_OFF_T
							 | 
						|
								AC_TYPE_SIZE_T
							 | 
						|
								
							 | 
						|
								XERCES_INT_TYPES
							 | 
						|
								
							 | 
						|
								AC_CXX_HAVE_BOOL
							 | 
						|
								AC_CXX_HAVE_NAMESPACES
							 | 
						|
								AC_CXX_HAVE_STD_NAMESPACE
							 | 
						|
								AC_CXX_HAVE_STD_LIBS
							 | 
						|
								AC_CXX_HAVE_LSTRING
							 | 
						|
								
							 | 
						|
								ACX_PTHREAD
							 | 
						|
								
							 | 
						|
								# Checks for library functions.
							 | 
						|
								#AC_FUNC_ERROR_AT_LINE
							 | 
						|
								#AC_FUNC_MALLOC
							 | 
						|
								#AC_FUNC_MEMCMP
							 | 
						|
								#AC_FUNC_STRCOLL
							 | 
						|
								#AC_FUNC_STRTOD
							 | 
						|
								AC_CHECK_FUNCS([getcwd pathconf realpath \
							 | 
						|
										getaddrinfo gethostbyaddr gethostbyname socket \
							 | 
						|
										clock_gettime ftime gettimeofday \
							 | 
						|
										memmove memset nl_langinfo setlocale localeconv \
							 | 
						|
										strcasecmp strncasecmp stricmp strnicmp strchr strdup \
							 | 
						|
										strrchr strstr strtol strtoul \
							 | 
						|
										towupper towlower mblen \
							 | 
						|
								        wcsupr wcslwr wcsnicmp wcsicmp \
							 | 
						|
										])
							 | 
						|
								
							 | 
						|
								# Some Unix systems, like Gnu Hurd, don't define PATH_MAX
							 | 
						|
								AC_MSG_CHECKING([for PATH_MAX])
							 | 
						|
								AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <limits.h>]],
							 | 
						|
								                                    [[char dummy[PATH_MAX];]])],
							 | 
						|
								                   [
							 | 
						|
								                      AC_MSG_RESULT([yes])
							 | 
						|
								                      AC_DEFINE_UNQUOTED([HAVE_PATH_MAX], 1, [Define to 1 if you have the PATH_MAX macro.])
							 | 
						|
								                    ],
							 | 
						|
								                    [
							 | 
						|
								                      AC_MSG_RESULT([no])
							 | 
						|
								                      AC_DEFINE_UNQUOTED([HAVE_PATH_MAX], 0, [Define to 1 if you have the PATH_MAX macro.])
							 | 
						|
								                    ]
							 | 
						|
								                 )
							 | 
						|
								
							 | 
						|
								# The check for mbrlen, wcsrtombs and mbsrtowcs gives a false
							 | 
						|
								# positive on HP-UX, so we use a different snippet to set the
							 | 
						|
								# corresponding macro
							 | 
						|
								AC_MSG_CHECKING([for mbrlen])
							 | 
						|
								AC_COMPILE_IFELSE(  [AC_LANG_PROGRAM([[#include <wchar.h>]],
							 | 
						|
								                                     [[mbstate_t st; mbrlen( "t", 5, &st );]])],
							 | 
						|
								                    [
							 | 
						|
								                      AC_MSG_RESULT([yes])
							 | 
						|
								                      AC_DEFINE_UNQUOTED([HAVE_MBRLEN], 1, [Define to 1 if you have the `mbrlen' function.])
							 | 
						|
								                    ],
							 | 
						|
								                    [
							 | 
						|
								                      AC_MSG_RESULT([no])
							 | 
						|
								                      AC_DEFINE_UNQUOTED([HAVE_MBRLEN], 0, [Define to 1 if you have the `mbrlen' function.])
							 | 
						|
								                    ]
							 | 
						|
								                 )
							 | 
						|
								AC_MSG_CHECKING([for wcsrtombs])
							 | 
						|
								AC_COMPILE_IFELSE(  [AC_LANG_PROGRAM([[#include <wchar.h>]],
							 | 
						|
								                                     [[mbstate_t st; char buffer[2]; const wchar_t* src=0; wcsrtombs(buffer, &src, 2, &st);]])],
							 | 
						|
								                    [
							 | 
						|
								                      AC_MSG_RESULT([yes])
							 | 
						|
								                      AC_DEFINE_UNQUOTED([HAVE_WCSRTOMBS], 1, [Define to 1 if you have the `wcsrtombs' function.])
							 | 
						|
								                    ],
							 | 
						|
								                    [
							 | 
						|
								                      AC_MSG_RESULT([no])
							 | 
						|
								                      AC_DEFINE_UNQUOTED([HAVE_WCSRTOMBS], 0, [Define to 1 if you have the `wcsrtombs' function.])
							 | 
						|
								                    ]
							 | 
						|
								                 )
							 | 
						|
								AC_MSG_CHECKING([for mbsrtowcs])
							 | 
						|
								AC_COMPILE_IFELSE(  [AC_LANG_PROGRAM([[#include <wchar.h>]],
							 | 
						|
								                                     [[mbstate_t st; wchar_t buffer[2]; const char* src=0; mbsrtowcs(buffer, &src, 2, &st);]])],
							 | 
						|
								                    [
							 | 
						|
								                      AC_MSG_RESULT([yes])
							 | 
						|
								                      AC_DEFINE_UNQUOTED([HAVE_MBSRTOWCS], 1, [Define to 1 if you have the `mbsrtowcs' function.])
							 | 
						|
								                    ],
							 | 
						|
								                    [
							 | 
						|
								                      AC_MSG_RESULT([no])
							 | 
						|
								                      AC_DEFINE_UNQUOTED([HAVE_MBSRTOWCS], 0, [Define to 1 if you have the `mbsrtowcs' function.])
							 | 
						|
								                    ]
							 | 
						|
								                 )
							 | 
						|
								
							 | 
						|
								AC_MSG_CHECKING([if iconv uses const pointers])
							 | 
						|
								AC_COMPILE_IFELSE(  [AC_LANG_PROGRAM([[#include <iconv.h>]],
							 | 
						|
								                                     [[
							 | 
						|
								                                       const char *fromPtr=0;
							 | 
						|
								                                       size_t     fromLen=0;
							 | 
						|
								                                       char       *toPtr=0;
							 | 
						|
								                                       size_t     toLen=0;
							 | 
						|
								                                       iconv_t    cv=0;
							 | 
						|
								                                       iconv(cv, &fromPtr, &fromLen, &toPtr, &toLen);
							 | 
						|
								                                      ]])],
							 | 
						|
								                    [
							 | 
						|
								                      AC_MSG_RESULT([yes])
							 | 
						|
								                      AC_DEFINE_UNQUOTED([ICONV_USES_CONST_POINTER], 1, [Define to 1 if you have to use const char* with iconv, to 0 if you must use char*.])
							 | 
						|
								                    ],
							 | 
						|
								                    [
							 | 
						|
								                      AC_MSG_RESULT([no])
							 | 
						|
								                      AC_DEFINE_UNQUOTED([ICONV_USES_CONST_POINTER], 0, [Define to 1 if you have to use const char* with iconv, to 0 if you must use char*.])
							 | 
						|
								                    ]
							 | 
						|
								                 )
							 | 
						|
								
							 | 
						|
								AC_SUBST([SHREXT], [$shrext_cmds])
							 | 
						|
								
							 | 
						|
								#
							 | 
						|
								# Orchestrate the replacement of missing functions
							 | 
						|
								#
							 | 
						|
								AC_REPLACE_FUNCS([stricmp strnicmp towlower towupper])
							 | 
						|
								
							 | 
						|
								abs_top_srcdir=`cd $srcdir; pwd`
							 | 
						|
								AC_SUBST(abs_top_srcdir)
							 | 
						|
								abs_top_builddir=`pwd`
							 | 
						|
								AC_SUBST(abs_top_builddir)
							 | 
						|
								
							 | 
						|
								######################################################
							 | 
						|
								# Look for availability of available packages
							 | 
						|
								######################################################
							 | 
						|
								
							 | 
						|
								XERCES_PRETTY_MAKE
							 | 
						|
								XERCES_PATH_DELIMITERS
							 | 
						|
								
							 | 
						|
								XERCES_MUTEXMGR_SELECTION
							 | 
						|
								XERCES_NETACCESSOR_SELECTION
							 | 
						|
								XERCES_TRANSCODER_SELECTION
							 | 
						|
								XERCES_MSGLOADER_SELECTION
							 | 
						|
								XERCES_FILEMGR_SELECTION
							 | 
						|
								
							 | 
						|
								# Allow the user to specify the pkgconfig directory.
							 | 
						|
								#
							 | 
						|
								AC_ARG_WITH(pkgconfigdir,
							 | 
						|
									AC_HELP_STRING([--with-pkgconfigdir=DIR],[Specify location of pkgconfig dir (default is libdir/pkgconfig)]),
							 | 
						|
									[pkgconfigdir=${withval}],
							 | 
						|
									[pkgconfigdir='${libdir}/pkgconfig'])
							 | 
						|
								
							 | 
						|
								AC_SUBST([pkgconfigdir])
							 | 
						|
								
							 | 
						|
								# Allow the user to disable the SSE2 support
							 | 
						|
								#
							 | 
						|
								AC_ARG_ENABLE(sse2,
							 | 
						|
								    AC_HELP_STRING([--disable-sse2],[disable SSE2 optimizations]),
							 | 
						|
								    [have_sse2=${enableval}],
							 | 
						|
								    [have_sse2=yes])
							 | 
						|
								
							 | 
						|
								######################################################
							 | 
						|
								# Define some namespace-protected macros for use in the
							 | 
						|
								# publicly visible Xerces_autoconf_config.h file.
							 | 
						|
								######################################################
							 | 
						|
								
							 | 
						|
								AC_DEFINE([XERCES_AUTOCONF], 1, [Define to true if autoconf is used in this configuration])
							 | 
						|
								
							 | 
						|
								AS_IF([test x$ac_cv_header_sys_types_h = xyes],
							 | 
						|
									AC_DEFINE([XERCES_HAVE_SYS_TYPES_H], 1, [Define to 1 if we have sys/types.h]))
							 | 
						|
								AS_IF([test x$ac_cv_header_inttypes_h = xyes],
							 | 
						|
									AC_DEFINE([XERCES_HAVE_INTTYPES_H],    1, [Define to 1 if we have inttypes.h]))
							 | 
						|
								
							 | 
						|
								case $host in
							 | 
						|
								*-*-msdos* | *-*-mingw32* | *-*-cygwin* | *-*-windows* )
							 | 
						|
									platform_export="__declspec(dllexport)"
							 | 
						|
									platform_import="__declspec(dllimport)"
							 | 
						|
									;;
							 | 
						|
								* )
							 | 
						|
									platform_export=""
							 | 
						|
									platform_import=""
							 | 
						|
									;;
							 | 
						|
								esac
							 | 
						|
								
							 | 
						|
								AC_DEFINE_UNQUOTED([XERCES_PLATFORM_EXPORT], [$platform_export], [Define as the platform's export attribute])
							 | 
						|
								AC_DEFINE_UNQUOTED([XERCES_PLATFORM_IMPORT], [$platform_import], [Define as the platform's import attribute])
							 | 
						|
								
							 | 
						|
								AS_IF([test ! $ac_cv_cxx_have_bool],
							 | 
						|
									AC_DEFINE([XERCES_NO_NATIVE_BOOL], 1, [Define if there is no native bool support in this environment]))
							 | 
						|
								
							 | 
						|
								AS_IF([test $ac_cv_cxx_have_lstring],
							 | 
						|
									AC_DEFINE([XERCES_LSTRSUPPORT], 1, [Define if there is support for L"widestring"]))
							 | 
						|
								
							 | 
						|
								# check if the Windows API is defined as using wchar_t or unsigned short; if it's wchar_t, we need to map XMLCh to be wchar_t
							 | 
						|
								# (this is safe because on Windows wchar_t is used to store UTF-16 codepoints, while it is not true on Unix)
							 | 
						|
								AC_MSG_CHECKING([whether the Windows SDK is available and using wchar_t as wide string])
							 | 
						|
								AC_COMPILE_IFELSE(  [AC_LANG_PROGRAM([[#include <windows.h>
							 | 
						|
								                                        wchar_t file[] = L"dummy.file";]],
							 | 
						|
								                                     [[DeleteFileW(file);]])],
							 | 
						|
								                    [
							 | 
						|
								                      xerces_cv_type_xmlch=wchar_t
							 | 
						|
								                      AC_MSG_RESULT([yes])
							 | 
						|
								                      AC_DEFINE_UNQUOTED([XERCES_INCLUDE_WCHAR_H], 1, [Define to have Xerces_autoconf_config.hpp include wchar.h])
							 | 
						|
								                    ],
							 | 
						|
								                    [
							 | 
						|
								                      xerces_cv_type_xmlch=$xerces_cv_type_u16bit_int
							 | 
						|
								                      AC_MSG_RESULT([no])
							 | 
						|
								                    ]
							 | 
						|
								                 )
							 | 
						|
								
							 | 
						|
								AC_DEFINE_UNQUOTED([XERCES_XMLCH_T], [$xerces_cv_type_xmlch], [Define to the 16 bit type used to represent Xerces UTF-16 characters])
							 | 
						|
								
							 | 
						|
								AC_MSG_CHECKING([whether the compiler chokes on a placement operator delete])
							 | 
						|
								AC_COMPILE_IFELSE(  [AC_LANG_PROGRAM([[#include <stdlib.h>
							 | 
						|
								
							 | 
						|
								                                        class XMemory
							 | 
						|
								                                        {
							 | 
						|
								                                        public :
							 | 
						|
								                                            void* operator new(size_t s) { return 0; }
							 | 
						|
								                                            void* operator new(size_t s, void* ptr) { return 0; }
							 | 
						|
								                                            void operator delete(void* p) {}
							 | 
						|
								                                            void operator delete(void* p, void* ptr) {}
							 | 
						|
								                                        };]],
							 | 
						|
								                                     [[ ]])],
							 | 
						|
								                    [
							 | 
						|
								                      AC_MSG_RESULT([no])
							 | 
						|
								                    ],
							 | 
						|
								                    [
							 | 
						|
								                      AC_MSG_RESULT([yes])
							 | 
						|
								                      AC_DEFINE_UNQUOTED([XERCES_NO_MATCHING_DELETE_OPERATOR], 1, [Define to have XMemory.hpp avoid declaring a matching operator delete for the placement operator new])
							 | 
						|
								                    ]
							 | 
						|
								                 )
							 | 
						|
								
							 | 
						|
								if test "$have_sse2" = "yes"; then
							 | 
						|
								    no_sse2_CXXFLAGS="$CXXFLAGS"
							 | 
						|
								
							 | 
						|
								    save_CXXFLAGS="$CXXFLAGS"
							 | 
						|
								    CXXFLAGS="$CXXFLAGS -msse2"
							 | 
						|
									AC_MSG_CHECKING([whether we need to add -msse2])
							 | 
						|
									AC_COMPILE_IFELSE(  [AC_LANG_PROGRAM([[#include <emmintrin.h>]], [[__m128i one;]])],
							 | 
						|
														[msse2_ok=yes],
							 | 
						|
														[msse2_ok=no]
							 | 
						|
													 )
							 | 
						|
								    AC_MSG_RESULT($msse2_ok)
							 | 
						|
								    if test x"$msse2_ok" = xno; then
							 | 
						|
								        CXXFLAGS="$save_CXXFLAGS"
							 | 
						|
								    fi
							 | 
						|
								# Sun CC option test. Currently disabled since it doesn't work. Also note
							 | 
						|
								# that Sun CC will accept -msse2 (i.e., it won't fail) but will keep issuing
							 | 
						|
								# warnings. So if enabled this test needs to be moved before -msse2 and if
							 | 
						|
								# it passes, then -msse2 should be skipped.
							 | 
						|
								#
							 | 
						|
								#    save_CXXFLAGS="$CXXFLAGS"
							 | 
						|
								#    CXXFLAGS="$CXXFLAGS -xarch=sse2"
							 | 
						|
								#      AC_MSG_CHECKING([whether we need to add -xarch=sse2])
							 | 
						|
								#      AC_COMPILE_IFELSE(  [AC_LANG_PROGRAM([[#include <emmintrin.h>]], [[__m128i one;]])],
							 | 
						|
								#						[xarchsse2_ok=yes],
							 | 
						|
								#						[xarchsse2_ok=no]
							 | 
						|
								#					 )
							 | 
						|
								#    AC_MSG_RESULT($xarchsse2_ok)
							 | 
						|
								#    if test x"$xarchsse2_ok" = xno; then
							 | 
						|
								#        CXXFLAGS="$save_CXXFLAGS"
							 | 
						|
								#    fi
							 | 
						|
								
							 | 
						|
								    AC_MSG_CHECKING([for intrin.h usability])
							 | 
						|
								    AC_COMPILE_IFELSE(  [AC_LANG_PROGRAM([[#include <intrin.h>]],
							 | 
						|
								                                         [[]])],
							 | 
						|
								                        [
							 | 
						|
								                          AC_MSG_RESULT([yes])
							 | 
						|
								                          AC_DEFINE_UNQUOTED([XERCES_HAVE_INTRIN_H], 1, [Define to 1 if you have intrin.h])
							 | 
						|
								                        ],
							 | 
						|
								                        [
							 | 
						|
								                          AC_MSG_RESULT([no])
							 | 
						|
								                        ]
							 | 
						|
								                     )
							 | 
						|
								    AC_MSG_CHECKING([for emmintrin.h usability])
							 | 
						|
								    AC_COMPILE_IFELSE(  [AC_LANG_PROGRAM([[#include <emmintrin.h>]],
							 | 
						|
								                                         [[]])],
							 | 
						|
								                        [
							 | 
						|
								                          AC_MSG_RESULT([yes])
							 | 
						|
								                          AC_DEFINE_UNQUOTED([XERCES_HAVE_EMMINTRIN_H], 1, [Define to 1 if you have emmintrin.h])
							 | 
						|
								                        ],
							 | 
						|
								                        [
							 | 
						|
								                          AC_MSG_RESULT([no])
							 | 
						|
								                        ]
							 | 
						|
								                     )
							 | 
						|
								    AC_MSG_CHECKING([for cpuid.h usability])
							 | 
						|
								    AC_COMPILE_IFELSE(  [AC_LANG_PROGRAM([[#include <cpuid.h>]],
							 | 
						|
								                                         [[]])],
							 | 
						|
								                        [
							 | 
						|
								                          AC_MSG_RESULT([yes])
							 | 
						|
								                          AC_DEFINE_UNQUOTED([HAVE_CPUID_H], 1, [Define to 1 if you have cpuid.h])
							 | 
						|
								                        ],
							 | 
						|
								                        [
							 | 
						|
								                          AC_MSG_RESULT([no])
							 | 
						|
								                        ]
							 | 
						|
								                     )
							 | 
						|
								
							 | 
						|
									AC_MSG_CHECKING([whether the compiler has the CPUID intrinsic])
							 | 
						|
									AC_COMPILE_IFELSE(  [AC_LANG_PROGRAM([[#include <intrin.h>]],
							 | 
						|
																		 [[int CPUInfo[4];
							 | 
						|
																		   __cpuid(CPUInfo, 1);
							 | 
						|
																		 ]])],
							 | 
						|
														[
							 | 
						|
														  AC_MSG_RESULT([yes])
							 | 
						|
														  AC_DEFINE_UNQUOTED([XERCES_HAVE_CPUID_INTRINSIC], 1, [Define to have SSE2 instruction support detected at runtime using __cpuid])
							 | 
						|
														],
							 | 
						|
														[
							 | 
						|
														  AC_MSG_RESULT([no])
							 | 
						|
														]
							 | 
						|
													 )
							 | 
						|
								
							 | 
						|
									AC_MSG_CHECKING([whether the compiler has the _get_cpuid intrinsic])
							 | 
						|
									AC_COMPILE_IFELSE(  [AC_LANG_PROGRAM([[#include <cpuid.h>]],
							 | 
						|
																		 [[unsigned int eax, ebx, ecx, edx;
							 | 
						|
								                                           __get_cpuid (1, &eax, &ebx, &ecx, &edx);
							 | 
						|
																		 ]])],
							 | 
						|
														[
							 | 
						|
														  AC_MSG_RESULT([yes])
							 | 
						|
														  AC_DEFINE_UNQUOTED([XERCES_HAVE_GETCPUID], 1, [Define to have SSE2 instruction support detected at runtime using __get_cpuid])
							 | 
						|
														],
							 | 
						|
														[
							 | 
						|
														  AC_MSG_RESULT([no])
							 | 
						|
														]
							 | 
						|
													 )
							 | 
						|
								
							 | 
						|
									AC_MSG_CHECKING([whether the compiler has the SSE2 intrinsic])
							 | 
						|
									AC_COMPILE_IFELSE(  [AC_LANG_PROGRAM([[#include <emmintrin.h>]],
							 | 
						|
																		 [[__m128i* one=(__m128i*)_mm_malloc(4, 16);
							 | 
						|
																		   __m128i* two=(__m128i*)_mm_malloc(4, 16);
							 | 
						|
																		   __m128i xmm1 = _mm_load_si128(one);
							 | 
						|
																		   __m128i xmm2 = _mm_load_si128(two);
							 | 
						|
																		   __m128i xmm3 = _mm_or_si128(xmm1, xmm2);
							 | 
						|
																		   _mm_store_si128(one, xmm3);
							 | 
						|
																		   _mm_free(one);
							 | 
						|
																		   _mm_free(two);
							 | 
						|
																		 ]])],
							 | 
						|
														[
							 | 
						|
														  AC_MSG_RESULT([yes])
							 | 
						|
														  sse2_usable=yes
							 | 
						|
														  AC_DEFINE_UNQUOTED([XERCES_HAVE_SSE2_INTRINSIC], 1, [Define to have SSE2 instruction used at runtime])
							 | 
						|
														],
							 | 
						|
														[
							 | 
						|
														  AC_MSG_RESULT([no])
							 | 
						|
								                                                  sse2_usable=no
							 | 
						|
														]
							 | 
						|
								
							 | 
						|
													 )
							 | 
						|
								  # Restore original CXXFLAGS if SSE2 is not usable.
							 | 
						|
								  #
							 | 
						|
								  if test "$sse2_usable" = "no"; then
							 | 
						|
								    CXXFLAGS="$no_sse2_CXXFLAGS"
							 | 
						|
								  fi
							 | 
						|
								fi
							 | 
						|
								
							 | 
						|
								AS_IF([test x$ac_cv_type_size_t = xyes],
							 | 
						|
									AC_DEFINE([XERCES_SIZE_T], [size_t], [Define as the appropriate size_t type]),
							 | 
						|
									AC_DEFINE([XERCES_SIZE_T], [long], [Define as the appropriate size_t type]))
							 | 
						|
								
							 | 
						|
								AS_IF([test x$ac_cv_type_ssize_t = xyes],
							 | 
						|
									AC_DEFINE([XERCES_SSIZE_T], [ssize_t], [Define as the appropriate ssize_t type]),
							 | 
						|
									AC_DEFINE([XERCES_SSIZE_T], [unsigned long], [Define as the appropriate ssize_t type]))
							 | 
						|
								
							 | 
						|
								AS_IF([test x$ac_cv_cxx_have_namespaces = xyes],
							 | 
						|
									AC_DEFINE([XERCES_HAS_CPP_NAMESPACE], 1, [Define if namespaces is supported by the compiler]))
							 | 
						|
								
							 | 
						|
								AS_IF([test x$ac_cv_cxx_have_std_namespace = xyes],
							 | 
						|
									AC_DEFINE([XERCES_STD_NAMESPACE], 1, [Define if the std namespace is supported]))
							 | 
						|
								
							 | 
						|
								AS_IF([test x$ac_cv_cxx_have_std_libs = xyes],
							 | 
						|
									AC_DEFINE([XERCES_NEW_IOSTREAMS], 1, [Define if the isstream library can be included as <iostream>]))
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								AC_OUTPUT
							 | 
						|
								
							 | 
						|
								AC_MSG_NOTICE
							 | 
						|
								AC_MSG_NOTICE([Report:])
							 | 
						|
								AC_MSG_NOTICE([  File Manager: $filemgr])
							 | 
						|
								AC_MSG_NOTICE([  Mutex Manager: $mutexmgr])
							 | 
						|
								AC_MSG_NOTICE([  Transcoder: $transcoder])
							 | 
						|
								AC_MSG_NOTICE([  NetAccessor: $netaccessor])
							 | 
						|
								AC_MSG_NOTICE([  Message Loader: $msgloader])
							 |