Author: vedge
Date: 2008-03-12 22:08:45 -0300 (Wed, 12 Mar 2008)
New Revision: 688

Added:
   trunk/BSDBuild/iconv.pm
Modified:
   trunk/BSDBuild/Makefile
Log:
test for iconv()


Modified: trunk/BSDBuild/Makefile
===================================================================
--- trunk/BSDBuild/Makefile     2008-03-11 11:34:32 UTC (rev 687)
+++ trunk/BSDBuild/Makefile     2008-03-13 01:08:45 UTC (rev 688)
@@ -78,7 +78,8 @@
        math_c99.pm \
        getopt.pm \
        byte_order.pm \
-       openmgi.pm
+       openmgi.pm \
+       iconv.pm
 
 all:
 

Added: trunk/BSDBuild/iconv.pm
===================================================================
--- trunk/BSDBuild/iconv.pm                             (rev 0)
+++ trunk/BSDBuild/iconv.pm     2008-03-13 01:08:45 UTC (rev 688)
@@ -0,0 +1,89 @@
+# vim:ts=4
+#
+# Copyright (c) 2003-2008 CubeSoft Communications, Inc.
+# <http://www.csoft.org>
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution..
+# 
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+# USE OF THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE..
+
+my @prefixes = (
+       '/usr',
+       '/usr/local',
+       '/opt',
+       '/opt/local',
+);
+
+sub Test
+{
+       my $test = << "EOF";
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <iconv.h>
+
+int main(int argc, char *argv[])
+{
+       const char *inbuf = "foo";
+       size_t inlen = strlen(inbuf), rv;
+       char *outbuf = malloc(3);
+       size_t outbuflen = 3;
+       iconv_t cd;
+
+       cd = iconv_open("ISO-8859-1", "UTF-8");
+       rv = iconv(cd, &inbuf, &inlen, &outbuf, &outbuflen);
+       if (rv == (size_t)-1 && errno == E2BIG) {
+       }
+       iconv_close(cd);
+       return (0);
+}
+EOF
+       MkDefine('ICONV_CFLAGS', '');
+       MkDefine('ICONV_LIBS', '');
+
+       MkCompileC('HAVE_ICONV', '${ICONV_CFLAGS}', '${ICONV_LIBS}', $test);
+       MkIf('"${HAVE_ICONV}" = "no"');
+               MkPrintN('checking for iconv() in -liconv...');
+               foreach my $pfx (@prefixes) {
+                       MkIf("-e $pfx/include/iconv.h");
+                           MkDefine('ICONV_CFLAGS', "-I$pfx/include");
+                           MkDefine('ICONV_LIBS', "-L$pfx/lib -liconv");
+                       MkEndif;
+               }
+               MkCompileC('HAVE_ICONV', '${ICONV_CFLAGS}', '${ICONV_LIBS}', 
$test);
+               MkIf('"${HAVE_ICONV}" = "yes"');
+                       MkSaveDefine('ICONV_CFLAGS', 'ICONV_LIBS');
+                       MkSaveMK('ICONV_CFLAGS', 'ICONV_LIBS');
+               MkEndif;
+       MkElse;
+                       MkSaveDefine('ICONV_CFLAGS', 'ICONV_LIBS');
+                       MkSaveMK('ICONV_CFLAGS', 'ICONV_LIBS');
+       MkEndif;
+}
+
+BEGIN
+{
+       $DESCR{'iconv'} = 'iconv()';
+       $TESTS{'iconv'} = \&Test;
+       $DEPS{'iconv'} = 'cc';
+}
+
+;1

_______________________________________________
BSDBuild-Commits mailing list
[email protected]
http://mail231.csoft.net/mailman/listinfo/bsdbuild-commits

Reply via email to