changeset 7011:c91111628d88

Update csharpcomp module from GNU gettext 0.15.
author Bruno Haible <bruno@clisp.org>
date Sat, 22 Jul 2006 14:24:36 +0000
parents 2c3480d62b64
children 268bfcec1a6f
files ChangeLog build-aux/csharpcomp.sh.in lib/ChangeLog lib/csharpcomp.c m4/ChangeLog m4/csharpcomp.m4
diffstat 6 files changed, 83 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2006-06-21  Bruno Haible  <bruno@clisp.org>
+
+	Avoid warnings from recent versions of mcs.
+	* build-aux/csharpcomp.sh.in (options_mcs): Don't use options -o, -L,
+	-r any more. Use options documented since mcs-1.0 instead. Similarly
+	for -g.
+
+2005-12-04  Bruno Haible  <bruno@clisp.org>
+
+	* build-aux/csharpcomp.sh.in: Suffix for resources is .resources, not
+	.resource.
+
+2005-07-09  Bruno Haible  <bruno@clisp.org>
+
+	* build-aux/csharpcomp.sh.in (options_csc): For -l option, add a .dll
+	suffix.
+	Reported by Mark Junker <mjscod@gmx.de>.
+
 2006-07-22  Bruno Haible  <bruno@clisp.org>
 
 	* modules/gettext: Upgrade to gettext-0.15.
--- a/build-aux/csharpcomp.sh.in
+++ b/build-aux/csharpcomp.sh.in
@@ -1,7 +1,7 @@
 #!/bin/sh
 # Compile a C# program.
 
-# Copyright (C) 2003-2005 Free Software Foundation, Inc.
+# Copyright (C) 2003-2006 Free Software Foundation, Inc.
 # Written by Bruno Haible <bruno@clisp.org>, 2003.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -47,7 +47,7 @@
   {
     # Use the mktemp program if available. If not available, hide the error
     # message.
-    tmp=`(umask 077 && mktemp -d "$TMPDIR/gtXXXXXX") 2>/dev/null` &&
+    tmp=`(umask 077 && mktemp -d -q "$TMPDIR/gtXXXXXX") 2>/dev/null` &&
     test -n "$tmp" && test -d "$tmp"
   } ||
   {
@@ -84,19 +84,19 @@
           ;;
       esac
       options_cscc="$options_cscc -o "`echo "$2" | sed -e "$sed_quote_subst"`
-      options_mcs="$options_mcs -o "`echo "$2" | sed -e "$sed_quote_subst"`
+      options_mcs="$options_mcs -out:"`echo "$2" | sed -e "$sed_quote_subst"`
       options_csc="$options_csc -out:"`echo "$2" | sed -e "$sed_quote_subst"`
       shift
       ;;
     -L)
       options_cscc="$options_cscc -L "`echo "$2" | sed -e "$sed_quote_subst"`
-      options_mcs="$options_mcs -L "`echo "$2" | sed -e "$sed_quote_subst"`
+      options_mcs="$options_mcs -lib:"`echo "$2" | sed -e "$sed_quote_subst"`
       options_csc="$options_csc -lib:"`echo "$2" | sed -e "$sed_quote_subst"`
       shift
       ;;
     -l)
       options_cscc="$options_cscc -l "`echo "$2" | sed -e "$sed_quote_subst"`
-      options_mcs="$options_mcs -r "`echo "$2" | sed -e "$sed_quote_subst"`
+      options_mcs="$options_mcs -reference:"`echo "$2" | sed -e "$sed_quote_subst"`
       options_csc="$options_csc -reference:"`echo "$2" | sed -e "$sed_quote_subst"`".dll"
       shift
       ;;
@@ -106,14 +106,14 @@
       ;;
     -g)
       options_cscc="$options_cscc -g"
-      options_mcs="$options_mcs -g"
+      options_mcs="$options_mcs -debug"
       options_csc="$options_csc -debug+"
       ;;
     -*)
       echo "csharpcomp: unknown option '$1'" 1>&2
       exit 1
       ;;
-    *.resource)
+    *.resources)
       options_cscc="$options_cscc -fresources="`echo "$1" | sed -e "$sed_quote_subst"`
       options_mcs="$options_mcs -resource:"`echo "$1" | sed -e "$sed_quote_subst"`
       options_csc="$options_csc -resource:"`echo "$1" | sed -e "$sed_quote_subst"`
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,15 @@
+2006-06-21  Bruno Haible  <bruno@clisp.org>
+
+	Avoid warnings from recent versions of mcs.
+	* csharpcomp.c (compile_csharp_using_mono): Don't use options -o, -L,
+	-r any more. Use options documented since mcs-1.0 instead. Similarly
+	for -g.
+
+2005-07-09  Bruno Haible  <bruno@clisp.org>
+
+	* csharpcomp.c (compile_csharp_using_sscli): For -l option, add a .dll suffix.
+	Reported by Mark Junker <mjscod@gmx.de>.
+
 2006-06-17  Bruno Haible  <bruno@clisp.org>
 
 	* config.charset: Update for NetBSD 3.0.
