Author: amassari
Date: Fri May 12 12:17:57 2006
New Revision: 405840

URL: http://svn.apache.org/viewcvs?rev=405840&view=rev
Log:
Enable selection of the GNU iconv transcoder

Modified:
    xerces/c/trunk/m4/xerces_transcoder_selection.m4
    xerces/c/trunk/src/Makefile.am
    xerces/c/trunk/src/xercesc/util/PlatformUtils.cpp

Modified: xerces/c/trunk/m4/xerces_transcoder_selection.m4
URL: 
http://svn.apache.org/viewcvs/xerces/c/trunk/m4/xerces_transcoder_selection.m4?rev=405840&r1=405839&r2=405840&view=diff
==============================================================================
--- xerces/c/trunk/m4/xerces_transcoder_selection.m4 (original)
+++ xerces/c/trunk/m4/xerces_transcoder_selection.m4 Fri May 12 12:17:57 2006
@@ -21,6 +21,25 @@
        
        tc_list=
        
+       # Check for GNU iconv support
+       no_GNUiconv=false
+       AC_CHECK_HEADERS([iconv.h wchar.h string.h stdlib.h stdio.h ctype.h 
locale.h errno.h endian.h], [], [no_GNUiconv=true])
+       AC_CHECK_FUNCS([iconv_open iconv_close iconv], [], [no_GNUiconv=true])
+       AC_MSG_CHECKING([whether we can support the GNU iconv Transcoder])
+       list_add=
+       AS_IF([! $no_GNUiconv], [
+               AC_ARG_ENABLE([transcoder-gnuiconv],
+                       AS_HELP_STRING([--enable-transcoder-gnuiconv],
+                               [Enable GNU iconv-based transcoder support]),
+                       [AS_IF([test x"$enableval" = xyes],
+                               [list_add=GNUICONV])],
+                       [list_add=gnuiconv])
+       ])
+       AS_IF([test x"$list_add" != x],
+               [tc_list="$tc_list -$list_add-"; AC_MSG_RESULT(yes)],
+               [AC_MSG_RESULT(no)]
+       )
+
        # Check for iconv support
        no_iconv=false
        AC_CHECK_HEADERS([wchar.h], [], [no_iconv=true])
@@ -124,6 +143,12 @@
                        break
                        ;;
 
+               *-gnuiconv-*)
+                       transcoder=gnuiconv
+                       AC_DEFINE([XERCES_USE_TRANSCODER_GNUICONV], 1, [Define 
to use the GNU iconv transcoder])
+                       break
+                       ;;
+
                *-iconv-*)
                        transcoder=iconv
                        AC_DEFINE([XERCES_USE_TRANSCODER_ICONV], 1, [Define to 
use the iconv transcoder])
@@ -151,10 +176,11 @@
        
        # Define the auto-make conditionals which determine what actually gets 
compiled
        # Note that these macros can't be executed conditionally, which is why 
they're here, not above.
-       AM_CONDITIONAL([XERCES_USE_TRANSCODER_ICU],                             
                [test x"$transcoder" = xicu])
+       AM_CONDITIONAL([XERCES_USE_TRANSCODER_ICU],                     [test 
x"$transcoder" = xicu])
        AM_CONDITIONAL([XERCES_USE_TRANSCODER_MACOSUNICODECONVERTER],   [test 
x"$transcoder" = xmacosunicodeconverter])
-       AM_CONDITIONAL([XERCES_USE_TRANSCODER_ICONV],                           
        [test x"$transcoder" = xiconv])
-       AM_CONDITIONAL([XERCES_USE_TRANSCODER_WINDOWS],                         
        [test x"$transcoder" = xwindows])
+       AM_CONDITIONAL([XERCES_USE_TRANSCODER_GNUICONV],                [test 
x"$transcoder" = xgnuiconv])
+       AM_CONDITIONAL([XERCES_USE_TRANSCODER_ICONV],                   [test 
x"$transcoder" = xiconv])
+       AM_CONDITIONAL([XERCES_USE_TRANSCODER_WINDOWS],                 [test 
x"$transcoder" = xwindows])
 
        ]
 )

Modified: xerces/c/trunk/src/Makefile.am
URL: 
http://svn.apache.org/viewcvs/xerces/c/trunk/src/Makefile.am?rev=405840&r1=405839&r2=405840&view=diff
==============================================================================
--- xerces/c/trunk/src/Makefile.am (original)
+++ xerces/c/trunk/src/Makefile.am Fri May 12 12:17:57 2006
@@ -138,6 +138,13 @@
 libicutc_la_CXXFLAGS =                         ${AM_CXXFLAGS} 
-I${ICU_PREFIX}/include
 endif
 
+if XERCES_USE_TRANSCODER_GNUICONV
+src_libraries +=                                       libgnuiconvtc.la
+libgnuiconvtc_ladir =                                  ${includedir}
+nobase_libgnuiconvtc_la_HEADERS =              ${gnuiconv_headers}
+libgnuiconvtc_la_SOURCES =                             ${gnuiconv_sources}
+endif
+
 if XERCES_USE_TRANSCODER_ICONV
 src_libraries +=                                       libiconvtc.la
 libiconvtc_ladir =                                     ${includedir}
@@ -1071,6 +1078,12 @@
 
 icu_sources = \
        xercesc/util/Transcoders/ICU/ICUTransService.cpp
+
+gnuiconv_headers = \
+       xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.hpp
+
+gnuiconv_sources = \
+       xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.cpp
 
 iconv_headers = \
        xercesc/util/Transcoders/Iconv/IconvTransService.hpp

Modified: xerces/c/trunk/src/xercesc/util/PlatformUtils.cpp
URL: 
http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/util/PlatformUtils.cpp?rev=405840&r1=405839&r2=405840&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/util/PlatformUtils.cpp (original)
+++ xerces/c/trunk/src/xercesc/util/PlatformUtils.cpp Fri May 12 12:17:57 2006
@@ -120,6 +120,9 @@
 #if XERCES_USE_TRANSCODER_ICU
 #      include <xercesc/util/Transcoders/ICU/ICUTransService.hpp>
 #endif
+#if XERCES_USE_TRANSCODER_GNUICONV
+#      include <xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.hpp>
+#endif
 #if XERCES_USE_TRANSCODER_ICONV
 #      include <xercesc/util/Transcoders/Iconv/IconvTransService.hpp>
 #endif
@@ -473,6 +476,8 @@
        
        #if defined   (XERCES_USE_TRANSCODER_ICU)
                tc = new ICUTransService;
+       #elif defined (XERCES_USE_TRANSCODER_GNUICONV)
+               tc = new IconvGNUTransService;
        #elif defined (XERCES_USE_TRANSCODER_ICONV)
                tc = new IconvTransService;
        #elif defined (XERCES_USE_TRANSCODER_MACOSUNICODECONVERTER)



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to