--- a/lib/csharpcomp.c
+++ b/lib/csharpcomp.c
@@ -1,5 +1,5 @@
 /* Compile a C# program.
-   Copyright (C) 2003-2005 Free Software Foundation, Inc.
+   Copyright (C) 2003-2006 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2003.
 
    This program is free software; you can redistribute it and/or modify
@@ -129,9 +129,9 @@
       for (i = 0; i < sources_count; i++)
 	{
 	  const char *source_file = sources[i];
-	  if (strlen (source_file) >= 9
-	      && memcmp (source_file + strlen (source_file) - 9, ".resource",
-			 9) == 0)
+	  if (strlen (source_file) >= 10
+	      && memcmp (source_file + strlen (source_file) - 10, ".resources",
+			 10) == 0)
 	    {
 	      char *option = (char *) xallocsa (12 + strlen (source_file) + 1);
 
@@ -214,34 +214,43 @@
       unsigned int i;
 
       argc =
-	1 + (output_is_library ? 1 : 0) + 2 + 2 * libdirs_count
-	+ 2 * libraries_count + (debug ? 1 : 0) + sources_count;
+	1 + (output_is_library ? 1 : 0) + 1 + libdirs_count + libraries_count
+	+ (debug ? 1 : 0) + sources_count;
       argv = (char **) xallocsa ((argc + 1) * sizeof (char *));
 
       argp = argv;
       *argp++ = "mcs";
       if (output_is_library)
 	*argp++ = "-target:library";
-      *argp++ = "-o";
-      *argp++ = (char *) output_file;
+      {
+	char *option = (char *) xallocsa (5 + strlen (output_file) + 1);
+	memcpy (option, "-out:", 5);
+	strcpy (option + 5, output_file);
+	*argp++ = option;
+      }
       for (i = 0; i < libdirs_count; i++)
 	{
-	  *argp++ = "-L";
-	  *argp++ = (char *) libdirs[i];
+	  char *option = (char *) xallocsa (5 + strlen (libdirs[i]) + 1);
+	  memcpy (option, "-lib:", 5);
+	  strcpy (option + 5, libdirs[i]);
+	  *argp++ = option;
 	}
       for (i = 0; i < libraries_count; i++)
 	{
-	  *argp++ = "-r";
-	  *argp++ = (char *) libraries[i];
+	  char *option = (char *) xallocsa (11 + strlen (libraries[i]) + 4 + 1);
+	  memcpy (option, "-reference:", 11);
+	  memcpy (option + 11, libraries[i], strlen (libraries[i]));
+	  strcpy (option + 11 + strlen (libraries[i]), ".dll");
+	  *argp++ = option;
 	}
       if (debug)
-	*argp++ = "-g";
+	*argp++ = "-debug";
       for (i = 0; i < sources_count; i++)
 	{
 	  const char *source_file = sources[i];
-	  if (strlen (source_file) >= 9
-	      && memcmp (source_file + strlen (source_file) - 9, ".resource",
-			 9) == 0)
+	  if (strlen (source_file) >= 10
+	      && memcmp (source_file + strlen (source_file) - 10, ".resources",
+			 10) == 0)
 	    {
 	      char *option = (char *) xallocsa (10 + strlen (source_file) + 1);
 
@@ -297,6 +306,11 @@
       /* Remove zombie process from process list, and retrieve exit status.  */
       exitstatus = wait_subprocess (child, "mcs", false, false, true, true);
 
+      for (i = 1 + (output_is_library ? 1 : 0);
+	   i < 1 + (output_is_library ? 1 : 0)
+	       + 1 + libdirs_count + libraries_count;
+	   i++)
+	freesa (argv[i]);
       for (i = 0; i < sources_count; i++)
 	if (argv[argc - sources_count + i] != sources[i])
 	  freesa (argv[argc - sources_count + i]);
@@ -417,9 +431,9 @@
       for (i = 0; i < sources_count; i++)
 	{
 	  const char *source_file = sources[i];
-	  if (strlen (source_file) >= 9
-	      && memcmp (source_file + strlen (source_file) - 9, ".resource",
-			 9) == 0)
+	  if (strlen (source_file) >= 10
+	      && memcmp (source_file + strlen (source_file) - 10, ".resources",
+			 10) == 0)
 	    {
 	      char *option = (char *) xallocsa (10 + strlen (source_file) + 1);
 
--- a/m4/ChangeLog
+++ b/m4/ChangeLog
@@ -1,3 +1,7 @@
+2005-12-04  Bruno Haible  <bruno@clisp.org>
+
+	* csharpcomp.m4 (gt_CSHARPCOMP): Also set CSHARPCOMPFLAGS.
+
 2006-07-22  Bruno Haible  <bruno@clisp.org>
 
 	* gettext.m4: Update from GNU gettext-0.15.
--- a/m4/csharpcomp.m4
+++ b/m4/csharpcomp.m4
@@ -1,12 +1,14 @@
-# csharpcomp.m4 serial 5 (gettext-0.15)
+# csharpcomp.m4 serial 6 (gettext-0.15)
 dnl Copyright (C) 2003-2005 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
 # Prerequisites of csharpcomp.sh.
+# Checks for a C# compiler.
+# Sets at most one of HAVE_CSCC, HAVE_MCS, HAVE_CSC.
 # Sets HAVE_CSHARPCOMP to nonempty if csharpcomp.sh will work.
-
+# Also sets CSHARPCOMPFLAGS.
 AC_DEFUN([gt_CSHARPCOMP],
 [
   AC_REQUIRE([gt_CSHARP_CHOICE])
@@ -67,4 +69,9 @@
   AC_SUBST(HAVE_CSCC)
   AC_SUBST(HAVE_MCS)
   AC_SUBST(HAVE_CSC)
+  dnl Provide a default for CSHARPCOMPFLAGS.
+  if test -z "${CSHARPCOMPFLAGS+set}"; then
+    CSHARPCOMPFLAGS="-O -g"
+  fi
+  AC_SUBST(CSHARPCOMPFLAGS)
 ])